【发布时间】:2014-10-07 19:04:00
【问题描述】:
有谁知道,如何转换 xsd 字符串包含对没有 'ref' 属性的字符串的引用?
例如我有架构:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pref="http://someaddr.com" elementFormDefault="qualified" targetNamespace="http://otheraddr.com">
<xs:element name="rootElem">
<xs:complexType>
<xs:sequence>
<xs:element ref="pref:elem1"/>
<xs:element ref="pref:elem2"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="elem1" type="xs:string"/>
<xs:element name="elem2" type="xs:string"/>
</xs:schema>
我想将其转换为:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pref="http://someaddr.com" elementFormDefault="qualified" targetNamespace="http://otheraddr.com">
<xs:element name="rootElem">
<xs:complexType>
<xs:sequence>
<xs:element name="elem1" type="xs:string"/>
<xs:element name="elem2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我正在寻找一些功能,例如 xerces 库,但我找不到任何东西。我自己用 Java 编写也有很多困难。
【问题讨论】:
-
是否要将所有对全局元素的引用更改为局部元素声明?或者只有那些全局元素是
xsd:string类型的? (无论如何,我认为一个简单的 XSLT 样式表将是最简单的方法。) -
我想去掉全局文档中的所有 'ref' 属性,并替换包含 'ref' 属性的节点,适当的节点,这些都是用这个参考解决的