我想做一些完全简单明了的事情,但我在互联网上找不到任何关于它的例子。我发现的所有例子总是涉及一个属性。
我想创建一个这样的元素:
我有以下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>
如何为每个属性添加不同的限制?
答案 0 :(得分:1)
是的,你当然可以拥有不同限制的属性,例如:
<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>