問題タブ [xjb]
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 - 同一のxs:simpleContent要素に対して単一のクラスマッピングを作成することは可能ですか?
私は外部から供給されたXSDを持っています。これはすべて同一であり、オプションの通貨属性を持つ価格を表す多くの要素を持っています。
これを多くの静的クラスではなく共通クラスに変換したいのですが、これはXJBマッピングドキュメントで可能ですか?
java - Jaxbとバインディングを使用して、XSDで参照される要素に対して生成された変数の名前を変更します
今日、私には解決できない気が遠くなるような人がいます。説明と例から始めます。
2つのXSDファイルがあります。1つのXSDファイルは、他の要素の1つを参照します。
最初のXSD-ReportInfo.xsd:
2番目のXSD-ReportInfoRecordSet.xsd:
ReportInfoRecordSetは、ReportInfoWrapper(ReportInfoのルート要素)を参照します。ReportInfoRecordSetでこの参照される要素の生成された名前を変更するには、JAXBBindingsファイルで何を定義するかを知る必要があります。これは現在生成されているものです:
質問 どんな助けやアドバイスも大いに感謝するでしょう。ReportInfoの現在のバインディングファイルが破損するため、ReportInfoのルート要素を複雑なタイプにすることはできません。次の表記で変数の名前を定義する方法はありますか?以下のこの例は、何らかの理由で機能しないことに注意してください(ノードターゲティングの問題があると思います)。
ノート
私がここで何をしようとしているのかを簡単に確認する方法は、通常の開発用語で説明できます。
ReportInfoは「クラス」です
ReportInfoRecordSetは、ReportInfoクラスの配列です。
編集
エラーは19行目でXPATHエラー:nullを示してスローされます。19〜21行目は、コードに追加された新しい行です。
編集2
子供を覚えておいてください。XJCを使用するには、XPATHプロセッサに提供する名前空間を再確認する必要があります。node="//*/xs:element[@ref='ReportInfoWrapper']"
どこにあるべきか 間違いを見つけたnode="//*/xsd:element[@ref='ReportInfoWrapper']"
java - JAXB プロパティの順序
XSDファイルがあります。xjc を使用して、そこからクラスを生成します。生成されたクラスの XmlType アノテーションから propOrder 値を変更するにはどうすればよいですか? 私が XSD ファイルの所有者でない限り、XSD ファイルを変更したくありません。また、このスキーマから生成されたクラスを変更したくありません。カスタムバインディングファイル(xjb)でこれを達成する方法はありますか? 問題は、 propOrder 値が私にとって望ましくないことです。最後の解決策として、このクラスに parseMethod/printMethod を使用することを検討しますが、これはややこしすぎます。
私はFpML(XMLベースフォーマット)を扱っています.XSD要素は次のとおりです:
ここにpropOrderがあります:
オブジェクト partyReference と tradeId を設定すると、生成される xml は次のようになります。
次のエラーで XSD 検証に失敗します。
解決策は、tradeId の前に partyReference 要素を配置することです。手動で行うと、すべてが機能します。しかし、生成されたクラスを手動で変更したくありません。スキーマが変更された場合、そのような操作を繰り返さなければならないからです。これは地獄への道です。
1 つの tradeId の名前を変更しようとしたため、2 つのフィールドが存在します。しかし、代わりに 1 つの tradeId フィールドの名前が変更されるだけで、問題は残ります。
xml - JAXB バインディング XPath エラー
JAXB が一連の XSD からクラスを生成するときの衝突を修正しようとしています。XML は次のとおりです。
そして binding.xjb ファイル:
XPath を目的の要素に定義するいくつかの異なる組み合わせを試しましたが、同じエラーが発生し続けます。
答えを探して数時間検索しましたが、ほとんど助けが見つかりませんでした. XPath が有効であることは確かなので、間違った場所にあるというエラー メッセージは意味がありません。また、現時点では 1 つしかないため、「他のバインディング」は意味がありません。
java - complexType を simpleType に変更するためのバインディング ファイルの作成方法
XSDスキーマにフィールドがありました:
Java クラスでは、フィールドが生成されました。
しかし、その後、xsd スキーマは次のように変更されました。
ここで「int_code」:
また、JAXB は次のコードを生成します。
および MagicField.java が追加されています。
しかし、私はまだ必要です
生成されたコードで。
属性「名前」はまったく使用されません。
スキーマを変更できません。バインド ファイル (xjb) のみを使用しています。
「int_code」タイプを再マップし、「magicField」をint
complexType (コード内) ではなく simpleType (コード内)として取得するバインディングを作成するにはどうすればよいmagicField
ですか?
私が理解しているように、バインディング ルールだけでなく、カスタム XmlAdapter も必要です。
前もって感謝します。
jaxb - XPATH の結果、XJB のターゲット ノードが空になる
次の単純な XML スキーマを取得しました...
そして、XJC JAXB コンパイラにヒントを与えて、「Type」のタイプ セーフな列挙型クラスを生成するようにしたいと思います。
しかし、コマンドを実行すると
xjc -d src workOrder.xsd -bcustomizedBindings.xjb
次のエラーが表示されます。
元のXSDを変更せずにこの目標を達成する方法を誰かが助けることができますか?
jaxb - JAXB Simplify プラグインはまだ使用可能ですか?
ここでJAXB Simplify plugin vs *.xjbという質問の解決策を試しました。
しかし、次の例外で失敗しました
" コンパイラは、この simple:as-element-property のカスタマイズを受け入れることができませんでした。間違った場所にアタッチされているか、他のバインディングと矛盾しています。"
これは私が使用したカスタマイズバインディングです
jaxb simple プラグインの合流ページにアクセスできないため、このプラグインを使用した人はいますか?例を教えてください。
これが答えによる私の更新されたスキーマです
「サポートされていないバインディング名前空間」 http://jaxb2-commons.dev.java.net/basic/simplifyのような Maven ビルド中に例外が発生しました。/コードインジェクター「?」