Que signifie l'erreur W3C XML Schema "violate Unique Particle Attribution rule"?
LAMY Olivier.
lundi 16 septembre 2002
A la validation de mon fragment XML par un schéma W3C XML Schema, j'obtiens l'erreur "violate Unique Particle Attribution rule", que cela signifie-t-il ?
Les spécifications W3C XML Schema (vo, vf) ont repris une particularité de la spécification XML (vo, vf) dénommée " modèle de contenu non déterministe " et rebaptisée " règle d'attribution de la particule unique " (vo, vf). Il s'agit en fait d'une partie de la spécification qui indique qu'un parseur doit être capable de déterminer si un document XML est valide uniquement à partir de l'endroit de l'arbre où il se trouve sans avoir à faire de saut en avant.
Exemple:
<xs:element name="OTA_HotelResRQ">
<xs:complexType>
<xs:sequence>
<xs:choice>
<xs:sequence>
<xs:element name="UniqueId" type="UniqueIdType" maxOccurs="2"/>
<xs:element name="HotelReservations"
type="HotelReservationsType"minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="UniqueId"
type="UniqueIdType" minOccurs="0"maxOccurs="2"/>
<xs:element name="HotelReservations" type="HotelReservationsType"/>
</xs:sequence>
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
Dans le fragment, ci-dessus, le parseur lorsqu'il se trouve dans un document ne comportant pas d'éléments UniqueId, ne pourra déterminer la validité ou l'invalidité du document que s'il constate que l'élément HotelReservations est présent une et une seule fois (2èmecas de la branche). En effet, s'il ne rencontre pas l'élément HotelReservations alors le fragment sera invalide (1er cas de la branche).
Cette particularité a été créée dans le but d'accélérer les traitements de validation par un parseur en ôtant les possibilités de branche de modèles multiples. Un parseur doit avoir à tout moment un et un seul modèle de validation possible.
RelaxMeter traque les ambiguïtésW3C XML Schema, pour le meilleur ou pour le pire?Michel Da Silva: "[xml-tech] XML SCHEMA"Eric van der Vlist: "[xml-tech] Re: XML SCHEMA"
Copyright 2002,
LAMY Olivier.
|