2008-11-18 9 views
1

J'ai écrit une petite application qui récupère les données de la base de données de prévisions numérique nationale NDFD et je reçois actuellement la réponse XML correctement. J'ai remarqué que bien que je puisse utiliser l'outil WSDL2Java pour créer l'interface afin de demander les données météo, lorsque j'utilise l'interface pour obtenir les données météo, elle est renvoyée sous la forme d'une chaîne XML. Existe-t-il un moyen plus simple d'obtenir par programmation les données météorologiques à partir du XML résultant, autre que de l'analyser? Par exemple, y at-il des interfaces Java disponibles de sorte que je puisse appeler quelque chose comme weatherData.getTemp() au lieu de traverser le XML lui-même?Collecte de données à partir de la réponse SOAP NDFD

Notez que c'est la première fois que j'utilise SOAP, donc s'il y a quelque chose que je suis évidemment en train de négliger, faites le moi savoir.

Mise à jour:
Voici le wsdl que j'utilise.

+0

Pourriez-vous donner un lien vers le fichier WSDL que vous utilisez? –

+0

Oui, je l'ai ajouté dans le message principal. –

+0

Je passe par la même chose aussi .... – JoshBerke

Répondre

0

En supposant que:

  • vous utilisez java

  • la chaîne XML renvoyée par l'invocation de l'opération de service Web est conforme à un schéma XML

alors vous pouvez utiliser XMLBeans:

  • à partir du schéma XML, XMLBeans génère des classes Java qui vous permettent de programmation traverserez et de manipuler un XML

  • compatible vous ajoutez les classes générées à votre projet java

  • lorsque vous obtenez la réponse du Web service, vous pouvez construire un objet correspondant XMLBean par analyse syntaxique il

  • enfin, vous pouvez accéder aux attributs XML (comme "temp") en utilisant getters java

En supposant que weatherData est un type complexe dans le XMLSchema, alors vous serez en mesure de quelque chose comme

String xmlResponse = getWebServiceResponse(); 
YourXmlDocument doc = YourXmlDocument.Factory.parse(xmlResponse); 
doc.getWeatherData().getTemp(); 

Attention: cela dépend fortement de la façon dont le schéma XML est structuré, de sorte que le code peut être totalement différent. Cependant, XMLBeans est généralement très facile à utiliser. Un inconvénient de cette solution est que si le schéma XML change, vous devez régénérer vos classes et recompiler votre code. Heureusement, cela ne devrait pas arriver très souvent pour un schéma XML stable.

+0

Bonjour @MarcoS. J'ai des problèmes pour installer XMLBeans pour NetBeans. Les instructeurs sur la documentation n'étaient pas très clairs, et/ou sont déconseillés car cette version était susceptible d'être pour XP. Je suis sur Windows 7. Pourriez-vous me donner quelques conseils sur la façon d'installer cette bibliothèque? – theGreenCabbage