我正在转换一个 XML 文件,该文件需要根据 XSD 中定义的有效枚举选项生成一些元素。
假设我有一个 XSD,它声明了一个类型和一个元素,如下所示:
<xs:simpleType name="optionType" nillable="true">
<xs:restriction base="xs:string">
<xs:maxLength value="50"/>
<xs:enumeration value="USERCHOICE">
</xs:enumeration>
<xs:enumeration value="DEFAULT">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
...
<xs:element name="chosenOption" type='optionType'/>
...
<xs:element name="availableOption" type='optionType'/>
输入将仅包含所选选项,因此您可以想象它看起来像这样:
<options>
<chosenOption>USERCHOICE</chosenOption>
</options>
我需要一个如下所示的输出:
<options>
<chosenOption>USERCHOICE</chosenOption> <!-- This comes from incoming XML -->
<!-- This must be a list of ALL possible values for this element, as defined in XSD -->
<availableOptions>
<availableOption>USERCHOICE</availableOption>
<availableOption>DEFAULT</availableOption>
</availableOptions>
</options>
有没有办法让 XSL从 XSD 中提取枚举值USERCHOICE
并在输出中生成它们?DEFAULT
这将在 WebSphere 6 上运行,并将由 XSLT 1.0 引擎使用。:(
(模式文件不会经常更改,但它会不时更改,我宁愿只需要更新模式文件而不是更新模式文件和 XSLT)