可选的AttributeGroup

时间:2011-05-10 14:56:34

标签: xsd

我必须为2个相互包含的数据元素定义属性组。在下面的示例中,如果TO_DT存在,则FROM_DT必须存在且TO_DT不存在,则FROM_DT不存在。

我想把它们创建为强制属性,并将属性组定义为可选,但它不起作用:

<xs:attributeGroup name="DateRangeAttributes" id="Element_Common_545">
  <xs:attribute name="TO_DT" type="xs:date" use="required" id="Element_Common_547"/>
  <xs:attribute name="FROM_DT" type="xs:date" use="required" id="Element_Common_546"/>
<xs:attributeGroup>

任何人都可以建议使用属性处理此方法

2 个答案:

答案 0 :(得分:1)

抱歉,XML Schema(1.0)无法强制执行这种约束。您可以在其他地方强制执行(例如使用代码或XSLT)或更改格式。可能性:

  • 提供默认值,以便两者始终有效。
  • 使用包含长度为2的日期列表的单个属性。
  • 使用元素(您也可以控制顺序,与属性不同)。

答案 1 :(得分:0)

这些约束可以用Schematron和XML Schema 1.1表示。