問題タブ [jibx]

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

java - EclipseでのJiBXバインディングDTDスキーマ

xmlファイルのバインドに警告があります:

私はここの答えに書かれているようにやりました:JiBX:コードでインターフェースを使い続けるにはどうすればよいですか?(受け入れられない回答)。しかし今、xmlファイルのバインドでエラーが発生しました:

mappings / binding.dtd)。詳細については、問題ビューでメッセージを右クリックし、[詳細を表示...]を選択してください。

そして詳細は次のとおりです。

私はDTDスキーマに精通していないので、何が問題なのかわかりません。誰かが解決策を見つけましたか?

そして-私はXMLファイルの検証をオフにしたくありません、私はこれをバインディングファイルに入れたいです(主にコードアシストと検証のために)。

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

java - JIBX MAVENの問題

Spring Web Service プロジェクトで JIBX maven プラグインを使用しようとしています。私のプロジェクトには異なるレイヤー (API-DAO-SERVICE vsv..) があり、これらのレイヤーは個別のプロジェクトであり、相互に Maven 依存関係があります。私の WEB プロジェクトの POM では、他のプロジェクトを依存関係として追加し、マッピング クラスはすべて API プロジェクトにあります。私の Web プロジェクトの POM に API プロジェクトの依存関係が含まれている場合でも、そのクラスを JIBX で使用できませんでしたが、そのクラスを WEB プロジェクトの src/main/java ディレクトリに配置した場合、問題はありません。他のMaven依存プロジェクトです。どんな助けでも大歓迎です。ありがとう。

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

xml - XMLスキーマを「名前空間なし」にインポートする方法

ここに、名前空間を持たない別のスキーマをインクルード/インポートしようとしているスキーマがあります(これは、別のベンダーからのものであり、XMLを検証しなくなるため、変更できません)。これが最初のスキーマです:

また、「NO_NAME_SPACE_SHEMA_PROBLEM.xsd」はある程度変更できますが、名前空間を持つことはできません。

問題は、が名前空間some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMAに配置されていることです。sampしたがって、これをXMLにマーシャリングしようとすると、出力されます<samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA><child-elem/></samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA>。これは、XMLが検証されることを意図していないため、検証されないため、大きな問題です。したがって、私の目標は、要素を名前空間のない名前空間に単純にインポートすることです。

更新1:混乱して申し訳ありませんが、名前空間なしのスキーマにはxs:importではなくxs:includeを使用していました。質問の構文が更新されました。また、JiBX codegenを使用してドメインオブジェクトを生成し、JiBXバインディングを使用してマーシャリングを行っています。したがって、JiBXと互換性がある必要があります。

更新2:skaffmanの回答に従って、xs:importを使用します。私はこれを新しい質問に分岐させると思います。

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

xml - JiBX:名前空間なしのスキーマにインポートするスキーマでcodegenを実行する方法

ここに、名前空間を持たない別のスキーマをインクルード/インポートしようとしているスキーマがあります(これは、別のベンダーからのものであり、XMLを検証しなくなるため、変更できません)。これが最初のスキーマです:

また、「NO_NAME_SPACE_SHEMA_PROBLEM.xsd」はある程度変更できますが、名前空間を持つことはできません。

JiBXcodegenを実行するときに発生する問題:

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

java - XMLマーシャリング:別の名前空間から要素に属性を追加する方法

このXMLを生成したい:

私はこのXSDを持っています:

XSDでこれをどの程度正確に達成できますか(参考:JiBXを使用して、JavaでオブジェクトをXMLにマーシャリングするために使用しています)。

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

java - コレクションに同じインターフェイスを実装する 2 つの異なるオブジェクトを追加するには、Jibx を取得するにはどうすればよいですか?

タイトルが示すように、同じインターフェイスを実装する 2 つの異なるオブジェクトがあり、それらを同じコレクションに追加したいと考えています。

私のXMLは次のようになります:

下のタグはいつでもまたはのitemいずれかです。値は似ていますが、ご覧のとおり、別のフィールドがあります。type1type2type2

私のインターフェースは:

私の3つのクラス:

私のバインディングは次のようになります。

そして、実行すると、次のエラーが表示されます。

コレクションに項目タイプを追加すると思ったので、コレクション セクションは次のようになります。

そして、エラーは次のようになります。

そこで、次のメソッドを に追加しますMyObj

collectionタグを次のように変更しました。

そして、最初の試行と同じエラーが発生します:

そして今、私はアイデアがありません。どうすればこれを機能させることができますか?

