問題タブ [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 - maxOccurs が 5000 を超えると jaxb2-maven-plugin が例外をスローする
レガシー xsd で jaxb2-maven-plugin を実行すると、次の例外がスローされます。
パーサーの現在の構成では、maxOccurs 属性値を 5,000 より大きく設定することはできません
このエラーをグーグルで検索すると、これがセキュリティ上の目的で jaxp に設定された制限であることがわかります。このようなコードで無効にすることができます
しかし、私はmavenでこれを行う必要があります。また、xjc には、この検証をオフにする -nv スイッチがあり、それが進むべき道のようです。xsd を変更できません。
jaxb2-maven-plugin で -nv スイッチを渡す構文は何ですか?
java - jaxb2-maven-plugin と JUnit4 の統合
一部のデータをマーシャリング/アンマーシャリングするために、単純な JUnit テストを実行しようとしています。
「データ」の定義は次のとおりです。
アプリケーションは正常に動作します (このオブジェクトを XML としてマーシャリング/アンマーシャリングできます)
しかし、テストを実行すると、次のエラーが発生します (テストのコードはアプリケーションのコードとまったく同じです)。
アプリケーションが機能するのにテストが機能しない理由がわかりません。Mavenで定義されたプラグインのスコープについて何かがあると思います。ここに私の pom.xml があります:
java - 新しいクラス名への複合型の JAXB バインディング
maven-jaxb2-plugin を介して、以下を新しいクラス名にマップしようとしています。
プロジェクト内の 2 つの XSD (異なる名前空間) に存在するこの要素があります。
このインスタンスを別のクラス名にマップして、コンパイルできるようにしたいと考えています。
私が持っている bindings.xjb は...
私が得るエラーはこれです...
内部要素 BusinessError を ResponseCommonData から削除すると、JAXB は処理を続行しますが、別の複合型クラスに関する同様のメッセージが表示されます。
maven - pom.xml 内から -D 引数を設定する一般的な方法はありますか?
tl;dr:-D
では、システム プロパティの定義を移動して、pom.xml
ファイル内に内部化する方法はありますか?
現在、ビルドが機能するように-Djavax.xml.accessExternalSchema=all
コマンドラインから渡しています。プラグイン ( jaxb2-maven-pluginmvn clean install -Djavax.xml.accessExternalSchema=all
1.6)でオプションを渡すことができません。これは、使用しているバージョンがこれをサポートしておらず、サポートしているバージョンでは構成を完全に変更する必要があり、承認を得られないためです。
タグの下に追加することにより、他の場所で提案されている<properties>
ように、タグを使用する値を設定しようとしています:<project>
しかし、コマンドラインで渡してもエラーは発生しませんが(以下に再現)、エラーが発生します。
xml - SchemaGen で xsd を生成するときに jaxb2-maven-plugin を使用してスキーマのバージョンを設定する方法は?
これは私のプラグインです:
そして、これはルート要素です:
Maven を実行すると、次の xsd が生成されます。
それはうまく機能しますが、今はスキーマのバージョンを設定したいと思います:
どうやってやるの?
java - コンソールで問題を報告するための jaxb2-maven-plugin
Java クラスから XSD を生成するために jaxb2-maven-plugin (schemagen) を実行する Maven ベースのビルド スクリプトがあります。私は何か間違ったことをしましたが、それは生成されません。
プロジェクトは非常に複雑で、コンソールで正確なコマンド ラインを再作成することは困難です。
私の.pomファイルには、
コンソールでエラーの原因を表示するために schemagen / plugin をコマンドするために使用できるオプションは何ですか?
java - JAXB2 が、タイプが重複する 2 つの WSDL からソースを生成できない
JAXB2 2.2 を使用して WSDL ファイルからソースを生成しようとしています。WSDL ファイルはサードパーティから提供され、その WSDL に固有のタイプに加えて、同じ共通のタイプをすべて定義しています。ソース フォルダーに WSDL が 1 つしかない場合 (A.wsdl と呼びましょう)、すべてがうまく機能し、生成されたソースは次のようになります。
A.java
X.java
Y.java
出力ディレクトリをクリアして B.wsdl のみで生成すると、
B.java
X.java
Y.java
両方の WSDL をソースに入れて取得できるようにしたい
A.java
B.java
X.java
Y.java
wsdl X と Y がどちらから来ているかは気にしません。それらはすべて同一です。現在、JAXB2 は何もスローorg.xml.sax.SAXParseException: 'X' is already defined
して生成しません。ヘルプ出力を調べましたが、役立つと思われる構成オプションが見つかりませんでした。
java - 重複するクラス エントリを持つ複数の xsd スキーマを使用してクラスを生成する
複数の/共通の重複する xs:element / class エントリを含む複数の xsd スキーマ ファイルがあります。pom.xml の次の行を使用してクラスに変換してみました
execution
タグを1 つだけ使用して実行しているときに、クラスを正常に取得しています。しかし、2 つ以上のスキーマまたはexecution
タグを含めると、最後のスキーマ「schema2」に対して作成されたクラスしか表示されず、「schema1」に対して作成されたクラスは表示されません。
コマンド ライン ログで実行すると、両方のスキーマに対してクラスが生成されていることがわかります。しかし、その結果、古いパッケージが削除され、再作成されます。基本的に、最後のスキーマのみのクラスしかなく、他のスキーマのクラスはありません。
どうすれば解決できますか?
java - JAXB schemagen がエピソード ファイルのクラスを参照しない
私は実際にはスキーマファーストのアプローチを使用していますが、「不吉な」JAXBマップの問題で障害にぶつかりました! これをコードファーストのアプローチに切り替えることで回避しました。ここで、このタイプを他のモジュールで再利用し、生成されたスキーマからエピソード ファイルを作成することで、スキーマ ファーストのアプローチを継続したいと考えています。残念ながら、生成されたエピソード ファイルは空です。これが私が試したものです:
これにより、次のスキーマが生成されました。
そして、このコンテンツを含むエピソード ファイル:
同様の結果で schemagen スタンドアロン (バージョン 2.2.11) を使用しようとしました。https://jaxb.java.net/2.2.4/docs/schemagen.htmlおよびhttp://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/schemagen-mojo.htmlのドキュメントこれがそれであることを示す縫い目ですが、何が間違っているのかわかりません。