XmlIntfDefinition.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:9k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. {***************************************************************}
  2. {                                                               }
  3. {                    Delphi XML Data Binding                    }
  4. {                                                               }
  5. {         Generated on: 6/4/2001 6:44:51 PM                     }
  6. {       Generated from: C:md6code23XmlInterfaceSample.xml   }
  7. {                                                               }
  8. {***************************************************************}
  9. unit XmlIntfDefinition;
  10. interface
  11. uses xmldom, XMLDoc, XMLIntf;
  12. type
  13. { Forward Decls }
  14.   IXMLBooksType = interface;
  15.   IXMLBookType = interface;
  16.   IXMLBookTypeList = interface;
  17.   IXMLEbookType = interface;
  18.   IXMLEbookTypeList = interface;
  19.   IXMLString_List = interface;
  20. { IXMLBooksType }
  21.   IXMLBooksType = interface(IXMLNode)
  22.     ['{C9A9FB63-47ED-4F27-8ABA-E71F30BA7F11}']
  23.     { Property Accessors }
  24.     function Get_Text: WideString;
  25.     function Get_Book: IXMLBookTypeList;
  26.     function Get_Ebook: IXMLEbookTypeList;
  27.     procedure Set_Text(Value: WideString);
  28.     { Methods & Properties }
  29.     property Text: WideString read Get_Text write Set_Text;
  30.     property Book: IXMLBookTypeList read Get_Book;
  31.     property Ebook: IXMLEbookTypeList read Get_Ebook;
  32.   end;
  33. { IXMLBookType }
  34.   IXMLBookType = interface(IXMLNode)
  35.     ['{26BF5C51-9247-4D1A-8584-24AE68969935}']
  36.     { Property Accessors }
  37.     function Get_Title: WideString;
  38.     function Get_Author: IXMLString_List;
  39.     procedure Set_Title(Value: WideString);
  40.     { Methods & Properties }
  41.     property Title: WideString read Get_Title write Set_Title;
  42.     property Author: IXMLString_List read Get_Author;
  43.   end;
  44. { IXMLBookTypeList }
  45.   IXMLBookTypeList = interface(IXMLNodeCollection)
  46.     ['{3449E8C4-3222-47B8-B2B2-38EE504790B6}']
  47.     { Methods & Properties }
  48.     function Add: IXMLBookType;
  49.     function Insert(const Index: Integer): IXMLBookType;
  50.     function Get_Item(Index: Integer): IXMLBookType;
  51.     property Items[Index: Integer]: IXMLBookType read Get_Item; default;
  52.   end;
  53. { IXMLEbookType }
  54.   IXMLEbookType = interface(IXMLNode)
  55.     ['{79F0237E-3596-40DD-ADBE-954AA7F6304F}']
  56.     { Property Accessors }
  57.     function Get_Title: WideString;
  58.     function Get_Url: WideString;
  59.     function Get_Author: WideString;
  60.     procedure Set_Title(Value: WideString);
  61.     procedure Set_Url(Value: WideString);
  62.     procedure Set_Author(Value: WideString);
  63.     { Methods & Properties }
  64.     property Title: WideString read Get_Title write Set_Title;
  65.     property Url: WideString read Get_Url write Set_Url;
  66.     property Author: WideString read Get_Author write Set_Author;
  67.   end;
  68. { IXMLEbookTypeList }
  69.   IXMLEbookTypeList = interface(IXMLNodeCollection)
  70.     ['{9713B729-340C-40EB-91AB-635FEF553EA5}']
  71.     { Methods & Properties }
  72.     function Add: IXMLEbookType;
  73.     function Insert(const Index: Integer): IXMLEbookType;
  74.     function Get_Item(Index: Integer): IXMLEbookType;
  75.     property Items[Index: Integer]: IXMLEbookType read Get_Item; default;
  76.   end;
  77. { IXMLString_List }
  78.   IXMLString_List = interface(IXMLNodeCollection)
  79.     ['{5DE9DF5D-9DE0-4654-B0D6-0CF330280950}']
  80.     { Methods & Properties }
  81.     function Add(const Value: WideString): IXMLNode;
  82.     function Insert(const Index: Integer; const Value: WideString): IXMLNode;
  83.     function Get_Item(Index: Integer): WideString;
  84.     property Items[Index: Integer]: WideString read Get_Item; default;
  85.   end;
  86. { Forward Decls }
  87.   TXMLBooksType = class;
  88.   TXMLBookType = class;
  89.   TXMLBookTypeList = class;
  90.   TXMLEbookType = class;
  91.   TXMLEbookTypeList = class;
  92.   TXMLString_List = class;
  93. { TXMLBooksType }
  94.   TXMLBooksType = class(TXMLNode, IXMLBooksType)
  95.   private
  96.     FBook: IXMLBookTypeList;
  97.     FEbook: IXMLEbookTypeList;
  98.   protected
  99.     { IXMLBooksType }
  100.     function Get_Text: WideString;
  101.     function Get_Book: IXMLBookTypeList;
  102.     function Get_Ebook: IXMLEbookTypeList;
  103.     procedure Set_Text(Value: WideString);
  104.   public
  105.     procedure AfterConstruction; override;
  106.   end;
  107. { TXMLBookType }
  108.   TXMLBookType = class(TXMLNode, IXMLBookType)
  109.   private
  110.     FAuthor: IXMLString_List;
  111.   protected
  112.     { IXMLBookType }
  113.     function Get_Title: WideString;
  114.     function Get_Author: IXMLString_List;
  115.     procedure Set_Title(Value: WideString);
  116.   public
  117.     procedure AfterConstruction; override;
  118.   end;
  119. { TXMLBookTypeList }
  120.   TXMLBookTypeList = class(TXMLNodeCollection, IXMLBookTypeList)
  121.   protected
  122.     { IXMLBookTypeList }
  123.     function Add: IXMLBookType;
  124.     function Insert(const Index: Integer): IXMLBookType;
  125.     function Get_Item(Index: Integer): IXMLBookType;
  126.   end;
  127. { TXMLEbookType }
  128.   TXMLEbookType = class(TXMLNode, IXMLEbookType)
  129.   protected
  130.     { IXMLEbookType }
  131.     function Get_Title: WideString;
  132.     function Get_Url: WideString;
  133.     function Get_Author: WideString;
  134.     procedure Set_Title(Value: WideString);
  135.     procedure Set_Url(Value: WideString);
  136.     procedure Set_Author(Value: WideString);
  137.   end;
  138. { TXMLEbookTypeList }
  139.   TXMLEbookTypeList = class(TXMLNodeCollection, IXMLEbookTypeList)
  140.   protected
  141.     { IXMLEbookTypeList }
  142.     function Add: IXMLEbookType;
  143.     function Insert(const Index: Integer): IXMLEbookType;
  144.     function Get_Item(Index: Integer): IXMLEbookType;
  145.   end;
  146. { TXMLString_List }
  147.   TXMLString_List = class(TXMLNodeCollection, IXMLString_List)
  148.   protected
  149.     { IXMLString_List }
  150.     function Add(const Value: WideString): IXMLNode;
  151.     function Insert(const Index: Integer; const Value: WideString): IXMLNode;
  152.     function Get_Item(Index: Integer): WideString;
  153.   end;
  154. { Global Functions }
  155. function Getbooks(Doc: IXMLDocument): IXMLBooksType;
  156. function Loadbooks(const FileName: WideString): IXMLBooksType;
  157. function Newbooks: IXMLBooksType;
  158. implementation
  159. { Global Functions }
  160. function Getbooks(Doc: IXMLDocument): IXMLBooksType;
  161. begin
  162.   Result := Doc.GetDocBinding('books', TXMLBooksType) as IXMLBooksType;
  163. end;
  164. function Loadbooks(const FileName: WideString): IXMLBooksType;
  165. begin
  166.   Result := LoadXMLDocument(FileName).GetDocBinding('books', TXMLBooksType) as IXMLBooksType;
  167. end;
  168. function Newbooks: IXMLBooksType;
  169. begin
  170.   Result := NewXMLDocument.GetDocBinding('books', TXMLBooksType) as IXMLBooksType;
  171. end;
  172. { TXMLBooksType }
  173. procedure TXMLBooksType.AfterConstruction;
  174. begin
  175.   RegisterChildNode('book', TXMLBookType);
  176.   RegisterChildNode('ebook', TXMLEbookType);
  177.   FBook := CreateCollection(TXMLBookTypeList, IXMLBookType, 'book') as IXMLBookTypeList;
  178.   FEbook := CreateCollection(TXMLEbookTypeList, IXMLEbookType, 'ebook') as IXMLEbookTypeList;
  179.   inherited;
  180. end;
  181. function TXMLBooksType.Get_Text: WideString;
  182. begin
  183.   Result := AttributeNodes['text'].Text;
  184. end;
  185. procedure TXMLBooksType.Set_Text(Value: WideString);
  186. begin
  187.   SetAttribute('text', Value);
  188. end;
  189. function TXMLBooksType.Get_Book: IXMLBookTypeList;
  190. begin
  191.   Result := FBook;
  192. end;
  193. function TXMLBooksType.Get_Ebook: IXMLEbookTypeList;
  194. begin
  195.   Result := FEbook;
  196. end;
  197. { TXMLBookType }
  198. procedure TXMLBookType.AfterConstruction;
  199. begin
  200.   FAuthor := CreateCollection(TXMLString_List, IXMLNode, 'author') as IXMLString_List;
  201.   inherited;
  202. end;
  203. function TXMLBookType.Get_Title: WideString;
  204. begin
  205.   Result := ChildNodes['title'].Text;
  206. end;
  207. procedure TXMLBookType.Set_Title(Value: WideString);
  208. begin
  209.   ChildNodes['title'].NodeValue := Value;
  210. end;
  211. function TXMLBookType.Get_Author: IXMLString_List;
  212. begin
  213.   Result := FAuthor;
  214. end;
  215. { TXMLBookTypeList }
  216. function TXMLBookTypeList.Add: IXMLBookType;
  217. begin
  218.   Result := AddItem(-1) as IXMLBookType;
  219. end;
  220. function TXMLBookTypeList.Insert(const Index: Integer): IXMLBookType;
  221. begin
  222.   Result := AddItem(Index) as IXMLBookType;
  223. end;
  224. function TXMLBookTypeList.Get_Item(Index: Integer): IXMLBookType;
  225. begin
  226.   Result := List[Index] as IXMLBookType;
  227. end;
  228. { TXMLEbookType }
  229. function TXMLEbookType.Get_Title: WideString;
  230. begin
  231.   Result := ChildNodes['title'].Text;
  232. end;
  233. procedure TXMLEbookType.Set_Title(Value: WideString);
  234. begin
  235.   ChildNodes['title'].NodeValue := Value;
  236. end;
  237. function TXMLEbookType.Get_Url: WideString;
  238. begin
  239.   Result := ChildNodes['url'].Text;
  240. end;
  241. procedure TXMLEbookType.Set_Url(Value: WideString);
  242. begin
  243.   ChildNodes['url'].NodeValue := Value;
  244. end;
  245. function TXMLEbookType.Get_Author: WideString;
  246. begin
  247.   Result := ChildNodes['author'].Text;
  248. end;
  249. procedure TXMLEbookType.Set_Author(Value: WideString);
  250. begin
  251.   ChildNodes['author'].NodeValue := Value;
  252. end;
  253. { TXMLEbookTypeList }
  254. function TXMLEbookTypeList.Add: IXMLEbookType;
  255. begin
  256.   Result := AddItem(-1) as IXMLEbookType;
  257. end;
  258. function TXMLEbookTypeList.Insert(const Index: Integer): IXMLEbookType;
  259. begin
  260.   Result := AddItem(Index) as IXMLEbookType;
  261. end;
  262. function TXMLEbookTypeList.Get_Item(Index: Integer): IXMLEbookType;
  263. begin
  264.   Result := List[Index] as IXMLEbookType;
  265. end;
  266. { TXMLString_List }
  267. function TXMLString_List.Add(const Value: WideString): IXMLNode;
  268. begin
  269.   Result := AddItem(-1);
  270.   Result.NodeValue := Value;
  271. end;
  272. function TXMLString_List.Insert(const Index: Integer; const Value: WideString): IXMLNode;
  273. begin
  274.   Result := AddItem(Index);
  275.   Result.NodeValue := Value;
  276. end;
  277. function TXMLString_List.Get_Item(Index: Integer): WideString;
  278. begin
  279.   Result := List[Index].NodeValue;
  280. end;
  281. end.