2017-02-22 10 views
0

SOAPメッセージをJavaオブジェクトに変換する適切なライブラリを探しています。SOAPメッセージをJavaオブジェクトに変換する

私はXStreamとJaxBに出会った。これらのライブラリは、xmlをobjectに変換する際にクラス表現を必要とします。

私たちが受け取るSOAPメッセージは、呼び出されるSOAPメソッドによって変化する動的な意味です。したがって、SOAPメッセージのクラス構造を作成することは不可能です。反復ごとに異なるSOAP応答が得られます。

Javaクラスへの着信SOAP XMLを変換してからJavaオブジェクトにXMLを変換するために、JAXBやXStreamの中のものを使用するために利用可能な任意のJava APIがありますか?

そして、それのクラス表現せずに地図の地図または地図のようなJavaのコレクションにXMLを変換するために、JAXBやXStreamのを使用することが可能ですか?

+0

トライのxerces.jarは –

答えて

1

EclipseLink's Moxy動的JAXB OXMの機能を提供します。

EclipseLink Dynamic MOXyを使用すると、さまざまなメタデータソースからJAXBContextをブートストラップし、既存のJAXB APIを使用してクラスパスにJavaクラスファイルをコンパイルせずに、データをマーシャリングおよび非マーシャルすることができます。これにより、以前に生成されたJavaソースコードを更新および再コンパイルせずに、必要に応じてメタデータを変更できます。

FileInputStream xmlInputStream = new FileInputStream("src/example/dynamic/customer.xml"); 
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); 
DynamicEntity customer = (DynamicEntity) unmarshaller.unmarshal(xmlInputStream); 

の代わりに(例えばCustomer.classまたはAddress.classなど)実際のJavaクラスを使用して、動的なMOXYは、データを操作するための簡単なGET(propertyNameの)/セット(propertyNameの、PropertyValueを)APIを使用しています。 EclipseLinkは、各DynamicEntityに関連付けられたDynamicTypeを(メモリ内に)生成します。

System.out.println(customer.<String>get("name")); 

は読書を推奨します。javaにXMLをpraseする

https://wiki.eclipse.org/EclipseLink/Examples/MOXy/Dynamic/XmlToDynamicEntity https://docs.oracle.com/middleware/1212/toplink/TLJAX/dynamic_jaxb.htm#TLJAX442

+0

は少し私は10年以上前に使っていたように聞こえるXmlBeansをオブジェクト –

関連する問題