xsd-如何处理属性

时间:2018-06-22 21:39:19

标签: xml xsd

如何处理元素的属性? 例如,当验证具有值时,则应要求有效属性。 如果标记像第二个数据点一样为空,则它应该是可选的。

如何在xsd中实现?

示例

        <dataPoint type="DatapointCurrent">
            <description>Measured current</description>
            <dataType>Float</dataType>
            <validatio valid="LOW">1</validation>
            <validationRange min="-3.0" max="5.0"/>
        </dataPoint>
        <dataPoint type="DatapointVoltage">
            <description>Measured voltage</description>
            <dataType>Float</dataType>
            <validation/>
            <validationRange/>
        </dataPoint>    

1 个答案:

答案 0 :(得分:1)

在XSD 1.0中,无法使元素内容的规则完全取决于其属性的值。

在XSD 1.1中,这可以通过断言(一种非常通用的机制)来实现,也可以通过更具体的条件类型归因机制(即类型替代)来实现。

使用断言,您的规则将是

<xs:assert test="if (. != '') then exists(@valid) else true()"/>