我正在阅读有关w3cschools(http://www.w3schools.com/schema/schema_complex.asp)的教程,但他们似乎没有提及如何在复杂类型上添加限制。
比如我有这个架构。
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
现在我想确保名字长度不超过10个字符。我该怎么做?
我试图为firstname添加简单类型,但它说我不能这样做,因为我使用的是复杂类型。
那么我如何在文件中加上这样的限制,以便我给模式的人不要尝试将名字设为100个字符。
答案 0 :(得分:5)
XSD可以有一些限制:
假设您想要firstName不超过10个字符。你将使用类似的东西:
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
对于更复杂的约束,我猜你必须做一些基于代码的检查。
答案 1 :(得分:3)
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
这解决了你的问题吗?