Delphi XE中的数据绑定向导 – 是否可以配置为映射到MSXML接口?

Delphi XE中的数据绑定向导生成继承自Delphi自己的DOM实现(ADOM
XML v4)的类和接口,它似乎不支持对模式的验证 – ‘验证解析’选项仅适用于MSXML供应商type – 从VCL源代码以及IDE中的XMLDocument组件的行为可以看出.所有验证支持似乎都基于MSXML实现,如果您需要模式验证,这会使向导无效.我在这里错过了什么吗?有没有办法配置绑定向导(或一些底层实用程序)来生成基于MSXML的类和接口,它支持验证?或者是否有使用Delphi实现的ADOM XML支持模式验证的调用/接口,我还没有遇到过?

MNG

最佳答案 XML数据绑定向导生成的代码取决于单元
XMLDoc
XMLIntf(文档引用是
TXMLDocument
IXMLDocument).

IXMLDocument由TXMLDocument实现,TXMLDocument是Delphi支持的XML DOM的通用包装器. TXmlDocument使用的DOM取决于DOMVendor property的值.

如果在激活TXMLDocument实例时未指定DOMVendor(它不是XML数据绑定向导生成DOM中性代码),则使用的实际XML DOM取决于XMLDOM unit的这两个成员:

var
  DefaultDOMVendor: string;
  DOMVendors: TDOMVendorList;

在您的情况下,似乎MSXML DOM是默认的XML DOM,或者是唯一可用的XML DOM.

因此,您应该检查DefaultDOMVendorDOMVendors列表的值.

如果您可以使用上述值编辑问题,这肯定会有所帮助,并且可重现的案例显示您如何观察MSXML DOM的使用情况.

编辑:

您可以在加载XML根节点之前运行时使用特定的XML DOM供应商,或者创建一个新的XML根节点,如下所示:

DefaultDOMVendor = 'MSXML';
点赞