我想定义一个xml架构,其中元素Connectors具有0-*子元素.序列,关联或消息的任何顺序和0到多次.即
<Connectors>
<Sequence />
<Association />
<Message />
<Sequence />
<Sequence />
<Message />
<Message />
<Association />
</Connectors>
Run Code Online (Sandbox Code Playgroud)
我试图定义以下架构,但似乎订单是固定的.
<xs:element name="Connectors">
<xs:complexType>
<xs:sequence>
<xs:element ref="Association" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Message" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="Sequence" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
Tor*_*son 30
我通过设置选择并设置minOccurs和maxOccurs属性来解决它.
<xs:element name="Connectors">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Association" />
<xs:element ref="Message" />
<xs:element ref="Sequence" />
</xs:choice>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
@Torbjörn自己的答案是比这更清晰,但只有在你原来的尝试的一个小的变化会导致同样的结果:增加maxOccurs="unbounded"了对<xs:sequence>元素.
<xs:element name="Connectors">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element minOccurs="0" name="Association" />
<xs:element minOccurs="0" name="Message" />
<xs:element minOccurs="0" name="Sequence" />
</xs:sequence>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
确保随机顺序,因为每个元素都有minOccurs="0",并且序列可以一遍又一遍地重复.
| 归档时间: |
|
| 查看次数: |
10193 次 |
| 最近记录: |