SQL Anywhere は、データベースで XML 文書を格納するために使用できる 2 つのデータ型、XML データ型と LONG VARCHAR データ型をサポートしています。これらのデータ型は、いずれも XML 文を文字列としてデータベースに格納します。
XML データ型は、データベース・サーバの文字セット・エンコードを使用します。XML エンコード属性は、データベース・サーバが使用するエンコードと一致する必要があります。XML エンコード属性は、自動文字セット変換の実行方法を指定しません。
XML データ型は、文字列と相互にキャスト可能なすべてのデータ型と、相互にキャストできます。文字列が XML にキャストされるときに、整形式かどうかはチェックされない点に注意してください。
リレーショナル・データから要素を生成するとき、XML で無効な文字は、データが XML 型でないかぎりエスケープされます。たとえば、次の内容の <product> という要素を生成するとします。この要素の内容には、不等号 (より小、より大) が含まれています。
<hat>bowler</hat> |
要素の内容を XML 型として指定するクエリを記述した場合、次のように不等号はマークアップされません。
SELECT XMLFOREST( CAST( '<hat>bowler</hat>' AS XML ) AS product ); |
結果は次のようになります。
<product><hat>bowler</hat></product> |
しかし、たとえば次のように、クエリでこの要素の内容を XML 型として指定しない場合があります。
SELECT XMLFOREST( '<hat>bowler</hat>' AS product ); |
この場合、不等号がエンティティの参照で置換されます。
<product><hat>bowler</hat></product> |
属性は、データ型に関係なく常にマークアップされる点に注意してください。
要素の内容がエスケープされる方法の詳細については、不正な XML 名のエンコーディングを参照してください。
XML データ型の詳細については、XML データ型を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |