2010-03-05 9 views
18

Ich möchte sicherstellen, dass es keine doppelten Buchtitel in der folgenden XML sind:Wie stelle ich eindeutige Elementwerte in einem XML-Schema sicher?

<?xml version="1.0" encoding="UTF-8"?> 
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="books3.xsd"> 
    <book> 
     <title>Book1</title> 
    </book> 
    <book> 
     <title>Book2</title> 
    </book> 
    <book> 
     <title>Book1</title> <!-- duplicate should not be allowed --> 
    </book> 
</books> 

ich folgendes Schema verwende:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="books"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element maxOccurs="unbounded" ref="book"/> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:unique name="testUnique"> 
     <xs:selector xpath="book"/> 
     <xs:field xpath="title"/> 
    </xs:unique> 
    </xs:element> 
    <xs:element name="book"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="title"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="title" type="xs:NCName"/> 
</xs:schema> 

oXygen XML-Editor sagt mir, dies gilt, wenn ich zu validieren .

Kann jemand sehen, was ich falsch mache?

Antwort

11

das Schema scheint in Ordnung und sollte das Duplikat erkennen. kann ein Fehler in Oxygen sein?

können Sie diese Website versuchen, Ihre xml zu überprüfen: http://www.xmlvalidation.com

und Sie werden sehen, es Fehler in der XmlDocument findet:

Doppelte eindeutigen Wert [Book1] Identitätszwang erklärt Element "Bücher"

+0

Prost. Egal, wie oft ich in Oxygen revalidiert habe, es würde den Fehler nicht anzeigen. Aber wenn ich Oxygen neu starte, löst es den obigen Validierungsfehler aus. –

Verwandte Themen