問題タブ [woodstox]
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 - Java での StAX XML フォーマット
StAX(特にwoodstox)を使用して、出力xmlを改行とタブでフォーマットすることは可能ですか?つまり、次の形式で:
それ以外の:
これがwoodstoxで不可能な場合、これを行うことができる他の軽量ライブラリはありますか?
java - 特定の XML パーサーを使用するように cxf を構成できますか?
cxf が使用する XML パーサーを指定する方法はありますか? cfx.xml ファイルを介してですか、それともプログラムでですか?
私たちのアプリのクラスパスには Woodstox パーサーがあり、cxf はデフォルトでそれを使用しているようです。ただし、Woodstox の実装では、SOAP パケット内の大きな Base64 でエンコードされたバイト配列が切り捨てられているようです。
クラスパスから Woodstox を削除すると、この切り捨ての問題が解消されますが、アプリの他の部分も Woodstox に依存しているため、現時点ではオプションではありません。
単純に cxf に別の XML パーサーを使用するように指示できれば理想的です。これは可能ですか?
java - XMLEventWriter: 空の要素を書き込むように指示するにはどうすればよいですか?
javax.xml.stream.XMLEventWriter
空の要素が(明示的な開始要素と終了要素のペアの代わりに)書き込まれるように、内部またはjavax.xml.stream.XMLOutputFactory
設定するオプションが表示されません。
Woodstox にはこれを行うプロパティがあるようですが、標準化されていません。
これを行う明白な方法がありませんか?
java - sjsxp と wstx の両方がクラスパスにある場合の実装の選択方法
Axis2 は woodstox の wstx に依存していますが、私のプロジェクトの他の部分は sjsxp でかなりテストされており、同じテストを再実行する余裕はありません。ここで、axis2 を使用した SOAP メッセージの解析に問題があり、sjsxp を取り除けば問題はなくなります。axis2 に wstx 実装を使用し、プロジェクトの残りの部分をそのままにして sjsxp 実装を使用するように指示する方法はありますか?
java - W3スキーマに対してStax2検証APIをどのように使用する必要がありますか
XMLを生成するためにcom.ctc.wstx.stax.WstxOutputFactoryを使用しています。wstx-asl-3.2.4を実行しています
生成されたXMLをW3スキーマに対して検証し始める必要があります。
このようなorg.codehaus.stax2.validation.XMLValidationSchemaFactoryのインスタンスを作成すると
private final static XMLValidationSchemaFactory xsdFact=
XMLValidationSchemaFactory.newInstance(XMLValidationSchema.SCHEMA_ID_W3C_SCHEMA);
エラーが発生します
javax.xml.stream.FactoryConfigurationError:XMLValidationSchemaFactory実装クラスが指定されていないかアクセスできません(システムプロパティ'org.codehaus.stax2.validation.XMLValidationSchemaFactory.w3c'、または'META-INF / services /org.codehaus.stax2のサービス定義を介して)。 org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance(XMLValidationSchemaFactory.java:208)at org.codehaus.stax2.validation.XMLValidationSchemaFactory.newInstance(XMLValidationSchemaFactory.java:98)のvalidation.XMLValidationSchemaFactory.w3c')
woodstoxにはDTDパーサーのみがバンドルされていることがわかります。 役に立たない指示が含まれているこの記事を見つけました
- 必要なタイプのスキーマを解析する方法を知っているXMLValidationSchemaFactoryのインスタンスを取得します(この例ではRelaxNG == rng)。
XMLSchemaValidationファクトリにボルトオンするために必要なビットが含まれているはずのSunMulti-SchemaXMLValidatorを見てきました。
com.sun.msv.reader.xmlschema.XMLSchemaReaderを使用 してXMLValidationSchemaFactoryの独自のインスタンスを記述し、このように機能させることができるようです。
私の質問は; 本当にこれを行う必要がありますか、それとも私が見つけられなかった既存のw3cスキーマファクトリがありますか?
おそらく、XMLを生成した後でXMLを検証する方が簡単でしょう。
これについての見解は何ですか?
java - woodstoxとsjsxpの比較
Woodstoxhttp ://woodstox.codehaus.orgおよびsjsxphttps : //sjsxp.dev.java.net/によるStax実装を使用した人はいますか。sjsxp XmlStreamReaderが完全なテキスト値を読み取らないという奇妙な問題に遭遇し、woodstoxを試しました。これで以前の問題は解決しました。
誰かが以前にwoodstoxを使用したことがあるかどうか、そしてどのような経験をしたかを皆さんに確認したいと思います。
java - Woodstox stax と Java stax の競合
Woodstox STAX と Java 1.6 STAX の実装の間で奇妙な実行時競合が発生しています。私は CXF を使用しているため、依存関係の一部として Woodstox jar をプルしています。これが私が使用しているサンプルコードです。
実行時に、次の例外が発生します。
ラインに到達したときEndElement endElement = event.asEndElement();
失敗しないのに、なぜこの時点で原因になっているのか、私はちょっと困惑しています
StartElement se = event.asStartElement();
デバッグ中に、イベント オブジェクトが com.ctc.wstx.evt パッケージの一部であり、javax.xml.stream ではないことがわかりました。しかし、以前に失敗しなかった理由がわかりません。
どんなポインタでも高く評価されます。
java - Woodstox StAX 2 を使用して XML でクラスをシリアライズ/デシリアライズする方法
Javaの how-to-serialize-deserialize-simple-classes-to-xml-and-back (C#) で行われたことをアーカイブしようとしています。できれば、クラスごとにシリアライズ・デシリアライズのメソッドを書くのは避けたいです。
たとえば、シリアル化の一部:
問題を 1 つずつ解決しようとしているので、この質問の一部ではありませんが、私がやろうとしていることの感覚をあなたに与えるかもしれません。逆シリアル化するときに、入力が有効かどうかも確認したいと思います。最終的には、シリアル化された形式で XSLT 変換を使用したいと考えています。
java - Stax は Text+CDATA+Text を単一の CHARACTERS セクションと見なします
Stax を使用すると、次のような XML ブロックがあることに驚きました。
次のように扱われます。
つまり、CDATA と周囲のテキストは 1 つのテキスト要素にフラット化されます。CDATA 要素が検出されませんでした。
これは正しい動作ですか?空白を CDATA から分離するにはどうすればよいですか?
私はwoodstoxの実装を使用しています。
stax - 使用するstaxパーサーを指定する方法
クラスパスにwoodstoxとJava SE 1.6 staxパーサーがありますが、woodstoxがデフォルトで選択されているようです。ただし、デフォルトの Java stax パーサーを使用したい場合もあります。使用する実装を指定する方法はありますか?