xml - Delphi XE 中的数据绑定(bind)向导 - 可以将其配置为映射到 MSXML 接口(interface)吗?

标签 xml delphi data-binding delphi-xe msxml

Delphi XE 中的数据绑定(bind)向导生成继承自 Delphi 自己的 DOM 实现(ADOM XML v4)的类和接口(interface),它似乎不支持针对模式的验证 - “解析时验证”选项仅适用于MSXML 供应商类型——从 VCL 源代码以及 IDE 中 XMLDocument 组件的行为可以看出。所有验证支持似乎都基于 MSXML 实现,如果您需要模式验证,这会使向导变得无用。我在这里错过了什么吗?

有没有办法配置绑定(bind)向导(或一些底层实用程序)以生成基于支持验证的 MSXML 的类和接口(interface)?

或者 是否有调用/接口(interface)支持使用 Delphi 的 ADOM XML 实现进行模式验证,我还没有遇到过?

MNG

最佳答案

XML 数据绑定(bind)向导生成的代码取决于单位 XMLDocXMLIntf (文档引用是 TXMLDocumentIXMLDocument)。

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

如果在激活 TXMLDocument 实例时未指定 DOMVendor(它不是因为 XML 数据绑定(bind)向导生成 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';

关于xml - Delphi XE 中的数据绑定(bind)向导 - 可以将其配置为映射到 MSXML 接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5775102/

相关文章:

xml - 使用 XSL 将区域设置转换为语言/国家/地区

c# - 在 C# 中将 Excel 转换为 XML

delphi组件在运行时动画显示/隐藏控件

data-binding - Kotlin 2路绑定(bind)自定义 View

c# - 如何为数据绑定(bind)组合框预定义组合框项?

C# - 从 XML 文档中的特定标记获取值

c# - 为什么 XmlTypeAttribute.Namespace 不为根元素设置命名空间?

c# - 实体模型会在其数据更改时触发事件吗?

Delphi指针算术

delphi - 如何创建带有下拉菜单的按钮?