問題タブ [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 からカスタマイズされたマーシャリングされた出力を作成する方法は?
JAXB マーシャラーによって作成された XML ファイルを使用したくありません。マーシャリング オブジェクトに適した形式を提供するようにカスタマイズできますか?
xml - restlet の acceptRepresentation メソッドで JAXB を使用して XML をアンマーシャリングする
既存の Java ドメイン モデル クラスに注釈を付けて XML スキーマを作成しました。現在、JAXB を使用して、restlet Web サービス内で受信した表現を非整列化しようとすると、何を試しても多くのエラーが発生します。私はrestletsとJAXBの両方に慣れていないので、両方を使用する適切な例の方向に私を向けると、これまでに見つけたものだけが役に立ちます:
私のエラーは次のとおりです。
restlet.ext.jaxb JaxbRepresentation を使用しようとすると:
これから私は
java.io.IOException: Unable to unmarshal the XML representation.Unable to locate unmarshaller.
例外を取得しますjaxbRep.getObject()
そのため、代わりに次のコードを使用して、違いが生じるかどうかを確認する別のアプローチも試しました。
ただし、これにより、JAXBContext.newInstance への呼び出しが行われたときに次の例外も発生します。
アドバイスをよろしくお願いします。
xml - XSDに正規表現の文字クラス\wが含まれている場合、JAXB検証の問題も発生します。
XSD仕様からXMLファイルを作成するためにJAXB1.0.6(プロジェクトはJDK1.4で開始され、これが最後の互換性のあるバージョンです)を使用しています。XSDは、次の正規表現パターンで属性「email」を定義します。
電子メールbla_bla@somewhere.comを入力しようとすると、検証は失敗し、次のメッセージが表示されます。
IMHO、文字クラス\wは同等です[a-zA-Z0-9_]
したがって、bla_bla@somewhere.comは式を満たします。アンダースコアを省略すると、検証は正常に合格します。なぜこうなった?
よろしく
java - JAXBを検証していますが、空白は無視されません
いくつかのコードスニペット。
jaxbアンマーシャリングを実行するJavaコーディング。非常に簡単で、オンラインのチュートリアルからコピーされています。
xmlファイルの問題要素。この要素には、無視できる空白しか含まれていません。ファイル内でどのように検出されたかを正確に示しているため、フォーマットが正しくありません。
この要素を記述したxsd要素。
エラーは
エラーがその要素から発生していることを確認しました。
検証なしで正常にロードされます。ただし、アプリケーションに大幅な変更や追加を行うため、検証を使用する必要があります。また、すべてが適切にマーシャリング/アンマーシャリングされることを確認する必要があります。
また、complexTypeを変更して、xs:string拡張子を持つsimpleContextを含める場合も正常に機能します。しかし、私はこの問題を世界中のエンティティから受けています。その中には、多くのxsdファイルにamdがたくさんあります。したがって、この問題を回避するためだけに、xmlドキュメントのすべての要素をxs:stringに基づいて作成することはできません。
イベントj2se6はapache-xercesのSchemaFactoryを使用していますが、xercesの「ignore-whitespace」機能を受け入れていないようです。(つまり、schemaFactory.setFeature())
java - JAXB はチャンク内の大きな XML ファイルを解析できますか
スキーマがすでにいくつかの XSD ファイルで提供されている、潜在的に大きな XML ファイルを解析する必要があるため、XML バインディングが非常に好まれます。JAXB を使用してファイルをチャンクで解析できるかどうか、また可能であればその方法を知りたいです。
java - ジャージーを使用してネストされたリストをJSONとしてマーシャリングするにはどうすればよいですか?nullの配列または配列を含む1要素の辞書の配列を取得します
私はJerseyを使用してオブジェクトをJSONに変換するプロジェクトに取り組んでいます。次のように、ネストされたリストを書き出せるようにしたいと思います。
最初に表されたデータを<LinkedList<LinkedList<String >>>として変換したいオブジェクトで、Jerseyが正しいことをするだろうと思いました。上記はnullのリストとして出力されました:
ネストされたオブジェクトをラップする必要があることを読んだ後、私は次のことを試しました。
そのコードは、私が望むものに近い以下のものを出力します:
最初のデータを、1要素の辞書のリストではなく、リストのリストにします。どうすればこれを達成できますか?
これが私のJAXBContentResolverです:
interface - JAXB アノテーション - インターフェースと @XmlElementWrapper のマッピング
生成された型がインターフェースであるリストであるフィールドの JAXB アノテーションに問題があります。次のように宣言した場合:
すべてが正しく機能します。しかし、次のようなラッパー要素を追加すると:
Java オブジェクトは正しくマーシャリングされていますが、マーシャリングによって作成されたドキュメントをアンマーシャリングすると、リストが空になります。この問題を示すために、コードの下に投稿しました。
私は何か間違ったことをしていますか、それともこれはバグですか? バージョン 2.1.12 と 2.2-ea で試してみましたが、同じ結果でした。
ここにある注釈を使用してインターフェイスをマッピングする例を実行しています。 https://jaxb.dev.java.net/guide/Mapping_interfaces.html
java - Groovy と JAXB をうまく連携させるにはどうすればよいですか
私は JAXB を自分のグルーヴィーなクラスで動作させようとしていますが、動作していないように見えますが、Java バージョンでは動作します。これがコードです...
シナリオは次のとおりです。
2 と 3 のコメントを外せば問題なく動作します。
1 と 4 のコメントを外すと、次のようになります。
1 と 5 のコメントを外すと、次のようになります。
何か案は?
ジャワ:
グルーヴィー:
テスト:
java - JAX-WSでのポリモーフィックオブジェクトのマーシャリング
オブジェクトWebServiceReplyを返す操作を使用して、JAX-WSタイプのWebサービスを作成しています。クラスWebServiceReply自体には、Object型のフィールドが含まれています。個々の操作は、操作に応じて、そのフィールドにいくつかの異なるデータ型を入力します。
WSDLを公開し(Netbeans 6.7を使用しています)、ASP.NETアプリケーションを取得してWSDLを取得および解析することは問題ありませんでしたが、操作を呼び出そうとすると、次の例外が発生します。
DataObject.PatientクラスとWebServiceReplyクラスでアノテーションをマークして、機能させるにはどうすればよいですか?ターゲットクラス内のアノテーションに基づいてマーシャリングに関する決定的なリソースを精緻化することもできなかったので、誰かが私にもそれを指摘できれば素晴らしいと思います。
WebServiceReply.java
DataObject.Patient.java
解決
(彼の答えをくれたGregoryMostizkyに感謝します)
WebServiceReplyクラスを編集して、可能なすべての戻りオブジェクトが新しいクラスReturnValueBaseから拡張されるようにし、@XmlSeeAlsoを使用して注釈をReturnValueBaseに追加しました。その後、JAXBは正常に機能しました。
それでも、私はまだJAX-WSでのJAXBマーシャリングについて学習しているので、誰かがこれに関するチュートリアルを投稿できれば素晴らしいと思います。
グレゴリー:リターンオブジェクトはReturnValueBaseからサブクラス化する必要があるという回答にアドオンを追加することをお勧めします。あなたの助けをどうもありがとう!私は長い間この問題に悩まされてきました!