كيف يمكنني ضمان قيم العناصر الفريدة في مخطط XML؟

StackOverflow https://stackoverflow.com/questions/2386633

  •  24-09-2019
  •  | 
  •  

سؤال

أريد التأكد من عدم وجود عناوين كتب مكررة في 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>

أنا أستخدم المخطط التالي:

<?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 أن هذا صحيح عندما أقوم بالتحقق.

هل يمكن لأي شخص أن يرى ما أفعله خطأ؟

هل كانت مفيدة؟

المحلول

يبدو أن المخطط على ما يرام ويجب أن يكتشف المكررة. قد يكون خطأ في الأكسجين؟

يمكنك تجربة هذا الموقع للتحقق من صحة XML: http://www.xmlvalidation.com

وسترى أنه يجد أخطاء في XMLDOCUMINE:

القيمة الفريدة المكررة [Book1] المعلنة لقيد هوية "كتب" العنصر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top