5

SQLでXQueryを使用して、ソートされた属性を持つXMLを取得するにはどうすればよいですか?

たとえば、このXMLの場合:

<root><book b='' c='' a=''/></root>

返す必要があります:

<root><book a='' b='' c=''/></root>
4

4 に答える 4

2

XML では属性は順序付けされていないため、属性がどの順序で出力されても、ドキュメントは同じと見なされます。XQuery には確かに属性の順序を変更する方法はなく、SQL XML にも変更があるとは思えません。

于 2011-08-29T20:48:08.137 に答える
1

xml データ型の制限から。

XML インスタンス内の属性の順序は保持されません。xml 型の列に格納されている XML インスタンスをクエリすると、結果の XML の属性の順序が元の XML インスタンスと異なる場合があります。

そのため、属性を並べ替える方法を理解できたとしても、SQL Server の XML データ型が目的の順序を保持しているとは言えません。

于 2011-09-14T17:03:35.540 に答える
1

属性の順序には意味的な意味はありませんが、XML の設計目標の 1 つは人間が判読できるようにすることです。そのため、属性の順序が一貫しており、ユーザーの期待を反映する字句 XML を生成しようとすることは、完全に不合理ではありません。よりも例<point x="2" y="5" z="7"/>の方が見やすいです<point z="7" x="2" y="5"/>。そのため、Saxon シリアライザーsaxon:attribute-orderには、出力 XML 内の属性の順序を制御できるオプションがあります

于 2017-05-23T08:41:14.227 に答える