2

经过多年使用默认 msxml 实现后,我正在尝试 OmniXML。我有几个 xml 结构(其中一些非常庞大),我最初使用 Delphi 向导为其创建了一个绑定。然后手动编辑绑定以修复错误和其他错误。

第一个问题:是否有(有点)简单的方法来为 OmniXML 创建这样的绑定?我怀疑不是,但你永远不知道......我开始手动编辑我的结构以尝试使接口和类适合omniXML,但这是相当多(非常乏味)的工作

第二个问题:在一些演示和在线演示中,似乎“数据绑定”(因为需要一个更好的术语)是通过继承 OmniXMLPorperties (TGpXMLxxxx) 中定义的类来完成的。所以我开始玩弄它。至少在我的情况下,以这种方式定义我的数据绑定而不是尝试回收由向导创建的数据绑定是否有优势?

谢谢!

PS:以防万一,我使用的是 Delphi XE2

4

1 回答 1

2

Delphi 的原生 XML 数据绑定不依赖于任何特定的 XML DOM 供应商实现。它基于TXMLDocument相关接口,然后在内部访问特定于供应商的 DOM 接口。

在 Windows 上,MSXML 是使用的默认 DOM 供应商。在 Mac OSX 上,ADOM/OpenXML 是默认使用的 DOM 供应商。但是您可以更改使用的 DOM 供应商。您只需将 DOM 供应商的名称分配给单元DefaultDOMVendor中的全局变量Xml.XmlDom.pas,并确保已通过以下方式注册了相应的 DOM 实现(对于 MSXML 和 ADOM/OpenXML,只需在您的子句RegisterDOMVendor()中添加相应的 DOM 实现单元-对于 MSXML,对于 ADOM/OpenXML - 他们在内部调用)。usesXml.Win.msxmldomXml.adomxmldomRegisterDOMVendor()

因此,在这种情况下,您只需为 OmniXML 找到(或制作)一个 DOM 实现包装器,以便它可以插入TXMLDocument,然后使用 注册RegisterDOMVendor(),并将DefaultDOMVendor变量设置为注册的 DOM 名称。

于 2013-07-26T00:26:44.843 回答