Génération d'un fichier XML avec JDOM
Bonjour,
Je voulais générer un fichier .wsdd (format XML). J'ai alors choisi JDOM. La génération commence bien, seulement, je n'arrive pas à mettre les éléments parameter , car dans un élément service, il y a plusieurs éléments parameter.
Exemple de WSDD
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
|
<deployment
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<!-- Services from EquationService WSDL service -->
<service name="Equation" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlTargetNamespace" value="http://localhost:8080/axis/services/Equation"/>
<parameter name="wsdlServiceElement" value="EquationService"/>
<parameter name="schemaUnqualified" value="http://localhost:8080/axis/services/Equation"/>
<parameter name="wsdlServicePort" value="Equation"/>
<parameter name="className" value="equation.EquationSoapBindingImpl"/>
<parameter name="wsdlPortType" value="Equation"/>
<parameter name="typeMappingVersion" value="1.2"/>
<operation name="saisirEquation" qname="operNS:saisirEquation" xmlns:operNS="http://equation" returnQName="saisirEquationReturn" returnType="rtns:Solution" xmlns:rtns="http://localhost:8080/axis/services/Equation" soapAction="" >
<parameter qname="mesCoefs" type="tns:Coefficient" xmlns:tns="http://localhost:8080/axis/services/Equation"/>
</operation>
.....
......
</service>
........
........
</deployement> |
Voici, mon code Java
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
|
public class GenerXML {
public GenerXML() {
// TODO Raccord de constructeur auto-généré
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Raccord de méthode auto-généré
CreerElement tuto = new CreerElement();
Element racine = new Element("deployement");
Namespace ns=Namespace.getNamespace("http://xml.apache.org/axis/wsdd/");
Namespace nsjava=Namespace.getNamespace("java", "http://xml.apache.org/axis/wsdd/providers/java");
racine.setNamespace(ns);
racine.addNamespaceDeclaration(nsjava);
Document document = new Document(racine);
Element service = new Element("service");
service.setAttribute("name", "Equation");
service.setAttribute("provider", "java:RPC");
service.setAttribute("style", "rpc");
service.setAttribute("use", "encoded");
Element param1 = new Element("param1");
param1.setName("parameter");
param1.setAttribute("name", "wsdlTargetNamespace");
param1.setAttribute("value", "http://localhost:8080/axis/services/Equation");
Element param2 = new Element("param2");
param2.setName("parameter");
param1.setAttribute("name", "wsdlServiceElement");
param1.setAttribute("value", "EquationService");
service.addContent(param1);
service.addContent(param2);
racine.addContent(service); |
et voici le résultat obtenu (seuls les attributs du dernier parameter apparaissent !)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<?xml version="1.0" encoding="UTF-8" ?>
- <deployement xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <service xmlns="" name="Equation" provider="java:RPC" style="rpc" use="encoded">
<parameter name="wsdlServiceElement" value="EquationService" />
<parameter />
..............
</service>
.................
...................
</deployement> |
Qui a une idée pour moi ?
merci d'avance.