我正在尝试使用xsd schema
阻止我的“Shelf”属性中的相同文本值我的xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<BookTree >
<Shelf name="detective" isSport="false">
<BookRef>Night Story</BookRef>
</Shelf>
<Shelf name="sport" isSport="true">
<BookRef>Basketball</BookRef>
<BookRef>FootballAmerican</BookRef>
<BookRef>FootballEurope</BookRef>
</Shelf>
<Book name="Night Story" displayName="Night Story">Very Scary Story at Night</Book>
<Book name="Basketball" displayName="Basketball">My Team</Book>
<Book name="FootballAmerican" displayName="FootballAmerican">My style</Book>
<Book name="FootballEurope" displayName="FootballEurope">Great team</Book>
</BookTree>
我的xsd如下
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<xs:element name="BookTree">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Shelf"/>
<xs:element maxOccurs="unbounded" ref="Book"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Shelf">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="BookRef"/>
</xs:sequence>
<xs:attribute name="isSport" use="required" type="xs:boolean"/>
<xs:attribute name="name" use="required" type="xs:NCName"/>
</xs:complexType>
<xs:unique name="UniqueText">
<xs:selector xpath="BookRef" />
<xs:field xpath="@text" />
</xs:unique>
</xs:element>
<xs:element name="BookRef" type="xs:string"/>
<xs:element name="Book">
<xs:complexType mixed="true">
<xs:attribute name="displayName" use="required"/>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
我试图阻止这样的情况:在同一架子“侦探”的Book属性中同样的文字“夜间非常可怕的故事”,另一个例子在同一个架子上的“FootballEurope”和“FoolballAmerican”中的同一文本“My style”
<Book name="Night Story" displayName="Night Story">Very Scary Story at Night</Book>
<Book name="Day Story" displayName="Night Story">Very Scary Story at Night</Book>
<Book name="Basketball" displayName="Basketball">My Team</Book>
<Book name="FootballAmerican" displayName="FootballAmerican">My style</Book>
<Book name="FootballEurope" displayName="FootballEurope">My style</Book>
感谢您的帮助