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
    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 : 48
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    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, 17h43
  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, 00h13
  3. [DOM] Problème de validation avec un Schema et javax.xml.validation
    Par Invité dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 29/08/2007, 12h08
  4. Problème de validation avec le clientsocket
    Par stroumfs dans le forum Delphi
    Réponses: 2
    Dernier message: 03/11/2006, 18h41
  5. Réponses: 4
    Dernier message: 25/10/2006, 08h57

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