SQL/XML 発行関数における特殊文字の処理
SQL/XML 公開関数は、SQL 値および ID が XML 値に変換される際に、 一部の特殊文字を置き換えます。
SQL 値における特殊文字の処理
XML 文書では、ある特定の文字は
特殊文字とみなされます。 これらの文字は、そのエンティティー表記を使用してエスケープ形式で
記述する必要があります。 これらの特殊文字は、以下のとおりです。
| 特殊文字 | エンティティーの表記 |
|---|---|
| < | < |
| > | > |
| & | & |
| " | " (属性値でのみ) |
SQL/XML 公開関数を使用して SQL 値を XML 値として発行する場合、関数は、これらの特殊文字をその事前定義エンティティーに置換します。
SQL ID における特殊文字の処理
SQL 値から XML 値を作成する場合、 SQL ID を XML 修飾名または QName にマップする必要がある場合があります。 ただし、区切り文字で区切られている SQL ID で許可される文字セットは、QName で許可される文字セットとは異なります。 この違いは、SQL ID に有効な一部の文字は QName では無効であるということを意味します。
例えば、区切り文字付き SQL ID の「phone@work」を考えてみます。 @ 文字は QName では有効文字ではないため、文字はエスケープされ、QName は phone_x0040_work になります。
このデフォルトのエスケープ動作は、列名のみに適用されます。 XMLELEMENT で要素名として指定される SQL ID、または XMLFOREST および XMLATTRIBUTES の AS 節で別名として指定される SQL ID の場合、エスケープのデフォルトはありません。 これらの場合には、有効な QName を指定する必要があります。