簡體   English   中英

Delphi 2007 xsd導入

[英]Delphi 2007 xsd Import

我要導入的文件在這里 在導入向導之后,當我嘗試編譯我的項目時,Delphi說

重新聲明的標識符:'IXMLNodeList'。

我試圖刪除一個重新聲明的'IXMLNodeList',但這次Delphi說

類型'IXMLNode'尚未完全定義。

可以使用xsd.exe(.Net Framework的工具)轉換相同的xsd文件,並使用Visual Studio 2013構建。

這是一個錯誤嗎? 或者我做錯了什么? 還有另一種生成* .pas文件的方法嗎?

使用Delphi 2007生成的* .pas文件。(自字符限制后刪除實現部分為30000)

{**********************************************}
{                                              }
{             XML Data Binding                 }
{                                              }
{         Generated on: 27.8.2015 12:46:19     }
{       Generated from: D:\temp\testData.xsd   }
{   Settings stored in: D:\temp\testData.xdb   }
{                                              }
{**********************************************}

unit testData;

interface

uses xmldom, XMLDoc, XMLIntf;

type

{ Forward Decls }

  IXMLArrayDim = interface;
  IXMLHeader = interface;
  IXMLSymbolConfigObject = interface;
  IXMLProjectInfo = interface;
  IXMLSymbolconfiguration = interface;
  IXMLTypeList = interface;
  IXMLTypeSimple = interface;
  IXMLTypeSimpleList = interface;
  IXMLTypeUserDef = interface;
  IXMLTypeUserDefList = interface;
  IXMLUserDefElement = interface;
  IXMLTypeArray = interface;
  IXMLTypeArrayList = interface;
  IXMLNodeList = interface;
  IXMLNode = interface;
  IXMLNodeList = interface;

{ IXMLArrayDim }

  IXMLArrayDim = interface(IXMLNode)
    ['{B668E24B-E08D-4E8A-9687-8D50FE3141DA}']
    { Property Accessors }
    function Get_Minrange: Integer;
    function Get_Maxrange: Integer;
    procedure Set_Minrange(Value: Integer);
    procedure Set_Maxrange(Value: Integer);
    { Methods & Properties }
    property Minrange: Integer read Get_Minrange write Set_Minrange;
    property Maxrange: Integer read Get_Maxrange write Set_Maxrange;
  end;

{ IXMLHeader }

  IXMLHeader = interface(IXMLNode)
    ['{679233BE-93E7-42C9-B429-CF8F8B81A2BD}']
    { Property Accessors }
    function Get_Version: WideString;
    function Get_SymbolConfigObject: IXMLSymbolConfigObject;
    function Get_ProjectInfo: IXMLProjectInfo;
    procedure Set_Version(Value: WideString);
    { Methods & Properties }
    property Version: WideString read Get_Version write Set_Version;
    property SymbolConfigObject: IXMLSymbolConfigObject read Get_SymbolConfigObject;
    property ProjectInfo: IXMLProjectInfo read Get_ProjectInfo;
  end;

{ IXMLSymbolConfigObject }

  IXMLSymbolConfigObject = interface(IXMLNode)
    ['{FEBFF4CE-1B1F-4894-A90A-5C976FA5541B}']
    { Property Accessors }
    function Get_Version: WideString;
    procedure Set_Version(Value: WideString);
    { Methods & Properties }
    property Version: WideString read Get_Version write Set_Version;
  end;

