xsd:key
File: Data.xml <?xml version="1.0"?> <Party xmlns="http://www.java2s.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.java2s.com Schema.xsd"> <names> <Name><First>Peter</First><Last>Brown</Last></Name> <Name><First>Peter</First><Last>Costello</Last></Name> </names> </Party> File: Schema.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.java2s.com" xmlns="http://www.java2s.com" xmlns:reunion="http://www.java2s.com" elementFormDefault="qualified"> <xsd:element name="Party"> <xsd:complexType> <xsd:sequence> <xsd:element name="names"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:element name="First" type="xsd:string"/> <xsd:element name="Last" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:key name="PK"> <xsd:selector xpath="reunion:names/reunion:Name"/> <xsd:field xpath="reunion:First"/> <xsd:field xpath="reunion:Last"/> </xsd:key> </xsd:element> </xsd:schema>