J'utilise xsd:all
dans un type complexe. Lorsque je manque des éléments obligatoires lors de la validation, tous les éléments sont affichés. Il n'affichera pas l'élément manquant exact.
Mais si je suis en utilisant xsd:sequence
je peux obtenir l’élément manquant exact.
Y a-t-il une différence entre ces deux?
xsd:sequence
: L'élément XML doit être dans le même ordre.
Mais xsd:all
: L'élément XML peut être un ordre quelconque.
<xsd:all>
spécifie que les éléments enfants peuvent apparaître dans n'importe quel ordre.
<xsd:sequence>
spécifie que les éléments enfants ne peuvent apparaître que dans l'ordre mentionné.
Exemple de séquence:
<xs:element name="compElement">
<xs:complexType>
<xs:sequence>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Si vous créez un fichier XML à partir de ce xsd, il ressemblera à ceci:
<compElement>
<ele1>First</ele1>
<ele2>Second</ele2>
<ele3>Third</ele3>
<ele4>Fourth</ele4>
</compElement>
Exemple pour tous:
<xs:element name="compElement">
<xs:complexType>
<xs:all>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
Si vous créez un fichier XML à partir de ce xsd, il pourrait ressembler à ceci:
<compElement>
<ele2>Second</ele2>
<ele1>First</ele1>
<ele4>Fourth</ele4>
<ele3>Third</ele3>
</compElement>
Plus d'infos sur xsd: all
Plus d'infos on xsd: sequence
J'espère avoir répondu à votre question.
Différence:
Tous les indicateurs
L'indicateur
<all>
spécifie que les éléments enfants peuvent apparaître dans n'importe quel ordre et que chaque élément enfant ne doit apparaître qu'une seule fois:
Indicateur de séquence
L'indicateur
<sequence>
spécifie que les éléments enfants doivent apparaître dans un ordre spécifique:
Le schéma définit simplement ce qui constitue un document conforme.
La manière dont la non-conformité est signalée dépend entièrement du validateur. Rien n'empêche un validateur de signaler exactement les champs manquants, mais apparemment celui que vous utilisez ne le fait pas dans ce cas.
Que ce soit un bug ou de par sa conception, vous devrez en discuter avec le fournisseur du validateur.
lorsque nous utilisons under, cela indique que tous les éléments déclarés dans complexType DOIVENT apparaître dans le même ordre dans le document XML. sinon, vous obtiendrez une erreur. car il n'est pas nécessaire de spécifier les éléments dans le bon ordre.