2017-12-20 12 views
2

oXygenエディタを使って要素内のノードをコメントアウトしようとすると、それが(:<foo>foo 1</foo>:)にラップされましたが、ノードがコメントアウトされなかったが、テキストノードの前に(:末尾に:)のテキストノードが続きます。囲まれた式のコメントに加えて空のシーケンス()が必要ですか?

次に、構文を調べたところ、コメント構文にアクセスする代わりに、囲まれた式{(:<foo>foo 1</foo>:)}を使用する必要があることがわかりました。

ただし、BaseXとSaxon 9.8は{(:<foo>foo 1</foo>:)}を喜んで受け入れますが、Altovaは文句を言うため、空のシーケンス{(:<foo>foo 1</foo>:)()}を追加する必要があります。

https://www.w3.org/TR/xquery-31/#doc-xquery31-EnclosedExpr XQuery 3.1では、中括弧内の式はオプションで、デフォルトは()です。

これは、XQuery 3.1では空のシーケンスを使用せずに中括弧内のコメントを使用するだけで十分であることを意味しますか?

要約すると、SaxonとBaseXは<root>{(:<foo>foo 1</foo>:)}</root>を使用できますが、Altovaは誤った構文について文句を言い、<root>{(:<foo>foo 1</foo>:)()}</root>を使用するようにしています。

これはXQuery 3.1でもまだ必要ですか?

+2

のXQuery 3.1式はオプションになります。これはAltovaのバグのようです。 –

答えて

0

コメント欄のバグのように聞こえますが、これはXQueryエディタでよく使用されています。要素内の内 - とないcomputed element constructors、あなたがdirect element constructorsを使用していると仮定すると - XMLコメントを使用します。

<hello>world 
    <!-- Don't print me --> 
</hello> 

コンピュー要素のコンストラクタは、まだXQueryのコメントを使用します。

element hello { 
    'world' (: Don't print me :) 
} 
+0

申し訳ありませんが、私は質問を終了していないし、タグを追加する間に意図せずに投稿された、私の目的は、ノードをコメントアウトし、構築されたコンテンツにコメントを入れないことです。 –

+0

@MartinHonnen私の仕様は、あなたのものと同じです。空のシーケンスはオプションであり、中括弧の使用によって暗示されます(MarkLogicもこのように動作します)。私はAltovaのパーサが間違っていると思います。しかし、これはXQueryのコメントを主張する場合にのみ問題になることに注意してください。その要素の内部でXMLコメントを使用することで、この問題を完全に回避することができます。すなわち、