From: DELGRANCHE David (ddelgranche@sogitec.fr)
Date: 06/11/2001 - 10:12
Salut,
A mon avis, la cause de ton soucis est ton fichier XML. En
fait ton noeud Root est ta déclaration de namespace. Pour la validation, ce
noeud n'est pas considéé comme la racine et donc le noeud racine est pour
lui: <bp> qui a un autre noeud au même niveau: <b> d'où deux racines!
Essayes juste ca:
<?xml version="1.0"?>
<a xmlns="x-schema:evenement">
<e>
<bp>1111111</bp>
<nom>nom station 1111111</nom>
<b>
<nb>1112</nb>
<np>1113</np>
<tp>1114</tp>
</b>
</e>
</a>
Ca devrait aller mieux....
David.
> -----Message d'origine-----
> De: Stéphanie LOPERA [SMTP:stephanie.lopera@lafon.fr]
> Date: mardi 6 novembre 2001 11.06
> À: XMLfr.org
> Objet: [xml-tech] validation d'un XML avec schéma XSD
>
> Je souhaite valider un fichier xml à partir de son schéma xsd.
> Pour cela, j'utilise un Window Script File (objet éxecutant du code) qui
> est le suivant :
>
> <package>
> <job id="validation">
> <script>
> //fichier XML
> var fichier_xml = WScript.Arguments(0);
> var xmldoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
> xmldoc.async = false ;
> xmldoc.validateOnParse = false ;
>
> //fichier XSD
> var fichierXsd =
> "C:\\mesDocuments\\maquette\\traitement_fichier_CSV\\validationXML\\E.xsd"
> ;
>
> var schema = new ActiveXObject("Msxml2.XMLSchemaCache.4.0");
> oSchema = schema.add("x-schema:evenement",fichierXsd);
>
> //association du schema xsd au fichier xml
> xmldoc.schemas = oSchema;
> // le document se charge seulement si le schema associe est
> valide
> xmldoc.load(fichier_xml);
>
> ok = xmldoc.validate();
> if (ok.errorCode==0) {
> WScript.echo("Fichier bien forme");
> } else {
> WScript.echo("Raison de l'erreur : " + ok.reason);
> }
> </script>
> </job>
> </package>
>
> 1. Je crée un objet qui va ouvrir mon document XML
> 2. J'ouvre mon fichier XSD
> 3. J'associe mon schéma à l'objet XML
> 4. Je lis mon fichier XML
> 5. Je vérifie si le fichier est bien formé (il l'est j'en suis sûre mais
> je vous met ci-après le XML et le XSD)
>
> Quand j'éxecute le tout, le résultat est :
> "Raison de l'erreur : Validate failed because the document does not
> contain exactly one root node"
>
> ... ??
> Si vous connaissez une autre technique pour associer une schéma ou alors
> que vous avez une suggestion, je suis ouverte à tout.
> Merci de vos réponses.
>
> Stéphanie
>
> Mon XML :
> <?xml version="1.0"?>
> <e xmlns="x-schema:evenement">
> <bp>1111111</bp>
> <nom>nom station 1111111</nom>
> <b>
> <nb>1112</nb>
> <np>1113</np>
> <tp>1114</tp>
> </b>
> </e>
>
> Mon XSD :
> <?xml version="1.0" encoding="UTF-8"?>
>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified">
> <xs:include schemaLocation="TYPES.xsd"/>
> <xs:element name="e">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="bp"/>
> <xs:element ref="nom" minOccurs="0"/>
> <xs:element ref="b" minOccurs="0" maxOccurs="2"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="bp" type="wherecode"/>
> <xs:element name="nom" type="xs:string"/>
> <xs:element name="b">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="nb"/>
> <xs:element ref="np"/>
> <xs:element ref="tp"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> <xs:element name="nb" type="no_borne"/>
> <xs:element name="np" type="no_portique"/>
> <xs:element name="tp" type="pilote_portique"/>
> </xs:schema>
>
>
> --
> 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)<< Fichier:
> ATT00029.txt>>
-- Attached file included as plaintext by Listar --
--------------Interscan------------- (on the network)
email-body was scanned and no virus found
------------------------------Traite par ISVW---------------
--
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
|