問題タブ [xerces2-j]
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 - IBM SBT SDK 1.1.0 (Java) および Apache xerces
私は、IBM SBT SDK (Java) との IC 統合を、まだ xerces 2.4.0 (2009 年 3 月現在) を使用している既存のプロジェクトに追加しています。
ここでは IBM SBT SDK 1.0.x を使用しても問題は発生しませんでしたが、1.1.0 の XML シリアライゼーションの実装は、org.w3c.xml.ls.DOMImplementationLS などに完全に依存しており、2004 年頃に xerces を "xercesImpl" に移動した後に導入されました。 .
ただし、このプロジェクトには、xerces および xml-apis に基づいて XML を操作する多くのコードが含まれており、これらのライブラリの「より最新の」バージョンに急いで移行するのは危険に思えます。したがって、「絶対に必要以上に」移動したくありません。
maven のおかげで、pom.xml で直接参照されていない場合、アーティファクトのどのバージョンがロードされているかを誰も直接見ることができません。したがって、私の質問:
IBM SBT SDK 1.1.0 で「本当に」必要な xercesImpl のバージョンはどれですか? SBT SDK で使用されるいくつかのメソッドがまだ実装されていないため、2.4.0 では不十分です...
java - エンティティ "entityname" が参照されましたが、宣言されていません
それに関して1つの質問を見つけましたが、それは古い質問であり、回答がJava XML処理エンティティの問題で機能しなくなったようです?
だから私の問題は、私が実際にXMLファイルを使用していて、Entity References
. DocumentBuilder
これらのエンティティ参照をそのままにして、解析しないようにしたいと思います。ただし、それを解析しようとすると、The entity "entityname" was referenced, but not declared.
例外が発生します。
これは私のXmlParser
クラスコンストラクターです:
DocumentBuilderFactory.newInstance()
また、パラメーターなしで使用しようとしたところ、同じエラーが発生しました。
この問題を解決するにはどうすればよいですか?
XML の例:
その例外:
java - XInclude 対応の XMLReader を XMLFilter にチェーンして、フィルターが変更された要素に対して XInclude の包含が実行されるようにする方法は?
Java XML 解析 - xi:include の出力のマージで、投稿者は XInclude を使用しようとしましたが、include
要素で間違った名前空間を使用していました。XMLFilter が名前空間の修正を処理する XInclude 認識パーサーの前に配置された XMLFilter は、この問題を解決できると考えました (修正された名前空間を持つ中間ファイルを最初に作成する別の処理ステップを使用せずに、ファイルをそれぞれ手動で編集する必要はありません)。 .
そこで、SAX が提供する をXMLFilter
拡張して、次のように記述しました。XMLFilterImpl
次に、XInclude 対応の SAXParser をそれぞれ作成して、XMLReader
そのフィルターにチェーンし、サンプル ドキュメントをSAXSource
そのフィルターからデフォルトにロードして、次のTransformer
ようにビルドしDOMResult
ます。
file3.xml
私が使用したサンプル ドキュメントxi:xinclude
には、適切な XInclude 名前空間に 1 つの要素と、サポートされていない古い名前空間に1 つの要素があります。
私の期待は、フィルターが最初に名前空間を修正し、次に XMLReader が両方の要素に対して XInclude を実行することです。ただし、Java 1.8 でコードを実行すると、出力は次のようになります。
そのため、フィルターは 2 番目の要素の名前空間を修正しましたが、XMLReader は最初の要素include
に XInclude の包含のみを適用しました。include
どこで間違ったのですか?フィルターと XInclude 対応の XMLReader をチェーンして名前空間を修正し、名前空間が修正された要素に対して XInclude インクルードを実行するにはどうすればよいですか?
完全を期すために、次のreuse.xml
とおりです。
簡単なテストを可能にする Java プログラムの完全なコード:
また、Apache の最新の Xerces Java をクラスパスに配置して、問題が解決するかどうかを確認しようとしましたが、出力は同じままです。
html - XercesLib が無効な XML の解析に失敗する
XercesLib c++ ライブラリを使用して html ファイルを解析しています。私の場合、html ファイルのタグ コンテンツ内に山かっこが含まれている場合があります。
現在、XercesLib は mo タグのコンテンツの解析に失敗しています。タグにエスケープされていない文字が含まれていると、空の出力が返されます。
同じファイルは JavaScript ライブラリ (MathJAx) で問題なく解析できるため、エスケープされた入力ファイルを提供するようにソースに指示することはできません。
XercesLib でこの問題を解決するにはどうすればよいですか?