問題タブ [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.
types - JAXB: XSDで属性タイプが指定されている場合、XJCで生成されたクラス名を変更するにはどうすればよいですか?
私は JAXB の初心者で、xjc を使用して Java クラスを生成するときに厄介な問題が発生しています。次のような XSD が提供されます。
xjc は という名前のクラスを生成してItemType.java
いますが、名前を にしたいのですItem.java
。つまり、XSD が次のようなものであるかのように、生成されたクラスが必要です。
他の要素で itemType を再利用することはありません。XSD を構築する人々がこのように気に入っているだけです。カスタムバインディングでそれを行う方法があるかもしれないと思いますが、まだ方法が見つかりません.
何か助けはありますか?
ありがとう、ミゲル
java - 内部クラスを作成するJAXBリストタグ
したがって、次の形式の XSD タイプがあります。
XML を表すには:
xjc はほぼ正しい結果を生成します。唯一厄介なのは、「Bars」が Bars のリストを格納する内部クラスとして作成されることです。上記のXMLを保持しながら、バーをFooのリストにする方法はありますか?
java - jaxb-xjc で追加のカスタム メソッドを生成する
JAXB で生成されたクラス内でカスタム メソッドを生成する方法がいくつかあります。
オラクルのチュートリアルを含むチュートリアルを検索しましたが、XML スキーマで説明されている生成されたクラスにメソッドをカスタマイズする方法についての明確な指示が見つかりませんでした。
xsd - XJC 同じクラスを生成する
2 つの異なる XSD で JAXB を使用しています。生成されたクラスのいくつかは同じように見えます。これは珍しいことですか? クラスをソース パッケージ構造にコピーするときは、重複したクラスをコピーするだけでよいのでしょうか? または、重複したクラスをコピー/生成しないというフラグを付けて xjc を実行することは可能ですか?
java - JAXB XJC 生成されたクラスでコメントの作成を抑制することは可能ですか?
このプロジェクトでは、XJC を使用して XSD から Java クラスを生成します。JAVA EE 6 を使用しています。
すべての XSD が再生成されると、生成されたクラスのファイルの先頭に次のコメントが含まれます。
このコメントを非表示にすることはできますか? その理由は、バージョン管理に SVN を使用しているためです。クラスを再生成するたびに、すべてのファイルが SVN で変更されたものとして表示されますが、唯一の違いはこのコメントです。できればコメントを完全に削除したいと思います。
ディレクティブはありますが、-no-header
ヘッダー全体を削除したくないので、将来の世代はそれがツールから生成されたファイルであり、変更が上書きされることがわかります。タイムスタンプのみを削除したい。(または、組み込みのヘッダーを削除してから、何らかの方法で独自のヘッダーを挿入します。)
java - 要素参照を含むJAXB複数スキーマ
JAXBを使用して処理される2つのスキーマがあります。最初のスキーマは前処理され、この情報はエピソードファイル( http://www.java.net/blog/2006/09/05/separate-compilation-jaxb-ri-21に続く)を使用して使用されます。2番目のスキーマは最初のスキーマをインポートし、再びjaxbを使用して処理されます。これはすべて期待どおりに機能します。
しかし今、私は最初のスキーマに要素を持っています。これは、参照を使用して2番目のスキーマで使用されます。
スキーマa:
スキーマb:
処理中は何も問題はありませんが、両方のスキーマに対して生成されたコードは同じメソッドを提供します。
実行時に、これにより次のエラーが発生します。
JAXBが重複するcreateTypeメソッドを作成しないようにするにはどうすればよいですか?
前もって感謝します!
更新:JAXBメーリングリストでこれと同じ質問をしました。そのリストに実際の例も投稿しました。スレッドと例は次の場所にあります:http://java.net/projects/jaxb/lists/users/archive/2011-03/message/18
このリストでは、回避策が提案されており、スキーマを好きなように使用できるようになりました。ただし、JAXBは、エピソードファイルにすでに存在しているはずなので、追加の「create」メソッドを作成するべきではないと思います。
java - XJCを使用したJAXBコード生成中にトップレベルのクラス名の名前を変更するにはどうすればよいですか?
いくつかのxsdからいくつかのBeanを生成しようとしています。残念ながら、それらはすべて同じルート要素を持っています。サブ要素の名前を変更するためのxjcバインディングファイルを正常に作成しましたが、ルートノードを選択してそれを変更する方法が見つかりません。
次のことを試しましたが、エラーが発生しました。[ERROR] "/"のXPath評価では、要素を生成する必要があります。
jaxb - XJCは別のフィールドタイプを生成します(getメソッドへの影響)
最新のJAXB(Metro)を使用し、XJCでJavaを生成しています...。
(他のユーザーが求めているように)無制限のシーケンスを表すフィールドのタイプとしてjava.util.Setを生成したい。そのタイプのフィールドはXJCによってUntypedListFieldとしてキャプチャされ、デフォルトの動作はjava.util.List(ゲッターのみ)を生成するように見えます。collection-setter-injectorプラグインと同様のことを行い、フィールドのタイプを次のように調整する場合
人々はどのように型を調整しますか、または新しいフィールドを構築して、クラスのアウトラインで宣言されたフィールドのセットでそれを置き換えるのは簡単ですか?フィールドのタイプをいじると、プロパティのgetメソッドの生成にどのように影響しますか?
java - JAXB バインディング ファイル: XmlAdapters とパッケージ名
このようなバインディングファイルがあります
スキーマ クラスは "example" で生成されますが (正しい)、XmlAdapters は "org.w3._2001.xmlschema" で生成されます (誤り)。どうすればこれを修正できますか?
java - XML スキーマのクラスのアクセス修飾子を変更する方法
私は XML スキーマ ファイルを作成しており、そこからクラスを生成しています。生成されたクラスは常に public です。私が望むのは、クラスをパッケージのみで表示できるようにすることです。これは可能ですか?はいの場合、ヒントを教えてください。
ありがとうございました!