問題タブ [jaxb]
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.
java - JAXB:複雑なネストされたデータ構造をどのようにマーシャリングする必要がありますか?
私はいくつかの複雑なデータ構造を持っています
注:私の場合、SetとListのどちらを使用してもかまいません。
これで、JAXBでXmlAdapterを定義できることがわかりました。これで問題ありませんが、指定されたすべてのデータ構造に対してXmlAdapterを定義したくありません(コピーアンドペーストコードが多すぎます)。
私は2つの一般化XmlAdaptersを宣言することによって私の目標を達成しようとしました:
- マップ用に1つ:
MapAdapter<K,V>
- セット用に1つ:
SetAdapter<V>
問題:
JAXBは次のように文句を言います:
これが私のアダプタクラスです:
これが私のJUnitテストケースです:
java - JAXBによって生成された@XmlRootElementはありません
FpML(Finanial Products Markup Language)バージョン4.5からJavaクラスを生成しようとしています。大量のコードが生成されますが、使用できません。単純なドキュメントをシリアル化しようとすると、次のようになります。
実際、@ XmlRootElementアノテーションを持つクラスはないので、何が間違っているのでしょうか。xjc(JAXB 2.1)をfpml-main-4-5.xsdにポイントします。これには、すべてのタイプが含まれます。
java - JAXBマーシャリングとジェネリック
JAXBのイントロスペクションを使用して、JAXBアノテーションでマークアップされた既存のドメインオブジェクトをマーシャルおよびアンマッシュしようとしています。ほとんどのことは期待どおりに機能しますが、かなり単純なクラスをシリアル化するのにかなりの問題があります。このクラスは、多くのBeanで@XmlElementとして使用され、次のようになります。
私は次のことを試みましたが、成功しませんでしたが、JAXBはまだインターフェイスComparableに腹を立てています。
Bean getterの戻りタイプとしてRangeとDoubleRangeの両方を使用すると、次のような例外が発生します。
ほとんどの場合、List<T>とMap<T、U>は、JAXB仕様に、Beanで検出されたときにこれらのタイプに特別な規定があるためにのみ機能することを認識していますが、JAXBイントロスペクションに必要なものを伝える方法はありますか非ジェネリックフィールドで範囲を再実装する必要のないエンジン?
java - JAXBを使用して、さまざまな/動的な名前を持つ要素を非マーシャリングします
次のようなノードを持つXMLドキュメントを解析しています。
要素data1、data2、data3は常に一貫しています。親タグのみが異なります。私のオブジェクトモデルには、これらすべてのケースを表す単一のオブジェクトがあります。要素の名前を事前に知らなくても、JAXBにこのケースを処理させるにはどうすればよいですか?
@XMLAnyElementはすべてのオブジェクトに一致しますが、適切なタイプのオブジェクトを作成しません。オブジェクトの代わりにNodeオブジェクトのリストを取得します。私のオブジェクトは現在次のようになっています。
<object type="dog">
要素を使用するように着信XML形式を変更する以外に、このケースを処理する方法はありますか?
java - nullフィールドを使用したJAXBマーシャリング
これは非常に単純なリクエストですが、それを行う方法が見つかりませんでした。
私は基本的にJAXBで役割を設定しようとしています。これは、nullフィールドが検出されるたびに、出力で無視するのではなく、空の値に設定することを示しています。だからクラスのために:
日付フィールドがnullの場合にこれがXMLファイルにマーシャリングされていると、私の出力にはその要素が含まれていません。私がやりたいのは、出力にすべてのフィールドを含めることです。そして、それらがnullの場合は、それらを-空白と言います。したがって、出力は次のようになります。
ありがとう、
ジャルペッシュ。
xml - xjc バインディングのカスタマイズは、jaxb 2.1.3 では機能しません。jaxb 2.0で動作します
JDK 1.6.0 の jaxb 2.0 でバインディング カスタマイズ ファイルを開発しましたが、問題なく動作しました。
現在、JDK 1.6.0_13 で jaxb 2.1.3 を使用していますが、エラーが発生します。
エラー xxx が複数のプロパティに表示される
これは、名前を変更することによってバインディング ファイルが処理していると思われるものです。
2.0 と 2.1.3 の間に何が起こったのか、知っておく必要があり、何を変更する必要があるのか。近くも遠くも探しましたがわかりません。どうもありがとうございました。
フィールド名はスキーマの 2 つの異なる部分で使用されるため、スキーマには「キャッチオール」プロパティを取得するプロパティ名がいくつかあるため、バインド カスタマイズ ファイルを使用しています。2 つのフィールドは式とアサーションと呼ばれます
スキーマの解析中に次のエラーが発生します。
私のxjcコマンドは:
私のxjbファイルは次のとおりです。
スキーマは非常に大きいですが、ここに 2 つのアサーションと式の comtype があります (エラーが指す場所です)。
java - JAXB:異なる名前空間に属するようにクラスに注釈を付けるにはどうすればよいですか?
異なるXML名前空間にマーシャリング/アンマーシャリングされるJAXB注釈付きクラスが必要です。
私が必要としているのは次のようなものです。
どのようにそれを行うことができますか?
プログラムで実行できますか?(JAXBの.xjbバインディングファイルは必要ありませんか?)
java - xmlbean XmlObject.copy()のようなJAXBオブジェクトのディープコピーを作成するにはどうすればよいですか?
私は、xmlbeansを使用してjaxbを使用するようになったいくつかのコンポーネントのリファクタリングを担当しました。前の作成者がXmlObjectsの1つのcopy()関数を呼び出した場所に到達するまで、すべてが順調に進んでいます。xmlbeans内のすべてのオブジェクトはXmlObjectを拡張するため、魔法のディープコピー関数を無料で入手できます。
Jaxbはこれを提供していないようです。Jaxbオブジェクトのディープコピーを作成するための正しくて簡単な方法は何ですか?
xsd - JAXB 選択リスト
私は次のスキーマを持っています
XJC は、newBook 用と oldBook 用の 2 つのリストを持つ BookShelf クラスを生成します。優秀な!
ここで、本を任意の順序で表示したいと考えています。そこで、スキーマを次のように書き換えます。
しかし現在、XJC は、 type のリスト newBookOrOldBook を 1 つだけ持つ BookShelf を生成しList<JAXBElement<String>>
ます。
本が表示される順序は気にせず、XML ライターが任意の順序で本を指定できるようにしたいのですが、生成された BookShelf クラスで各タイプの本を List として指定したいと考えています。これを達成する方法はありますか?