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

Format d'échange (XML, JSON...) Java Discussion :

Xerces et validation XSD


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut Xerces et validation XSD
    Bonjour,

    je n'arrive pas comprendre certaines propriétés de Xerces:
    http://xml.org/sax/features/namespaces
    http://xml.org/sax/features/namespace-prefixes

    J'ai un schéma xsd et une instance xml :

    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://www.example.org/xml-xsd-ns-prefixes" 
      xmlns="http://www.example.org/xml-xsd-ns-prefixes"
      elementFormDefault="qualified">
     
      <xsd:element name="message" type="xsd:string"/>
      <xsd:element name="messages">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element ref="message" maxOccurs="3"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>  
     
    </xsd:schema>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <my:messages xmlns:my="http://www.example.org/xml-xsd-ns-prefixes"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.example.org/xml-xsd-ns-prefixes 
        xml-xsd-ns-prefixes.xsd">
      <my:message>Hello From XSLT</my:message>
      <my:message>From input: Hi</my:message>
      <my:message>ANT AND XSLT ROCK</my:message>
    </my:messages>
    Pour valider mon xml à l'aide mon schéma, j'ai défini les propriétés :
    http://xml.org/sax/features/validation : true
    http://apache.org/xml/features/validation/schema : true

    Puis, j'ai fais deux petits tests :
    http://xml.org/sax/features/namespaces : true
    http://xml.org/sax/features/namespace-prefixes : false
    La validation passe.

    L'autre test :
    http://xml.org/sax/features/namespaces : false
    http://xml.org/sax/features/namespace-prefixes : true
    Xerves me retourne : cvc-elt.1: Cannot find the declaration of element 'my:messages'.

    Et je ne comprends pas pourquoi !!! Alors si vous avez une idée ...

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Mettre http://xml.org/sax/features/namespaces à false signifie essentiellement "Faire comme si on n'avait jamais inventé la notion de namespaces dans XML".
    Autrement dit les namespaces c'est un truc qui n'existe pas, et le : dans une balise <my:message> ne veut rien dire de particulier. La balise s'appelle <my:message> et c'est tout. On pourrait tout aussi bien avoir <my:funny::message> ça ne poserait pas de problème.

    Or, XML Schema utilise énormément les namespaces. Donc, si on ne les gère pas, la validation XML Schema a très peu de chances de marcher, et suivant la manière dont c'est fait, ne marchera juste jamais pour rien.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Ok, ok.

    Et finalement, j'ai pu trouvé de la documentation qui explique le fonctionne exacte.
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Xerces][C++][DTD][XSD] Validation d'un fichier XML
    Par xxiemeciel dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 04/08/2010, 20h10
  2. Xerces C++ : validation et DTD
    Par Patriarch24 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 09/08/2007, 18h15
  3. [Word 2003] validation xsd
    Par mariemor64 dans le forum Valider
    Réponses: 4
    Dernier message: 29/06/2006, 17h14
  4. [XSLT] Xml validé XSD puis transformé via XSLT
    Par cash3000 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 16/06/2006, 12h09

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