XML スキーマに苦労していて、画面をじっと見ていてもうまくいきません。スキーマを作成しようとしている XML は次のようになります。
<root>
<command>FOO|BAR|BLOOP</command>
<parameters>
<param1>val</param1>
<param2>val</param2>
</parameters>
<root>
コマンド値が FOO、BAR、BLOOP のいずれであるかに応じて、parameters-tag に異なるパラメーターのセットを含める必要があり、空の場合があります。特定のコマンドに表示する必要があるパラメーターのセットが定義されており、一部のコマンド名には同じパラメーターのセットがあります。
私がやっていることは、すべてのコマンドのタイプを作成することです.1つはFOO用、1つはBAR用、もう1つはBLOOP用であり、それらのタイプにそれらが使用するパラメーターを入れることができます。
ただし、次のようなことをすると:
<xs:element name="root">
<xs:complexType>
<xs:element name="myCommand" type="myCommandType"/>
</xs:complexType>
</xs:element>
これにより、実際にはルート要素間の部分をそのコマンドが必要とするもので埋めたいだけの場合に、すべてのコマンドタイプの名前を持つ特別な要素が作成されます。
これについて最善の方法についての手がかりはありますか?
コマンドごとにスキーマを作成した方がよいでしょうか、それともすべてを同じスキーマに入れることができますか?