[英]XSD making attribute value unique
我想在xml中生成这样的输出
<categories>
<bio></bio>
<math></math>
</categories>
所以我尝试使用元素
<xsd:any>
这可能很好。 但我如何保证个人
<bio>
</bio>
<math>
</math>
是独一无二的
<bio></bio><bio></bio>
不可能
我认为您不能在纯XML Schema 1.0中执行此操作-该语言允许对元素或属性值进行唯一性检查,但不能对其名称进行检查。
但是,您建议的XML结构并不是特别习惯,如果您有多个元素都具有相同的目的(命名一个类别),那么它们应该具有相同的名称。 像这样的结构
<categories>
<category>bio</category>
<category>math</category>
<categories>
会更典型(可能更易于机器处理),允许类别名称不是有效的元素名称(例如,以数字开头或包含空格),并且可以与唯一性约束一起使用:
<xs:element name="categories">
<xs:complexType>
<xs:sequence>
<xs:element name="category" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniqueCats">
<xs:selector xpath="category"/>
<xs:field xpath="."/>
</xs:unique>
</xs:element>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.