問題タブ [jaxb2]

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 に答える
840 参照

arrays - jaxb2Marshallerは、XMLを空のバイトarraにアンマーシャリングします

ここに問題があります。私はSpring3.0.4を使用してRESTWebサービスを作成しています(実際、私は初心者です)。クライアントからXML表現として渡されたHibernateを介してオブジェクトを永続化したいと思います。このタスクを実行するために、jaxb2を使用します。

クライアントが送信するオブジェクトは、データとメタデータという2つの息子オブジェクトを持つノードです。

問題は、クライアントがXMLを送信するときに、SIUserDataが予測不可能なbyte []配列にマーシャリングされないことです。入力の一部が切り取られることもあれば、単に空になることもあります。

たとえば、この入力

StorageInterfaceDataコンテンツ属性が空のオブジェクトではマーシャリングされていません。

文字列の終わりにStorageInterfaceDataコンテンツ属性のタイプを変更しようとしたので、問題はbyte []の処理に影響を与えると思います。すべてが正常に機能します:S。

それはコードに従います。

ノード

データ

バルクオブジェクト

メタデータクラスは、冗長になりすぎないように省略されています。誰かが物事をクリアしてくれませんか?

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

xml - @XmlElementWrapperはNullPointerExceptionを生成します

こんにちはすべて私は次のxmlコードを表現しようとしています:

@XmlElementWrapperアノテーションを使用してこれを実行したいと思います。

これが私がそれを使うクラスです:

これがSimpleLinkクラスです

そして最後にLinkクラス

