問題タブ [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.
java - jaxb 変換ツール xjc の使用
xjc
コマンドラインから(あなたJAVA_HOME\bin
の中にあるPATH
)実行中com.sun.tools.xjc.Driver
ですか?
つまり
、クラスを実行するのは実行するcom.sun.tools.xjc.Driver
のと同じxjc
ですか?
wsdl - 特定のクラスの JAXB カスタマイズ
WSDL から特定のクラスの 1 つ (またはセット) に JAXB カスタム バインディングを適用することは可能ですか?
私が収集したところによると、globalBidings 要素を調べると、WSDL から生成されたすべてのクラスにカスタマイズが適用されます。カスタマイズが適用されるクラスに名前を付けたいと思います。
そうではなく、言う...
...スーパークラスの範囲を制限する方法はありますか?
java - jaxbがニームスキーマをコンパイルしていません
私は何日もの間、原因が何であるかを理解しようとしています。Augmentation
でAugmentationType
宣言されています./niem/niem-core/2.0/niem-core.xsd
niem xsd ファイルは次の場所にあります。
- https://www.niem.gov/create-iepd/pages/production-releases.aspx
- http://release.niem.gov/niem/2.1/niem-2.1.zip
私の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
:
java - JavaでのtoString()の代替
私が持っているのは、XMLからのマーシャリングされていないJavaオブジェクトです。このマーシャリングされていないオブジェクトの一部は、処理のためにさまざまなクラスに送信されます。マーシャリングされていないオブジェクトの内容をログに記録する必要があります。メソッドを簡単にオーバーライドできますtoString()
が、問題は、この場合、クラスはxjcを使用してビルド時に生成され、再度生成されると削除されるため、これらのクラスのtoString()をオーバーライドできないことです。
内容を印刷するための他の方法を探しています。何か案が ?
java - antでxjcを使用する
antのxjcコンパイラを使おうとしています。正常にビルドされますが、何も生成されません。私のantスクリプトは次のとおりです。
私のbuild.propertiesは次のとおりです。
私はjava1.6を使用しており、jaxb-sjc.jarを使用しています。
java - jaxbのインラインバインディング仕様
このようなもののインラインオプションは何ですか
xjc -d . -b bindings.xjb Derived.xsd
私の bindings.xsd の場所
私がやりたいのは、どこでも NameType の重複を防ぐことだけです.ただし、要件は厳密に内部バインディングです。
Derived.xsd で次のようなものを試しました
しかし、これはうまくいきませんでした。
xml - JAXB を使用してクラスのサブセットをバインドするための XPath を使用したノードの選択
簡単な質問: 文字列「通知」で終わる属性を持つすべての XML ノードを選択するための XPath は何ですか。このスニペットの最初と 3 番目のノード:
詳細な質問:
JAXB とバインドするために、xsd スキーマから複数の complexTypes を選択したいと考えています。これは単一のクラスで機能します: OrderStateChangeNotification
スキーマ スキーマ ファイルからの関連するスニペットを次に示します。
バインディングをすべての通知オブジェクトに適用したい。それらはすべて「通知」で終わります
XPathをから変更しようとしました
に
しかし、うまくいきませんでした。
別のアプローチは、通知オブジェクトのみがこれらを持っていることを知っているので、子「注文概要」と「シリアル番号」を持つすべてのノードを試して選択することです。
更新: @Lee Greco によるソリューションは、必要なノードを正しく選択しますが、残念ながら、継承プラグインは複数のノードと互換性がありません。
私はそれらを別々に列挙するだけになりました。
java - 値をxml属性または要素として処理することは可能ですか?
IHE ITI HL7プロファイルのいくつかを実装しており、JaxBクラスを生成した利用可能なスキーマがあります。最近、スキーマの異なるバージョン間にいくつかの違いがあることを発見しました。特に、一部のXML要素はXML属性になりました。
以前は、typeCode属性はXML要素にマップされていました。以下の例を参照してください。
これで、typecode属性がXML属性にマップされます。以下の例を参照してください。
これらの形式のいずれかで提供されるタイプコードを持つメッセージを処理できる注釈やその他の可能性を使用してクラスを作成する方法はありますか?さらに良いことに、XJCジェネレーターに自動的にそれを実行させる方法はありますか?おそらく何らかのバインディングを使用しますか?
現在、これは@XmlAttributeアノテーションが付いた単なるフィールドです。
java - JAXB および XJC を使用して目的の XML および Java 形式に一致させるために XSD を作成する方法
重複の可能性:
xjc とカスタマイズされたバインディングを使用して XMLElementWrapper アノテーションを生成する方法
この形式のXMLをJAXBで処理できるようにしたいのですが...
上記の XML をこれらの Java クラスにマーシャリングしたいと思います (簡単にするために、getter/setter だけでなく などの修飾子も残しました) public
。protected
現在の XSD 構造の関連部分は、おおよそ次のようになります。
残念ながら、XJCThings
は、処理の Java 部分で本当に不要な場合でもクラスを生成します。だから私の出力はこれです:
この不要なクラスを生成しないように XJC に指示する方法はありますか? または、その世代を回避するために XSD を言い換えることができる方法はありますか? どちらのオプションも私には問題ありません。
@XmlElementWrapper
実際、ここに記載されているように、注釈を生成する必要があると思います。
jaxb - CodeModel における ClassOutline / JClass / CClass の役割は何ですか?
私の質問は、JAXB プラグイン、特に JAXB コードモデルの作成に関するものです。
ClassOutline
(およびその仲間) とJClass
(および仲間) とCClass
(および仲間)の役割は何ですか? 対応するパッケージ内のクラスのリストを見ると、何がニワトリで何がエッグなのか明確ではありません。
私の解釈では、CClass
( CPropertyInfo
、CEnumConstant
、 ...) は XSD の最初のドラフト解析で XJC によって作成されます。次に、いくつかの魔法が起こり、このモデルがJClass
( JFieldVar
、JEnumConstant
、 ...) に変換され、この変換中にカスタマイズが適用されます。その後、プラグインが呼び出されます。ClassOutline
は、これら 2 つのモデル間のブリッジとして使用されます。全体として非常に複雑に見えます。
これらの並列モデルを使用すると、同じ情報をいくつかの方法で導出できると思います。たとえば、クラス フィールド タイプは次のとおりです。
JClass#fields()
→JFieldVar#type
→JType
CClassInfo#getProperties()
→CPropertyInfo#baseType
→JType
上記のモデルのライフサイクルの詳細な説明を探しています。ありがとう。