是否有任何內聯的複數complexTypes的確定標準與單獨定義它們?是否優先爲多個單數元素定義一個單獨的複數complexType
詳細說明:當定義一些XML模式時,我經常遇到這樣的情況,我希望一個元素包含同一單一類型的多個子元素。例如,描述數據庫中的表格的模式具有fields
元素,其可以包含一個或多個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>
第一種方法產生了稍微更凌亂的標記與匿名類型,而第二個創建大量額外的trivial complexTypes。關於哪種方法更受歡迎有共識嗎?