如何处理元素的属性? 例如,当验证具有值时,则应要求有效属性。 如果标记像第二个数据点一样为空,则它应该是可选的。
如何在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>
答案 0 :(得分:1)
在XSD 1.0中,无法使元素内容的规则完全取决于其属性的值。
在XSD 1.1中,这可以通过断言(一种非常通用的机制)来实现,也可以通过更具体的条件类型归因机制(即类型替代)来实现。
使用断言,您的规则将是
<xs:assert test="if (. != '') then exists(@valid) else true()"/>