XML Schema指定"发生指标"(maxOccurrence,minOccurrence).是否应该使用这些指标的元素(xsd:element,xsd:sequence或xsd:all)的"最佳实践"?
例:
或
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="X" type="xsd:token" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
要么
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
<xsd:element name="X" type="xsd:token" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
我想到达:
<XList>
<X>First</X>
<X>Second</X>
<X>Third</X>
<X>Fourth</X>
<X>Fifth</X>
...
</XList>
我发现了自己.
我的例子之间的区别乍一看并不是很明显,但如果这个例子稍微复杂一点就有意义了.
以下扩展阐明了差异:
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="X" type="xsd:token"
minOccurs="1" maxOccurs="1"/>
<xsd:element name="Y" type="xsd:token"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
导致
<XList>
<X>Only X</X>
<Y>Only Y</Y>
</XList>
而
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="X" type="xsd:token"
minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="Y" type="xsd:token"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
导致
<XList>
<X>First X</X>
<X>Second X</X>
<X>Third X</X>
...
<Y>First Y</Y>
<Y>Second Y</Y>
...
</XList>
和
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence minOccurs="1" maxOccurs="unbounded" >
<xsd:element name="X" type="xsd:token"
minOccurs="2" maxOccurs="2"/>
<xsd:element name="Y" type="xsd:token"
minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
导致
<XList>
<X>First X</X>
<X>Second X</X>
<Y>First Y</Y>
<X>Third X</X>
<X>Fourth X</X>
<Y>Second Y</Y>
...
</XList>
和
<xsd:element name="XList">
<xsd:complexType>
<xsd:sequence minOccurs="1" maxOccurs="unbounded" >
<xsd:element name="X" type="xsd:token"
minOccurs="1" maxOccurs="unbounded"/>
<xsd:element name="Y" type="xsd:token"
minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
导致
<XList>
<X>First X</X>
<X>Second X</X>
<X>Third X</X>
...
<Y>First Y</Y>
<Y>Second Y</Y>
...
<X>Fourth X</X>
<X>Fifth X</X>
<X>Sixth X</X>
...
<Y>Third Y</Y>
<Y>Fourth Y</Y>
...
</XList>
| 归档时间: |
|
| 查看次数: |
4213 次 |
| 最近记录: |