[xml] XML 스키마의 요소를 선택적으로 만드는 방법은 무엇입니까?

그래서이 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과없는 XML 모두 XSD에 대해 유효성을 검사합니다.



답변

이 시도

<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으로 설정하려는 경우.


답변

다음 과 같이 스키마에서 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>


답변