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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 数据库中的 XML » 在数据库中使用 XML

 

在关系数据库中存储 XML 文档

SQL Anywhere 支持以下两种可用于在您的数据库中存储 XML 文档的数据类型: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>

请注意,无论选择了何种数据类型,属性始终会进行引用。

有关如何将元素内容转义的详细信息,请参见对非法的 XML 名称编码

有关 XML 数据类型的详细信息,请参见XML 数据类型