問題タブ [stax]

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.

0 投票する
3 に答える
4393 参照

java - StAXを使用したXMLドキュメントへの小さな変更

現在、XMLファイルを読み込んで、いくつかの小さな変更を加え(一部の属性の値を変更して)、再度書き戻そうとしています。

StAXパーサー()を使用しjavax.xml.stream.XMLStreamReaderて各イベントを読み取り、変更したいイベントかどうかを確認し、javax.xml.stream.XMLStreamReader変更が必要ない場合はStAXライター()に直接渡すつもりでした。

残念ながら、それはそれほど単純ではないように見えます-ライターにはイベントタイプとパーサーオブジェクトを取得する方法がなく、とのようなメソッドのみがwriteAttributeありwriteStartElementます。明らかに、XMLドキュメントで発生する可能性のあるすべてのタイプの要素のケースを含む大きなswitchステートメントを記述し、それを再度書き戻すことはできますが、単純なはずの何かには多くの問題があるようです。 。

StAXで読み込んだものと非常によく似たXMLドキュメントを簡単に書き出すことができる何かが欠けていますか?

0 投票する
9 に答える
1879 参照

java - さまざまな XML ドキュメントを処理するために Java をどのように使用しますか?

Java アプリケーションを使用してさまざまな XML ドキュメントを解析するための最良の方法を探しています。私は現在、SAX とカスタム コンテンツ ハンドラーを使用してこれを行っていますが、うまく機能します。

私は、現在 1 つの形式の XML ドキュメントを受け取り、さまざまな XML 要素の変更を加えた 2 つの追加の XML ドキュメント形式を受け取る、同じプログラムを持つオプションを検討することにしました。ドキュメントの最初の「startElement」に基づいて、ContentHandler を適切なものと交換したいと思っていましたが、ええと、ContentHandler が設定されドキュメントが解析されます。

そのため、最初にできると思っていた方法でこれを行うことができるようには見えません。

そうは言っても、私はこれを完全に間違って見ていますか?複数の個別の XML ドキュメントを同じ XML 処理コードで解析する最適な方法は何ですか? 以前、もっと一般的な投稿で質問しようとしましたが、漠然としすぎていたと思います。これらの XML ドキュメントはかなり大きく、システムは数分ごとに約 1200 を受信するため、速度と効率のために DOM を実際に調べたことはありません。それはただの一方通行の情報発信です

この質問を長くしすぎて、混乱を招きます。以下は、単一の SAX、StAX、または ?? にしたいいくつかのさまざまな XML ドキュメントのモックアップです。パーサーはきれいに対処します。

製品.xml:

store.xml:

manager.xml:

0 投票する
4 に答える
9369 参照

java - 最高の StAX 実装

