XQuery と Zorba:XQueryドキュメント内からシリアル化パラメータを設定する
-
26-10-2019 - |
質問
これによれば:
http://www.xmlplease.com/xquery-xhtml
「XQuery には、シリアル化パラメーターを設定できる標準的な方法がありません (利用可能な場合)。XQuery では、XQuery プロセッサの適切なドキュメントを参照して、実装されているシリアル化パラメータとその正確な使用方法を確認する必要があります。利用可能な場合は、通常はコマンド ラインで設定できます。多くの場合、XQuery ドキュメント内から使用することもできます。」
サクソン語では次のように書くことができます
declare option saxon:output "omit-xml-declaration=yes";
しかし、Zorba XQuery でそれを行う方法については言及されていません。手伝ってくれますか?ありがとう。
解決
Zorbaは、シリアル化のためのXquery 3.0 Prologオプションをまだ実装していません。
シリアイザーを構成する唯一の方法は、コマンドラインインターフェイス(例-OMIT-XML-DECLARATION)またはホスト言語(C ++ APIなど)を使用することです。
XQuery_t lQuery = aZorba->compileQuery("for $i in (1 to 3) return <a> { $i } </a>");
Zorba_SerializerOptions lSerOptions;
lSerOptions.omit_xml_declaration = ZORBA_OMIT_XML_DECLARATION_YES;
lQuery->execute(std::cout, &lSerOptions);
または、結果を文字列に明示的にシリアル化することもできます
fn:serialize($result,
<output:serialization-parameters>
<output:indent value="yes"/>
<output:method value="xml"/>
<output:omit-xml-declaration value="yes"/>
</output:serialization-parameters>
)
次に、コマンドラインインターフェイスでテキストシリアル化メソッド( - シリアル化テキスト)を使用して、この文字列を出力します。
他のヒント
これは、いくつかのXqueryの実装によってすでにサポートされている新しい公式Xquery 3.0構文です(Zorbaですぐに実装されると思いますか?)
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:omit-xml-declaration "yes";
"your query"
ドキュメントによると( http://www.zorba-xquery.com/html/documentation/2.1.0/zorba/indexpage#w3cspecs )Zorbaはシリアル化仕様をサポートする必要があります( http://www.w3.org/tr/xslt-xquery-serialization/#serparam )。その場合、もし私が間違っていないなら、
declare option omit-xml-declaration "yes";
hth!
ゾルバは使わないと思う option
■ シリアル化パラメータを設定します。代わりに、これらのパラメーターを、使用しているシリアル化関数のパラメーターとして設定する必要があります。
たとえば、zorba 2.x を使用して XML をファイルにシリアル化するには、次のコマンドを使用します。 file:write()
関数。この関数は 3 つのパラメータを取ります。
- 書き込むファイル、
- 書く内容、
- シリアル化パラメータ:
編集: 次のようになると思います:
file:write (
'/tmp/test.xml',
$content,
<serialization-parameters>
<omit-xml-declaration>yes</omit-xml-declaration>
</serialization-parameters>
)
これは、汎用機能を提供した zorba の 1.4.0 バージョンに似ています。 ser:serialize()
シリアル化モジュール内。一般に、これはアプリケーション固有であるだけでなく、バージョン固有でもあるため、使用している zorba のバージョンを知っておくと役立つ場合があります。
編集: コマンドラインユーティリティを使用している場合は、次のオプションを使用できます --serialization-parameter, -z
シリアル化パラメータを設定するには:
zorba -z omit-xml-declaration=yes -f -q my_xquery.xq