問題タブ [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.
jaxb - 別々のWSDLファイルが同じオブジェクトクラスを参照していることをwsimportに伝えるにはどうすればよいですか?
サーバー上で同じクラスを使用する3つの異なるJAX-WSサービスがあります(たとえば、、、ServiceA
およびServiceB
、ServiceC
すべてがMyCommonClass
パラメーターとして使用されます)。私たちが開発している別のモジュールはwsimport
、これらのサービスのクライアントを作成するために使用していますが、問題は、wsimportがMyCommonClass
サービスごとに個別のインスタンスを作成することです。
com.company.servicea.endpoint.MyCommonClass
com.company.serviceb.endpoint.MyCommonClass
- 等
このオプションを使用してエンドポイントごとに共通のパッケージを指定できることはわかっていwsimport -p
ますが、ほとんどのクラスを別々のパッケージに保持したいのですが、特定の共通のパッケージを共有するだけです。私が読んだことから、JAXBバインディングファイルが役立つかもしれないように思えますが、望ましい結果を達成するための正確な構文はまだわかりません。サービスごとに個別のバインディングファイルが必要になると思います(各サービスに対してwsimportを1回呼び出すため)。これは次のようになります。
私は正しい方向に進んでいますか?または、問題に対する代替の解決策はありますか?
xsd - w3cサーバーをオフロードするためにxsdsをキャッシュする方法は?
SAML-P および XACML に基づいて Web サービスを構築しています。これには、ビルドごとに JAX-B/XJC が多数の XSD を考慮する必要があります。これには永遠に時間がかかり、非常に信頼性がありません.W3Cがサーバーの負荷を軽減するためにXSDリクエストを調整しているためだと思います(ブログ投稿に基づく)。
さらに悪いことに、一部の W3C XSD には明らかなタイプミスが含まれているため、これらをダウンロードしてパッチを適用し、参照ファイルの schemaLocation を編集してローカル コピーをロードする必要があります。主要な SAML-P スキーマの 1 つにこの問題があります (二重の >> と大幅に間違ったインポート アドレス)。
Eclipse (または JAX-B、または何か他のもの; 何がこれを解決するかわからない; おそらく Xerces?) に XSD のキャッシュを保持させ、ビルドの http:// refs にこれらを置き換える方法があると思います (おそらくシステム全体)。しかし、これを実行可能なレシピまで追跡することはできませんでした. 誰か助けてくれませんか?ありがとう!
jaxb - XJC:パブリックフィールドを使用してクラスを作成する
XJCを使用してXMLスキーマファイルからJavaクラスを作成しています。
作成されたクラスのフィールドは保護されていますが、以前は問題ありませんでした。しかし今、私はいくつかのTomcat-BlazeDS-Flash-Java-Serializingを行っており、生成されたクラスのフィールドをパブリックにする必要があります。
XJCはまさにそれを行うように構成できますか?
ant - 生成された JAXB ファイルから名前空間を削除するにはどうすればよいですか?
これが私のコードです:
xsdファイル:
Build.xml:
binding.xml:
そして最終的に:
JAXBContext context = JAXBContext.newInstance(Player.class,ObjectFactory.class);
Unmarshaller decodeur = context.createUnmarshaller();
@XMLRootElementを持つために「xjc:simple」を追加しましたが、例外が発生しました: javax.xml.bind.UnmarshalException:予期しない要素 (uri:"http://www.example.org/Player"
@XmlRootElement(name = "Player", namespace = "http://www.example.org/Player" )を取得したため、正しく機能しませんでした。
代わりに: @XmlRootElement(name = "Player")
この「名前空間」を削除するにはどうすればよいですか?
ありがとう
jaxb - xjcでJava命名規則を無効にする方法は?
たとえば、xsdのsOmE_PROPertyは、somePropertyではなくJavaクラスのsOmE_PROPertyである必要があります。
globalBindings enableJavaNamingConventions = "false"を使用しようとしましたが、機能しません。
xml - xjc問題を介してxsdから作成するJavaクラス
私はVSでxsdファイルを作成してうまく動作させました。しかし、これに対応する Java クラスを作成する必要があります。JDK 1.6 の標準 xjc ツールを使用しようとしましたが、エラー [ERROR] ct-props-correct.4: Error for type '#AnonType_BathRoomApartmentType'. が表示されます。同じ名前とターゲット名前空間を持つ重複した属性の使用が指定されています。重複属性の使用の名前は「変更済み」です。ファイルの 314 行目:/C:/Program%20Files/Java/jdk1.6.0_24/bin/temp/LogicalModelSch ema.xsd
Eclipseでこのxsdから問題なくXMLファイルを生成できたと思っていました。
誰かがこれを処理する方法を提案してもらえますか? フォーラムを見ましたが、今のところ解決策が見つかりません!
前もってありがとう、ミラ
java - JAXB/XJC親-子-親ナビゲーション
子オブジェクトと親オブジェクトの間のクラスに双方向のナビゲーションメソッドが必要です。親のleidを指定したくないので、私の場合はIDREFでは不十分です。明確にするために、そのようなxsdから:
クラスは次のようになります。
私のxmlは次のようになっている必要があります:
元帥を解除した後、AからBに、そしてBからAに(b.getA()を介して)ナビゲートできるようにしたいと思います!! これは非常に基本的な機能ですが、それを実現する簡単な方法が見つかりません...
何か案が ??
前もって感謝します
java - JAXB classImplバインディング(生成されたimplを拡張する特定のimplを使用するため)が、getterはスーパータイプを返します
生成されたクラスをラップするには、classImplバインディングを使用しますが、生成されたクラスのコレクションは、classImplのタイプではなく、生成されたタイプを返します。もちろん、classImplのリストが必要です...
私のxsd:
生成されるクラスは次のとおりです。
予想通り、singleBはBWrapperと入力されているので、なぜlistBがBWrapperのリストではなくBのリストであるのですか?
よろしくお願いします!!
ant - 複数の XSD と単一の XJB での ANT の使用
次のようにスキーマ名を含むカスタム外部 XJB ファイルがあります。
jxb:bindings schemaLocation="completeCheck.xsd" node="/xs:schema"
ANTを使用して(ANT XJCを使用して)XJBファイル内で実行時にスキーマ名を置き換える方法があるか、スキーマ名をハードコードする必要がないようにxjbバインディングファイルを作成する方法はありますか?基本的に、単一の xjb ファイルを複数の XSD に使用できるかどうかを確認しようとしています。
現在、同じ xjb ファイルがいたるところにあり、build.xml のいたるところで異なるハードコーディングされたスキーマ名が参照されています。どんな指針も高く評価されます。JAXB 2.x を使用しています
binding - 内部クラスの作成または xs:element の getter/setter を強制するカスタム バインディング
サードパーティ プロバイダーから次のようなスキーマ宣言があります。
上記は変更できないスキーマです。JavaコードでGroupParameterType.NameまたはGroupParameterType.Valueとして名前を参照できるように、jaxb 2.0のカスタムバインディングを作成しようとしています。
現在のデフォルト バインディングは、getNameandValueList などのリストを生成しますが、名前と値にそれぞれ個別のゲッターとセッターが必要です。
次のようなカスタムバインディングを入れてみました:
デフォルトのクラス生成を変更することは何もしませんでした。他に何を試すことができるので、誰かが私にいくつかの指針を与えることができますか? 名前と値のゲッター/セッターと一緒にデフォルトのリスト生成を行うか、名前と値を内部クラスとして持つことを探しています。maxOccurs=4 オプションを削除すると、ゲッター/セッターを生成できますが、スキーマを変更できないため、外部バインディング ファイルを使用してその動作を取得しようとしています。
ありがとう