問題タブ [xsltc]
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 - XML コードは正しく実行されますが、junit は NoClassDefFound で失敗します
環境を Eclipse 3.3.1 および Java 1.4 から Eclipse 3.4.1 および Java 1.5 にアップグレードしています。私の単体テストはjUnit 3です。
Eclipse Java バージョン 1.5.0__17
スタンドアロン環境バージョン 1.5.0__12 または 1.5.0-17 の両方が機能します。
XML ファイルをディスクに書き込むクラスのメソッドがあります。TransformerFactory tf = [javax.xml.transform.]TransformerFactory.newInstance(); を呼び出します。コードをEclipseの外で実行すると、正常に実行されます。Eclipse で jUnit のコードを実行すると、以下のスタック トレースが表示されます。欠落しているクラスは Java 1.4 の rt.jar にあり、Java 5 にはありませんが、それは私から抽象化されるべきではありませんか?
どうすればテストに合格できますか?
アプリケーションからEclipseでコードを実行すると、同じエラーが発生します。
更新 スタックトレースの腸でさらに調査を行いました。作業バージョン (Eclipse 以外) は、javax.xml.transform.TransformerFactory.newInstance() のフォールバック impl クラス名である com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl のインスタンスを返しています。
xslt - プリコンパイルされたXSLT、ReBase、およびNGEN
ここで高度なパフォーマンスの質問。これが私のシナリオです:
何千ものXSLTドキュメントを含むデータベースがあります。Webサイトのページごとに1つあるため、これらはXMLをHTMLに変換します。ASP.NET Webサーバー(ファーム)は、データベースからXSLTドキュメントをロードし、それらを使用して各Web要求のHTMLをレンダリングします。
XslCompiledTransformを使用し、データベースの更新の合間に(30分ごとに)キャッシュするという最適化を実装しました。xsltc.exeを使用してXSLTをDLLにプリコンパイルすることにより、パフォーマンスをさらに向上させたいと考えています。これにより、XslCompiledTransformが作成するすべての動的メソッド呼び出しが排除されるはずです。
そのため、XSLTをファイルに書き込み、xsltc.exeを使用してそれらを実行する別のサーバーがあります。約20分かかりますが、大丈夫です。次に、DLLを各Webサーバーにドロップします。これで、必要に応じてWebサーバーにDLLを動的にロードさせることができます。アセンブリをXslCompiledTransformにロードするために使用しているコードは次のとおりです。
ディレクトリ内のDLLをReBase.exeまたはNGEN.exeしますか?ReBaseには約5分かかり、/ queueを使用したNGEN.exeには約10分かかります。その間、CPUが激しく攻撃され、Webサーバーのトラフィックサービス機能に影響を与える可能性があります。アセンブリからバイトを読み取ることによってアセンブリをロードする方法を考えると、ネイティブNGENイメージも参照されますか、それともJITが起動しますか?
これに対するすべての/すべての洞察は大いに感謝されます!
マルコム
asp.net - xsltcでコンパイルされたdllにアセンブリ情報を含める方法は?
XSLTC.exe でコマンド プロンプトを使用して XSLT ファイルを手動でコンパイルしたdll にアセンブリ情報を含める必要があります。誰でも方法を知っていますか?マージしますか?
xslt - exslt distinct() は、コンパイルされた xalan では機能しません (ただし、インタープリターでは機能します)
私はこれを持っています:
2 行目のコメントを外すと、xalan でコンパイルされたスタイルシートでスタイルシートを使用すると動作しません。
なしでコマンドラインからxalanを実行すると機能し-xsltc
ます。
私は何か間違ったことをしていますか?
1不可解なエラー メッセージが表示され、処理が停止します。このインスタンスのエラー メッセージは次のとおりERROR: ''
ですERROR: -1
。
私の<xsl:stylesheet>
ヘッダーにはxmlns:set="http://exslt.org/sets"
.
c# - XSLTC.EXE MSBuild タスク
ASP.NET Web アプリケーションでいくつかの XSLT を使用しています。プロジェクトをビルドするたびに、これらのファイルを dll にコンパイルする必要があります。現在、vs2010 ツール コマンド プロンプトから xsltc.exe を呼び出して xslts を手動でコンパイルしています。
プロジェクトをビルドするときにアセンブリが生成されるように、xsltc.exe の msbuild タスクを追加するにはどうすればよいですか?
.NET 4.0 を使用しています。
java - XSLTC redirect:write file= は Ant タスクの destdir 属性を尊重しません
次のような Ant xslt タスクがあります。
event.xsl 内に次のディレクティブがあります。
Xalan-J の場合、これは期待どおりに機能し、生成されたファイルはdestdirに書き込まれます。
Xalan-J 依存関係を削除して、Java 1.4+ でデフォルトの XSLTC を使用しようとしています。XSLTC は、このコンテキストではselectを尊重しません。代わりに、提案はそれを次のものに置き換えることでした:
ファイルがdestdirではなく現在の作業ディレクトリに書き込まれることを除いて、これは正しく機能します。.tmp.logファイルは destdir に正しく配置されます。
XSLTC のredirect:writeによってdestdirが無視される理由を知っている人はいますか? そして、それを修正する方法は?
そのディレクトリのbuild.xmlを作成し、Antタスク「ant」を使用してdestdirを作業ディレクトリとして呼び出すなど、いくつかの回避策があります。または、Ant で有効な chdir にフォークして、同様の目的を達成することもできます。しかし、Xalan-J の下にあったように destdir が尊重されていれば、クラッジは不要です。