Delphi XML Bindings对象 - 导出节点

时间:2012-06-25 02:19:43

标签: xml delphi delphi-xe

我有以下场景:使用XML数据绑定,我有一个从模式A创建的对象,以及使用模式B创建的另一个对象。但是,模式B 导入模式A以便定义A类型的子节点。

所以,现在我有:

  • unit1,objectA(来自架构A)
  • unit2,objectB(来自架构B),objectA(来自架构B,导入架构A)

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

这是我的问题:我可以做很多事情,因为这些只是IXMLDocument个对象,但我希望能够从unit1.objectA创建unit2.objectA

我最初的想法是,应该能够从文档中导出节点,并且应该有一个选项可以根据正确的模式使这个导出的节点“kosher”(因此,文档中的类型A的节点) B应该根据模式A进行导出和验证。)我知道这可能是希望得太多,所以我的问题可能会被重新定义:

我如何将节点从IXMLDocument对象导出到新的IXMLDocument对象,同时添加/覆盖命名空间属性(xmlns,{{1 }},xmlns:xsi)在导出的节点/文档中?

1 个答案:

答案 0 :(得分:0)

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