【发布时间】:2021-08-05 23:43:46
【问题描述】:
我有 2 个 xsd 文件(A.xsd 和 B.xsd)。 A.xsd 包含 100 个元素,B.xsd 包含 20 个元素。 B.xsd 中的 20 个元素也包含在 A.xsd 中。
另外,我有一个 xml 文件,其架构对应于 A.xsd。
我想将 xml 中的 100 个元素映射到一个新的 xml 文件,其架构遵循 B.xsd。
在python中有没有简单的方法来处理这个问题?非常感谢!
A.xsd 示例
<xs:element name="name" type="xs:string"/>
<xs:element name="address1" type="xs:string"/>
<xs:element name="address2" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
B.xsd 示例
<xs:element name="name" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
xml 示例
<name>UNIONTOWN, PA</name>
<address1>testtesttest</address1>
<address2>testtesttest Commons</address2>
<city>Uniontown</city>
第二个 xml 示例(最终需要)
<name>UNIONTOWN, PA</name>
<city>Uniontown</city>
【问题讨论】:
-
您的问题暗示
B.xsd是A.xsd的子集。仅使用 XML 文件的一部分 XSD 是不可能成功验证 XML 文件的。 -
但可以肯定的是,minimal reproducible example 是必需的。这应该很容易,因为您的 XSD 似乎很小。所以
A.xsd、B.xsd和一个示例 XML 文件将需要给你一个很好的答案。