1

根据Embarcadero 的文档

当您想在应用程序中创建所有数据时,调用生成的 New... 函数为空文档创建 TXMLDocument 实例:

var
  StockList: IXMLStockListType;
begin
  StockList := Newstocklist;     

_di_IStockListType StockList = NewStockListType();

但是,在为 Clinical Document Architecture导入 XSD 时,Delphi 生成的 26833 行代码中没有任何 New... 函数。

那么,是什么触发了这些新功能的产生呢?

4

1 回答 1

3

如果您的 XSD 文档在根级别包含多个 xs:element(或 simpletype、complextype、...)节点,则向导无法确定您的 xml 文档的根级别元素最终是什么。在这种情况下,您必须自己编写 Newxxx 语句:

var yourType : IXMLYourType;
...
yourType := NewXMLDocument.GetDocBinding(
              '<root level yourtype tagname>', 
              TXMLYourType, 
              '') as IXMLYourType;

尝试导入一个符合xsd的xml文档,会看到生成了newxxx函数。

更新

截屏

如果您检查要用作根元素的类型的 documentElementType,则会创建 new、load 和 get 函数。如果您不这样做,您将收到以下警告:

警告

于 2012-02-06T16:59:33.787 回答