私のAndroidアプリでは、複雑なクラスの整列されたオブジェクトを必要とするWebサーバーと話をする必要があります。これらのカスタムクラスはWSDLファイルから生成されたものなので、すでにアノテーションが付いています。サーバーはmarhallingとunmarhallingにJAXBを使用します。その後、AndroidでJAXBContextを使用する良い選択肢はありますか?
JAXBContext jc = JAXBContext.newInstance("schema_definition_path");
Marshaller m = jc.createMarshaller();
Unmarshaller u = jc.createUnmarshaller();
...とカスタムオブジェクトをデシリアライズ/シリアライズ動作するマーシャラーとUnmarshallerのインスタンスを使用します。
ので、クライアント側では、JAXBを使用して、私はこれまでシンプルでしょう。
モバイルアプリで重いJAXBライブラリを使用するのは良い考えではないので、JAXBが私のためにやることを行うための代替手段を探しています。
私はSimple XML Serializationをチェックアウトしましたが、この種の機能を提供していないようです。私はスキーマ定義パスの代わりにクラスをunmarshallerに与えることしかできません。これを行うと、ルート要素のみを含むXML文書が不完全になります。
誰でも正しい方向に私を向けることができますか?これも可能ですか?私は別のlibを使うべきですか?私はSimpleXMLを悪用していますか?
私が知っている限り、単純なXMLはJAXBに近いアンドロイドの機能のようなものになる唯一のライブラリです。私は別のショットを与えるだろう。 –
コメントありがとうございます。私はもう少しそれを使って遊んだ。私はカスタムクラスをコピーし、JAXBをSimpleXMLアノテーションに置き換えることができます。これは良い解決策のようには思えません。オブジェクトがかなり深くネストされているので、多くの手動変更が必要になります。 JAXBのものに必要なクラスだけをjavax。*名前空間からコピーして再パックすることは可能でしょうか? – Bashorings
質問は実際には、どのソリューションがあまり醜いのですか;-) – Bashorings