問題タブ [saxon]
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 - カスタム XPath 関数内の XML データの取得
独自のカスタム XPath 関数を作成するときに現在の xml データを取得する方法はありますか (こちらを参照)。
にアクセスできることは知っていますが、XPathContext
これで十分ですか?
例:
私たちの XML:
私たちの XSL:
XML ツリー全体を取得するにはどうすればよいでしょうか。
編集:明確にするために:静的Javaコードを実行するカスタム関数を作成しています(これはSaxonの機能です)。したがって、この Java コードでは、XML ツリーから要素 (bar や fizz など) とそれらの CDATA (smang や buds など) を取得できるようにしたいと考えています。
java - サクソンザランJSP
データベースから取得した XML ドキュメントに XSL を添付する JSP があります。アプリケーションは Saxon パーサーを使用していますが、私の XML は Xalan パーサーを使用する必要があります。JSP ページは、使用するパーサーをオーバーライドできますか?
xml - XSLT から解析されていないエンティティ属性の値を取得するには?
XSLT と XML の未解析エンティティに問題があります。これは架空のシナリオです。最初に、doc.xml という名前の XML ファイルを取得しました。
この XML ファイルでは、要素「employee」の属性「detail」に未解析エンティティ (NDATA) を使用しています。attach.xml は次のとおりです。
次に、XSLT を使用して、attach.xml を埋め込んだ出力を生成したいと考えています。私の XSLT ファイルの名前は doc.xsl です。
最後に、Xalan 2.7.1 を使用して実行します。
出力は次のとおりです。
これは私が望むものではありません。出力を次のようにしたい:
正しい結果を得るには、XSLT スクリプトをどのように書き直す必要がありますか?
java - Xalan を使用して既存の Java XSLT コードを変更し、Saxon と TinyTree を使用するにはどうすればよいですか?
Xalan を使用して、XSLT 変換をプログラムで実行する既存の Java コードがいくつかあります。別の (外部で構成された) TransformerFactory を使用できるようにリファクタリングしました。
Saxon (v6.5.3 および v8.7) ファクトリを使用してみましたが、パフォーマンスの向上は見られません。Saxon は Xalan よりも遅く、メモリを多く使用します。
Saxon TinyTree を使用してパフォーマンスの利点を得ることができることは理解していますが、このコードでその方法を理解することはできません。
私のコードは次の形式です。
ここで、「transformerFactoryClass」は構成済みの TransformerFactory クラスのインスタンスです。Xalan の場合は
org.apache.xalan.processor.TransformerFactoryImpl
、Saxon 8.7 の場合は
net.sf.saxon.TransformerFactoryImpl、Saxon 6.5.3 の場合は com.icl.saxon.TransformerFactoryImpl です。
助言がありますか?
xslt - XSLT エンコーディングの問題、結果に疑問符が表示される
XSLT 変換を実行しようとしていますが、ëöï などの文字がリテラルの '?' に置き換えられます。出力に(16進エディターで確認しました)。ソース ファイルには正しい文字が含まれており、スタイルシートには次のものが含まれています。
他に何が欠けていますか?
それが重要な場合、私はトランスフォーマーとしてサクソンを使用しています。
xml - ant と xslt を使用して xml ファイルを動的に連結する
質問
ビルド時に 1 つのマスター バージョンにマージする多数の xml 構成ファイルがあります。構成ファイルが小さいほど保守が容易になり、1 つの大きなファイルの読み込みが速くなるため、これは一般的なビルド変換プロセスであり、ネット上で多くの良い例を見つけることができると想像しました。
ここ StackOverflow で問題の一部に対するいくつかの優れた解決策を見つけることができましたが、それらはすべて、事前にマージする必要がある xml ファイルの名前を知っていることに依存しています。これは私には不必要なオーバーヘッドのようです。どの入力 xml ファイルが必要かを動的に計算できるビルド スクリプトを作成できるはずです。
残念ながら、これを達成するために私が見つけた唯一の方法は、ちょっとしたハックでした。それはこのように動作します、
- インターネットから盗んだランダムなアリ タスクを使用して、ディレクトリ リストを xml ファイルに書き込みます。
- xml ファイルを xslt 変換にフィードすると、参照されている他のディレクトリ リストの xml ファイルを読み込んでそれらを連結できます。
- ディレクトリ リストを含む一時 xml ファイルを削除します。
これがantスクリプトです
そして、これがスタイルシートです。
XSLT でマージするファイルを動的に検出する簡単な方法を見つけた人はいますか? XSLT がディレクトリを直接読み取ることができないのは当然のことですが、ファイル名のリストを別の xml ファイルを介して渡すよりも簡単な方法を見つけたいと思っていました。
実装されたソリューション
Dimitre のソリューションは、Ant スクリプトにいくつかの追加調整を加えるとうまく機能しました。
[...]
および xsl スタイルシート (移動しました)
これらの調整は、Saxon9 をロードして、パラメーターを使用してディレクトリを設定することに関するものでした。
java - 正しい JRE を使用してバッチ ファイルから Java アプリを起動する
java net.sf.Saxon.transform...
簡単なコマンド " "で Java アプリ (Saxon) を起動する非常に簡単なバッチ ファイルがあります。
このアプリには Java バージョン 1.5 が必要です。
このバッチ ファイルは、マシンに JRE のバージョンがインストールされているかどうかに関係なく、400 人以上のユーザーによって使用されます。
最新バージョンの JRE をインストールするだけで問題が解決すると思っていましたが、そうではありませんでした。予備テストでは、最新バージョンの JRE (1.6.0_13) がインストールされているにもかかわらず、コマンド " java
" が呼び出される場合があります。古い Java バージョン (1.3.1...)。
バッチ ファイルから次のことを行う最も簡単な (しかし最も堅牢な) 方法は次のとおりです。
- 最近インストールされた JRE を確認する
- 最新バージョンが >= 1.5 の場合、バッチ コマンドからこの JRE を使用します。
- そうでない場合は、最新の JRE をダウンロードするようにユーザーに伝えます。
これは、マシンに JRE のバージョンがまったくインストールされていない場合でも機能するはずです。
Java Webstart について少し読んだことがありますが、それがこの仕事に最も簡単なツールかどうかはわかりません。インストールする必要があるかどうか、Java のバージョンがまったくインストールされていなくても実行できるかどうかなど、わかりませんでした。
これには他にどのようなツールがありますか?
visual-studio - Saxon .NET XSLT プロセッサを使用すると、Visual Studio で IntelliSense が機能しない
.NET 用のオープン ソースのSaxon XSLT プロセッサを使用して、いくつかの 2.0 変換を実行しています。
他の dll と同じように saxon9api.dll を参照し、これに対してコードをコンパイルできます。ただし、Visual Studio は、IDE をメモ帳と同じくらい便利にする IntelliSense を表示しません。
saxon9api.dll は IKVM Java for .NETプラットフォームを使用しています。これが VS の問題の原因なのだろうかと思います。Reflector は問題なく DLL を検査できますが、何らかの理由で VS が満足していないと思われます。
何か案は?
編集:
フレームワークに組み込み機能がない場合にSaxonを使用することをMicrosoftが推奨しているため (リンクは現在無効です) 、この動作に遭遇した人が他にいないことに驚いています。
IKVM で実行されているアセンブリが IntelliSense を表示しないという質問に言い換えると思いますが、これが最初に当てはまることを証明するには、別の IKVM ベースのプロジェクトを見つける必要があります...
java - Saxon 8 (Java 版) の問題
私は saxon を初めて使用することを指摘しておきます。パッケージ内のドキュメントと例に従ってみましたが、この問題にうまく対応できませんでした。
基本的に、saxon v8を使用してJavaでxml処理を実行しようとしています。何かを機能させるために、パッケージに含まれているサンプル ファイルの 1 つを使用して、必要に応じて変更しました。名前空間を使用していない限り機能します。それが私の質問です。名前空間の問題を回避するにはどうすればよいですか? 私は本当にそれを使用する気にはなりませんが、それは私の xml に存在するので、使用するか無視する必要があります。どちらのソリューションでも問題ありません。
とにかく、これが私のスターターコードです。それは何もしませんが、ハードコードされたxmlドキュメントに対してそれを使用しようとするxpathクエリを取ります。
XML ファイルの例はこちら...
名前空間を含むクエリでこれを実行すると、エラーが発生します。例:
/ns1:animal/cat/
「プレフィックス ns1 が宣言されていません」というエラーが表示されます。
クエリから ns1: を削除しても、何も得られません。「animal」の前に付けられた「ns1:」を削除するように xml を修正すると、クエリ/animal/cat/
を正常に実行できます。
どんな助けでも大歓迎です。ありがとう。
tomcat - サクソン XMLBeans Tomcat
最近、Tomcat Web サービスを更新しました。実際に更新したのは、XMLBeans をバージョン 2.4 に、Saxon をバージョン 9 に更新したことだけです。
Netbeans と eclipse を実行すると、プロジェクトは正常に動作するようになりましたが、Tomcat にデプロイしようとすると、次のようになります。
JAXEN をバージョン 1.1.1 に更新しようとしましたが、うまくいきませんでした。
何か案は?
デプロイで発生するエラーは次のとおりです。
p>