編集

以下のアーチーの推奨に基づいて、バインディングを次のように変更しました。

そして今、バインドはスタックエラーなしで機能します (万歳!) しかし、リストからアイテムを取得すると、次のようになります:

私は得る:

上記の2行目。オブジェクトを印刷すると: System.out.println(items.get(0));

それは言う: java.lang.Object@1be2d65

したがって、これは単純なオブジェクトであり、Element や Type1 (または Type2) ではありません。

Archie が提案した「拡張」方法を試してみましたが、何も変わりませんでした。同じ結果が得られました。

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

java - シリアル化される可能性のあるクラスでバイトコード拡張技術を使用することは安全ですか?またその理由は?

これはまだ試していませんが、リスクがありそうです。私が考えているケースは、JiBX を使用して単純な VO クラスをインストルメント化することです。これらの VO は、AMF やその他のスキームでシリアル化される予定です。バイトコード拡張のような裏方の作業を行うと、一般的に何かが台無しになる可能性があるという私の疑いを確認または否定し、その理由に関する背景情報を提供できる人はいますか? また、JiBX の具体的な事例にも興味があります。

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

java - Jibx - 値と属性を持つタグをアンマーシャリング/マーシャリングする方法は?

申し訳ありませんが、私は怠け者になるつもりはありませんでした。わかりましたここに質問があります:私はいくつかのタグがタグ表記で値と属性の両方を持っている上記のxmlのブロックを持つxml構造を持っています(MyTagには12の値があり、属性名があります)。Jibx を使用して、そのような場合のバインディング スキーマを作成する方法を説明します。明らかに、値のみの xml タグまたはタグ値のない属性を持つ xml タグの場合は正常ですが、両方がある場合、どうすればよいかわかりません。ありがとう。

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

java - Spring MVC と JIBX を使用したさまざまなクラスのマーシャリング

Spring MVC でいくつかの RESTful サービスを構築しようとしています。XML、HTML、および JSON など、いくつかの表現を提供します。OXM テクノロジーとして JiBX を使用したいと考えています。

現在、JiBX で Spring を接続する方法を理解するのに苦労しています。たとえば、単一のクラスを結び付けたい場合は、単にXMLCustomerを定義し、それを .xml に追加するだけです。これはうまくいきます。JibxMarshallerMarshallingViewContentNegotiatingViewResolver

問題は、複数のクラスのマーシャリングを接続する方法がわからないことです。たとえばCustomerUser. それぞれJibxMarshallerが 1 つのクラスしかサポートできません (多数をサポートできる Jaxb2Marshaller とは異なります)。クラスごとにマーシャラーを宣言しようとしましたが、MarshallingView1 つのマーシャラーしかサポートしていません。複数の s を宣言MarshallingViewしても機能しません (最初の 1 つだけが機能するようです)。

あなたのアドバイスをいただければ幸いです。ありがとう。


以下のRiteshの回答に基づいて更新します。

targetClassの所有物に私が振り落とされたことが判明しましたJibxMarshaller。マーシャラーが単一のクラスに対してのみ機能することを意味すると思いましたが、関連するすべてのバインディングを見つける方法としてターゲット クラスを使用しているようです。したがって、解決策は、バインドしている一連のクラスから任意のターゲット クラスを使用して、1 つのマーシャラーのみを使用することです。例えば:

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

jibx - カスタムJiBXマーシャラーを使用した抽象マッピング

カスタムJiBXマーシャラーを作成し、それが機能することを確認しました。これは、次のようなことを行うことで機能します。

ただし、HashMapごとに複数のマーシャラーを作成する必要があります。だから私はこのような抽象的なマッピングでそれを参照しようとしました:

ただし、そうするときにバインディングを作成しようとすると、次のようになります。

私の推測では、カスタムマーシャラーで抽象マッピングを有効にするために実装する必要のあるものが不足しているか、カスタムマーシャラーが抽象マッピングをサポートしていません。

JiBX API( http://jibx.sourceforge.net/api/org/jibx/runtime/IAbstractMarshaller.html )でIAbstractMarshallerインターフェイスを見つけましたが、これを実装する必要があるかどうかについては、ドキュメントが不明確に見えます。 、およびその場合の動作方法。例として、このインターフェースの実装を見つけることができませんでした。

私の質問は、カスタムマーシャラーを使用して抽象マッピングをどのように行うかです(可能な場合)。IAbstractMarshallerインターフェースを介して行われる場合、どのように機能するか、および/またはどのように実装する必要がありますか?