問題タブ [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.
xml - StAXを使用してxmlで暗号化/復号化を行う方法は?
私がStAXを使用する理由の1つは、大きなxmlファイルを処理する際のメモリ消費量が少ないためです。
xmlファイル全体を暗号化し、後で復号化するように要求されました。
既存のコードに大きな変更を加えることなく、私が思いつくことができるより簡単な解決策は、コンテンツのみを暗号化することです。
しかし、人々はまだデータの構造を理解することができます。xmlですべてを暗号化したい場合はどうなりますか?解決策はありますか?私は大きなxmlファイルを扱っていることを覚えておいてください:)
ありがとう。
java - どの .jar ファイルに javax.xml.stream.* が含まれていますか?
Java 1.5 を実行している Mac で再び問題が発生しました.... javax.xml.stream.XMLInputFactory を含む .jar ファイルはどこで入手できますか? StAX を使用したいのですが、正しくセットアップする方法がわかりません。
私はこの設定を取得できないようです。jaxp-api.jar、jsr173_1.0_api.jar、sjsxp.jar、stax-api-1.0.1.jar、stax2-api-3.0.1.jar、woodstox-core-asl-4.0 をダウンロードしました。 5.瓶; それらをすべて java/lib/ext ディレクトリに入れ、Eclipse ビルド パス上にあることを確認し、Mac com.apple.quarantine 拡張属性を削除し、.jar ファイルに対して「chmod a+x」を実行しました。しようとすると、まだ次のエラーが発生しますimport javax.xml.stream.XMLInputFactory;
アクセス制限: 必要なライブラリー /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/jsr173_1.0_api.jar の制限により、タイプ XMLInputFactory にアクセスできません
私は何をする必要がありますか?
java - StAX - XMLInputFactory.IS_VALIDATING を true に設定する方法は?
XML ドキュメントの解析に StAX を使用するのはこれが初めてです (まだ学習段階です)。XMLStreamReader を使用して XML ドキュメントを解析し、XMLStreamWriter を使用してドキュメントのコピーを生成するプロセス中に、ライターの出力でコメントとして表される次の警告に遭遇しました。
警告の原因はわかりましたが、黙って警告になるのではなく、エラーになるようにしたかったので、XMLInputFactory.IS_VALIDATING を true に設定しようとしました。
しかし、上記は私に例外を投げました:
スレッド「メイン」の例外 java.lang.IllegalArgumentException: isValidating の true 値は、com.sun.xml の com.sun.org.apache.xerces.internal.impl.PropertyManager.setProperty(PropertyManager.java:150) でサポートされていません。 internal.stream.XMLInputFactoryImpl.setProperty(XMLInputFactoryImpl.java:257) com.test.test2.helper.SgmlDocumentParser.parse(SgmlDocumentParser.java:83) com.test.test2.helper.Test.main(Test.java: 66)
では、私のアプローチの何が問題なのですか?
ありがとう!
c++ - C/C++ 用の StAX ライターの実装
libxml2 以外に C/C++ 用の STaX Writer 実装はありますか?
multithreading - XSLT プロセッサはマルチスレッド化できますか?
XSLT 処理の問題へのアプローチを探しています。
並列処理を使用して XSLT プロセッサを高速化することは可能ですか? それとも、XSLT プロセッサは本質的にシリアルですか?
私の推測では、XML はさまざまなスレッドで処理できるチャンクに分割できますが、そのような偉業に関するドキュメントを実際に見つけていないため、懐疑的になっています。StAX を使用して XML を同時にチャンクすることは可能ですか?
ほとんどの XSLT プロセッサは Java または C/C++ で実装されているようですが、実際にはターゲット言語がありません。マルチスレッド XSLT プロセッサが考えられるかどうかを知りたいだけです。
あなたの考えは何ですか?
java - 文字エンティティを解決せずにドキュメントを解析できる Java XML API はありますか?
文字エンティティを含む XML を解析する必要があるプログラムがあります。プログラム自体はそれらを解決する必要はなく、それらのリストは大きく、変更される可能性があるため、可能であればこれらのエンティティの明示的なサポートを避けたい.
簡単な例を次に示します。
(非標準の) 文字エンティティを解決せずにドキュメントを正常に解析できる Java XML API はありますか? 理想的には、それらを特別に処理できる特別なイベントまたはオブジェクトに変換することですが、私はそれらを黙って抑制するオプションに落ち着きます.
答えと例:
Skaffman は私に答えをくれました: IS_REPLACING_ENTITY_REFERENCES
false に設定された StAX パーサーを使用してください。
これを試すために作成したコードは次のとおりです。
上記の XML の場合、" Entity Reference: something
" が出力されます。
java - XMLEvent[Reader|Writer] のペアが空のタグを開始タグと終了タグに分割しないようにするにはどうすればよいですか?
次のコードがどのように機能するかについて理解に問題があります。
メソッド writer.add([some reader]) は、リーダーからすべてのイベントを読み取り、結果としてそれらを書き込みます。悲しいことに、次のことが起こります。
入力
に変換されます
XML の観点からは、これらは等しいツリーですが、人間にとってはそうではありません ;)
同じ出力を得るにはどうすればよいですか?
参考までに: "XML イベント" をフィルタリングするには、後で XMLEvent[Reader|Writer] ペアが必要です。
java - XMLドキュメントをマーシャリングするためのJAXBとStaxを使用した検証
XMLスキーマ(foo.xsd)xjc
を作成し、JAXBのバインディングクラスを作成するために使用しました。ルート要素がであり、複合型であるcollection
N個のオブジェクトを記述しているとしましょう。document
大きなXMLファイルを書き出す予定なので、Staxを使用してcollection
ルート要素を書き出し、JAXBを使用して。を使用してドキュメントサブツリーをマーシャリングしますMarshaller.marshal(JAXBElement, XMLEventWriter)
。これは、jaxbの非公式ユーザーガイドで推奨されているアプローチです。
私の質問は、マーシャリング中にXMLを検証するにはどうすればよいですか?スキーマをJAXBマーシャラーに(を使用してMarshaller.setSchema()
)バインドすると、サブツリーのみをマーシャリングしているため、検証エラーが発生します(ルート要素が表示されないという不満がありcollection
ます)。本当にやりたいのは、スキーマをにバインドすることだと思います。またはそのStax XMLEventWriter
ようなもの。
この全体的なアプローチに関するコメントは役に立ちます。基本的に、メモリを使い果たすことなく大きなXMLドキュメントをマーシャリングおよびアンマーシャリングできるようにしたいJAXB
ので、これを行うためのより良い方法がある場合はお知らせください。
java - スタックス処理命令
StAXを使用して次のような処理命令を解析しようとしています。
StAXはこれを処理命令として認識していないようです。これらのイベントを検出します。
すべてを単一のProcessingInstructionイベントと見なすべきではありませんか?
java - XMLStreamReader と実際のストリーム
更新Java コミュニティには、NIO および XML 解析を実行できる XML パーサーがありません。これは私が見つけた最も近いもので、不完全です: http://wiki.fasterxml.com/AaltoHome
次のコードがあります。
問題は、メソッド #createXMLStreamReader() が入力ストリームに XML ドキュメント全体があることを想定しているのはなぜですか? XML データの一部を処理できないように見えるのに、なぜ「ストリーム リーダー」と呼ばれるのですか? たとえば、私が餌をやる場合:
それに、終了タグがないことがわかります。ストリーム リーダー自体の反復処理を開始する前でも。XMLStreamReader を適切に使用する方法がわからないだけだと思います。バラバラにデータを供給できるはずですよね?ネットワークソケットから入ってくる XML ストリームを処理していて、ソーステキスト全体をメモリにロードしたくないので、これが必要です。
助けてくれてありがとう、ユリ。