問題タブ [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.

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

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 のインスタンスを返しています。

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

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が起動しますか?

これに対するすべての/すべての洞察は大いに感謝されます!

マルコム

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

asp.net - xsltcでコンパイルされたdllにアセンブリ情報を含める方法は?

XSLTC.exe でコマンド プロンプトを使用して XSLT ファイルを手動でコンパイルしたdll にアセンブリ情報を含める必要があります。誰でも方法を知っていますか?マージしますか?

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

xslt - exslt distinct() は、コンパイルされた xalan では機能しません (ただし、インタープリターでは機能します)

私はこれを持っています:

2 行目のコメントを外すと、xalan でコンパイルされたスタイルシートでスタイルシートを使用すると動作しません。

なしでコマンドラインからxalanを実行すると機能し-xsltcます。

私は何か間違ったことをしていますか?


1不可解なエラー メッセージが表示され、処理が停止します。このインスタンスのエラー メッセージは次のとおりERROR: ''ですERROR: -1

私の<xsl:stylesheet>ヘッダーにはxmlns:set="http://exslt.org/sets".

0 投票する
2 に答える
1313 参照

c# - XSLTC.EXE MSBuild タスク

ASP.NET Web アプリケーションでいくつかの XSLT を使用しています。プロジェクトをビルドするたびに、これらのファイルを dll にコンパイルする必要があります。現在、vs2010 ツール コマンド プロンプトから xsltc.exe を呼び出して xslts を手動でコンパイルしています。

プロジェクトをビルドするときにアセンブリが生成されるように、xsltc.exe の msbuild タスクを追加するにはどうすればよいですか?

.NET 4.0 を使用しています。

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

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 が尊重されていれば、クラッジは不要です。