XSD のネストに問題があります。同じHEADerを持つ文書構造を持つMAINファイルがあり(私はそれを分けておきたい-うまく機能します)、その内容に応じていくつかの本文が必要です。私の質問は、適切な方法で接続する方法ですか?
メイン.XSD:
<xs:schema id="MAIN" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="">
<xs:include schemaLocation="HEAD.xsd"/>
<xs:element name="MAIN">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="HEAD" type="HEADType"/>
<xs:element name="BODY" type="BODYType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
HEAD.XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="HEAD" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="" >
<xs:complexType name="HEADType">
<xs:all minOccurs="1" maxOccurs="1">
<xs:element name="USER">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z_]+"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:schema>
私が持っているアイデアは次のとおりです。
- MAINTYPE の型として MAIN.xsd の「MAIN」要素を作成し、BODYType を定義した BODY_CUSTOMER に MAIN.XSD をインクルードします。
- MAIN.xsd と BODY_CUSTOMER.xsd を別々に読み込むと、BODYType の定義が見つかります。
しかし、それが「適切な」方法だとは思いません。