在使用默认msxml实现多年之后,我正在试用OmniXML。我有几个xml结构(其中一些非常庞大),最初我使用Delphi向导创建了一个绑定。然后对绑定进行手动编辑,以修复错误和不正确的地方。
第一个问题:是否有一种(有点)简单的方法为OmniXML创建这样的绑定?我怀疑不是,但你永远不会知道..。我开始手工编辑我的结构,试图使接口和类适合于omniXML,但这是相当多(非常乏味)的工作。
第二个问题:在一些演示和在线演示中,“数据绑定”(由于缺少更好的术语)似乎是通过继承OmniXMLPorperties (TGpXMLxxxx)中定义的类来完成的。所以我开始玩这个。至少在我的情况下,用这种方式定义数据绑定有什么好处,而不是试图回收向导创建的数据绑定呢?
谢谢!
PS:万一有关系,我用的是德尔菲XE2
发布于 2013-07-26 00:26:44
Delphi的原生XML数据绑定不与任何特定的XML供应商实现相关联。它基于TXMLDocument和相关接口,然后在内部访问特定于供应商的DOM接口.
在Windows上,MSXML是默认使用的DOM供应商。在Mac上,ADOM/OpenXML是使用的默认DOM供应商。但是您可以更改使用哪个DOM供应商。您只需将DOM供应商的名称分配给Xml.XmlDom.pas单元中的全局Xml.XmlDom.pas变量,并确保已经通过RegisterDOMVendor()注册了相应的DOM实现(对于MSXML和ADOM/OpenXML,只需在uses子句中添加相应的DOM实现单元( Xml.Win.msxmldom for MSXML,Xml.adomxmldom for ADOM/OpenXML ),因为它们内部称为RegisterDOMVendor() )。
因此,在本例中,您可以简单地为OmniXML查找(或制作) DOM实现包装器,以便它可以插入TXMLDocument,然后向RegisterDOMVendor()注册它,并将DefaultDOMVendor变量设置为已注册的DOM名称。
https://stackoverflow.com/questions/17869174
复制相似问题