Если у вас есть только цифры для вашего идентификатора, вы не можете использовать xs: id.
Тогда вот пример схемы:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="root" type="rootType">
<xs:key name="attritemIdentifier">
<xs:selector xpath="item"/>
<xs:field xpath="@XYZ"/>
</xs:key>
</xs:element>
<xs:complexType name="rootType">
<xs:sequence>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="XYZ" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
А вот действительный экземпляр:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item XYZ="12345">item0</item>
<item XYZ="XYZ1">item1</item>
<item XYZ="XYZ2">item2</item>
<item XYZ="XYZ3">item3</item>
<item XYZ="XYZ4">item4</item>
<item XYZ="XYZ5">item5</item>
<item XYZ="XYZ9">item6</item>
<item XYZ="XYZ7">item7</item>
</root>
Как только вам придётся присвоить XYZ то же значение, вы получите следующую ошибку:
cvc-identity-constraint.4.2.2: объявлено повторяющееся значение ключа [XYZ9]
для ограничения идентичности "attritemIdentifier" элемента "root"