Wie kann ich einzigartige Elementwerte in einem XML-Schema gewährleisten?
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?
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