問題タブ [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.
java - Java XPath (Apache JAXP 実装) のパフォーマンス
注: この問題も発生する場合は、Apache JIRA に賛成票を投じてください。
私は次のような驚くべき結論に達しました。
これより信じられないほど100倍速いようです:
JVM のデフォルトの JAXP 実装を使用しています。
JAXP が上記の XPath クエリを最適化して、代わりに単純なクエリを実際に実行する方法を簡単に確認できるため、私は本当に混乱していますgetElementsByTagName()
。しかし、それはしていないようです。この問題は、API によって抽象化され、隠されている、頻繁に使用される約 5 ~ 6 個の XPath 呼び出しに限定されます。これらのクエリには/a/b/c
、常に利用可能な DOM ドキュメントのみに対する単純なパス (変数や条件がないなど) が含まれます。したがって、最適化を行うことができれば、達成するのは非常に簡単になります。
私の質問: XPath の遅さは認められた事実ですか、それとも何か見落としているのでしょうか? より良い(より速い)実装はありますか?または、単純なクエリの場合、XPath を完全に回避する必要がありますか?
java - JAXP XSLT document() 関数の問題
XSLT 変換を使用する Java アプリケーションで作業しています。document() 関数を呼び出すたびにドキュメントがキャッシュされるため、java.lang.OutOfMemory 例外 (実際に発生しています) が発生する可能性があります。
http://xml.apache.org/xalan-j/faq.html#faq-N102F9で、私の場合の解決策ではないヒープ メモリ サイズを増やすことが可能であると読みました。また、サポートされていないように見える増分変換を使用しようとしました。
では、document() 関数を使用しているときに jaxp でドキュメントのキャッシュをオフにする可能性はありますか?
java-me - JAXP Sax パーサー Java-ME Midlet 漢字の解析からの例外
HTML Unicode としてエンコードされ、XML ファイルに埋め込まれた一部の漢字を解析するのに大きな問題があります。
Java MEとjavax.xml.parsers.SAXParserを使用しています
そのような文字ファイルの 1 つに词があります。
それに関する情報: http://www.isthisthingon.org/unicode/index.php?page=08&subpage=B&glyph=08BCD
でも妙に后
正常に動作しています。
直接埋め込むこと<test>词</test>
もできます。
私のテスト midlet には、次のソース コードがあります。
それは死んでいます:
アイデアをいただければ幸いです。
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 をパーサーとして使用します。
どうもありがとう
xml - 別のxpath式でXPATHの結果を使用する
私は以下のようなXMLを持っています。ここでは、23であるノードbの属性値を選択し、その値を取得してxmlを下に移動し、ID値が23であるノードfのノードjを選択します。これは単一のxpath式で実現できます。
xml処理にJAXPを使用しています
dtd - ApacheCamelはDTDで検証します
私はApacheCamelを使用してPOCに取り組んでいます。CXFを介してWSを公開し、検証と変換を行って、別のWSを呼び出す必要があります。バリデーターを使用しようとしましたが、xmlスキーマでのみ機能するようです...
W3.orgツールを使用してdtdのxsdバージョンを生成しようとしましたが、結果が無効です。
解決策はありますか?
java - IllegalArgumentException: オブジェクトの配列を SCHEMA_SOURCE プロパティの値として使用する場合、2 つのスキーマが同じ targetNamespace を共有してはなりません
私は JasperReport/ireport4 を使用しています。以下のようにレポートを生成しようとしました
しかし、エラーが発生しました。
ここに私のライブラリがあります
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(不明なソース)
java - WebSphereでの2回目の呼び出しでJAXPXPathを照会してもノードが見つかりません(JUnitは正常に機能します)
xml要素を持つ要素をチェックしていますが、存在しない場合はデフォルト値になります。
これは、Websphere7上のJAXWSへのWebサービス呼び出しからorg.apache.xerces.dom.ElementNSImplとして送信されます。
ご覧のとおり、私はそれぞれの呼び出しで可能な限りすべてをインスタンス化しています。
最初のWebサービス呼び出しは、ノードを返すように機能します。2番目のWebサービス呼び出しでは、両方のxpathに対してnullを返します。
javadocによると、 「XPath[およびXPathExpression][オブジェクトは]スレッドセーフではなく、再入可能でもありません。
何か案は?