XSD单个元素没有文字

时间:2014-05-10 19:42:55

标签: xml enums xsd

我是XSD的新手,需要按顺序定义需要不带文字的单个元素(如第一个<value>)的方案。

<enum type="state">
    <value></value>
    <value>state_update</value>
    <value>normal</value>
    <value>defective</value>
    <value>alarm</value>
    <value>unknown</value>
</enum>

1 个答案:

答案 0 :(得分:1)

在XSD中,所有具有相同名称的同级元素必须具有相同的类型,因此您无法为第一个值子元素定义不同的类型(即不同的验证规则)。

唯一可以做到这一点的方法是使用XSD 1.1断言;你可以在枚举元素的定义中说明,例如

<assert test="value[1] = ''/>

<assert test="count(value[.='']) = 1"/>

XSD 1.1目前在Xerces,Saxon和Altova中实施。