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 :

[XSD] Problème de namespace


Sujet :

Valider XML

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 15
    Points
    15
    Par défaut [XSD] Problème de namespace
    Bonjour,

    je n'arrive pas à 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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <Archive xmlns="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		 xsi:schemaLocation="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1 archives_echanges_v0-1_archivedelivery.xsd">
     
    <Data>
      Salut
    </Data>
     
     
    <!-- Signature -->
     
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference>
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>8yc4zd</DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>gSA6f+AU=</SignatureValue>
    <KeyInfo>
    <KeyName>maClePublique.pem</KeyName>
    </KeyInfo>
    </Signature>
    </Archive>
    avec les fichiers XSD suivants :
    archives_echanges_v0-1_archivedelivery.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="ISO-8859-1"?>
     
    <xsd:schema version="1.0" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
                xmlns="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1" 
                targetNamespace="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1"  
                elementFormDefault="qualified" attributeFormDefault="unqualified">
     
    <xsd:include schemaLocation="archives_echanges_v0-1_archive.xsd"/>
                            <xsd:element name="Archive" type="ArchiveType"/>
     
    </xsd:schema>
    et archives_echanges_v0-1_archive.xsd:

    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <xsd:schema version="1.0" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                xmlns="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1" 
                targetNamespace="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1"  
                elementFormDefault="qualified" attributeFormDefault="unqualified">
     
     
     
    <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
     
            <xsd:complexType name="ArchiveType">
                    <xsd:sequence>
     
                            <xsd:element name="Data" type="xsd:string"/>                        
                            <xsd:element name="Signature" type="ds:SignatureType" minOccurs="0"/>
     
                    </xsd:sequence>
            </xsd:complexType>
     
    </xsd:schema>
    Mon vérificateur XML/XSD me dit ceci : " exemple_delivery_deliberation.xml:13: element Signature: Schemas validity error : Element '{http://www.w3.org/2000/09/xmldsig#}Signature': This element is not expected. Expected is ( {urn:fr:gouv:ae:archive:draft:standard_echange_v0.1}Signature ) ". Je ne comprends pas pourquoi il me dit cela alors que j'ai bien spécifié ds:SignatureType et le ds devrait renvoyer au namespace http://www.w3.org/2000/09/xmldsig#.

    Pour conclure, pour arriver à la validation, je dois modifier les fichiers XSD et non pas le fichier XML car celui-ci est le résultat de la librairie (que je ne peux modifier) XMLSEC.

    merci à ceux qui on prit de leur temps pour me lire.
    Pierre
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    le type de Signature (ses éléments et attributs donc) sont exportés depuis http://www.w3.org/2000/09/xmldsig# mais Signature en lui-même est toujours dans le xmlns urn:fr:gouv:ae:archive:draft:standard_echange_v0.1
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Swoög
    le type de Signature (ses éléments et attributs donc) sont exportés depuis http://www.w3.org/2000/09/xmldsig# mais Signature en lui-même est toujours dans le xmlns urn:fr:gouv:ae:archive:draft:standard_echange_v0.1
    Est ce qu'il y a une solution pour passer Signature dans le xmlns http://www.w3.org/2000/09/xmldsig# ? Une solution autre que de l'encapsuler ?

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Non, cela ouvrirait la porte à une modification des standards érigés par un XSD.

    Le seul moyen (à ma connaissance) d'ajouter un élément à un XSD, c'est de modifier le XSD en question, cependant, il est possible que tu puisses également le faire en utilisant un autre XSD (qui incluerait le premier) et qui définit le même namespace, mais je suis loin d'être sûr que ça fonctionne...

    Sinon, pour ton soucis, normalement, le simple fait de faire ceci :
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <Archive xmlns="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		 xsi:schemaLocation="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1 archives_echanges_v0-1_archivedelivery.xsd">
    
    <Data>
      Salut
    </Data>
    
    
    <!-- Signature -->
    
    <se:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:se="urn:fr:gouv:ae:archive:draft:standard_echange_v0.1">
    <SignedInfo>
    <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
    <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
    <Reference>
    <Transforms>
    <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>8yc4zd</DigestValue>
    </Reference>
    </SignedInfo>
    <SignatureValue>gSA6f+AU=</SignatureValue>
    <KeyInfo>
    <KeyName>maClePublique.pem</KeyName>
    </KeyInfo>
    </se:Signature>
    </Archive>
    devrait le rendre valide (à mon avis)... Ce qui reste une modification bien minime
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2010, 00h54
  2. [XSD] Probléme avec nillable
    Par nebule dans le forum Valider
    Réponses: 11
    Dernier message: 11/02/2009, 17h00
  3. [XSD] Gestion des namespaces et des imports
    Par fedfil dans le forum Valider
    Réponses: 1
    Dernier message: 12/01/2006, 14h54
  4. Réponses: 3
    Dernier message: 08/12/2005, 10h38
  5. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10

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