IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

Problème de validation avec namespace


Sujet :

Valider XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2011
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de validation avec namespace
    Bonjour,
    J'essaye de valider le fichier xml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <xml>
    <sioc:Forum xmlns:dcterms="http://purl.org/dc/terms/"
    xsi:schemaLocation="confirmation.xsd"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:sioc_t="http://rdfs.org/sioc/types#"
    xmlns:sioc="http://rdfs.org/sioc/ns#"
    xmlns="http://www.w3schools.com">
       <dc:title> title </dc:title>
       <dcterms:created> date </dcterms:created>
       <dcterms:description> text </dcterms:description>
       <sioc:Post>
          <sioc:id>9</sioc:id>
          <sioc:creator_of>user_id</sioc:creator_of>
          <sioc:content>contenu du message</sioc:content>
          <marks>
             <number_of_marks>1</number_of_marks>
             <average>2.5</average>
          </marks>
       </sioc:Post>
       <sioc:Post>
          <sioc:id>10</sioc:id>
          <sioc:creator_of>user_id</sioc:creator_of>
          <sioc:content>contenu du message</sioc:content>
          <marks>
             <number_of_marks>2</number_of_marks>
             <average>1.5</average>
          </marks>
       </sioc:Post>
    </sioc:Forum>
    </xml>
    avec le xml schema suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema  xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:dcterms="http://purl.org/dc/terms/"
    xmlns:sioc_t="http://rdfs.org/sioc/types#"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:sioc="http://rdfs.org/sioc/ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <xs:element ref='sioc:Forum'/>
    <xs:complexType name="ForumType">
       <xs:sequence>
          <xs:element  minOccurs="0" maxOccurs="1" ref="dcterms:title" />
          <xs:element ref="dcterms:created"  minOccurs="0" maxOccurs="1"/> 
          <xs:element minOccurs="0" maxOccurs="1" ref="dcterms:description" />
       </xs:sequence>
    </xs:complexType>
    <xs:complexType name='PostType'> 
       <xs:sequence>
          <xs:element ref="sioc:id"  minOccurs="1" maxOccurs="1"/>
          <xs:element ref="sioc:creator_of" minOccurs="1" maxOccurs="1"/>
          <xs:element  minOccurs="1" maxOccurs="1" ref="sioc:content"  />
          <xs:element name="marks" type="MarkType" minOccurs="0" maxOccurs="1"/>
       </xs:sequence>
    </xs:complexType>
       <xs:complexType name="MarkType">
          <xs:sequence>
             <xs:element name="number_of_marks" type="xs:integer" minOccurs="0" maxOccurs="1"/>
             <xs:element name="average" type="xs:float" minOccurs="0" maxOccurs="1"/> 
          </xs:sequence>
       </xs:complexType>
    </xs:schema>
    Seulement j'ai du mal à bien cerner la notion de namespace(du moins j'ai du mal à la mettre en place), du coup j'ai vraiment du mal définir les bons namespaces.
    Je me retrouve avec des erreurs de ce type : The target namespace must not match 'http://www.w3.org/2001/XMLSchema-instance'
    ou sinon mes éléments dans le xsd ne "match" pas avec ceux du xml.
    Me manque-t'il quelque chose dans mes déclarations? ou bien je dois revoir tout mon fichier?

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Quand tu faire un xml schema sur un xml avec namespace le souci est qu'il faut une feuille xml schema par ensemble de balise appartenant à un namespace

    l'exemple que donne après n'est pas optimal mais je n'en ai pas d'autre sous la main

    Soit le xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <x:a xmlns:x="test" xmlns:e="test1">
    	<b>
    		<e:c>a</e:c>
    	</b>
    <e:d>autre</e:d>
    </x:a>


    fichier nsbis.xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:e="test1" targetNamespace="test" elementFormDefault="qualified">
    	<xs:import schemaLocation="nsbis1.xsd"/>
    	<xs:import namespace="test1" schemaLocation="nsbis2.xsd"/>
    	<xs:element name="a">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element ref="b"/>
    				<xs:element ref="e:d"/>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>
    fichier nsbis1.xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:e="test1" elementFormDefault="qualified">
    	<xs:import namespace="test1" schemaLocation="nsbis2.xsd"/>
    	<xs:element name="b">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element ref="e:c"/>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>
    fichier nsbis2.xsd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="test1" elementFormDefault="qualified">
    	<xs:element name="c" type="xs:string"/>
    	<xs:element name="d" type="xs:string"/>
    </xs:schema>

Discussions similaires

  1. problème de validation avec DispachAction
    Par khayri dans le forum Struts 1
    Réponses: 26
    Dernier message: 18/01/2008, 18h43
  2. [XHTML] Problème de validation avec javascript
    Par HwRZxLc4 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 16/12/2007, 01h13
  3. [DOM] Problème de validation avec un Schema et javax.xml.validation
    Par 84mickael dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 29/08/2007, 13h08
  4. Problème de validation avec le clientsocket
    Par stroumfs dans le forum Delphi
    Réponses: 2
    Dernier message: 03/11/2006, 19h41
  5. Réponses: 4
    Dernier message: 25/10/2006, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo