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.
et voici mon programme Java qui devrait afficher la liste le nom de l'interface:
Code XML : 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 <?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>
Sinon est ce que qqn connait une API pour manipuler des fichier WSDL-S
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
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()); } } }
merci bcp
Partager