コンピュータゲームのマップデータ用に、次の一連の XSD スキームを構築しようとしています。
- CreatureDefinitionsSchema.xsd
- CreatureSchema.xsd
- ゴールリスト.xsd
- LightScheme.xsd
- RoomScheme.xsd
- SeatScheme.xsd
- TrapScheme.xsd
中心となるのは MapDefinitionSchema.xsd スキーマで、他のスキーマを参照する必要があります。私はそのような例に出くわしたことはありませんが、一般的なアイデアは補完的なセットを作成することです
- CreatureDefinitionsSchema.xml
- CreatureSchema.xml
- ゴールリスト.xml
- LightScheme.xml
- RoomScheme.xml
- SeatScheme.xml
- TrapScheme.xml
xsd:import を使用して MapDefinition.xml で使用します。私が望むのは、MapDefinition.xml を MapDefinitionScheme.xsd に対して検証し、他の xml ファイルを対応する *.xsd に対して検証できるようにすることです。
ただし、他の xsd から xs:import タイプを管理していることがわかります (必要なものではありません)。私が欲しいのはもっと似ています:
<xs:element name="GameMap">
<xs:complexType>
<xs:sequence>
<xs:element name="MapSizeX"> </xs:element >
<xs:element name="MapSizeY"> </xs:element >
<xs:include xmlns:xi="http://www.w3.org/2001/XInclude" href="SeatScheme.xsd" />
</xs:sequence>
</xs:complexType>
、しかし、私は得る
エンジン名: Xerces 重大度: エラー 説明: s4s-elt-must-match.1: 'sequence' の内容は一致する必要があります (注釈?, (要素 | グループ | 選択 | シーケンス | 任意)*)。include から始まる問題が見つかりました。開始場所: 9:18 終了場所: 9:28 <<
これらの要素をランダムに含めることはできないようです。
私の SeatScheme.xsd :
<xs:element name="SeatList" type="Seat"/> <xs:complexType name="Seat"> <xs:sequence> <xs:element name="color" type="xs:string"/> <xs:element name="faction" type="xs:string"/> <xs:element name="startingX" type="xs:integer"/> <xs:element name="startingY" type="xs:integer"/> <xs:element name="colorR" type="xs:decimal"/> <xs:element name="colorG" type="xs:decimal"/> <xs:element name="colorB" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:schema>
型ではなく要素で操作することは可能ですか?