単純な複数のcomplexTypesをインライン化するのと、それらを個別に定義するための確立された標準はありますか?
詳細: 一部の XML スキーマを定義するときに、1 つの要素に同じ単一の型の複数の子要素を含めたい場合によく遭遇します。たとえば、データベース内のテーブルを記述するスキーマには、fields
1 つ以上のfield
要素を含むことができる要素があります。fields
複数要素の定義内でインラインの complexType を作成することもできます。
<xs:element name="fields" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="field" type="table-field"
minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
fields
または、自明な型を個別に定義して使用することもできます。
<xs:element name="fields" type="table-field-collection" minOccurs="1" maxOccurs="1">
<!-- Elsewhere: -->
<xs:complexType name="table-field-collection">
<xs:sequence>
<xs:element name="field" type="table-field" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
最初のアプローチでは、匿名型を使用したやや乱雑なマークアップが作成されますが、2 番目のアプローチでは、余分な単純な complexTypes が多数作成されます。どのアプローチが好ましいかについてコンセンサスはありますか?