【问题标题】:How to create "New" functions using Delphi XSD databinding wizard如何使用 Delphi XSD 数据绑定向导创建“新”函数
【发布时间】:2012-02-06 15:53:54
【问题描述】:

根据Embarcadero's documentation

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

var
  StockList: IXMLStockListType;
begin
  StockList := Newstocklist;     

_di_IStockListType StockList = NewStockListType();

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

那么,是什么触发了这些 New 函数的生成?

【问题讨论】:

    标签: delphi xml-binding


    【解决方案1】:

    如果您的 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 函数。如果您不这样做,您将收到以下警告:

    【讨论】:

    • 哦,所以如果你自己导入 XSD,你永远不会得到 NewXXX 函数?
    • @Peter Turner:更新了我的答案
    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2012-09-22
    • 2013-08-27
    相关资源
    最近更新 更多