2010-09-29 28 views
5

Tôi đang cố thiết kế lược đồ XSD cho phép các phần tử theo thứ tự ngẫu nhiên và có maxOccurs = "không bị chặn".Giản đồ XSD cho phép thứ tự ngẫu nhiên

XML của tôi:

<root> 
    <key></key> 
    <group></group> 
    <group> 
    <key></key> 
    <key></key> 
    <group> 
     <key></key> 
     <key></key> 
    </group> 
    </group> 
    <key></key> 
    <key></key> 
    <group> 
    <key></key> 
    <key></key> 
    <key></key> 
    </group> 
    <key></key> 
</root> 
+1

Bạn có thể cho chúng tôi biết những gì bạn đã quản lý cho đến nay không? Bạn đang nói về yếu tố nào? Tôi đoán rằng mô hình của bạn cho phép các phần tử 'nhóm' chứa cả các phần tử' key' và 'nhóm' và bạn muốn' root' có cùng một mô hình. Có đúng không? –

+0

vâng, đó là những gì tôi muốn. – magol

Trả lời

5

Bạn muốn <xs:choice>:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:complexType name="groupType"> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="group" type="groupType"/> 
     <xs:element name="key"/> 
     </xs:choice> 
    </xs:complexType> 

    <xs:element name="root" type="groupType" /> 
</xs:schema> 

tôi nhận này bằng cách dán XML mẫu của bạn vào trình soạn thảo Oxygen XML, và sử dụng "Tools> Tạo/Chuyển đổi Schema", với input = tài liệu XML mẫu của bạn. (Nó có thể sử dụng Trang dưới bìa ... Tôi không chắc chắn.) Sau đó, tôi tinh chỉnh kết quả.

Các vấn đề liên quan