問題タブ [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.
jaxb - WSDL から *.xjb ファイルを生成するには?
WSDL ファイルがweatherservice.wsdl
あり、 を使用してこの WSDL のバインディングを生成しようとしていxjc
ます。xjc を使用してこれを行うにはどうすればよいですか?
xjc から実行するためのコマンド ライン引数が見つかりませんでした。 xjc -p com -wsdl weatherservice.wsdl
jaxb - バインディングファイル経由の JAXB XmlAdapter
次の XSD を検討してください。
これにより、次の Java クラスが生成されます。
IdAttribute
String ( ) が 1 つしか含まれていないためid
、これらの String を my に直接マップしてFoobarType
、簡単に使用できるようにします。したがって、私は書いたXmlAdapter
:
生成されたクラスを手動で編集してXmlAdapter
、期待どおりに動作することを確認しました (動作します)。
もちろん、コード生成中にこの小さなコード変更を行いたいので、次のバインディング ファイル ( src/main/xjb/bindings.xjb
)を追加しました。
試行 1:
結果
試行 2 (ここから):
結果
いくつかのバリエーションを試しましたが、すべて同様のエラーが発生しました。XmlApender
では、バインディング ファイルを使用してを追加する正しい方法は何ですか?
java - JAXB:complexType が別の XSD によって生成されるバインディング ルールを指定する方法は?
同じメンバーに対して同じ complexType 定義を含む包括的な XSD がいくつかあります。各 XSD には独自の名前空間があります。したがってxjc
、xsds で実行すると、各名前空間で同じ complexType クラスが生成されます。
これは、非常に紛らわしく、処理が複雑になります。XSD の 1 つに対して complexType を生成せず、他の xsd によって既に生成されているクラスを使用するよう XJC に指示するバインディングを作成したいと考えています。
私は成功せずに次のことを試しました:
XJC にSandboxType
、sandboxlist.xsd が実際にはクラスcom.domain.schema.model.v4_0.sandboxinfo.SandboxType
(別の XSD からのもの) である必要があることを伝えたいと考えています。
これの適切な構文は何ですか?
java - Java タグを知らずに JAXB を使用して XML ファイルをアンマーシャリングする
約 950 個の XML ファイルを読み取る必要があり、.xsd ファイルとバインディング .xjb ファイルを使用して生成されたこれらの XML ファイル用の Java クラスがあります。私の問題は、このコードを交換可能にする必要があることです。つまり、異なるタグを持つ異なる XML ファイルを読み取ることができ、これらの値を返すことができる必要があります。method.invoke を使用してすべての get メソッドを呼び出してみましたが、特定の順序で返されません。これは、.csv ファイルに配置するためにこれらの値が必要になるため、役に立ちません。誰かが私がこれを達成するのを手伝ってくれるなら、それは大歓迎です。
java - ArrayOfを生成するcxf wsdl2javaタイプ[]の代わりに
クライアント (Java ファイル) を生成するために、cxf wsdl2java コマンドライン コマンドを使用しています。私のxsdは次のようになります-
生成されたJavaファイルConfirmSMSResults.java
には次のようなものがあります
@XmlElement(required = true)
protected ArrayOfString smsIds;
どこにあるべきかprotected String[] smsIds;
に変換されたファイルでdate
定義されたデータ型にも同様の問題がありました。ただし、外部ファイルを使用し、そこでバインディングを定義することで解決しました。ここで見つけることができます。アレイに関する私の問題に似たものを見つけることができないようです。xsd
XMLGregorianCalendar
xjb
前もって感謝します。
java - バインディングを使用して XmlRootElement アノテーション名を変更する
jax-b プラグインを使用して xsd ファイルを Java オブジェクトに変換しようとしています (このプラグインは xsd ファイルを読み取り、モデルに変換します)。Request および Response スキーマを持つ 2 つの xsd があるためです。
両方のスキーマで、同じルート要素名、つまり XML を持っています。同じ名前を持つことの競合を克服するためにバインドファイルを作成する代わりに、両方の xsd で異なる名前を使用することを誰かが提案しました。
変更を適用しました。ただし、jax-b がマーシャリングとアンマーシャリングを行うと、指定した新しい名前に変換されます。
例:
リクエスト
応答
Jax-b プラグインによって、私が作成されます。
マーシャリング
しかし、私の要求は
解決策を提案してください。オブジェクトの作成中にバインドを使用できますか? 手動で rootElement 名を XML に変更したくない
返信してください
jaxb - xjc を介して @XmlElement として生成されたときに XSD 要素名の大文字と小文字を変更するにはどうすればよいですか
要素名が PascalCase で定義されているスキーマがあります。
しかし、私はこれを次のように生成したいと思います:
これは少し奇妙に聞こえるかもしれませんが、Jackson JAXB 注釈サポートを使用して JSON を camelCase で生成できるようになります。
これは可能ですか?