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

XML/XSL et SOAP Discussion :

Problème recuperation des données


Sujet :

XML/XSL et SOAP

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 39
    Par défaut Problème recuperation des données
    Bonjour;
    je doit récupérer des données depuis un fichier XML. Le problème est que dans une balise il y a l'attribut xsi:schemaLocation. Mon XML est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <catalogueItem creationDateTime="2006-01-10T12:00:01.000-05:00" documentStatus="ORIGINAL" xsi:schemaLocation="urn:ean.ucc:2 ../Schemas/CatalogueProxy.xsd">
    <catalogueReference>
    		<Reference>2</Reference>
    </catalogueReference>
    </catalogueItem>
    Eclipse me retourne l'erreur suivante :
    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
     
    [Fatal Error] :1:184: The prefix "xsi" for attribute "xsi:schemaLocation" associated with an element type "catalogueItem" is not bound.
    org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:schemaLocation" associated with an element type "catalogueItem" is not bound.
    	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    	at com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:291)
    	at Sessai.evaluerSAX(Sessai.java:42)
    	at Sessai.main(Sessai.java:69)
    --------------- linked to ------------------
    javax.xml.xpath.XPathExpressionException
    	at com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:294)
    	at Sessai.evaluerSAX(Sessai.java:42)
    	at Sessai.main(Sessai.java:69)
    Caused by: org.xml.sax.SAXParseException: The prefix "xsi" for attribute "xsi:schemaLocation" associated with an element type "catalogueItem" is not bound.
    	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
    	at com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:291)
    	... 2 more
    voici ma classe java:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    import org.w3c.dom.*; 
    import org.xml.sax.*;
    import javax.xml.*; 
    import javax.xml.parsers.*; 
    import javax.xml.transform.*; 
    import javax.xml.transform.dom.*; 
    import javax.xml.transform.sax.*; 
    import javax.xml.xpath.*; 
    import javax.xml.namespace.*; 
    import java.io.*;
     
    public class ssessai{
     
     
    	public static String evaluerSAX(File fichier, String expression, QName retour) throws FileNotFoundException, XPathExpressionException{
     
    			//création de la source
    			InputSource source = new InputSource(new FileInputStream(fichier));
     
    			//création du XPath 
    			XPathFactory fabrique = XPathFactory.newInstance();
    			XPath xpath = fabrique.newXPath();
     
    			//évaluation de l'expression XPath
    			XPathExpression exp = xpath.compile(expression);
    			Object resultat = exp.evaluate(source,retour);
     
     
    			String value = resultat.toString();
     
    			return (value);
     
     
    	}
    	public static void main(String[] args){
     
    		try{
    			File xml = new File("templates/CatalogueItem.xml");
    			String ddd = evaluerSAX(xml, "/catalogueItem/catalogueReference/Reference", XPathConstants.STRING);
    			System.out.println(ddd);
    		}catch(Exception e){
    			e.printStackTrace();	
    		}
    	}	
    }
    Quand j'élimine j'arrive à récupérer la référence.Mais j'ai besoin de cet attribut.
    Voila si vous pouvez m'aider.
    Merci.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Ton Xml semble faux car ne contenant pas la définition du préfixe "xsi". C'est ce qu'indique cette exception.

    Pour le corriger il suffit d'ajouter dans l'élément racine comme attribut (du point du vu syntaxique) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

Discussions similaires

  1. recuperer des données calculé
    Par mael94420 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/01/2006, 13h12
  2. Réponses: 2
    Dernier message: 22/11/2005, 22h09
  3. [VB.NET] Recuperer des données ds un fichier
    Par Aspic dans le forum VB.NET
    Réponses: 2
    Dernier message: 03/11/2005, 09h31
  4. Recuperer des données d'access
    Par Lucier dans le forum MFC
    Réponses: 18
    Dernier message: 25/11/2004, 10h29
  5. Réponses: 3
    Dernier message: 22/02/2004, 20h09

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