在我的XSD元素中,我必须将"fieldA或fieldB字段之一强制为".
So far i have this:
<xsd:complexType name="Test">
<xsd:sequence>
<xsd:element name="fieldA" maxOccurs="1" minOccurs="0"/>
<xsd:element name="fieldB" maxOccurs="1" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
如何设置这两个字段的基数,以便一个是强制性的?
非常感谢您的时间和精力!
使用<xsd:choice>而不是<xsd:sequence>删除minOccurs="0"
示例代码,只需要其中一个字段
<xsd:complexType name="Test">
<xsd:choice>
<xsd:element name="fieldA"/>
<xsd:element name="fieldB"/>
</xsd:choice>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
如果你想需要有<fieldA>或<fieldB>或两种元素可以以任意顺序,然后用这个
<xsd:complexType name="Test">
<xsd:choice>
<xsd:sequence>
<xsd:element name="fieldA"/>
<xsd:element name="fieldB" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:element name="fieldB"/>
<xsd:element name="fieldA" minOccurs="0"/>
</xsd:sequence>
</xsd:choice>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
如果你想需要有<fieldA>或<fieldB>或两种元素和维护秩序(<fieldA>前<fieldB>),那么你就可以简化结构有点.
<xsd:complexType name="Test">
<xsd:choice>
<xsd:sequence>
<xsd:element name="fieldA"/>
<xsd:element name="fieldB" minOccurs="0"/>
</xsd:sequence>
<xsd:element name="fieldB"/>
</xsd:choice>
</xsd:complexType>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2627 次 |
| 最近记录: |