Tôi đang cố gắng để tạo ra một lược đồ XML khá đơn giản cho một XML tương tự như sau:XML schema nhập nhằng
<messages>
<item>
<important_tag></important_tag>
</item>
<item>
<important_tag></important_tag>
<tag2></tag2>
</item>
<item>
<tag2></tag2>
<tag3></tag3>
</item>
</messages>
Ý tưởng là <important_tag>
sẽ có một định nghĩa cụ thể và nó có thể hoặc có thể không xuất hiện dưới <item>
. Nó cũng có thể xuất hiện nhiều lần. Ngoài ra, có thể có các thẻ khác trước hoặc sau <important_tag>
mà tôi không thể đặt tên trước.
Tôi muốn đưa ra định nghĩa cụ thể cho <important_tag>
. Ví dụ, xác định các thuộc tính mà nó phải chứa. Ý của tôi là nếu important_tag hiện diện, nó phải phù hợp với định nghĩa của tôi. Bất kỳ thẻ nào khác không phải tuân theo bất kỳ định nghĩa nào.
tôi đã cố gắng sử dụng các sơ đồ sau:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="important_tag" minOccurs="0"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="important_tag">
<xs:complexType>
<xs:simpleContent>
... specific definitions for important_tag ...
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Điều này dẫn đến một lỗi nói rằng schema là mơ hồ.
Các thông báo lỗi chính xác là:
cos-nonambig: '<xs:element ref="important_tag">' makes the content model non-deterministic against '<xs:any>'. Possible causes: name equality, overlapping occurrence or substitution groups.
Tôi đang sử dụng XML Spy Altova của.
Làm cách nào để giải quyết vấn đề này?
Cảm ơn, Dana
Bạn có thể vui lòng đăng thông báo lỗi chính xác mà bạn đang nhận được và những công cụ bạn đã sử dụng không? – Tomalak