Tôi chỉ có một sự hiểu biết cơ bản về Lược đồ XML. Đây là cơ bản tương tác đầu tiên của tôi với họ trong bất kỳ cách nghiêm túc và tôi đang gặp một số vấn đề. Tôi đã đọc lên trên XSD trên google và tất cả mọi thứ trông lên và lên với tập tin này.Có điều gì đó hoàn toàn sai với Lược đồ XML này không?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="credits">
<xs:complexType>
<xs:sequence>
<xs:element ref="property" maxOccurs="16" minOccurs="13" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property" type="xs:string">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="name" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="item" type="xs:string"/>
<xs:attribute name="name" type="xs:string">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="example1"/>
<xs:enumeration value="example2"/>
<xs:enumeration value="example3"/>
<xs:enumeration value="example4"/>
<xs:enumeration value="example5"/>
<xs:enumeration value="example6"/>
<xs:enumeration value="example7"/>
<xs:enumeration value="example8"/>
<xs:enumeration value="example9"/>
<xs:enumeration value="example10"/>
<xs:enumeration value="example11"/>
<xs:enumeration value="example12"/>
<xs:enumeration value="example13"/>
<xs:enumeration value="example14"/>
<xs:enumeration value="example15"/>
<xs:enumeration value="example16"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
Đây là cách tôi đang tải nó:
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schemaXSD = schemaFactory.newSchema(new File ("test.xsd"));
tôi nhận được một ngoại lệ như sau:
org.xml.sax.SAXParseException: src-element.3: Element 'property' có cả thuộc tính 'type' và anna 'anony loại trẻ em '. Chỉ một trong số chúng được phép cho một phần tử.
Cảm ơn sự giúp đỡ SO! Bất kỳ lời khuyên chung về đọc/sử dụng lược đồ được tạo ra bởi những người khác cũng được đánh giá cao! : D
Có một số IDE có thể phát hiện loại lỗi này tại thời điểm xuất bản (nghĩa là trước khi bạn gửi XSD vào mã của riêng bạn). [eclipse J2E] (http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr1) chẳng hạn sẽ hiển thị các dấu nhỏ màu đỏ ở lề phải với cùng các thông báo lỗi mà bạn trích dẫn)). –