{ IXMLProjectInfo }

  IXMLProjectInfo = interface(IXMLNode)
    ['{5D629B4B-8BB7-4627-A2D0-9B6ABD037F79}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Devicename: WideString;
    function Get_Appname: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Devicename(Value: WideString);
    procedure Set_Appname(Value: WideString);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Devicename: WideString read Get_Devicename write Set_Devicename;
    property Appname: WideString read Get_Appname write Set_Appname;
  end;

{ IXMLSymbolconfiguration }

  IXMLSymbolconfiguration = interface(IXMLNode)
    ['{B3CA7842-0593-485A-9B70-A17210F3DE47}']
    { Property Accessors }
    function Get_Header: IXMLHeader;
    function Get_TypeList: IXMLTypeList;
    function Get_NodeList: IXMLNodeList;
    { Methods & Properties }
    property Header: IXMLHeader read Get_Header;
    property TypeList: IXMLTypeList read Get_TypeList;
    property NodeList: IXMLNodeList read Get_NodeList;
  end;

{ IXMLTypeList }

  IXMLTypeList = interface(IXMLNode)
    ['{4F506F8A-9093-4B65-B3F6-CE04F4AA2B6A}']
    { Property Accessors }
    function Get_TypeSimple: IXMLTypeSimpleList;
    function Get_TypeUserDef: IXMLTypeUserDefList;
    function Get_TypeArray: IXMLTypeArrayList;
    { Methods & Properties }
    property TypeSimple: IXMLTypeSimpleList read Get_TypeSimple;
    property TypeUserDef: IXMLTypeUserDefList read Get_TypeUserDef;
    property TypeArray: IXMLTypeArrayList read Get_TypeArray;
  end;

{ IXMLTypeSimple }

  IXMLTypeSimple = interface(IXMLNode)
    ['{99ACCF81-AE73-4848-96D1-465B02B09732}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Swapsize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_Bitoffset: Integer;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Swapsize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Bitoffset(Value: Integer);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Swapsize: Integer read Get_Swapsize write Set_Swapsize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property Bitoffset: Integer read Get_Bitoffset write Set_Bitoffset;
  end;

{ IXMLTypeSimpleList }

  IXMLTypeSimpleList = interface(IXMLNodeCollection)
    ['{9FF4D34E-53A0-4C6E-A123-15DC9ECB86D9}']
    { Methods & Properties }
    function Add: IXMLTypeSimple;
    function Insert(const Index: Integer): IXMLTypeSimple;
    function Get_Item(Index: Integer): IXMLTypeSimple;
    property Items[Index: Integer]: IXMLTypeSimple read Get_Item; default;
  end;

{ IXMLTypeUserDef }

  IXMLTypeUserDef = interface(IXMLNodeCollection)
    ['{9FE7B6CE-0B86-499E-A039-A0939B5DE3A5}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_UserDefElement(Index: Integer): IXMLUserDefElement;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    { Methods & Properties }
    function Add: IXMLUserDefElement;
    function Insert(const Index: Integer): IXMLUserDefElement;
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Nativesize: Integer read Get_Nativesize write Set_Nativesize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property UserDefElement[Index: Integer]: IXMLUserDefElement read Get_UserDefElement; default;
  end;

{ IXMLTypeUserDefList }

  IXMLTypeUserDefList = interface(IXMLNodeCollection)
    ['{52B0116E-85CB-4299-988F-0EDA565597FA}']
    { Methods & Properties }
    function Add: IXMLTypeUserDef;
    function Insert(const Index: Integer): IXMLTypeUserDef;
    function Get_Item(Index: Integer): IXMLTypeUserDef;
    property Items[Index: Integer]: IXMLTypeUserDef read Get_Item; default;
  end;

{ IXMLUserDefElement }

  IXMLUserDefElement = interface(IXMLNode)
    ['{09C1780A-D3BB-4EF0-ABB8-87C3C2A7D164}']
    { Property Accessors }
    function Get_Type_: WideString;
    function Get_Iecname: WideString;
    function Get_Byteoffset: Integer;
    procedure Set_Type_(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Byteoffset(Value: Integer);
    { Methods & Properties }
    property Type_: WideString read Get_Type_ write Set_Type_;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property Byteoffset: Integer read Get_Byteoffset write Set_Byteoffset;
  end;

{ IXMLTypeArray }

  IXMLTypeArray = interface(IXMLNodeCollection)
    ['{5B1E6A12-D05F-4B0D-B7DF-4CAE0F51D0F7}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Basetype: WideString;
    function Get_Iecname: WideString;
    function Get_ArrayDim(Index: Integer): IXMLArrayDim;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Basetype(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    { Methods & Properties }
    function Add: IXMLArrayDim;
    function Insert(const Index: Integer): IXMLArrayDim;
    property Name: WideString read Get_Name write Set_Name;
    property Size: Integer read Get_Size write Set_Size;
    property Nativesize: Integer read Get_Nativesize write Set_Nativesize;
    property Typeclass: WideString read Get_Typeclass write Set_Typeclass;
    property Basetype: WideString read Get_Basetype write Set_Basetype;
    property Iecname: WideString read Get_Iecname write Set_Iecname;
    property ArrayDim[Index: Integer]: IXMLArrayDim read Get_ArrayDim; default;
  end;

{ IXMLTypeArrayList }

  IXMLTypeArrayList = interface(IXMLNodeCollection)
    ['{44BC02D7-A6E9-4E4E-8FC1-F4D7481CBCF4}']
    { Methods & Properties }
    function Add: IXMLTypeArray;
    function Insert(const Index: Integer): IXMLTypeArray;
    function Get_Item(Index: Integer): IXMLTypeArray;
    property Items[Index: Integer]: IXMLTypeArray read Get_Item; default;
  end;

{ IXMLNodeList }

  IXMLNodeList = interface(IXMLNodeCollection)
    ['{A9F27BF3-5720-4687-931A-B4C7AF13919A}']
    { Property Accessors }
    function Get_Node(Index: Integer): IXMLNode;
    { Methods & Properties }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    property Node[Index: Integer]: IXMLNode read Get_Node; default;
  end;

{ IXMLNode }

  IXMLNode = interface(IXMLNode)
    ['{69BBFB83-04B8-47D0-9A64-F7E6DDE649F7}']
    { Property Accessors }
    function Get_Name: WideString;
    function Get_Type_: WideString;
    function Get_Access: WideString;
    function Get_Area: Integer;
    function Get_Offset: Integer;
    function Get_Directaddress: WideString;
    function Get_Node: IXMLNodeList;
    function Get_Comment: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Type_(Value: WideString);
    procedure Set_Access(Value: WideString);
    procedure Set_Area(Value: Integer);
    procedure Set_Offset(Value: Integer);
    procedure Set_Directaddress(Value: WideString);
    procedure Set_Comment(Value: WideString);
    { Methods & Properties }
    property Name: WideString read Get_Name write Set_Name;
    property Type_: WideString read Get_Type_ write Set_Type_;
    property Access: WideString read Get_Access write Set_Access;
    property Area: Integer read Get_Area write Set_Area;
    property Offset: Integer read Get_Offset write Set_Offset;
    property Directaddress: WideString read Get_Directaddress write Set_Directaddress;
    property Node: IXMLNodeList read Get_Node;
    property Comment: WideString read Get_Comment write Set_Comment;
  end;

{ IXMLNodeList }

  IXMLNodeList = interface(IXMLNodeCollection)
    ['{0E766622-8449-47F9-AD37-444847F37385}']
    { Methods & Properties }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    function Get_Item(Index: Integer): IXMLNode;
    property Items[Index: Integer]: IXMLNode read Get_Item; default;
  end;

{ Forward Decls }

  TXMLArrayDim = class;
  TXMLHeader = class;
  TXMLSymbolConfigObject = class;
  TXMLProjectInfo = class;
  TXMLSymbolconfiguration = class;
  TXMLTypeList = class;
  TXMLTypeSimple = class;
  TXMLTypeSimpleList = class;
  TXMLTypeUserDef = class;
  TXMLTypeUserDefList = class;
  TXMLUserDefElement = class;
  TXMLTypeArray = class;
  TXMLTypeArrayList = class;
  TXMLNodeList = class;
  TXMLNode = class;
  TXMLNodeList = class;

{ TXMLArrayDim }

  TXMLArrayDim = class(TXMLNode, IXMLArrayDim)
  protected
    { IXMLArrayDim }
    function Get_Minrange: Integer;
    function Get_Maxrange: Integer;
    procedure Set_Minrange(Value: Integer);
    procedure Set_Maxrange(Value: Integer);
  end;

{ TXMLHeader }

  TXMLHeader = class(TXMLNode, IXMLHeader)
  protected
    { IXMLHeader }
    function Get_Version: WideString;
    function Get_SymbolConfigObject: IXMLSymbolConfigObject;
    function Get_ProjectInfo: IXMLProjectInfo;
    procedure Set_Version(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLSymbolConfigObject }

  TXMLSymbolConfigObject = class(TXMLNode, IXMLSymbolConfigObject)
  protected
    { IXMLSymbolConfigObject }
    function Get_Version: WideString;
    procedure Set_Version(Value: WideString);
  end;

{ TXMLProjectInfo }

  TXMLProjectInfo = class(TXMLNode, IXMLProjectInfo)
  protected
    { IXMLProjectInfo }
    function Get_Name: WideString;
    function Get_Devicename: WideString;
    function Get_Appname: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Devicename(Value: WideString);
    procedure Set_Appname(Value: WideString);
  end;

{ TXMLSymbolconfiguration }

  TXMLSymbolconfiguration = class(TXMLNode, IXMLSymbolconfiguration)
  protected
    { IXMLSymbolconfiguration }
    function Get_Header: IXMLHeader;
    function Get_TypeList: IXMLTypeList;
    function Get_NodeList: IXMLNodeList;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeList }

  TXMLTypeList = class(TXMLNode, IXMLTypeList)
  private
    FTypeSimple: IXMLTypeSimpleList;
    FTypeUserDef: IXMLTypeUserDefList;
    FTypeArray: IXMLTypeArrayList;
  protected
    { IXMLTypeList }
    function Get_TypeSimple: IXMLTypeSimpleList;
    function Get_TypeUserDef: IXMLTypeUserDefList;
    function Get_TypeArray: IXMLTypeArrayList;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeSimple }

  TXMLTypeSimple = class(TXMLNode, IXMLTypeSimple)
  protected
    { IXMLTypeSimple }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Swapsize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_Bitoffset: Integer;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Swapsize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Bitoffset(Value: Integer);
  end;

{ TXMLTypeSimpleList }

  TXMLTypeSimpleList = class(TXMLNodeCollection, IXMLTypeSimpleList)
  protected
    { IXMLTypeSimpleList }
    function Add: IXMLTypeSimple;
    function Insert(const Index: Integer): IXMLTypeSimple;
    function Get_Item(Index: Integer): IXMLTypeSimple;
  end;

{ TXMLTypeUserDef }

  TXMLTypeUserDef = class(TXMLNodeCollection, IXMLTypeUserDef)
  protected
    { IXMLTypeUserDef }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Iecname: WideString;
    function Get_UserDefElement(Index: Integer): IXMLUserDefElement;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    function Add: IXMLUserDefElement;
    function Insert(const Index: Integer): IXMLUserDefElement;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeUserDefList }

  TXMLTypeUserDefList = class(TXMLNodeCollection, IXMLTypeUserDefList)
  protected
    { IXMLTypeUserDefList }
    function Add: IXMLTypeUserDef;
    function Insert(const Index: Integer): IXMLTypeUserDef;
    function Get_Item(Index: Integer): IXMLTypeUserDef;
  end;

{ TXMLUserDefElement }

  TXMLUserDefElement = class(TXMLNode, IXMLUserDefElement)
  protected
    { IXMLUserDefElement }
    function Get_Type_: WideString;
    function Get_Iecname: WideString;
    function Get_Byteoffset: Integer;
    procedure Set_Type_(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    procedure Set_Byteoffset(Value: Integer);
  end;

{ TXMLTypeArray }

  TXMLTypeArray = class(TXMLNodeCollection, IXMLTypeArray)
  protected
    { IXMLTypeArray }
    function Get_Name: WideString;
    function Get_Size: Integer;
    function Get_Nativesize: Integer;
    function Get_Typeclass: WideString;
    function Get_Basetype: WideString;
    function Get_Iecname: WideString;
    function Get_ArrayDim(Index: Integer): IXMLArrayDim;
    procedure Set_Name(Value: WideString);
    procedure Set_Size(Value: Integer);
    procedure Set_Nativesize(Value: Integer);
    procedure Set_Typeclass(Value: WideString);
    procedure Set_Basetype(Value: WideString);
    procedure Set_Iecname(Value: WideString);
    function Add: IXMLArrayDim;
    function Insert(const Index: Integer): IXMLArrayDim;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLTypeArrayList }

  TXMLTypeArrayList = class(TXMLNodeCollection, IXMLTypeArrayList)
  protected
    { IXMLTypeArrayList }
    function Add: IXMLTypeArray;
    function Insert(const Index: Integer): IXMLTypeArray;
    function Get_Item(Index: Integer): IXMLTypeArray;
  end;

{ TXMLNodeList }

  TXMLNodeList = class(TXMLNodeCollection, IXMLNodeList)
  protected
    { IXMLNodeList }
    function Get_Node(Index: Integer): IXMLNode;
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
  public
    procedure AfterConstruction; override;
  end;

{ TXMLNode }

  TXMLNode = class(TXMLNode, IXMLNode)
  private
    FNode: IXMLNodeList;
  protected
    { IXMLNode }
    function Get_Name: WideString;
    function Get_Type_: WideString;
    function Get_Access: WideString;
    function Get_Area: Integer;
    function Get_Offset: Integer;
    function Get_Directaddress: WideString;
    function Get_Node: IXMLNodeList;
    function Get_Comment: WideString;
    procedure Set_Name(Value: WideString);
    procedure Set_Type_(Value: WideString);
    procedure Set_Access(Value: WideString);
    procedure Set_Area(Value: Integer);
    procedure Set_Offset(Value: Integer);
    procedure Set_Directaddress(Value: WideString);
    procedure Set_Comment(Value: WideString);
  public
    procedure AfterConstruction; override;
  end;

{ TXMLNodeList }

  TXMLNodeList = class(TXMLNodeCollection, IXMLNodeList)
  protected
    { IXMLNodeList }
    function Add: IXMLNode;
    function Insert(const Index: Integer): IXMLNode;
    function Get_Item(Index: Integer): IXMLNode;
  end;

Delphi XSD導入器為每種類型添加IXML前綴。 對於XSD,生成的(生成的)接口名稱與Delphi XML框架的接口名稱沖突:

...
<xs:element name="Node">
...
<xs:element name="NodeList">
...

XSD中的這些元素類型聲明導致生成接口類型{IXMLNode}和{IXMLNodeList}。


基於whosrdaddy注釋的潛在解決方法:在XML數據綁定向導中重命名沖突的類型名稱。 屏幕截圖顯示標識符名稱是可編輯的,我添加了一個下划線,將其從IXMLNodeList重命名為IXML_NodeList。

XML數據綁定向導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM