Dans mon wsdl j'ai un élément:
<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>
Je sais que le vrai nillable autorise les valeurs null. Cela signifie-t-il qu'il peut autoriser une balise vide XML? c'est à dire
<birthDate/>
La définition de nillable="true"
signifie que la balise <birthDate>
peut apparaître comme suit:
<birthDate xsi:nil="true"/>
Cependant, étant donné que vous définissez également minOccurs="0"
, vous pouvez également omettre complètement la balise <birthDate>
du code XML et la valider également avec votre XSD.
Notez que <birthDate/>
ou <birthDate></birthDate>
n'est pas considéré comme nul selon les règles XSD.
Jetez un coup d'œil à ce blog génial post pour en savoir plus.
Ajout de mon point de vue aux réponses ci-dessus, une chose fondamentale que beaucoup de débutants ne connaissent pas ou ne prennent pas en compte est de lier la variable xsi avec l’espace de nom d’instance de schéma.
Exemple: xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" [ajoutez ceci en tant qu'attribut n'importe où dans une balise d'ouverture xml].
Dans ce cas, le préfixe d'attribut "xsi" doit être lié à l'espace de noms XML " http://www.w3.org/2001/XMLSchema-instance ". Cette liaison peut être effectuée dans n'importe quel élément parent ou dans l'élément racine lui-même. Où le faire dépend de l'étendue pour laquelle vous souhaitez que xsi soit disponible.
PS: J'ai réalisé toute l'importance des liaisons d'espace de noms xml et des préfixes, le cas échéant, lorsque j'ai eu du mal à rester au travail pendant 3 heures supplémentaires pour comprendre pourquoi mon nœud xml n'est pas validé par son xsd, même dans le cas d'un attribut illimité en présent dans la définition du schéma.