Ответ 1
Что-то вроде этого должно работать:
<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 на <xs:unique>
.