

# Babelfish 支持 XML 数据类型方法
<a name="babelfish-xml-datatype-methods"></a>

从版本 5.4.0 开始，Babelfish 现在支持存储过程 sp\$1xml\$1preparedocument 和 sp\$1xml\$1removedocument、行集函数 OPENXML() 和 xml 数据类型方法 .VALUE()。通过这些函数和过程，查询 XML 数据会变得更加容易。

## 了解 XML 过程和方法
<a name="babelfish-xml-datatype-methods-overview"></a>
+ **sp\$1xml\$1preparedocument**：过程 sp\$1xml\$1preparedocument 将给定的 xml 文本解析为输入，并返回指向此文档的句柄。此句柄在会话期间或在 sp\$1xml\$1removedocument 将其移除之前有效。
+ **sp\$1xml\$1removedocument**：过程 sp\$1xml\$1removedocument 使过程 sp\$1xml\$1preparedocument 创建的句柄无效。
+ **OPENXML()**：OPENXML 提供 XML 文档的行集视图。由于 OPENXML 是一个行集提供程序并且它返回一组行，因此，我们可以像使用任何其它表、视图或表值函数一样，在 FROM 子句中使用 OPENXML。
+ **VALUE()**：XML 数据类型方法 VALUE() 用于从存储在 xml 类型的列、参数或变量中的 XML 实例提取值。

## Babelfish XML 程序和方法的局限性
<a name="babelfish-xml-datatype-methods-limitations"></a>
+ Babelfish 仅对 OPENXML() 的第二个参数（即 ROWPATTERN）支持 XPATH 1.0 语法。
+ OPENXML() 目前不支持元属性和标志 8。
+ Babelfish 仅对于 VALUE() 数据类型方法的第一个参数（即 XQuery）支持 XPATH 1.0 语法。