問題タブ [xjc]

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

java - jaxb 変換ツール xjc の使用

xjcコマンドラインから(あなたJAVA_HOME\binの中にあるPATH)実行中com.sun.tools.xjc.Driverですか?
つまり
、クラスを実行するのは実行するcom.sun.tools.xjc.Driverのと同じxjcですか?

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

wsdl - 特定のクラスの JAXB カスタマイズ

WSDL から特定のクラスの 1 つ (またはセット) に JAXB カスタム バインディングを適用することは可能ですか?

私が収集したところによると、globalBidings 要素を調べると、WSDL から生成されたすべてのクラスにカスタマイズが適用されます。カスタマイズが適用されるクラスに名前を付けたいと思います。

そうではなく、言う...

...スーパークラスの範囲を制限する方法はありますか?

0 投票する
3 に答える
1808 参照

java - jaxbがニームスキーマをコンパイルしていません

私は何日もの間、原因が何であるかを理解しようとしています。AugmentationAugmentationType宣言されています./niem/niem-core/2.0/niem-core.xsd

niem xsd ファイルは次の場所にあります。

私のTest.javaファイルはこれで失敗します:

jaxb 実装に組み込まれた JDK6 を使用して、それを java.net にある最新の jaxb 実装でオーバーライドしようとしました (そして、API jar を jre/lib/endorsed に配置しました)。

2007 年の古いフォーラム メッセージで、同様のエラーが表示されているのを見つけました。そのスレッドの xml ビットを表示するには、browser-view-source を実行する必要があります。これについてあらゆる種類のバリエーションを試し、現在のニーム スキーマに合わせて調整しましたが、意味がわかりません。

これは jaxb xjc コンパイラのバグですか、それとも niem スキーマ ファイルのバグですか? どうやら XMLSpy でコンパイルできるようですが、できれば xjc/jaxb を使い続けたい...

私は次のようにxmlファイルをコンパイルしています:

bindings.xml:

0 投票する
4 に答える
2775 参照

java - JavaでのtoString()の代替

私が持っているのは、XMLからのマーシャリングされていないJavaオブジェクトです。このマーシャリングされていないオブジェクトの一部は、処理のためにさまざまなクラスに送信されます。マーシャリングされていないオブジェクトの内容をログに記録する必要があります。メソッドを簡単にオーバーライドできますtoString()が、問題は、この場合、クラスはxjcを使用してビルド時に生成され、再度生成されると削除されるため、これらのクラスのtoString()をオーバーライドできないことです。

内容を印刷するための他の方法を探しています。何か案が ?

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

java - antでxjcを使用する

antのxjcコンパイラを使おうとしています。正常にビルドされますが、何も生成されません。私のantスクリプトは次のとおりです。

私のbuild.propertiesは次のとおりです。

私はjava1.6を使用しており、jaxb-sjc.jarを使用しています。

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

java - jaxbのインラインバインディング仕様

このようなもののインラインオプションは何ですか

xjc -d . -b bindings.xjb Derived.xsd

私の bindings.xsd の場所

私がやりたいのは、どこでも NameType の重複を防ぐことだけです.ただし、要件は厳密に内部バインディングです。

Derived.xsd で次のようなものを試しました

しかし、これはうまくいきませんでした。

0 投票する
3 に答える
13523 参照

xml - JAXB を使用してクラスのサブセットをバインドするための XPath を使用したノードの選択

簡単な質問: 文字列「通知」で終わる属性を持つすべての XML ノードを選択するための XPath は何ですか。このスニペットの最初と 3 番目のノード:

詳細な質問:

JAXB とバインドするために、xsd スキーマから複数の complexTypes を選択したいと考えています。これは単一のクラスで機能します: OrderStateChangeNotification

スキーマ スキーマ ファイルからの関連するスニペットを次に示します。

バインディングをすべての通知オブジェクトに適用したい。それらはすべて「通知」で終わります

XPathをから変更しようとしました

しかし、うまくいきませんでした。

別のアプローチは、通知オブジェクトのみがこれらを持っていることを知っているので、子「注文概要」と「シリアル番号」を持つすべてのノードを試して選択することです。

更新: @Lee Greco によるソリューションは、必要なノードを正しく選択しますが、残念ながら、継承プラグインは複数のノードと互換性がありません。

私はそれらを別々に列挙するだけになりました。

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

java - 値をxml属性または要素として処理することは可能ですか?

IHE ITI HL7プロファイルのいくつかを実装しており、JaxBクラスを生成した利用可能なスキーマがあります。最近、スキーマの異なるバージョン間にいくつかの違いがあることを発見しました。特に、一部のXML要素はXML属性になりました。

以前は、typeCode属性はXML要素にマップされていました。以下の例を参照してください。

これで、typecode属性がXML属性にマップされます。以下の例を参照してください。

これらの形式のいずれかで提供されるタイプコードを持つメッセージを処理できる注釈やその他の可能性を使用してクラスを作成する方法はありますか?さらに良いことに、XJCジェネレーターに自動的にそれを実行させる方法はありますか?おそらく何らかのバインディングを使用しますか?

現在、これは@XmlAttributeアノテーションが付いた単なるフィールドです。

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

java - JAXB および XJC を使用して目的の XML および Java 形式に一致させるために XSD を作成する方法

重複の可能性:
xjc とカスタマイズされたバインディングを使用して XMLElementWrapper アノテーションを生成する方法

この形式のXMLをJAXBで処理できるようにしたいのですが...

上記の XML をこれらの Java クラスにマーシャリングしたいと思います (簡単にするために、getter/setter だけでなく などの修飾子も残しました) publicprotected

現在の XSD 構造の関連部分は、おおよそ次のようになります。

残念ながら、XJCThingsは、処理の Java 部分で本当に不要な場合でもクラスを生成します。だから私の出力はこれです:

この不要なクラスを生成しないように XJC に指示する方法はありますか? または、その世代を回避するために XSD を言い換えることができる方法はありますか? どちらのオプションも私には問題ありません。

@XmlElementWrapper実際、ここに記載されているように、注釈を生成する必要があると思います。

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

jaxb - CodeModel における ClassOutline / JClass / CClass の役割は何ですか?

私の質問は、JAXB プラグイン、特に JAXB コードモデルの作成に関するものです。

ClassOutline(およびその仲間) とJClass(および仲間) とCClass(および仲間)の役割は何ですか? 対応するパッケージ内のクラスのリストを見ると、何がニワトリで何がエッグなのか明確ではありません。

私の解釈では、CClass( CPropertyInfoCEnumConstant、 ...) は XSD の最初のドラフト解析で XJC によって作成されます。次に、いくつかの魔法が起こり、このモデルがJClass( JFieldVarJEnumConstant、 ...) に変換され、この変換中にカスタマイズが適用されます。その後、プラグインが呼び出されます。ClassOutlineは、これら 2 つのモデル間のブリッジとして使用されます。全体として非常に複雑に見えます。

これらの並列モデルを使用すると、同じ情報をいくつかの方法で導出できると思います。たとえば、クラス フィールド タイプは次のとおりです。

  • JClass#fields()JFieldVar#typeJType
  • CClassInfo#getProperties()CPropertyInfo#baseTypeJType

上記のモデルのライフサイクルの詳細な説明を探しています。ありがとう。