跳转到主要内容

2200S — invalid_xml_comment

PostgreSQL SQLSTATE 2200S 的来源与诊断参考。

2200S

速览

XML 注释无效。PostgreSQL 18.6 的 xmlcomment 路径在注释文本含有被禁止的 -- 序列或以 - 结尾时报告 invalid XML comment;周围源码检查的是注释专属的 XML 语法,而不是一般文档失败。

字段
SQLSTATE 2200S
条件名 invalid_xml_comment
状态 有效
已知存在于 8.3.0
锁定快照 9.0.23, 9.1.24, 9.2.24, 9.3.25, 9.4.26, 9.5.25, 9.6.24, 10.23, 11.22, 12.22, 13.23, 14.24, 15.19, 16.15, 17.11, 18.6, 19beta3
ERRCODE_INVALID_XML_COMMENT
别名

含义

本成员专用于 XML 注释语法,不涵盖所有 XML 文档失败。在 USE_LIBXML 下,xmlcomment 在构造 <!--...--> 之前扫描输入;任意位置的双连字符或末尾连字符都会被拒绝。

报文

该 guard 以 ERROR 严重性报告 primary:invalid XML comment。引用分支没有独立 DETAIL 或 HINT。未启用 USE_LIBXML 时函数走独立的 XML 支持路径(0A000),因此源码存在本身不能证明所有服务器构建都提供此功能。

诊断

检查报文指出的注释文本和 XML 上下文。XML 注释不能包含被禁止的双连字符形式,也不能以连字符结尾;在保留周围标记的前提下修正该注释。若解析器实际指出处理指令或非文档内容,应按报出的 2200T 或 2200L/N 处理。

处理

在保留周围 XML 的前提下修正注释文本,依据注释专属报文处理,而不是套用一般文档修复。

该分支抛出 ERROR 时,显式事务应先用 ROLLBACK 恢复,或对语句前已建立的保存点执行 ROLLBACK TO SAVEPOINT,再重试;自动提交下只在失败语句结束后重试修正后的动作。事务边界规则见事务与重试指南

版本

锁定目录从 8.3.0 起记录该条件;固定源码覆盖 PostgreSQL 18.6。

2200L2200T

来源

固定源码:src/backend/utils/adt/xml.c#L490-523。结构化证据记录保留完整注释 guard、报文和范围边界。违规注释是运行时输入,函数编译受 USE_LIBXML 控制;本页未运行自然 XML 案例。