問題タブ [unmarshalling]
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 - Dozer: 基本クラスからフィールドを削除する
単一の基本クラスを拡張するクラスがたくさんあります。ドーザー マッピングを行っている間、私がやりたいことは、基本クラスのマッピングを 1 つ作成し、サブクラスのマッピング中にそのマッピングを参照することです。
例えば:
だから私が何かをするとき
結果の customMap には valueA が除外されています。
java - XStreamMarshallerを使用して生成されたXMLソースに「<」または「>」を表示することは可能ですか?
XStreamMarshallerを使用してJavaSpringプロジェクトでXML出力を生成しようとしています。私が生成しているXMLには、要素テキストにCDATA値が含まれています。次のように、コマンドオブジェクトにこのCDATAテキストを手動で作成しています。
XStreamMarshallerは、要素(以下のテキストデータはエイリアスです)を次のように生成しました。
上記のXML表示は期待どおりです(上記の要素名のバックスラッシュは無視してください:フォーラムのフォーマット)。しかし、生成されたXML出力でソースの表示<text-data><![CDATA[cdata-text]]></text-data>
を実行すると、要素に対して次のように表示されます。
問題:
ご覧のとおり、ビューソースでは、より小さい文字<
とより大きい文字が置き換えられています。>
クライアントがソースを読み取り、XML出力からCDATAセクションを識別する必要がありますが、上記のシナリオではそうではありません。
XStreamMarshallerに、提供したテキストの特殊文字をエスケープさせる方法はありますか?
マーシャラーのエンコーディングをISO-8859-1に設定しましたが、それも機能しません。XStreamMarshallerで上記を実行できない場合は、これを実行できる代替のマーシャラー/アンマーシャラーを提案できますか?
//以下のPaŭloEbermannによって提案されたように、XMLとビューソースを表示します。
XMLビュー(IEで表示):
ソースを表示:
どうもありがとうございます。
java - Webサービス応答の解析の問題(Metro / JAXB)
以前にWSDLからMetro/JAXBクライアントを生成しましたが、SOAP/XMLとの間のJavaクラスのマーシャリング/アンマーシャリングは問題なく機能しました。新しいクライアントを生成しましたが、マーシャリング解除の問題があるようですが、その理由はわかりません。WSDLは非常に大きく(> 27,000行)、大文字と小文字を除いていくつかの要素名が同じであるため、-B-XautoNameResolutionを使用する必要がありました。
私はこのメソッド/操作を実行しようとしています:
このメソッドは、サブスクライバーデータとサブスクライバーの総数を返します。私の電話は次のようになります。
結果オブジェクトでNullPointerExceptionが発生します。SOAP呼び出しをトレースしましたが、返されるXMLは、Result要素を含めて期待どおりです。
私はこれまでWebParam.Mode.OUTに遭遇したことがありません。呼び出しを行う前に、Holder <>インスタンスを初期化する必要がありますか?何に?
これらの要素はSOAPのGetSubscriberListResult要素にラップされていますが、インターフェイスメソッドには@ResponseWrapperで定義されている要素があるため、渡されたオブジェクトにマーシャリングされないことを期待していました。何か他のことをする必要があるのでしょうか。
アドバイス/ヘルプは大歓迎です!
xsd - xsd スキーマでインターフェイスを作成できますか?
私のスキーマには、「TypeGroup」と呼ばれる基本クラスと、それを拡張するいくつかのクラスがあります。すべてのクラスには、異なるタイプのメンバー「値」があります。
私のプログラムでは、「TypeGroup」クラスのインスタンスを取得し、拡張クラスから「値」を取得したいと考えています。
基本クラス「TypeGroup」のメンバー型を「オブジェクト」にしようと思ったのですが、やり方がわかりません。
問題を解決するためのアイデアが欲しい
ありがとう; ロイ。
spring - JAXB Unmarshaller のプールを作成する
膨大なファイル セットを処理する JAXB Unmarshalling のパフォーマンスを改善する方法を探していたところ、次のアドバイスが見つかりました。
「パフォーマンスを本当に気にする場合、および/またはアプリケーションが多くの小さなドキュメントを読み取る場合、Unmarshaller の作成は比較的高価な操作になる可能性があります。その場合は、Unmarshaller オブジェクトをプールすることを検討してください。」
この例を見つけるためにウェブをグーグルで検索しても何も返されなかったので、Spring 3.0 と Apache Commons Pool を使用して実装をここに配置することに興味があるかもしれないと考えました。
UnmarshallerFactory.java
UnmarshallerPool.java
そして、JAXB Unmarshaller を必要とするクラスでは:
この例は、1 つのクラスのみを使用して JAXBContext を作成し、キー付きプールのキーとして同じクラス インスタンスを使用するため、単純です。これは、1 つのクラスだけではなく、クラスの配列をパラメータとして渡すことで改善できます。
これが役立つことを願っています。
java - XSLTに対するJAXBの利点は何ですか?
私はこれを頭の中で調べて、数日間さまざまなアプローチを試し、SO(XMLをJavaオブジェクトに変換するためのベストプラクティスは何ですか?)とGoogleを検索してXSLT上でJAXBを使用しましたが、できません適切な答えを見つけてください。何年にもわたって、さまざまなプロジェクトでCastor、JIBX、XSLTを使用してきたので、XMLバインディングについて少し知っています。
私の問題は、非常にフラットなXML構造を持っており、それをJavaクラスにアンマーシャリングして、リレーショナルデータベース(Oracleである必要があります)に直接永続化することです。小さな例...
上記のXMLに本当に必要なのは、OneToOne関係にある2つの単純な注釈付きクラスであり、JPAを使用して永続化できます。基本的に、次のようなデータベーステーブルを反映するクラスが必要です。
XMLはマーシャリングされないだけであり、主観的な質問になる可能性があることを認識しているこの問題の最も簡単な解決策を本当に探しています。
私はXSLTのファンなので、XSLTを使用して元のXMLをより適切な構造に曲げ、コードとより厳密に一致させてから、非常に単純なJAXBアノテーションを使用してクラスにバインドするのが良い設計かどうかを本当に尋ねています。XMLAdapter
または、JAXBを使用して「変換」を行うことを選択する必要があります。これには、 sやアノテーションなどのより実際のJavaコードが含まれると思います。基本的に、JAXBはXSLTに対して何のメリットがありますか、それとも他に何が得られますか?
java - @XmlElements と @XmlJavaTypeAdapter が連携しない
入力 XML が 2 つの要素のいずれかでラップされる可能性があるという点で、JAXB アンマーシャリングに小さな問題があります。次に例を示します。
また
私のルート クラスは@XmlJavaTypeAdapter を使用してチャネルを HashMap にアンマーシャリングしており、以下のコードは期待どおりに動作します。
Channelsクラスは次のとおりです。
チャネルは次のとおりです。
最後にChannelAdapterは次のとおりです。
しかし、私は単に置き換えることができると思っ@XmlElement(name="Update")
た
しかし、それは空のマップになります。
いずれかの入力 XML ドキュメントをハードコーディングするか、いずれ@XmlElement(name="Update")
か@XmlElement(name="Erase")
で動作しますが、いずれかのラッパー要素で動作するものが必要です。を使用してみましたが、 allChannelsが HashMap であるため機能@XmlElementWrapper
しないコレクションまたは配列プロパティでのみ使用できます。
@XmlElements
注釈について私が誤解していることと、これを機能させる方法について説明してもらえますか? ありがとう!
java - アンマーシャリングする前にスキーマを知る方法
シナリオ:
与えられた2つのスキーマのいずれかに準拠していると想定されるxmlファイルを選択するようにユーザーに求めるコードをリファクタリングしようとしています。現在、コードはを使用してマーシャリングを解除しようとしていSchema A Unmarshaller
ます。それが失敗した場合は、を使用してマーシャリングを解除しようとしていSchema B Unmarshaller
ます。両方が失敗した場合、ユーザーに適切なメッセージを表示してファイルを拒否します。
問題:
Exception
ここで、プログラムフローはによってスローされることに依存しunmarshal()
ます。
質問:
ファイルの解析を試みる方法を知る方法はありますunmarshaller
か?それで、すぐに正しいアンマーシャラーを探しますか?さらに、これは、どちらのスキーマにも準拠していない、無関係なXMLファイルをすべて拒否するのにも役立ちます。
java - JAXB はコレクションを非整列化します
XML ドキュメントがあります。
および 2 つの POJO:
JAXB を使用して XML ノードの値を取得したいと考えています。私はこの簡単なコードを書きました:
実行すると、常にゼロの値が得られます。
java - JAXBに干渉するJPA永続性プロパティ
xmlストリームのマーシャリングを解除するために使用しているJAXB/Entityオブジェクトのライブラリがあります。Java SEアプリケーションとして実行するだけで、問題なく実行できます。Netbeans6.9とGlassfish3.01を使用してすべてをJavaEEアプリに移行しました。現在、次のようないくつかの例外が発生しています。
私の問題は、enties/jaxbファイルのどこにもxml要素または変数_persistence_productBase_vhがないことです。これはGlassfishとEclipseLinkによって追加されていると思います。これらのプロパティを無視する方法を知っている人はいますか?これがエンティティとxmlのサンプルです。