强制或可选字段的XSD架构

时间:2015-02-16 10:19:59

标签: xsd xsd-validation

如果xsd中的元素定义如下:

<element name="test" minOccurs="0" maxOccurs="1" type="string" />

这是否意味着: 1.标签可以完全删除XML,但仍然没有任何验证错误 要么 2.标签可以为空/空白,没有任何值

这是定义强制/可选元素的最佳方法/实践。

由于 WN

1 个答案:

答案 0 :(得分:1)

两个

可以省略元素test

元素test可能只出现一次任何字符串内容,包括空字符串:

<test/>

最佳做法?取决于你想表达的内容。

minOccurs="0"与结构有关。

如果您想在数据级别表达约束,您可以执行以下操作:

<xs:element name="test" minOccurs="0" type="tns:nonEmptyString"/>

<xs:simpleType name="nonEmptyString">
  <xs:restriction base="xs:string">
    <xs:minLength value="1" />
  </xs:restriction>
</xs:simpleType>

因此,请考虑您的约束是关于结构(是否存在的项目)或数据(可能是项目是否为空值)并相应地应用。也有nillables但我甚至不会开始他们。