2012-06-25 35 views
2

我有以下场景:使用XML数据绑定,我有一个从架构A创建的对象,以及使用架构B创建的另一个对象。但是,架构B 依次导入架构A定义A类型的子节点。Delphi XML Bindings对象 - 导出节点

所以,现在我有:

  • 1单元,objectA(从架构A)
  • UNIT2,objectB(从模式B),objectA(从进口模式的架构B)

unit2.objectA类当然与unit1.objectA不兼容。 unit2中的定义也不同,因为它不包含一些名称空间属性(这很重要:我认为这些是隐含的,因为父节点也有它们。)

这是我的问题:我可以做很多的东西,因为这些只是IXMLDocument对象,但我想能够从unit2.objectA创建unit1.objectA

我最初的想法是应该能够从文档中导出节点,并且应该有一个选项可以根据正确的模式使此导出节点“kosher”(因此,类型A的节点位于文档B应该导出并根据模式验证A.),我明白,这可能是希望太多了,所以我的问题可以被改述:

我怎样才能IXMLDocument对象导出一个节点到一个新的IXMLDocument对象,同时在导出的节点/文档中添加/覆盖命名空间属性(xmlns,xmlns:xsi,xsi:schemaLocation)?

回答

0

原来是一个非常棘手的问题。主张使用XML库中的低级别DOM功能和大量的手肘润滑脂;必须导出想要的片段,并手动调整模式和名称空间,然后重新格式化所有内容。