問題タブ [xproc]
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.
xml - XProc による XML ストリーミング
私はxproc、XML パイプライン言語、およびhttp://xmlcalabash.com/で遊んでいます。大きな xml ドキュメントをストリーミングする例を見つけたいと思います。たとえば、次の巨大なxml ドキュメントがあるとします。
次のような x->N ドキュメントをループ (ストリーミング) するにはどうすればよいですか?
各ドキュメントを xslt で処理しますか? xproc で可能ですか?
xslt - 可変数のソース ファイルを使用する XSLT ワークフロー
国に基づいた固定の名前付けスキーマを持つ XML ファイルがたくさんあります: report_en.xml
、report_de.xml
、など。XPath 関数を介してこれらの各ファイルを読み取り、いくつかの値を抽出して 1 つの XML ファイルを生成report_fr.xml
する XSLT スタイル シートを作成したいと考えています。document()
要約付き。私の質問は次のとおりです。処理するファイルの正確な名前を知らなくても、ソース ファイルを反復処理するにはどうすればよいですか?
現時点では、すべてのファイル名を保持する補助 XML ファイルを生成し、スタイルシートで補助 XML ファイルを使用して反復することを計画しています。ファイル リストは、小さな PHP または bash スクリプトで生成されます。より良い代替手段はありますか?
私はXProcを認識していますが、現時点ではそれに多くの時間を投資することはできません。誰かが XProc ソリューションを投稿できるかもしれません。ソリューションには、レポートを HTML としてダウンロードして整理するワークフロー ステップが含まれていることが望ましいです :)
XSLT プロセッサとして Saxon を使用するので、使用できる Saxon 固有の拡張機能があれば、それも問題ありません。
xml - このxprocパイプラインを単純化する方法は?
XProcを掘り下げ始めたところです(Calabashを使用)。単一の出力ドキュメントを生成するために単一の入力ドキュメントに適用したい一連のXSLT変換があります。以前は単純なPythonスクリプトを使用して変換を実行していましたが、XProcが適しているように見えました。
以下のパイプラインは私にとってはうまくいくようです。これは基本的に、正しい順序で適用する必要があるXSLT変換のリストにすぎません。問題は、それは非常に冗長に見えるということです。それを減らす方法があるといいのですが、(今のところ)自分で理解することはできません。
xml - XPROCの実行
XSLTとXPROCのものは非常に新しいです。これで、サンプルXPROCを作成しました。すべての初心者と同様に、HelloWorldからも始めました。
hello.xpl
今私の質問はばかげているかもしれません、私はこれを実行して出力を表示する方法を知りたいですか?
ありがとう。
xproc - XPROC - セカンダリ ポートでのファイルの生成
私の要件は、セカンダリ ポートで 1 つの XML ファイルといくつかの HTML ファイルを生成することです。XProc でいくつかのステップを構成しました。
サンプルコードは次のとおりです。
ここでの問題は、HTML ファイルが正しく生成されることです。XML ファイルが生成されますが、XML コンテンツを表示できません。代わりに、すべてを HTML 形式で表示します。これは<p:store>
、上記のコード スニペットが原因です。
どのように2つの<p:store>
ステップがありますか?(1 つは HTML 用、もう 1 つは XML 用)
xml - p:variable :: シャドーイングとは何を意味し、以前に宣言された p:variable に新しい値を再割り当てできますか
まだ試していません。
p:variable の値をパイプラインの他の場所、つまり、あるステップの開始時に有効な宣言の後に更新できますか? そうでない場合、なぜですか?また、本当に行う必要がある場合、または少なくともシミュレートする必要がある場合、これを行う最善の方法は何ですか。
xml - XProc: 中間ファイルを使用した複数の XSLT 変換
中間 XML ファイルを使用していくつかの XSLT 変換を行う必要があります。(ファイルが必要です。実際のケースは、後のステップで中間ファイルをロードするため、もう少し注意が必要です)
XProc パイプラインを作成したいと思います。次のコードを記述しようとしましたが、これによりエラーが発生します。
(SCHWERWIEGEND は FATAL のようなものを意味します) したがって、明らかにファイルintermediate.xml
は書き込まれていません。
これはxpl
私が使用したドキュメントです:
完全を期すために、これらは変換ファイルです。
ソース.xml:
最初の.xsl:
final.xsl:
実際のアプリケーションに関する注意事項を次に示します (上記はもちろん簡略化したものです)。
- 最初のステップ: ソースを処理に適したものに変換します。出力:
companies.xml
- 手順 1 の出力を取得し、そこからインデックス ファイル (
index.xml
) を作成します。インデックス ファイルは手動で編集できる必要があります。 - 3 番目のステップは、ステップ 1 と 2 で作成されたファイルをマージし、最終的な xml (
final.xml
)を作成することです。
インデックス ファイルはディスクに書き込まれる必要があり、最後のステップを単独で実行できる必要があります (これは別の問題です。別のパイプラインを作成します)。
(ステップ 1)の出力companies.xml
はオプションであり、メモリに保存できます (ただし、大きくなる可能性があります)。
spring-mvc - How to call calabash xml from a Java program
I try to set up a web based application using spring and xslt. Since i always use xslt in a pipelining style, i would like to use calabash. Is there a possibility to call calabash from Java? I read thru the documentation on http://xmlcalabash.com but there is only a description how to use it from command line. I also tired to find some javadoc on githup but wasn't successful. Obviously, there is the Main class with the main() method and i could supply the command line parameters as a string array...
I wonder if there is a better way to do it.
xml - 結果ドキュメントが既に存在する場合は、変換をスキップします
バッチ/シェル スクリプトを使用する代わりに、XProc を介して変換を実行したいだけです。
私の変換プロセスは、入力ドキュメントと出力ドキュメントの単純な連結であるため、変換 1 の出力は変換 2 の入力になります。変換 2 の出力は変換 3 の入力になります。
次のコードは、変換の例を示しています。
それは機能し、さらに、すべての一時的な結果ドキュメントを取得して、各 XSLT スクリプトの機能を再確認しました。XProc スクリプトは常に最初から開始されるため、複雑で複数の変換を処理すると速度が低下します。しかし、変換 4 で何かを修正したいだけです。通常は (バッチ/シェルを使用して) 変換 4 の出力を削除し、XSLT スクリプトを修正し、if-test の代わりに以前のすべての変換をスキップします (例: output3.xml が存在する場合)。後藤変換 4)。XProc スクリプトでこれを行う方法は?
XPath パターンは次のとおりnot(doc-available(‘output1.xml’))
です。ap:choose を使用しようとしましたが、p:otherwise の出力パイプラインがなく、プロセスは常に失敗します。p:choose を使用しても、必要な解決策が得られないと思いますか?
何か案は?
敬具 オリバー
xproc - 変換出力 非 XML ドキュメント
入力ドキュメント (単なるファイル参照のリスト) を複数の出力ドキュメントに変換したいだけです。
これは機能します:
XSL:
問題: 出力ドキュメントにルート要素が含まれていません。フレームを出力する必要があり、後でフレーム ファイルが作成され、すべての出力ドキュメントが含まれます。
エラーメッセージ:
09.11.2012 13:06:27 com.xmlcalabash.util.DefaultXProcMessageListener エラー SCHWERWIEGEND: err:XD0001:XD0001 09.11.2012 13:06:27 com.xmlcalabash.drivers.Main エラー SCHWERWIEGEND:非XML リソースは、ステップ出力で生成されるか、ステップ入力で到着します。
もちろん、それは XML ではありません。@method (method=text) に代わって修正しようとしましたが、うまくいきませんでした。
何か案は?該当する解決策を検索しましたが、現時点ではこれは不可能であるというエントリしか見つかりませんでした...うまくいきません