Как сделать элемент в 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 с элементом описания и без него будут проверяться на XSD.
Ответы
Ответ 1
Попробуйте это
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
если вы хотите использовать 0 или 1 "описание", Or
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
если вы хотите от 0 до бесконечности числа элементов описания.
Ответ 2
Установите атрибут 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>