繁体   English   中英

XSD使属性值唯一

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM