[Compil] parse d'un fichier xml
Bonjour,
je suis debutant en JDOM. j'essaye de parcourir un fichier xml (wsdl). mon programme compile mais n'affiche rien. si qqn peut m'aider je serai reconnaissant.
voici mon fichier xml.
Code:
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
| <?xml version="1.0" encoding="UTF-8"?>
<definitions name="PurchaseOrder"
targetNamespace="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/examples/purchaseOrder.wsdl"
xmlns="http://www.w3.org/2004/08/wsdl"
xmlns:tns="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/examples/purchaseOrder.wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/examples/purchaseOrder.wsdl"
xmlns:wssem="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/examples/purchaseOrder.wsdl"
xmlns:POOntology="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/ontologies/PurchaseOrder.owl"
xmlns:Rosetta="http://lsdis.cs.uga.edu/projects/meteor-s/wsdl-s/ontologies/rosetta.owl">
<interface name="PurchaseOrder">
<!--Category is added as an extensible element of an interface-->
<wssem:category name="Electronics" taxonomyURI="http://www.naics.com/" taxonomyCode="443112" />
<operation name="processPurchaseOrder" pattern="wsdl:in-out"
wssem:modelReference="Rosetta:RequestPurchaseOrder" >
<input messageLabel ="processPurchaseOrderRequest"
element="tns:processPurchaseOrderRequest"/>
<output messageLabel ="processPurchaseOrderResponse"
element="processPurchaseOrderResponse"/>
<!--Precondition and effect are added as extensible elements on an operation-->
<wssem:precondition name="ExistingAcctPrecond"
wssem:modelReference="POOntology#AccountExists"/>
<wssem:effect name="ItemReservedEffect"
wssem:modelReference="POOntology#ItemReserved"/>
</operation>
</interface>
</definitions> |
et voici mon programme Java qui devrait afficher la liste le nom de l'interface:
Code:
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 47 48 49 50 51 52 53 54 55 56 57
| package WSDLS;
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.filter.*;
import java.util.List;
import java.util.Iterator;
public class Wsdlparser {
static org.jdom.Document document;
static Element racine;
//static Namespace nspace =Namespace.getNamespace("http://www.w3.org/2004/08/wsdl");
public static void main(String[] args)
{
//On crée une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
try
{
//On crée un nouveau document JDOM avec en argument le fichier XML
//Le parsing est terminé ;)
document = sxb.build(new File("Exercice.xml"));
}
catch(Exception e){}
//On initialise un nouvel élément racine avec l'élément racine du document.
racine = document.getRootElement();
//Méthode définie dans la partie 3.2. de cet article
afficheALL();
}
static void afficheALL()
{
//On crée une List contenant tous les noeuds "etudiant" de l'Element racine
List listEtudiants = racine.getChildren("interface");
//On crée un Iterator sur notre liste
Iterator i = listEtudiants.iterator();
while(i.hasNext())
{
//On recrée l'Element courant à chaque tour de boucle afin de
//pouvoir utiliser les méthodes propres aux Element comme :
//selectionner un noeud fils, modifier du texte, etc...
Element courant = (Element)i.next();
//On affiche le nom de l'element courant
System.out.println(courant.getAttributeValue("name"));
System.out.println(courant.getChild("operation").getText());
}
}
} |
Sinon est ce que qqn connait une API pour manipuler des fichier WSDL-S
merci bcp