2

私はxproc、XML パイプライン言語、およびhttp://xmlcalabash.com/で遊んでいます。大きな xml ドキュメントをストリーミングする例を見つけたいと思います。たとえば、次の巨大なxml ドキュメントがあるとします。

<Books>
 <Book>
   <title>Book-1</title>
 </Book>
 <Book>
   <title>Book-2</title>
 </Book>
 <Book>
   <title>Book-3</title>
 </Book>

<!-- many many.... -->
 <Book>
   <title>Book-N</title>
 </Book>
</Books>

次のような x->N ドキュメントをループ (ストリーミング) するにはどうすればよいですか?

<Books>
 <Book>
   <title>Book-x</title>
 </Book>
</Books>

各ドキュメントを xslt で処理しますか? xproc で可能ですか?

4

6 に答える 6

2

ストリーミングと並列処理を追加した Calabash に基づく XProc の実装であるQuiXProc ( http://code.google.com/p/quixproc ) を参照してください。

于 2011-09-02T12:24:47.060 に答える
2

QuiXProcでストリーミングするXProcでそれを行う方法は次のとおりです

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="1.0">
  <p:load href="hugedocument.xml"/>
  <p:for-each>
    <p:iteration-source select="/Books/Book"/>
    <p:xslt>
      <p:input port="stylesheet">
        <p:document href="book.xsl"/>
      </p:input>
      <p:input port="parameters">
        <p:empty/>
      </p:input>
    </p:xslt>
  </p:for-each>
  <p:wrap-sequence wrapper="Books"/>    
  <p:store href="hugedocument.res.xml"/>
</p:declare-step>
于 2012-12-06T09:44:30.370 に答える
1

ストリーミングに関連するXProcDevリストに関する最近の議論を覚えています。Calabashはストリーミングを試みていないようです。ここでNormanWalshのメッセージを参照してください。

Saxon SAは、XSLTおよびXQueryのストリーミングをサポートしています。詳細については、http: //www.saxonica.com/documentation/sourcedocs/serial.htmlを参照してください。

于 2009-06-07T08:38:47.037 に答える
1

EMC の Calumet ( http://developer.emc.com/xmltech ) もストリーミングを行いません。これまでの主な焦点は、XProc 仕様への準拠と、xDB ネイティブ XML データベースなどの他の XML 関連ツールとの統合性でした。ストリーミングのサポートは私のレーダーにありますが、今すぐにいつできるようになるかはわかりません.

于 2010-03-30T11:57:48.697 に答える
0

ほとんどのXProcプロセッサはステップ間でデータをストリーミングしませんが、これは必ずしもケースが機能しないことを意味する必要はありません(たとえば、メモリ使用量の点で爆発します)。これは、XSLTステップの結果で何をしたいかによって異なります。

結果を収集して、1つの大きな出力ファイルを作成しようとしている場合は、そうです。これは問題になる可能性があります。ただし、その場合は、とにかくストリーミングソリューション(SAX、STaX、JOOSTパーサーなど)を使用したほうがよい場合があります。

各XSLTの結果を個別に保存する場合、問題ははるかに少なくなります。最初のドキュメントをロードし、各ドキュメントで処理を行うのに十分なメモリがあるかどうかだけを気にする必要があります。XMLCalabashの下のSaxonがどれだけうまく動作するかはわかりませんが、最大50メガバイトのサイズはそれほど大きな問題である必要はないと思います。

乾杯

于 2011-11-12T15:14:08.313 に答える