1

National Digital Forecast Database NDFDからデータを取得する小さなアプリを作成しましたが、現在 XML 応答を正しく受信しています。気象データを要求するためのインターフェースを作成するために WSDL2Java ツールを使用できますが、実際にインターフェースを使用して気象データを取得すると、XML 文字列として返されることに気付きました。解析する以外に、結果の XML から気象データをプログラムで取得するよりクリーンな方法はありますか? たとえば、XML 自体をトラバースする代わりに、weatherData.getTemp() などを呼び出すことができる Java インターフェイスはありますか?

SOAPを使用するのはこれが初めてなので、明らかに見落としていることがあればお知らせください。

更新:これが私が使用して
いるwsdlです。

4

1 に答える 1

0

仮定して:

  • Javaを使用します

  • Webサービス操作の呼び出しによって返されるXML文字列は、XMLスキーマに準拠しています。

次に、 XMLBeansを使用できます。

  • XMLスキーマから始めて、XMLBeansは、準拠するXMLをプログラムでトラバースおよび操作できるようにするJavaクラスを生成します。

  • 生成されたクラスをJavaプロジェクトに追加します

  • Webサービスから応答を取得すると、対応するXMLBeanオブジェクトを解析して作成できます。

  • 最後に、Javaゲッターを使用してXML属性(「temp」など)にアクセスできます

それがXMLSchemaの複合型であると仮定するとweatherData、次のようなことができるようになります。

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

警告:これはXMLスキーマの構造に大きく依存するため、コードが完全に異なる場合があります。ただし、XMLBeansは一般的に非常に使いやすいです。

このソリューションの欠点は、XMLスキーマが変更された場合、クラスを再生成し、コードを再コンパイルする必要があることです。うまくいけば、これは安定したXMLスキーマではあまり頻繁に発生しないはずです。

于 2011-03-22T11:27:53.617 に答える