問題は、Jaxb2を使用して上記と同様のxmlをアンマーシャリングすると発生します。NullPointerExceptionが発生します:-(。この事実についてjaxbにバグがあることを読みましたが、2006年に解決され、Springを使用しています。 3(彼自身のjaxb2ライブラリを使用)。

誰か手がかりがありますか?

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

xml - JAXB2マップxsd:restrictions as subclasses and(un)marshall xsi:types

私はこれを理解するために多くの研究を行ってきましたが、それでも成功していません。

このスキーマに従うXSDがいくつかあります。

Simple_Identification.xsd

たとえば、Simple_S.xsdは次のようになります。

最終的には、次のようなタグを含むXMLファイルを生成できるようにしたいと思います。

今のところ、mapSimpleTypeDefを有効にせずに、Simple_Sのような単純な型を無視して、XMLファイルをマーシャル/アンマーシャルすることができます。

mapSimpleTypeDefを有効にすると、単純型のクラスが生成されます。Simple_Identificationは、Base_3039フィールドを含むクラスにマップされます。また、Base_3039クラスにはStringフィールドが含まれています。ただし、Simple_Identificationsのさまざまなサブタイプのクラスは、Simple_Identificationを拡張せず、Simple_Identificationタイプのフィールドのみを含みます。これは、マーシャリング/アンマーシャリングの場合には役立ちません。

たとえば、このXMLファイルをアンマーシャリングする場合:

Identityの値は、特殊なSimple_Sオブジェクトではなく、Simple_Identificationオブジェクトにマッシュオール解除されます。さらに、マーシャルバックすると、生成されたXMLですべてのxsi:type属性が失われます。

したがって、基本的に、私の質問は、xsi:typesを含むXMLを適切にアンマーシャリングして生成するにはどうすればよいかということです。私が使用しているスキーマは、これを行うのに適切ではありませんか?xsd:restrictionはJAXBによる継承のタイプとして解釈されませんか?

XSDは自分で変更するものではないことに注意してください。私は、XSDを使用して、XMLを適切に読み取って生成する必要があります。

私がこれを理解するのを手伝ってくれてありがとう!

-アンカ

0 投票する
2 に答える
2577 参照

java - @XmlJavaTypeAdapters でマークされた @XmlElements?

私はこの状況を持っています

したがって、複合は単純および/または複合の両方のリストです。どちらも次のように定義された値から拡張されます

Simple は、単純な文字列との間でマーシャリング/アンマーシャリングするアダプタでマークされたクラスです

コンパウンドはアダプター不要。

問題は、Simple を「そのまま」使用すると、次のように正しくマーシャリング/アンマーシャリングされることです。

しかし、コンパウンド内で使用すると、次のような出力が得られます

そして、私はなぜだろうと思っています...何かが恋しいですか?その「値」を削除するにはどうすればよいですか? @XmlElements 内でマークされたタイプでアダプターを使用することは可能ですか?

編集

いくつかのテストの後、Simple インスタンスの処理方法に問題がある可能性があることがわかりました。したがって、最初の質問を次のように単純化します。

次のような単純なクラスが与えられた場合

次のようなマーシャリングされた出力を取得するにはどうすればよいですか

それ以外の

?

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

xml - EclipseLinkのMOXyJAXB実装でJAXB2Basicsプラグインを使用できますか?そうでない場合、代替手段はありますか?

最終的には、JAXBでhashCodeとequalsの実装を生成する必要があります。JAXB2 Basicsプラグインはそれを行い、JDKのMetro JAXB実装では正常に機能しますが、MOXyでは失敗します。

私は得る:

java.lang.IllegalArgumentException at org.eclipse.persistence.jaxb.JAXBBinder.updateXML(JAXBBinder.java:131)at org.eclipse.persistence.jaxb.JAXBBinder.updateXML(JAXBBinder.java:126)

それ以外の場合、MOXyは正常に機能します。つまり、equalsおよびhashCode生成コードを削除すれば、すべてが正常に機能します。

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

validation - JAXBとエンティティクラスの検証

REST-Webサービスの場合、受信データを検証する必要がありました。xsdの代わりにエンティティクラスとJAXBを使用して受信データを検証することは可能ですか

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

java - java.util.Map プロパティの Jaxb 名前空間

ハッシュマップを含む単純なクラスがあります。

Main メソッドは、次の XML を生成します。

私が抱えている問題は、ハッシュマップを出力するときに名前空間が削除されることです。私が生成したいのは、次のようなxmlです。

0 投票する
2 に答える
5587 参照

spring - Spring 3、ReST、@ ResponseBody、@ ExceptionHandler

単純なSpring3ベースのReSTWebサービスで例外処理を機能させようとしています。私が見たすべてに基づいて、これが@ResponseBodyおよび@ExceptionHandlerアノテーションで自動的に機能するのを妨げるバグがあります

https://jira.springsource.org/browse/SPR-6902

Spring 3.1または3.0.6までサポートされていないことを考えると、例外処理を行うための現在の最良の方法は何ですか?私は多くの投稿を見てきましたが、私にとって有効な明確な答えを見つけられませんでした。理想的なソリューションは、xmlとjsonの両方を自動的にサポートするソリューションです。

  • マーシャリング設定全体を手動で定義する必要がありますか?これにより、Spring 3の残りのサポートを使用する価値のある注釈の必要性がなくなりませんか?
  • マーシャリング(つまり、Jaxb2Marshaller)を手動で定義するために、spring-wsへの新しい依存関係を追加する必要があるようです。これは少し面倒です。
  • すべてのメソッドが返す「Response」オブジェクトを定義して、すべての関数をtry / catchブロックにラップする方が簡単ですか?
0 投票する
0 に答える
671 参照

jaxb - Jaxb - SchemaGen と java.util.Map の名前空間の問題

クラスに java.util.Map が含まれている場合、SchemaGen は Map 要素に名前空間を持つ xsd を生成します。ただし、マーシャラーが同じクラスから xml を生成する場合、名前空間は存在しません。

これは XmlAdapter で解決できる可能性がありますが、マップごとに 3 つの追加クラスを作成する必要があるようです。多数のマップがあるため、このルートをたどりたくありません。

SchemaGen と Marshaller に同じ xml を生成させる方法はありますか?

クラスとスキーマの例:

テスト 1:

テスト 2:

SchemaGen の出力:

スキーマに準拠する XML。(注: jaxb はこの xml をアンマーシャリングしません!)

Jaxb が生成する XML。(注。スキーマに準拠していません!)

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

java - JAXB のルート要素のない XML

そのようなオブジェクトのリストがルート要素を必要としないようなオブジェクトを作成する方法があるかどうか疑問に思っていました。たとえば、次のような XML を作成したい場合

class Dogsルート要素になり、 を持つことができますList<Dog>。ここで、カプセル化要素を取り除きたいとします<Dogs>。犬のリストは次のようになります

クラスをどのように構築すればよいですか?