XSD で定義された有効な列挙オプションに基づいていくつかの要素を生成する必要がある XML ファイルを変換しています。
次のような型と要素を宣言する 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 で列挙値USERCHOICE
をDEFAULT
XSD から抽出し、出力で生成する方法はありますか?
これは WebSphere 6 で実行され、XSLT 1.0 エンジンで使用されます。:(
(スキーマ ファイルは頻繁に変更されるわけではありませんが、時々変更されるため、スキーマ ファイルと XSLT を更新するのではなく、スキーマ ファイルを更新するだけで済みます)