如果我有一个xml文档,例如:
<colors>
<color1>1452</color1>
<color2></color2>
<color3></color3>
</colors>
我想在XML模式中定义,color1元素必须包含int类型的值,非null和非空。所以上面的例子是有效的,但如果color1像color2和color3那样是空的,那么它就会失败。我已经四处搜索,但似乎无法找到一种干净的方法来要求元素填充值。我错过了一些非常明显的东西吗?
答案 0 :(得分:1)
您需要在架构中定义元素的类型,如下所示:
<xs:element name="color" type="xs:integer"/>
要约束元素的长度,请使用xs:restriction
,如下所示。
<xs:element name="color">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
请注意,我使用了一个字符串来表示类型。在手边,我不确定你是否可以使用minLength
整数,但你可以使用xs:pattern
的正则表达式。
答案 1 :(得分:0)
以下是进行类型检查的方法:
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
因此,在您的情况下,您需要type="xs:integer"
您可以实际执行的不同限制非常广泛,例如正则表达式以及最小和最大整数值。更多信息here。
编辑:而here是您可能想要指定的不同数字类型的更多信息,而不仅仅是整数。
答案 2 :(得分:0)
对于属性,架构应具有:
<... use="required" type="..."/>
元素的:
<xs:element minOccurs="1"/>