格式良好的XML必须有且仅有一个根元素,标签闭合、区分大小写、属性值引号包裹、不交叉嵌套、特殊字符转义;有效的XML在此基础上还需符合DTD或XSD定义的结构与业务规则。

格式良好的XML是语法上正确的XML,只要满足基础书写规则就算合格;有效的XML则更进一步,它必须在格式良好基础上,还严格符合某个DTD或XML Schema定义的结构和业务规则。
格式良好的XML要满足哪些基本规则
这是XML能被解析器读取的最低门槛,不涉及业务逻辑,只管“写得对不对”:
- 有且仅有一个根元素
- 所有开始标签都有对应结束标签,或正确使用自闭合形式(如
) - 标签严格区分大小写,
和视为不同元素 - 属性值必须用双引号或单引号包裹,不能裸写(
id=123❌,id="123"✅) - 标签不能交叉嵌套,必须呈严格的父子/兄弟关系(
❌) - 特殊字符如
&、、>必须转义为&、zuojiankuohaophpcn、youjiankuohaophpcn
有效的XML多了哪些要求
有效不是独立标准,而是建立在格式良好之上的“增强验证”,核心在于“是否按约定来”:
- 文档开头必须声明 DTD 或引用 XSD(例如
或xsi:noNamespaceSchemaLocation="note.xsd") - 元素名称、出现顺序、嵌套层级、出现次数都得跟 DTD/XSD 定义完全一致
- 属性名、是否必需、默认值、数据类型(比如 xs:date、xs:integer)都要匹配
- 如果 DTD 规定
必须是数字且大于0,那么或free 都会导致验证失败-5
关键区别一句话说清
格式良好管“能不能读”,就像中文句子有没有主谓宾、标点用对没;有效管“符不符合规矩”,就像这份合同是不是完全按模板条款写的——错一个字段名、少一个必填项,哪怕语法全对,也算无效。
基本上就这些。格式良好是硬性前提,有效是可选但关键的业务保障。










