Frage

Ich möchte sicherstellen, dass es keine doppelten Buchtitel in der folgenden xml:

<?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 bin mit dem folgenden Schema:

<?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 diese gültig ist, wenn ich zu validieren.

Kann jemand sehen, was ich falsch mache?

War es hilfreich?

Lösung

das Schema scheint in Ordnung und sollte das Duplikat erkennen. kann einen Fehler in Sauerstoff 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:

  

Duplizieren eindeutiger Wert [Book1]   Identitäts Einschränkung erklärt wurde   Element "Bücher"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top