From: LAMY Olivier (LAMY_Olivier@accor-hotels.com)
Date: 13/09/2002 - 09:55
Bonjour,
Je souhaiterais dans un schéma XML faire des définitions "dynamiques" par
rapport au résultat d'une expression Xpath.
Je m'explique par l'exemple (ne pas tenir compte de la validité des
fragments ci-dessous, ils ont été réduits pour simplifier la lecture) :
J'ai un élément HotelResRQ qui a un attribut ResStatus de type
TransactionActionType
<xs:simpleType name="TransactionActionType">
<xs:restriction base="xs:string">
<xs:enumeration value="Initiate"/>
<xs:enumeration value="Ignore"/>
<xs:enumeration value="Modify"/>
<xs:enumeration value="Commit"/>
</xs:restriction>
</xs:simpleType>
Mon élément HotelResRQ est défini ainsi :
<xs:element name="HotelResRQ">
<xs:complexType>
<xs:attribute name="ResStatus" ref="TransactionActionType"/>
<xs:sequence>
<xs:element name="UniqueId" type="UniqueIdType" minOccurs="0"/>
<xs:element name="HotelReservations" type="HotelReservationsType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Or fonctionnellement, j'ai le problème que suivant la valeur de mon attribut
ResStatus, j'ai un nombre d'occurence des enfants différents :
- Initiate : pas d'élément UniqueId, HotelReservations obligatoires
- Ignore : élément UniqueId obligatoire pas de HotelReservations
- Modify : élément UniqueId obligatoire, HotelReservations obligatoire
- Commit : élément UniqueId obligatoire
Et j'aimerais que ces contraintes puissent être définies dans mon schéma et
ainsi être vérifiées à la validation de mon document par mon parseur cela
dans le but d'éviter d'éviter des contrôles "hard" (création d'un DOM pour
vérifier ou création de Handler Sax)
Si je pouvais faire quelque du genre :
<xs:element name="HotelResRQ">
<xs:complexType>
<xs:attribute name="ResStatus" ref="TransactionActionType"/>
<xsl:choose>
<xsl:when test="@ResStatus='Initiate '">
<xs:sequence>
<xs:element name="HotelReservations"
type="HotelReservationsType" maxOccurs="unbounded"/>
</xs:sequence>
</xsl:when>
etc .....
</xsl:choose>
</xs:complexType>
</xs:element>
ou alors pourquoi pas une solution avec des expressions régulières.
Merci d'avance pour tout aide,
Olivier
PS : j'ai acheté un superbe livre sur les schémas :-)) et je n'ai pas trouvé
de réponse dedans.
**********************************************************************
Ce message électronique et tous les fichiers joints ainsi que les
informations contenues dans ce message (ci après "le message"), sont
confidentiels et destinés exclusivement à l'usage de la personne à laquelle
ils sont adressés. Si vous avez reçu ce message par erreur, merci de le
renvoyer à son émetteur et de le détruire. Toute diffusion, publication,
totale ou partielle ou divulgation sous quelque forme que ce soit non
expressément autorisées de ce message, sont interdites.
**********************************************************************
This e-mail, any attachments and the information contained (herein " the
message") are confidential and intended solely for the use of the
addressee(s) if you have received this message in error please send it back
to the sender and delete it. Unauthorized publication, use, dissemination or
disclosure, either whole or partial, of this message is strictly
prohibited.
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|