問題タブ [jaxp]

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 に答える
24567 参照

java - Java XPath (Apache JAXP 実装) のパフォーマンス

注: この問題も発生する場合は、Apache JIRA に賛成票を投じてください。

https://issues.apache.org/jira/browse/XALANJ-2540

私は次のような驚くべき結論に達しました。

これより信じられないほど100倍速いようです:

JVM のデフォルトの JAXP 実装を使用しています。

JAXP が上記の XPath クエリを最適化して、代わりに単純なクエリを実際に実行する方法を簡単に確認できるため、私は本当に混乱していますgetElementsByTagName()。しかし、それはしていないようです。この問題は、API によって抽象化され、隠されている、頻繁に使用される約 5 ~ 6 個の XPath 呼び出しに限定されます。これらのクエリには/a/b/c、常に利用可能な DOM ドキュメントのみに対する単純なパス (変数や条件がないなど) が含まれます。したがって、最適化を行うことができれば、達成するのは非常に簡単になります。

私の質問: XPath の遅さは認められた事実ですか、それとも何か見落としているのでしょうか? より良い(より速い)実装はありますか?または、単純なクエリの場合、XPath を完全に回避する必要がありますか?

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

java - JAXP XSLT document() 関数の問題

XSLT 変換を使用する Java アプリケーションで作業しています。document() 関数を呼び出すたびにドキュメントがキャッシュされるため、java.lang.OutOfMemory 例外 (実際に発生しています) が発生する可能性があります。

http://xml.apache.org/xalan-j/faq.html#faq-N102F9で、私の場合の解決策ではないヒープ メモリ サイズを増やすことが可能であると読みました。また、サポートされていないように見える増分変換を使用しようとしました。

では、document() 関数を使用しているときに jaxp でドキュメントのキャッシュをオフにする可能性はありますか?

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

java-me - JAXP Sax パーサー Java-ME Midlet 漢字の解析からの例外

HTML Unicode としてエンコードされ、XML ファイルに埋め込まれた一部の漢字を解析するのに大きな問題があります。

Java MEjavax.xml.parsers.SAXParserを使用しています

そのような文字ファイルの 1 つに词があります。


それに関する情報: http://www.isthisthingon.org/unicode/index.php?page=08&subpage=B&glyph=08BCD

でも妙に后

正常に動作しています。

直接埋め込むこと<test>词&lt;/test>もできます。

私のテスト midlet には、次のソース コードがあります。

それは死んでいます:

アイデアをいただければ幸いです。

0 投票する
5 に答える
2203 参照

java - 検証失敗後のファイルの移動 (Java)

XML ファイルを検証しており、検証の結果に応じて、ファイルを別のフォルダーに移動する必要があります。

XML が有効な場合、バリデーターは値を返し、問題なくファイルを移動できます。スキーマに従って XML が有効でない場合にも、同じことが起こります。

ただし、XML の形式が適切でない場合、バリデーターは例外をスローし、ファイルを移動しようとすると失敗します。ファイルを保持しているメモリのどこかにまだハンドルがあると考えています。ファイルを移動する前に System.gc() を配置しようとしましたが、問題はSystem.gc()解決しましたが、解決策としてはありません。

コードは次のようになります。StreamSource を作成する File オブジェクトがあります。その後、StreamSource がバリデーターに渡されます。XML が整形式でない場合、SAXException がスローされます。例外処理では、.renameTo() メソッドを使用してファイルを移動します。

私たちが試したキャッチでは

しかし、まだ.renameTo()ファイルを移動できません。キャッチを入れればSystem.gc()、動きは成功します。

誰かがこれなしでこれをソートする方法を教えてもらえますかSystem.gc()?

JAXP と saxon-9.1.0.8 をパーサーとして使用します。

どうもありがとう

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

xml - 別のxpath式でXPATHの結果を使用する

私は以下のようなXMLを持っています。ここでは、23であるノードbの属性値を選択し、その値を取得してxmlを下に移動し、ID値が23であるノードfのノードjを選択します。これは単一のxpath式で実現できます。

xml処理にJAXPを使用しています

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

dtd - ApacheCamelはDTDで検証します

私はApacheCamelを使用してPOCに取り組んでいます。CXFを介してWSを公開し、検証と変換を行って、別のWSを呼び出す必要があります。バリデーターを使用しようとしましたが、xmlスキーマでのみ機能するようです...

W3.orgツールを使用してdtdのxsdバージョンを生成しようとしましたが、結果が無効です。

解決策はありますか?

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

java - IllegalArgumentException: オブジェクトの配列を SCHEMA_SOURCE プロパティの値として使用する場合、2 つのスキーマが同じ targetNamespace を共有してはなりません

私は JasperReport/ireport4 を使用しています。以下のようにレポートを生成しようとしました

しかし、エラーが発生しました。

ここに私のライブラリがあります

ここに画像の説明を入力

0 投票する
0 に答える
372 参照

java - JAXPIllegalAnnotationExceptions

JAXPは私にこのエラーを与えます

これらの10個のエラーがどこにあるかを見つける方法はありますか?コードの一部を引用すると、7つのエラーまで減らすことができますが、それがデバッグの最もばかげた方法です...

DOMでできるようにErrorHandlerを登録できますか?

私のコードは次のようになります:

編集:

これがスタックトレースですが、エラーがどこにあるかは実際にはわかりません。

メッセージ:IllegalAnnotationExceptionsの10カウントcom.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException $ Builder.check(不明なソース)com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(不明なソース) com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl。(不明なソース)com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl $ JAXBContextBuilder.build(不明なソース)com.sun.xml.internal .bind.v2.ContextFactory.createContext(Unknown Source)com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)sun.reflect.NativeMethodAccessorImpl.invoke(不明なソース)sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース)java.lang.reflect.Method.invoke(不明なソース)javax.xml.bind.ContextFinder.newInstance(不明なソース)javax。xml.bind.ContextFinder.find(不明なソース)javax.xml.bind.JAXBContext.newInstance(不明なソース)javax.xml.bind.JAXBContext.newInstance(不明なソース)

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

java - WebSphereでの2回目の呼び出しでJAXPXPathを照会してもノードが見つかりません(JUnitは正常に機能します)

xml要素を持つ要素をチェックしていますが、存在しない場合はデフォルト値になります。

これは、Websphere7上のJAXWSへのWebサービス呼び出しからorg.apache.xerces.dom.ElementNSImplとして送信されます。

ご覧のとおり、私はそれぞれの呼び出しで可能な限りすべてをインスタンス化しています。

最初のWebサービス呼び出しは、ノードを返すように機能します。2番目のWebサービス呼び出しでは、両方のxpathに対してnullを返します。

javadocによると、 「XPath[およびXPathExpression][オブジェクトは]スレッドセーフではなく、再入可能でもありません。

何か案は?