xmloption 是一个 配置参数,用于确定在 XML 和字符串值之间转换时,隐式使用的是 DOCUMENT 还是 CONTENT。
xmloption 在 PostgreSQL 8.3 中被添加。
用法
xmloption 可以设置为以下值之一,以确定 XML 字符串的解析方式:
CONTENT- 用于处理格式良好的 XML 片段。DOCUMENT- 用于处理格式良好的 XML 文档。
xmloption 也可以使用以下符合 SQL 标准的命令进行设置:
SET XML OPTION { DOCUMENT | CONTENT }
默认值
xmloption 的默认值为:CONTENT。
按 PostgreSQL 版本详细信息
xmloption (PostgreSQL 19)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 18)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 17)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 16)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 15)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 14)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 13)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 12)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 11)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 10)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 9.6)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 9.5)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
文档:xmloption
xmloption (PostgreSQL 9.4)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 9.3)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 9.2)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 9.1)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 9.0)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 8.4)
| 设置 | content |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | |
| 上下文 | user |
| 变量类型 | enum |
| 来源 | 默认 |
| 最小值 | |
| 最大值 | |
| 枚举值 | content, document |
| 启动值 | content |
| 重置值 | content |
| 源文件 | |
| 源行 |
文档:xmloption
xmloption (PostgreSQL 8.3)
| 设置 | |
| 单位 | |
| 类别 | 客户端连接默认值 / 语句行为 |
| 简短描述 | 设置在隐式解析和序列化操作中,XML 数据被视为文档还是内容片段。 |
| 扩展描述 | 有效值是 DOCUMENT 和 CONTENT。 |
| 上下文 | user |
| 变量类型 | string |
| 来源 | 默认 |
| 最小值 | |
| 最大值 |
文档:xmloption
变更历史
- PostgreSQL 8.3
- 添加(提交 8c1de5fb)
示例
xmloption 设置的简单演示。
postgres=# SHOW xmloption;
xmloption
-----------
content
(1 row)
postgres=# SELECT '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
?column?
----------
f
(1 row)
postgres=# SET xmloption TO document;
SET
postgres=# SELECT '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
ERROR: invalid XML document
LINE 1: SELECT '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
^
DETAIL: line 1: Extra content at the end of the document
<foo>bar</foo><bar>foo</bar>
^
参考资料
- PostgreSQL 文档: xmloption
