我需要为场景开发一个xsd。其中我有2个类型的Server1和Server2类型。 Server1和Server2可能有任意数量的出现,但至少有一个出现是Server1或Server2必需的。
<element name="Server1">
<complexType>
<sequence>
<element name="hostName" type="string"/>
<element name="portNumber" type="integer"/>
<element name="userName" type="string"/>
</sequence>
</complexType>
</element>
<element name="Server2">
<complexType>
<sequence>
<element name="hostName" type="string"/>
<element name="portNumber" type="integer"/>
</sequence>
</complexType>
</element>
由于 拉维
答案 0 :(得分:3)
您可以将 choice 架构元素包装到 maxOccurs 属性设置为无界。
样品:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<element name="root">
<complexType>
<choice maxOccurs="unbounded">
<element name="Server1">
<complexType>
<sequence>
<element name="hostName" type="string"/>
<element name="portNumber" type="integer"/>
<element name="userName" type="string"/>
</sequence>
</complexType>
</element>
<element name="Server2">
<complexType>
<sequence>
<element name="hostName" type="string"/>
<element name="portNumber" type="integer"/>
</sequence>
</complexType>
</element>
</choice>
</complexType>
</element>
</schema>
答案 1 :(得分:0)
我不确定这是最好的可能性,但有一种可能性是Server1
和Server2
只是类型名称,然后创建一个{{1}联合的元素1}}和Server1
。
Server2