จะทำให้องค์ประกอบใน XML schema เป็นทางเลือกได้อย่างไร


106

ดังนั้นฉันจึงได้รับสคีมา XML นี้:

<?xml version="1.0"?> <xs:schema version="1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified">
    <xs:element name="request">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="amenity">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="description" type="xs:string" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element> </xs:schema>

ฉันจะทำให้องค์ประกอบคำอธิบายเป็นทางเลือกได้อย่างไร ดังนั้นทั้ง XML ที่มีองค์ประกอบคำอธิบายและไม่มีจะตรวจสอบความถูกต้องกับ XSD


คำตอบ:


191

ลองทำตามนี้

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />

หากคุณต้องการองค์ประกอบ "คำอธิบาย" 0 หรือ 1 รายการหรือ

<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded" />

หากคุณต้องการ 0 ถึงจำนวนอินฟินิตี้ขององค์ประกอบ "description"


6
คุณเอาชนะฉันเพื่อหาคำตอบ แต่นี่คือลิงค์ที่มีประโยชน์: w3.org/TR/xmlschema-0/#OccurrenceConstraints
kdgregory

6
maxOccursดีฟอลต์1ดังนั้นตัวอย่างด้านบนของคุณจึงไม่จำเป็นต้องระบุ
Duncan Jones

1
อันที่จริงทดสอบแล้วและคุณจะต้องระบุ minOccurs = "0" เพื่อทำให้เป็นทางเลือกหากคุณต้องการอนุญาตให้มีค่าสูงสุดหนึ่งองค์ประกอบ
Wouter Schut

maxOccurs เริ่มต้นเป็น 1 - ข้อมูลที่มีประโยชน์มากขอขอบคุณ
thonnor

ขอบคุณ! นี้การเชื่อมโยงมีคนอื่น ๆ ข้อมูล
cavalsilva

20

ตั้งค่าminOccursแอตทริบิวต์0ในสคีมาดังนี้:

<?xml version="1.0"?>
  <xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="request">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="amenity">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="description" type="xs:string" minOccurs="0" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element> </xs:schema>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.