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

SQL Anywhere 12.0.1 » 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>

属性は、データ型に関係なく常にマークアップされる点に注意してください。

 参照