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.
因此,您应该检查DefaultDOMVendor和DOMVendors列表的值.
如果您可以使用上述值编辑问题,这肯定会有所帮助,并且可重现的案例显示您如何观察MSXML DOM的使用情况.
编辑:
您可以在加载XML根节点之前运行时使用特定的XML DOM供应商,或者创建一个新的XML根节点,如下所示:
DefaultDOMVendor = 'MSXML';