J'ai donc obtenu ce schéma 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>
Comment rendre l'élément de description facultatif? Donc, les deux XML avec l’élément de description et sans valideront contre le XSD.
Essaye ça
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
si vous voulez 0 ou 1 "description" éléments, ou
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
si vous voulez 0 à l'infini nombre d'éléments "description".
Définissez l’attribut minOccurs
sur 0
dans le schéma comme ceci:
<?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>