well-formed xml必须满足基本语法规范:有且仅有一个根元素,标签闭合且正确嵌套,属性值用引号包围,特殊字符使用实体引用,违反任一规则将导致解析错误。
- 缺少闭合标签: <name>张三 (缺少 </name>)
- 标签嵌套错误: <b><i></b></i>(应先闭合i再闭合b)
- 属性未加引号: <person id=123>(应为 id=”123″)
- 包含未转义的&符号: age & gender (应写作 age & gender)
well-formed与valid的区别
注意,“well-formed”不同于“valid”。well-formed只关注语法是否正确;而“valid”XML还需满足特定的DTD或Schema定义的结构和数据类型约束。一个XML可以是well-formed但不valid,但如果不well-formed,就根本无法被解析,更谈不上valid。
基本上就这些。只要确保XML语法正确,就能避免well-formed错误。