問題タブ [xmladapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
28539 参照

java - リストをマーシャリングするためにJAXB XmlAdapterをどのように使用できますか?

このクラスのインスタンスはラージ オブジェクト グラフの一部であり、オブジェクト グラフのルートにはありません。

オブジェクト グラフは、Jersey と JAXB を使用して JSON に変換されます。とにXmlAdapter登録しました。LocalDateLocalTime

問題は、dateプロパティではなくプロパティに対してのみ機能することtimesです。timesこれは、単一の値ではなくリストであるという事実と関係があると思われます。timesでは、Jersey/JAXB に、登録された .xml を使用してリスト内の各要素をマーシャリングするように指示するにはどうすればよいXmlAdapterでしょうか?

アップデート:

スカラープロパティを追加し、JSON で予想される出力を観察することで、スカラー プロパティLocalTimeに対してマーシャリングが実際に機能していることを確認しました。LocalTimeLocalTime

完全を期すために、package-info.java は次のとおりです。

LocalDateAdapter:

LocalTimeAdapter:

0 投票する
1 に答える
453 参照

jaxb - ArrayListを処理するためのXmlAdapterの拡張は、[...]を引用符で囲みます

(のみ)1つの要素を持つリストを正しくシリアル化できないJerseyのバグを解決するには、次のようにします。

それ以外の

私はそれをほぼ解決する以下のコードを書きましたが、(腹立たしいことに)結果全体を次のように二重引用符で囲まないように指示する方法はありません:

私には選択肢がなく、これを通してはっきりと見える人には心から感謝します。いくつかの投稿で提案されている@ProviderソリューションとしてContextResolver<JAXBContext>も試しましたが、Jerseyがそのコードを呼び出すことはありません。このソリューションだけが近づいています。

ちなみに、POJOの消費フィールドは次のとおりです。

そしてここにコードがあります:

0 投票する
1 に答える
1745 参照

java - JAXB XMLAdapter マーシャリングの問題

XMLを使用して以下の形式のファイルを生成する必要があります。これには、固定可変JAXB2の両方のxml コンテンツが含まれています。

制約とは何ですか?

可変XML部分のコンテンツは、固定コンテンツに埋め込む必要がある5 つの異なるXML schema(それを生成するために 5 つの異なる Java クラスを実装する予定です) のいずれかである必要があります。JAXB2.0XML

XML 形式:

何を試しましたか?

JAXB上記のアノテーション付き Java クラスを作成しましたXML metadataBaseUserType変数 XML 部分には、 5 つの異なる Classes によって拡張された共通の Parent クラス ( ) を使用しました<user_type>marshall(..)を使用して操作をオーバーライドしようとしました@XmlJavaTypeAdapter。(以下のように)

JAXB アノテーション付きクラス:

カスタム XML アダプター クラス:

私は今どこに苦労していますか?

エラーや警告に直面していませんXML。生成されています(以下に示すように)。しかし、出力は期待されたものではありません。Variable XML 部分が Fixed 部分に正しく埋め込まれていません。

出力

私の質問は:

  1. なぜ は、マーシャリングされたコンテンツを親コンテンツJAXB marshallersに埋め込むことができませんでした。CustomXMLAdapter(UserInfo.class)
  2. これを単純に行うための代替オプションはありますか?JAXB
  3. の指定方法BoundType_ コンテンツを親クラスのマーシャリングに埋め込むために指定する特定のタイプはありますか?ValueTypeXMLAdapter
0 投票する
0 に答える
1101 参照

java - JAXB XmlAdapter を使用して、ラッパー要素なしでリスト全体を適応させる

カスタムコレクション型XmlAdapterにアンマーシャリングするために を使用しようとしています (クラスの別の使用によって課された競合する制限のために、意図的にインターフェイスを実装しません。クラスにコレクションが含まれている場合、残念ながら失敗します)。問題は、コレクションに配置されるノードがラッパー要素にラップされていないことです。XMLCollectionXML

これが私のXML基本的な外観です。

JAXBこれを次のように非整列化できますPOJO

ただし、私がやりたいことは次のとおりです。

ご覧のとおりXmlAdapter、個々の要素ではなく、リスト全体を適応させる を作成しましたが、アンマーシャリングのために呼び出されることはありません。(マーシャリングのために呼び出されます。)

XML要素の周りにラッパーが含まれている場合、<bar>これを解決する方法を知っています:

barsフィールドに注釈を付けることができ@XmlElement(id="wrapper")、アダプターが正しく呼び出されるためです。ただし、XMLスキーマは から来ており、RFC完全に変更できないため、どのように進めればよいか困っています。どんなアイデアでも大歓迎です!

0 投票する
1 に答える
544 参照

jaxb - 親要素のないJAXBマーシャル

JavaBean A と B の 2 つと、String C と D の 2 つがあります。構造は次のとおりです。

オブジェクト A を Xml にマーシャリングできます

場合によっては、このように A を XML にマーシャリングしたいと思います

Bタグなし。XMLAdapter またはその他の方法で実行できますか。いくつかの動的な方法があれば最高です。ありがとう。

0 投票する
1 に答える
38 参照

java - XmlAdapter を書くことは可能ですか??

つまり、Web サーバーでのシリアル化時に、org.jbpm.graph.def.ProcessDefinition クラスのすべてのインスタンスの processDefinition フィールドを null に設定したいので、CXF Web サービスから値を返すたびにこの例外が発生しないようにします。

尋ねる理由は、私はすでに以下のクラスを書いているからです

package-info.java ファイルで次のように定義しました。

ただし、そのメソッドは呼び出されません。