我在XSD文件中定义了一个对象子类型:
<xs:complexType name="object">
<xs:sequence>
<xs:element name="state" maxOccurs="unbounded" type="xs:string"/>
</xs:sequence>
</xs:complexType>
如您所见,<state>
标记已配置为可以出现任意次数(从1开始)。所以这就是一个例子,我使用定义的<object>
:
<System>
<object_1>
<state>string_1</state>
<state>string_2</state>
<state>string_3</state>
<object_1>
<object_2>
<state>string_4</state>
<object_2>
...
</System>
但是,有一种特殊情况,我需要使用完全 2 <object_n>
个元素定义对象子类型(<state>
) / tags(不多也不少):
<object_n>
<state>string_n1</state>
<state>string_n2</state>
</object_n>
当我在Schema文件中声明它时,有没有办法扩展/修改/限制这种类型,这样很明显它必须只包含两个子元素?
<xs:element type="object">
<xs:somewayToLimitChildren/>
实际上,对象子类型更具有comlpex,因此需要使其成为子类型。
答案 0 :(得分:0)
您需要使用xs:restriction
创建新类型:
<xs:complexType name="newObject">
<xs:complexContent>
<xs:restriction base="object">
<xs:sequence>
<xs:element name="state" minOccurs="2" maxOccurs="2" type="xs:string"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>