tôi có mã XSD sau:Xác thực XML với XSD: làm thế nào để tránh quan tâm đến chuỗi các yếu tố?
<xsd:complexType name="questions">
<xsd:sequence>
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
Vấn đề ở đây là: các yếu tố vị trí, multipleChoiceInput, vv phải xuất hiện theo thứ tự chúng được khai báo. Tôi không muốn điều này xảy ra, tôi muốn điều đó, trong quá trình xác nhận, trình tự không nên có liên quan. Làm thế nào tôi có thể đạt được điều này?
Một khả năng tôi đã cố gắng đã được:
<xsd:complexType name="questions">
<xsd:choice maxOccurs="unbounded">
<xsd:element name="location" type="location"/>
<xsd:element name="multipleChoiceInput" type="multipleChoiceInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="textInput" type="textInput" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="pictureInput" type="pictureInput" minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:complexType>
Trong ví dụ này, trình tự thực sự không quan trọng nữa, và tôi có thể có rất nhiều yếu tố như tôi muốn (những gì "tất cả" sẽ không cho phép tôi phải làm). Nhưng tôi vẫn có vấn đề với min- và maxOccurs. Trong ví dụ này, tôi có thể có nhiều "pictureInput" nhất có thể, những hạn chế mà tôi muốn có là 0 hoặc 1.
Cảm ơn bạn rất nhiều vì đã trợ giúp!
Cám ơn trả lời Yok, nhưng "tất cả" không thể được sử dụng trong trường hợp của tôi, nguyên nhân "tất cả" yêu cầu phần tử chỉ xuất hiện ONCE (min- và maxOccurs chỉ có thể chấp nhận các giá trị 0 và 1). – jcborges
Sau đó, có thể '' là bạn của bạn. –
Tomalak
Ya trong trường hợp này cần sử dụng bất kỳ. Cũng sẽ cập nhật câu trả lời. – YoK