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