問題タブ [jaxb2-maven-plugin]
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.
maven - jaxb2-maven-plugin は、デフォルト値 =INF の double に対して無効なソースを生成します
XSD ファイルに double のデフォルト値が含まれている場合、jaxb2-maven-plugin が無効なソース コードを生成するという問題があります。
jaxb2-maven-plugin (org.codehaus.mojo) バージョン 1.5を使用します。
次の XSD ファイルから Java ソースを生成します。
結果の Java ファイルには、次のメソッドが含まれます。
フィールド-InfinityD
はどこにも定義されていません。
ブール値 (例: <xs:attribute name="minInclusive" type="xs:boolean" default="false" />
) を使用する場合、デフォルト値は期待どおりに機能します。
これとは対照的に、プラグインorg.jvnet.jaxb2.maven2 (maven-jaxb2-plugin)Double.POSITIVE_INFINITY
は、問題のある行に書き込みます。
これは単にサポートされていないのでしょうか? パラメータがありませんか?
java - xjc または jaxb2-maven-plugin または maven: XSD のコンパイル中の奇妙な動作、ファイルの 2 回の処理中に名前が変更されていますか?
問題がどこにあるのかわかりません。私は XJC を疑っていますが、それはjaxb2-maven-plugin
withinによって駆動されているmaven
ため、解凍するレイヤーがいくつかあります。
XSDのフォルダーをコンパイルしていますが、各ファイルを2回処理しているようです.1回は実際のファイル名で、もう1回はわずかに変更されたファイル名です。[ちなみに、これは OSX 上にありますが、大文字と小文字を区別するファイルシステムの問題ではないと思います (後で説明します)。]
の関連部分は次のpom.xml
とおりです。
にsrc/main/resources
は次の XSD が含まれています。
を実行するmaven
と、次のような単一のファイルで失敗します。
最初のエラーのファイル名は存在しないことに注意してください。これは、アンダースコアで区切られた最初の単語が小文字に変換された 2 番目のファイル名 (存在する) と同じです (ただし、2 番目の単語 ,Partial
は変更されないことに注意してください)。
出力を見るとmaven -X
、これを行っているのは XJC 自体であると確信していますが、修正方法をまだ特定できていません。
このプロジェクトは、より大きなプロジェクトのサブプロジェクトであることに注意してください。ただしmaven
、それは関係ないと思います。maven
親プロジェクトの私のコマンド ラインは次のとおりmvn -X -U install -pl onebusaway-nyc-tcip-api
です。(onebusaway-nyc-tcip-api
はこのサブプロジェクトです。)
jaxb2 - JAXB カスタムバインディングを使用して、生成された Java オブジェクトのフィールド名をカスタマイズする方法は?
以下のサンプル xsd の JAXB 生成オブジェクトを生成しようとしています。
カスタムバインディングなしで生成されるクラスは
ご覧のとおり、フィールド名は「usa」で、セッター/ゲッターは getUSA/setUSA です。
フィールド名を「usa」ではなく「USA」として生成するカスタム設定/バインディングはありますか?そのようにして、フィールドとプロパティはすべて「USA」になります。
How to Customize property name in JAXB?を参照しました。
しかし、それはフィールドの代わりにプロパティをカスタマイズすることです..どんな助けでも
ちなみにmaven-jaxb2-pluginを使っています
xsd - Jaxb は、インポートされたスキーマから未使用の要素のオブジェクトを生成します
「共通」スキーマのコレクションから 1 つ以上の要素を継承するスキーマがいくつかあります。この特定の例では、これらのスキーマの 1 つをインポートして、その中で定義された単一の複合型を利用しています。
スキーマから Java オブジェクトを生成すると、スキーマ タイプと参照した要素が期待どおりに取得されますが、共通スキーマから30 以上の他のタイプに対して生成されたオブジェクトも取得されます。
共通スキーマが変更されたときにスキーマを更新するために自動ビルドに依存したいので、共通スキーマを使用したいのですが、余分な Java クラスを生成したくありません。
提案?
java - org.codehaus.mojo:jaxb2-maven-plugin 2.0 はどこにありますか?
現在、Codehaus ( ) によって開発されたJAXB-2 Maven プラグインjaxb2-maven-plugin
を使用して、XSD から Java クラスを生成しています。
サイトには、プラグインがバージョン 2.0 (最終公開: 2015-02-09) であることが記載されています。ただし、Maven リポジトリでこのプラグインを見つけることができません。
- http://mvnrepository.com/artifact/org.codehaus.mojo/jaxb2-maven-pluginはまだバージョン 1.6 です
- http://search.maven.org/#search|gav|1|g%3A%22org.codehaus.mojo%22%20AND%20a%3A%22jaxb2-maven-plugin%22もバージョン 1.6 です
どこで見つけることができますか ?
また、以前のバージョン(1.6)を使ってみましたがxjc
、バージョン2.0のドキュメントに記載されているプロパティがバージョン1.6には存在しないため、ゴールの構成が根本的に変わったようです。
これは 2 番目の質問につながります: バージョン 1.6 のドキュメントはどこにありますか?
maven - generateElementProperty を false に設定しても JAXBElement が生成される
xjc maven プラグインを使用して WSDL で型を生成します。私の構成に続いて:
jaxb_bindings.xjb の内容:
このバインディングを使用して JAXBElement を取り除きましたが、まだ生成されています。設定のどこが間違っているのですか、または JAXBElement を使用せずに WSDL で型を生成する別の方法はありますか?
maven - JAXB を使用して Maven を使用して FpML 5.7 をロードする
FpML 5.7 レコードキーピングの推奨事項から Java ファイルを生成するのに苦労しています。どんな助けでも感謝します。
http://www.stephennimmo.com/generate-Java-objects-for-fpml-using-jaxb-and-maven-the-easy-way/およびFpML 5.3 JAXB Bindingsに従っていますが、次のエラーが発生します。
- 次の理由により、この「キャッチオール」プロパティを取得しています。
- フィールド名「NotionalSchedule」は、スキーマの 2 つの異なる部分で使用されます。見る:
- ファイルの 69 行目:/C:/Projects/TestFpML/src/main/xsd/xml_recordkeeping/fpml-ird-5-7.xsd
- ファイルの 53 行目:/C:/Projects/TestFpML/src/main/xsd/xml_recordkeeping/fpml-ird-5-7.xsd
これが私のbindings.xjbです
そして、これが私のmaven pom.xmlです。
バインディングにも追加しようとし<xjc:simple />
ましたが、役に立ちません。FpML Web サイトの xsd ファイルに重複したオブジェクト定義があることは理解していますが、バインディングを拡張して xsd の信頼性を維持するにはどうすればよいですか。このファイルは市場標準であるため、xsd を変更したくありません。
ご協力いただきありがとうございます。
java - jaxb2-maven-plugin で jaxb:class と annox:annotate を一緒に使用しますか?
で使用するjxb:class
とannox:annotate
、次の例外が発生します。
私はこの構成を使用しました: