XSD的默认值

时间:2011-02-22 19:14:43

标签: xml schema xsd

This question这里询问XSD文件中指定的默认值。基本上你可以说字段“foo”默认值为“bar”

我想知道的...是否可以将字段默认值作为另一个字段中的值?如果字段“foo”是“bar”并且“otherfoo”为空,我可以说它的默认值是“foo”中的值......类似于以下内容:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="button" type="button"/>
  <xs:complexType name="button">
    <xs:attribute name="id" type="xs:string"/>
    <xs:attribute name="label1" type="xs:string" default="Go"/>
    <xs:attribute name="label2" type="xs:string" default=label1/>
  </xs:complexType>
</xs:schema>

<button id="1"/>

Label1默认为“Go”... Label2默认为Label1中的值。

目标是删除冗余,例如:

<Field Name="State" DataSourceField="State" />

1 个答案:

答案 0 :(得分:3)

不幸的是,这是不可能的,实际上XML Schema很少或根本不支持跨元素依赖(包括验证)。