xml - 如何使属性在 xml 模式中唯一?

标签 xml xsd

我想让元素的属性像主键一样唯一。怎么做到的?

最佳答案

像这样的东西应该可以工作:

<xs:element name="books" maxOccurs="unbounded">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="book" maxOccurs="unbounded">
            <xs:complexType>
               <xs:attribute name="isbn" type="xs:string"/>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
   </xs:complexType>
   <xs:unique name="unique-isbn">
      <xs:selector xpath="book"/>
      <xs:field xpath="@isbn"/>
   </xs:unique>
</xs:element>

基本上,您可以使用 <xs:unique> 定义“唯一性”约束元素并定义此唯一性应适用于哪些 XPath。

参见 W3Schools 的 entry on <xs:unique> 了解更多信息。

关于xml - 如何使属性在 xml 模式中唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3387133/

相关文章:

c# - 如何使用XmlReader以int形式获取属性值?

c# - .NET XmlSerializer(反)使用架构编译器 xsd.exe 和错误的命名空间绑定(bind)从不同的命名空间序列化派生类型

xml - xml中的 'base'属性是什么?

java - : ${somevalue} 这是什么意思

xml - 验证时的 DTD 信息和相关错误(XSD 模式)——它们可以被忽略吗?

xml - XSD 任意元素任意顺序任意次数

wcf - Schema First WCF 开发

javascript - 如何解析位于不同 Web 服务器上的 XML 文件?

xml - 如何解码 Go xml?

java - 使用 hibernate 将 XML 保存到 mysql