添加对不同类型属性的限制
Add restrictions on attributes of different type
我想做一些非常简单明了的事情,但我在互联网上找不到任何关于它的例子。我找到的所有示例总是涉及一个属性。
我想创建这样的元素:
我有以下 XSD,但我收到一条错误消息,指出限制元素放错了位置或出现得太频繁:
<xs:element name="blabla">
<xs:complexType>
<xs:sequence>
<xs:element name="Images" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="image" type="imageType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="imageType">
<xs:sequence>
<xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="id" type="xs:integer" use="required" />
</xs:restriction>
<xs:restriction base="xs:string">
<xs:attribute name="src" type="xs:anyURI" use="required" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
如何为每个属性添加不同的限制?
是的,你当然可以有不同限制的属性,例如:
<xs:complexType name="imageType">
<xs:sequence>
<xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="src" use="required">
<xs:simpleType>
<xs:restriction base="xs:anyURI">
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
我想做一些非常简单明了的事情,但我在互联网上找不到任何关于它的例子。我找到的所有示例总是涉及一个属性。
我想创建这样的元素:
我有以下 XSD,但我收到一条错误消息,指出限制元素放错了位置或出现得太频繁:
<xs:element name="blabla">
<xs:complexType>
<xs:sequence>
<xs:element name="Images" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="image" type="imageType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="imageType">
<xs:sequence>
<xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:integer">
<xs:attribute name="id" type="xs:integer" use="required" />
</xs:restriction>
<xs:restriction base="xs:string">
<xs:attribute name="src" type="xs:anyURI" use="required" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
如何为每个属性添加不同的限制?
是的,你当然可以有不同限制的属性,例如:
<xs:complexType name="imageType">
<xs:sequence>
<xs:element name="Image" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="0"/>
<xs:maxExclusive value="100"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="src" use="required">
<xs:simpleType>
<xs:restriction base="xs:anyURI">
<xs:maxLength value="200"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>