問題タブ [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 - JAXB2 の基本 Mergeable プラグイン: カスタムの Merge Strategy の設定
次のように、ant スクリプトで JAXB2 Basics 'Mergeable' プラグインを正常にアクティブ化しました。
それは機能しており、生成されたクラスに「MergeFrom」インターフェースを正しく追加しています。
私の問題は、'mergeStrategyClass' 引数を使用してカスタム マージ戦略を指定しようとするたびに、'MergeFrom' インターフェイスが生成されたクラスから完全に消えてしまうことです。私が使用している構文は次のとおりです。
これは、JAXB2 Basics Web サイトの例から直接引用したものです。(意図的にクラスのスペルを間違えると、ClassNotFoundExceptionが発生するため、クラスパスは問題ないようです)
Ant ビルドによってスローされるエラーはなく、欠落しているインターフェイスを除いて、クラスは正常に生成されます。
java - XSD 記述を組み合わせる
2 つの XSD を 1 つに結合するにはどうすればよいですか? xjc を使用して、最終的な XSD から Java クラスを生成したいと考えています。
私が持っている 2 つの XSD:
http://www.topografix.com/GPX/1/0/gpx.xsd
http://www.groundspeak.com/cache/1/0/1/cache.xsd
両方を組み合わせた既存の XML ドキュメント:
http://www.cachewiki.de/wiki/GPX#Geocaching.com
java - xjc で xsd からクラスを生成する
xsd からクラスを生成しようとしましたが、2 行目で問題が発生しました
...
私はこのエラーを受け取りました:
[エラー] プロローグではコンテンツを使用できません。xjc はスキーマに問題があるようです
このxsdにはインポートがあり、このインポートには別のインポートがあります...したがって、xjcがそれを管理できる場合、エラーがいつ削除されるかわかりません...
java - xs:import を経由しないように xjc に通知するにはどうすればよいですか?
xjc ant タスクを使用して、xsd から Java クラスを作成したいと考えています。ほとんどは正常に動作します。通過しない必要があり、すでにマッピングが行われているためです。ここにxsdがあります:
xjc はすべてのインポートを通過し、バインディング クラスを作成します。しかし、私はすでにそれらを持っています。では、クラスパスで既に作成されたバインディングを使用するよう xjc に通知するにはどうすればよいでしょうか? xades の実装には、xades4jライブラリを使用します
ありがとう、
ヴィドマンタス
jaxb - JAXB (jaxb2-maven-plugin) がこの属性をスキップするのはなぜですか?
jaxb2-maven-plugin 1.3
オブジェクトから属性をスキップします。を変更できませんXSD
。(XSD
フラグメント)で:
結果Java Object
(フラグメント):
attA
メンバーを生成していないのはなぜ ですか?
インライン列挙が原因である可能性がありますか?
ありがとうございました。
うど。
java - バインディング内のJAXB空のノード
JAXB
この例のバインディングを解析できません:
そしてbindings.xml
(フラグメント):
Javaファイルを生成するときのエラーは次のとおりです。
私が見落としているものは?
ありがとうございました。
宇土。
java - 外部バインディングファイルを使用して JAXB のデフォルト名をオーバーライドする方法は?
このような要素があります。
この要素用に作成されるデフォルトのコードは次のとおりです。
私 の質問は.xjb
、デフォルトで生成された名前 navmapOrKeymapOrContainer
を children
.
java - Ant を使用した JAXB: XJCTask を尊重させる方法
いくつかの共通部分を含むさまざまなスキーマ ファイルで Jaxb を使用しています。これを構築するために、JAXB ディストリビューションの Ant XJCTask を使用しています。
しかし、実行中の ant -verbose を見ることができるように、どうやら依存は影響を与えません:
ant でインクルードの依存関係を適切に追跡する方法はありますか。必要な場合にのみバインディングを再コンパイルしたいのですが、インクルードの 1 つが変更された場合は必ず再コンパイルしたいと考えています。(これは現在機能していないものです)。
java - どうやって分けるのサブ要素を JAXB を使用して個々の Collection プロパティに変換しますか?
ベンダーからの次のXSD
フラグメントがありますが、指定方法を変更できません。
現在、カスタマイズなしで次のコードが生成されます
以下のように、タイプごとに個別のリストを生成したいと思います
.xjb
ファイル全体の名前を変更する次のファイルがありますが、List
それらを分割する方法がわかりません。
外部バインディング ファイル内の個別のタイプList
またはSet
タイプごとのタイプを指定するにはどうすればよいですか?.xjb
<jaxb:annotation/>
それができない場合、.xsd
ファイルに を追加して、個別のList
またはSet
タイプごとに指定するにはどうすればよいですか?
この特定のケースでは、順序は重要ではありません。
注: 私は外部.xjb
ソリューションを好みます。ベンダーが提供するすべての新しいバージョンに対してカスタム .xsd を比較する必要はありません。それらの数が多すぎます。
java - XJC 出力からの @XmlSeeAlso の省略
現在、私は XML メッセージングを使用するプロジェクトで忙しくしています。抽象型といくつかの再利用可能な型定義と要素を含む 1 つの一般的なスキーマがあります。私が扱っているメッセージの種類ごとに、一般的なものをインポートする個別のスキーマ (異なるターゲット名前空間を持つ) があります。つまり、2 レベルの階層です。ものすごく単純。
これらの各スキーマは、Java クラスの生成に使用されます。各スキーマは 1 つのパッケージに対応します。コード生成は、Maven JAXB 2.1 プラグインによって処理されます。コードを使用するときは、JAXBContext
メッセージの種類ごとに個別に作成します。はJAXBContext
、一般的なスキーマのパッケージ名と特定のメッセージ タイプのパッケージ名を使用して作成されるため、コンテキストは、処理する必要があるクラスのみを参照する必要があります。
驚いたことに、XML ドキュメントを Bean に非整列化してから XML に再整列化すると、すべてのメッセージ タイプ (スキーマ ターゲット名前空間) ごとに名前空間宣言があることに気付きました。コンテキスト スコープにもかかわらず、JAXB がその情報をどのように取得したのか疑問に思っていたところ、いくつかの@XmlSeeAlso
注釈がいくつかの抽象クラス定義に配置されていることがわかりました。これにより、JAXB はターゲット パッケージの外部にあるクラスに関する情報を探します。
@XmlSeeAlso
注釈の生成を回避する方法はありますか? ここを見回すと、これが JAXB 2.1 の新機能であることがわかりました。2.0 用の XJC プラグインに切り替えることもできますが、これが望ましくない副作用をもたらすかどうかはわかりません。さらに、今後も新しい JAXB リリースをフォローし続けたいと考えています。不要な名前空間宣言は問題ではありません (XML は引き続き有効です) が、メッセージ タイプが追加されると混乱を招きます。また、これにより、JAXB コンテキストが思ったよりも多くのクラスをロードし、基本的に互いに重複していることが明らかになりました。すべてを網羅する 1 つのコンテキストを使用することもできますが、この分離に基づいて独自の API を構築しました。
読んでくれてありがとう。