重新排列XML模式中的全局元素

时间:2013-07-02 10:00:59

标签: xml schema xsd

我有各种XML模式,其中包含许多全局元素:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="B">
        ...
    </xs:element>
    <xs:element name="C">
        ...
    </xs:element>
    <xs:element name="X">
        ...
    </xs:element>
    <xs:element name="F">
        ...
    </xs:element>
    <xs:element name="A">
        ...
    </xs:element>
</xs:schema>

是否有免费工具可以根据名称按字母顺序对元素进行排序?这样,比较和合并模式会更容易。结果应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="A">
        ...
    </xs:element>
    <xs:element name="B">
        ...
    </xs:element>
    <xs:element name="C">
        ...
    </xs:element>
    <xs:element name="F">
        ...
    </xs:element>
    <xs:element name="X">
        ...
    </xs:element>
</xs:schema>

2 个答案:

答案 0 :(得分:0)

一种简单的方法是编写一个XSLT样式表,对模式文档执行近似标识转换,并对相应的apply-templates进行排序。有许多免费的XSLT实现。

答案 1 :(得分:0)

我想到了另一种做法:

通过DOM导入XML,重新排列根节点下的节点,然后将其写回XML文件。