我在尝试为此复杂类型添加minLength
和maxLength
限制时遇到问题。这是我的原始代码:
<xs:element minOccurs="0" name="Division">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ID">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="wd:type" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="wd:Descriptor" use="optional" />
</xs:complexType>
</xs:element>
我想添加此限制,但我不知道该怎么做。
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="100"/>
</xs:restriction>
我知道如何为简单类型执行此操作,但在复杂类型中我不知道如何执行此操作。有人可以帮忙吗?
答案 0 :(得分:1)
您需要定义并命名xs:simpleType
并将其扩展到xs:complexType
。
这是一个完整的,有效的示例(悬挂xs:attribute/@ref
次出现被临时xs:attribute/@names
替换,所以示例可以独立存在):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xs:element name="Division">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ID">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="IDType">
<xs:attribute name="attr1" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="attr2" use="optional" />
</xs:complexType>
</xs:element>
<xs:simpleType name="IDType">
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>