Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » データベースにおける XML

 

リレーショナルデータベースにおける XML 文書の格納

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>&lt;hat&gt;bowler&lt;/hat&gt;</product>

属性は、データ型に関係なく常にマークアップされます。

 参照