簡単に検索すると、参照実装 ( http://stax.codehaus.org )、Woodstox 実装 ( http://woodstox.codehaus.org )、Sun の SJSXP 実装 ( https://sjsxp.dev.java.net ) が見つかります。 / )。

これらの相対的なメリットについてコメントしてください。また、私が検討すべき他の実装についても記入してください。

0 投票する
2 に答える
1750 参照

java - JAXB または StAX メッセージの制限

現在、Axis 2 実装を使用して Bea Websphere 6.1 環境で WebService を開発しています。現在の Web サービスの標準 (JAXB、JAXWS、StAX...) を尊重しようとしています。

このプラットフォームでの XML メッセージの長さは?

私は周りを検索しましたが、このトピックに関連するものは何も見つかりませんでした.

0 投票する
10 に答える
32265 参照

java - Java での StAX XML フォーマット

StAX(特にwoodstox)を使用して、出力xmlを改行とタブでフォーマットすることは可能ですか?つまり、次の形式で:

それ以外の:

これがwoodstoxで不可能な場合、これを行うことができる他の軽量ライブラリはありますか?

0 投票する
2 に答える
2007 参照

java - Sun JDK1.6 組み込み StAX パーサーが DTD エンティティーを解決しないようにする方法

XML ストリームを変更するために、StAX イベント ベースの API を使用しています。ストリームは、DTD 宣言を備えた HTML ドキュメントを表します。この DTD 宣言を出力ドキュメント ( を使用して記述) にコピーしたいと考えていますXMLEventWriter。ファクトリに DTD を無視するように依頼すると、DTD はダウンロードされず、ステートメント全体が削除され、" <!DOCUMENTTYPE" 文字列だけが残ります。無視しない場合、DTD 全体がダウンロードされ、DTD イベントを逐語的に出力するときに含まれます。この DTD をダウンロードするのに時間をかけたくありませんが、完全な DTD 仕様を含めます (エンティティの解決は既に無効になっており、必要ありません)。外部DTDのフェッチを無効にする方法を知っている人はいますか?

0 投票する
3 に答える
2645 参照

java - Java StAX を使用して XML 処理命令をフォーマットして読み取るにはどうすればよいですか?

まず、XML 処理命令をフォーマットするにはどうすればよいですか?

XMLStreamConstants.PROCESSING_INSTRUCTIONStAX を使用して、 ( javadoc ) イベントを処理してそれを読み取りたいのですが、次の2 つのメソッドしか提供されていませんXMLStreamReader

これら 2 つのメソッドのjavadocはあまり役に立ちません。

  1. XML フォーマットは正しいですか?
  2. これは、StAX XMLStreamReader API を使用して処理命令を解析する適切な方法ですか?
  3. getPITarget()and を使用しgetPIData()て複数の引数を返すにはどうすればよいですか?
0 投票する
3 に答える
668 参照

java - 標準の JDK 1.6 API を除く Google App Engine の背後にあるロジック (ある場合)

以下のように、GAE は JDK 1.6 クラスのサブセットを選択したようです。

Google App Engine JDK ホワイト リスト

データ バインディング、リフレクション、クラスのロード、および注釈を処理する最も一般的な Java ライブラリを使用すると、いたるところでクラス リンケージ エラーが発生するため、これは非常に残念です。一部の省略は非推奨またはレガシーのものである可能性がありますが、そうでないものもあります。私の具体的な懸念は、長い遅延の後に JDK 1.6 に追加されたばかりのストリーミング プル パーサー (javax.xml.stream.*) です (API は JDK 1.4 とほぼ同時に完成しました)。これを省略すると、スケーラブルで高性能な xml 処理を行うことが難しくなります。

私が理解している問題は、クラスが欠落しているだけでなく、セキュリティ上の制約のためにクラスを追加することさえできないということです。

つまり、これはおそらく GAE 開発者だけが確実に答えることができる自由回答の哲学的質問ですが、なぜ一部の API が標準の JDK 1.6 から削除されているように見えますか?

更新

簡単なメモ: 回答ありがとうございます。価値があるのは、javax.xml.streamを含めないこととセキュリティがどのように関係があるのか​​ 本当にわかりません。セキュリティの側面は、他の非常に多くのことに関連しています(たとえば、スレッドは必要ありません。スレッドが存在しない理由を確認できます)ので、定型的な答えは理解できます。これには当てはまりません。

Stax API は、大声で叫ぶためのインターフェイスとアブストラクトのセットにすぎません。しかし、より重要なことは、SAX、DOM、および JAXP インターフェースを含めるのとまったく同じ影響を与えることです。これらは既に含まれています。

しかし、この問題は Google 開発者の注目を集めているようです:

Stax API のホワイトリスト登録に関する議論

したがって、これと同様の問題が迅速に解決されることを願っています。

0 投票する
3 に答える
3946 参照

java - Java NIO チャネルからの StAX 解析

Java NIO チャネルを介して XML イベントのストリームを受信しようとしています。私はNIOとStAXの両方の解析に慣れていないので、何かを見落としがちです:)

検索の結果、いくつかの SAX および StAX の実装にたどり着きましたが、それらはすべて、NIO チャネルではなく、InputStreams および InputSources で動作するようです。私が行った 2 つの最も近い試みは、チャネルから InputStream を取得し、PipedInputStream を作成することです。

に続く:

上記のコードを方法 1 で使用すると、createXMLStreamReader 行でブロックされます。メソッド 2/3 が使用されると、すぐに IllegalBlockingModeException がスローされます (理由は理解しています)。新しいアプローチが必要かも?

私の目標は、非ブロッキングサーバーを選択する=>クライアントから文字データを受け入れる=>特定のエンコーディングを使用してXMLイベントに解析する=>そのイベントオブジェクトを別のスレッドに転送して処理する=>選択に戻ることです。

だから私は何かを見落としていますか、それとも使用できるより良いアプローチがありますか? もしそうなら何?

ありがとう!

0 投票する
1 に答える
2430 参照

java - XMLEventWriter を使用した自己終了タグ

したがって、質問はタイトルに記載されているとおりです。私はいくつかのxml作業を行っており、XMLEventWriterを使用しています。私が抱えている大きな問題は、いくつかの自己終了タグを作成する必要があることです

問題は、eventWriter でこれを行う方法がわからなかったことです。XMLEventFactory を使用して考えられることはすべて試しましたが、何もうまくいかないようです。どんな助けでも大歓迎です。