問題タブ [xmlbeans]
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.
xml - JavaでXMLスキーマからXMLを生成し、データをフィードする方法は?
XML スキーマを入力として XML ファイルを生成する Web アプリの一部を開発しています。順序付けられた方法で XML タグに入れるデータもあります。
たとえば、1 から 100 までの 100 個の数値の ArrayList がある場合.xsd
、次の例のようになります。
次のような XML ファイルを生成するにはどうすればよいですか。
各タグのデータは、配列リスト内のデータと同じ順序で、配列リスト内の対応する番号になりますか?
提案や例をいただければ幸いです。前もって感謝します!
java - XMLBeansを使用して2つのWSDLで使用される共有スキーマをコンパイルする
私はこの次のディレクトリ構造を持っています
XMLBeans + CXFを使用して、ソースを生成し、それらを1つのjarにコンパイルしようとしています。CommonSchemaフォルダーには、Service1と2で共有されるスキーマがあります。
ソースソースを生成しようとすると、1と2のxsdのソースに名前の競合があるようです。これを以下に示します。
最初のWSDL生成
2番目のWSDL生成
この一般的なスキーマをどのようにコンパイルする必要があるかについてのアイデアはありますか?
これが私のAntスクリプトです:
私のプロジェクトは次の場所にあります:ここCXF-Generationの下。
スキーマ全体とWSDLは、CXF-Generation/Generationの下にあります。
java - xmlBeansクラスの「マングリング」名前空間/パッケージ名
私はJavaコードから消費する必要のあるxmlを持っており、xmlBeanは非常に理にかなっていると思います。入力xmlファイルには名前空間がなく、xml入力形式を変更できません。
trangを使用してxmlをxsdに変換し、次にxmlbeans-maven-pluginを使用してxsdからjavaクラスを生成しました。これはうまく機能しますが、生成されたクラスを選択した特定のパッケージに入れたいので、名前空間を追加する以外に、それを行うための良い方法を見つけることができません(これはできません)入力xmlファイルを変更する必要があるため)。
私はおそらくこれに対する簡単な解決策があるように感じますが、私は単に見ていません。
java - テストのためにXMLBeansオブジェクトをスタブ/モックする方法は?
Apache XMLBeans(org.apache.xmlbeans.XmlObjectを拡張するXML構造要素のインターフェース、org.apache.xmlbeans.impl.values.XmlComplexContentImplを拡張するインターフェースの実装)を使用するアプリケーションを使用しています。
私は次のような機能を手に入れました:
- XMLオブジェクトは、いくつかのデータを含むメソッドに渡されます
- このデータに基づいて、このXMLオブジェクトのサブコンテンツが生成されます
- XMLオブジェクトのaddFoo()を使用して要素などを追加する
この機能をテストしたいのですが、このXMLオブジェクトをテストするための最良の方法がわかりません(スタブ/モックオブジェクトでサブツリーの状態を簡単にテストできるようにしたいと思います) 。いくつかのオプション:
- これらのFooImpl実装オブジェクトをインスタンス化しようとしましたが、org.apache.xmlbeans.SchemaTypesTypeへの参照が必要です。
- これらをインスタンス化する方法はありますか?
- null /モックされたSchemaTypeを指定すると、何かが追加されたときにNPEになります
- いくつかの必要なメソッドを使用してスタブクラスを生成することは機能しますが、生成するメソッドが多数(> 100)になることになります
- Mockitoを使用することは別の方法でも機能しますが、xmlツリー構造の状態を簡単にテストするには、doAnswer()などを使用する必要があります。
いくつかのアイデア?
br、トウコ
java - XMLBean を使用して複雑なテキストのみの要素の値を読み取る方法
複雑なテキストのみの要素を次のように作成しました:-
私のXMLには次のような要素があります:-
XMLBean で生成された API を使用してこの要素の値を読み取ろうとしていますが、そうすると
値「TagValue」を読み取る方法はありません。親タグ属性を読み取る方法はありますが、テキスト値を読み取る方法はありません。「TagValue」の読み方を教えてください。
web-services - Apache CXF (2.6.1): クライアントが「コンテンツはプロローグで許可されていません」を取得します
Java アプリケーションで Apache CXF (2.6.1) を使用して、サード パーティの Web サービスを利用しています。しかし、特に問題があります。特に、スタブの生成中にデータバインディングに JAXB を使用すると、クライアントは常に「--uuid:e47f145b-38f7-4402-8eec-657d71bc8ad4...」のような「ヘッダー」を含むリクエストを送信します (参照以下のクライアント要求)、つまり、XML 部分の他に、いくつかの特別な情報があります...
この特別な情報により、サーバーからのエラー応答が「コンテンツはプロローグで許可されていません」(以下のサーバー応答を参照) の原因になっているようです。つまり、サーバーはそのような本文を予期していません。ここで興味深いのは、データバインディングに XMLBEANS を使用してスタブを生成すると、すべてが正常に機能し始めることです (要求本文にはそのような「特別な」情報はなく、XML のみです)。グーグルで調べた後、クライアントが何らかの理由でMTOM(JAXBを使用)を使用しようとしていると思われ、それをオフにする方法がわかりません。MTOMをオフにするために、次のことをすでに試しました(運が悪い):
XMLBEANSに比べてはるかにコンパクトなので、本当にJAXBに移行したいのですが...
クライアントコード:
クライアントのリクエスト:
サーバーの応答:
ありがとう、コンスタンチン
java - xmlbeans の読み取りでの「java.lang.NoSuchMethodError」例外
XLSX ファイルを読み込もうとしています。このエラーが表示されます
エラーは次のとおりです。
java - wsdl2javaxmlbeansデータバインディングの問題
wsdl2javaを使用してjavaクラスのファイルを生成し、xmlbeansデータバインディングを使用しました。次のような多数のエラーのため、結果のファイルをコンパイルできません。
エラー:シンボル[javac]が見つかりませんreturnwrappedType.get()。xgetPolicyGroup();
エラー:シンボル[javac]が見つかりませんreturnwrappedType.get()。xgetPolicyPresharedKey();
最初のエラーに一致する生成されたコードの例を次に示します。
PolicyGroupDTODocumentは、次のように定義されています。
および実装として
getメソッドとxgetメソッドはXmlObjectからいくらか継承されていると思います。生成されたコードまたはおそらく生成プロセスの何が問題になっていますか?
java - XMLBeans が「-」文字を処理する方法を説明する
「-」文字を含む XSD 要素を含むファイルがあります。これは XSD ファイルに対する最近の変更であり、ファイルをコンパイルした後、Java コードで使用されているアクセサ メソッドに変更は見られません。さらに、Java コードでこの要素を呼び出そうとすると、null ポインター例外がスローされます。xsd ファイルのコンパイルでエラーは発生しません。プロジェクトを何度も再起動してクリーンアップしました。
XMLBeans が「-」文字の追加をどのように処理しているか、またはこの状況をより適切に処理するにはどうすればよいか、誰か説明してもらえますか?
例:
年:
古いアクセサ メソッド:
新しい:
新しいアクセサ メソッド:
予想される新しいアクセサ メソッド: getFoo_Boo();
java - Axis 2 クライアントは問題のある "POST /SOAP/ HTTP/1.1" の http ヘッダー プロトコルを設定します
XMLBeans バインディングを使用して Axis2 クライアントを作成しましたが、soap メッセージの作成に関してはすべて正常に動作しているようです。ただし、http ヘッダーのプロトコルが「POST /SOAP/ HTTP/1.1」に設定されているため (以下のデバッグ ログを参照)、サービス プロバイダーでこのエラーが発生します -プロトコル「SOAP/」のランタイム拡張機能が見つかりません
/SOAP/ をプロトコルに追加しないように軸内で構成できるものは何も見つかりませんでした。
サービス プロバイダーにこの問題に対処するよう依頼するのではなく、理想的にはクライアント側で対処したいと考えています (ちなみに、リクエストは SoapUI を使用して問題なく機能します)。
2012/09/21 10:02:42:955 PDT [デバッグ] ヘッダー - >>「POST /SOAP/ HTTP/1.1 [\r][\n]」