From: Gilles Vandelle (gvandelle@workspeed.com)
Date: 30/04/2002 - 16:04
Dans ce cas précis, bien que cela ne réponde pas exactement à la question
posée, que proposerais une valeur "France" par défaut pour le pays.
Je suis français et je vis en Californie, je ne vois pas pourquoi vous
voulez contraindre le pays et la nationnalité.
En général l'analyse de langage distingue trois phases:
- lexicographique: qui est résolue par la notation d'XML
- syntaxique: qui fait l'object d'une DTD ou d'un schemas
- sémantique qui demande l'utilisation d'un langage plus proche d'un
langage de programmation classique.
Dans de nombreux cas la sématique nécessite de faire appel à un référentiel
comme une base de données. Un language tel que Java est souvent adapté à
ce type de validation.
En expèrant que ce commentaire sera utile,
cordialement
Gilles
-----Original Message-----
From: xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]On
Behalf Of Pascal EMMA
Sent: Tuesday, April 30, 2002 6:04 AM
To: xml-tech@xmlfr.org
Subject: [xml-tech] Schéma conditionnel
Bonjour,
Bonjour, j’aurais voulu savoir comment je pourrais valider le fichier
XML suivant :
<?xml version="1.0"?>
<element_racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="F:\Untitled11.xsd">
<personne nationalite="française">
<nom>FRAGIL</nom>
<prenom>Antoine</prenom>
<adresse>10 rue des Anges</adresse>
<code_postal>77200</code_postal>
<ville>Torcy</ville>
</personne>
<personne nationalite="autre">
<nom>FARUGGI</nom>
<prenom>Marco</prenom>
<adresse>Via G.B. Vico, 33</adresse>
<code_postal>00144</code_postal>
<ville>Roma</ville>
<pays>Italia</pays>
</personne>
<personne nationalite="française">
<nom>LEGER</nom>
<prenom>Bruno</prenom>
<adresse>22 rue des Poissonniers</adresse>
<code_postal>75000</code_postal>
<ville>Paris</ville>
</personne>
</element_racine>
De sorte à placer un élément ‘pays’ que si la nationalité de la
‘personne’ est ‘autre’.
J’avais pensé à une schéma de ce type, mais je n’arrive pas à le
terminer :
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<!--Types complexes pour les adresses-->
<xsd:complexType name="type_personne" block="restriction">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="prenom" type="xsd:string"/>
<xsd:element name="adresse" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="type_francaise">
<xsd:complexContent>
<xsd:extension base="type_personne">
<xsd:sequence>
<xsd:element name="code_postal"
type="xsd:positiveInteger"/>
<xsd:element name="ville"
type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="nationalite"
type="xsd:string" use="required" default="française"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="type_autre">
<xsd:complexContent>
<xsd:extension base="type_personne">
<xsd:sequence>
<xsd:element name="code_postal"
type="xsd:positiveInteger"/>
<xsd:element name="ville"
type="xsd:string"/>
<xsd:element name="pays"
type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="nationalite"
type="xsd:string" use="required" default="autre"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="element_racine">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="personne"
type="type_personne" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Je vous remercie pour votre aide…
Cordialement…
--
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)
--
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
|