Parser un fichier WSDL 2.0 par java

fatoucham88 Messages postés 1 Date d'inscription jeudi 21 juillet 2011 Statut Membre Dernière intervention 25 juillet 2011 - 25 juil. 2011 à 16:57
kalmongo Messages postés 2 Date d'inscription vendredi 23 avril 2010 Statut Membre Dernière intervention 14 mars 2012 - 8 mars 2012 à 10:53
j'ai un stage qui a pour sujet de faire une gestion des fichiers WSDL 2.0 à l'aide d' une interface graphique,si vous pouvez me porter aide ça sera aimable de votre part car j arrive pas a parser un fichier WSDL.par contre j'arrive a parser un fichier XML.

Voici mon fichier WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:description
targetNamespace="http://example.org/TicketAgent.wsdl20"
xmlns:xsTicketAgent="http://example.org/TicketAgent.xsd"
xmlns:wsdl="http://www.w3.org/ns/wsdl"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/ns/wsdl http://www.w3.org/2007/06/wsdl/wsdl20.xsd">

<wsdl:types>
<xs:import schemaLocation="TicketAgent.xsd"
namespace="http://example.org/TicketAgent.xsd" />
</wsdl:types>

<wsdl:interface name="TicketAgent">
<wsdl:operation name="listFlights"
pattern="http://www.w3.org/ns/wsdl/in-out">
<wsdl:input element="xsTicketAgent:listFlightsRequest"/>
<wsdl:output element="xsTicketAgent:listFlightsResponse"/>
</wsdl:operation>

<wsdl:operation name="reserveFlight"
pattern="http://www.w3.org/ns/wsdl/in-out">
<wsdl:input element="xsTicketAgent:reserveFlightRequest"/>
<wsdl:output element="xsTicketAgent:reserveFlightResponse"/>
</wsdl:operation>
</wsdl:interface>
</wsdl:description>

Et voici le code avec lequel je suis arrivée a parser un fichier XML:

/*
Java, XML, and Web Services Bible
Mike Jasnowski
ISBN: 0-7645-4847-6
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Event.*;
import java.io.*;
import javax.swing.tree.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.apache.xerces.parsers.*;

public class XMLTreeView {

private SAXTreeBuilder saxTree = null ;
private static String file = "" ;

public static void main ( String args []){
JFrame frame = new JFrame ( "XMLTreeView: [ afficher.xml ]" ) ;
frame.setSize ( 400 , 400 ) ;

frame.addWindowListener ( new WindowAdapter (){
public void windowClosing ( WindowEvent ev ){
System.exit ( 0 ) ;
}
}) ;

file = "wsdl.xml" ;
new XMLTreeView ( frame ) ;
}

public XMLTreeView ( JFrame frame ){

frame.getContentPane () .setLayout ( new BorderLayout ()) ;
DefaultMutableTreeNode top = new DefaultMutableTreeNode ( file ) ;
// DefaultMutableTreeNode top = new DefaultMutableTreeNode("XML Document");

saxTree = new SAXTreeBuilder ( top ) ;

try {
SAXParser saxParser = new SAXParser () ;
saxParser.setContentHandler ( saxTree ) ;
saxParser.parse ( new InputSource ( new FileInputStream ( file ))) ;
} catch ( Exception ex ){
top.add ( new DefaultMutableTreeNode ( ex.getMessage ())) ;
}
JTree tree = new JTree ( saxTree.getTree ()) ;
JScrollPane scrollPane = new JScrollPane ( tree ) ;

frame.getContentPane () .add ( "Center" ,scrollPane ) ;
frame.setVisible ( true ) ;

}


}
class SAXTreeBuilder extends DefaultHandler {

private DefaultMutableTreeNode currentNode = null ;
private DefaultMutableTreeNode previousNode = null ;
private DefaultMutableTreeNode rootNode = null ;

public SAXTreeBuilder ( DefaultMutableTreeNode root ){
rootNode = root;
}
public void startDocument (){
currentNode = rootNode;
}
public void endDocument (){
}
public void characters ( char [] data,int start,int end ){
String str = new String ( data,start,end ) ;
if ( !str.equals ( "" ) && Character.isLetter ( str.charAt ( 0 )))
currentNode.add ( new DefaultMutableTreeNode ( str )) ;
}
public void startElement ( String uri,String qName,String lName,Attributes atts ){
previousNode = currentNode;
currentNode = new DefaultMutableTreeNode ( lName ) ;
// Add attributes as child nodes //
attachAttributeList ( currentNode,atts ) ;
previousNode.add ( currentNode ) ;
}
public void endElement ( String uri,String qName,String lName ){
if ( currentNode.getUserObject () .equals ( lName ))
currentNode = ( DefaultMutableTreeNode ) currentNode.getParent () ;
}
public DefaultMutableTreeNode getTree (){
return rootNode;
}

private void attachAttributeList ( DefaultMutableTreeNode node,Attributes atts ){
for ( int i= 0 ;i<atts.getLength () ;i++ ){
String name = atts.getLocalName ( i ) ;
String value = atts.getValue ( name ) ;
node.add ( new DefaultMutableTreeNode ( name + " = " + value )) ;
}
}

}


Merci de m'apporter votre aide :)

1 réponse

kalmongo Messages postés 2 Date d'inscription vendredi 23 avril 2010 Statut Membre Dernière intervention 14 mars 2012
8 mars 2012 à 10:53
Slt
Concernant le probleme que tu as posé il y a de cela presque 1 an javascript:void(0);
"j'ai un stage qui a pour sujet de faire une gestion des fichiers WSDL 2.0 à l'aide d' une interface graphique,si vous pouvez me porter aide ça sera aimable de votre part car j arrive pas a parser un fichier WSDL.par contre j'arrive a parser un fichier XML. "
J'ai egalement un sujet dans ce sens et j'aimerais savoir si tu as pu trouvé un api qui peut regler le probleme .
Si oui fait moi signe merci javascript:void(0);
0
Rejoignez-nous