↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
历史版本。 PostgreSQL 8.2 已结束支持。 请参阅 当前版本手册.

8.14. XML 文档支持 #

XML(可扩展标记语言)支持并不是一种单一的能力,而是数据库系统所支持的一组特性。这些能力包括存储、导入/导出、验证、索引、修改效率、搜索、转换以及XML到SQL的映射。PostgreSQL支持其中一部分而并非全部XML能力。未来版本的PostgreSQL将继续改进XML支持。关于XML在数据库中应用的概述,见http://www.rpbourret.com/xml/XMLAndDatabases.htm。

存储

PostgreSQL没有专门的XML数据类型。用户应把XML文档存储在普通的TEXT字段中。如果需要把文档拆分成组成部分、使每个元素单独存储,必须使用中间件方案来完成;但一旦这样做,数据就变成了关系型的,必须按关系型方式处理。

导入/导出

没有把XML映射到关系表的设施。这必须使用外部工具来完成。导出XML的一种简单办法是以HTML模式(\pset format html)运行psql,再用外部工具把XHTML输出转换为 XML。

验证

/contrib/xml2提供了一个名为xml_is_well_formed()的函数,可以在CHECK约束中使用它来强制字段包含格式良好的XML。它不支持针对特定XML模式的验证。要完成针对特定模式的XML检查,可以使用具备XML能力的服务器端语言。

索引

/contrib/xml2的函数可以用在表达式索引中对特定的XML字段建立索引。要索引XML文档的全部内容,可以使用全文索引工具/contrib/tsearch2。当然,tsearch2 索引并不感知XML,因此查询中还应加入额外的/contrib/xml2检查。

修改

如果UPDATE没有修改某个XML字段,那么新旧行之间将共享该XML数据。但如果UPDATE修改了某个XML字段,内部就必须创建该XML字段完整的已修改副本。

搜索

XPath 搜索通过/contrib/xml2实现。它处理XML文本文档,并根据所请求的查询返回结果。

转换

/contrib/xml2支持XSLT(可扩展样式表语言转换)。

XML 到 SQL 的映射

这涉及XML数据与关系结构之间的相互转换。PostgreSQL 没有对这种映射的内部支持,而是依赖外部工具完成此类转换。

缺失的特性

缺失的特性包括 XQuery、SQL/XML 语法(ISO/IEC 9075-14),以及为XML存储优化的XML数据类型。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.