я хочу сделать атрибут элемента, чтобы быть уникальным как первичный ключ. как сделать его?
Что-то вроде этого должно сработать:
<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>
В принципе, вы можете определить ограничение "уникальности" с помощью элемента
и определить, к какому XPath эта уникальность должна применяться.
См. статью W3Schools о
для получения дополнительной информации.