Valid XML指既格式良好又通过DTD或XSD校验的XML文档:格式良好要求标签闭合、嵌套正确、属性加引号;有效则需满足DTD/XSD定义的结构、类型、顺序等全部规则。

有效的XML(Valid XML)是指不仅格式良好(well-formed),还严格符合某个外部或内部约束定义的XML文档。格式良好只是基础——比如标签闭合、嵌套正确、属性加引号;而“有效”,必须经过DTD或XSD校验,确认元素名、结构、属性、数据类型、出现次数、顺序等全部满足预设规则。
Valid XML 的两个前提
一个XML文档要被称为“有效”,需同时满足:
- 格式良好(Well-formed):有正确的XML声明(如red">),所有标签成对、正确嵌套,属性值用双引号,无非法字符等;
- 语义合规(Validated):通过了DTD或XSD的验证,即文档结构和内容完全匹配所引用的约束定义文件。
DTD 如何支撑 Valid XML
DTD是最早的XML验证机制,以非XML语法描述规则。它能定义:
- 哪些元素可出现、是否必需、出现几次(如user*表示零或多个);
- 元素的子元素顺序与组合(如);
- 元素内容类型(#PCDATA表示纯文本);
- 属性声明(名称、类型、缺省值、是否必需,如id ID #REQUIRED)。
在XML中通过引入后,解析器会比对实际内容与DTD规则,不匹配即报错。
本文档主要讲述的是Android的资源与国际化设置;资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。Android支持不同类型的资源文件,包括XML,PNG以及JPEG文件XML文件根据描述的不同有不同格式。这份文档描述可以支持什么样的文件,语法,以及各种格式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
XSD 如何实现更严格的 Valid XML
XSD是DTD的现代替代方案,本身是XML格式,因此可被通用XML工具处理。它支持:
- 丰富内置数据类型(xs:string、xs:integer、xs:date、xs:boolean等),还能自定义类型;
- 命名空间(namespace)隔离不同领域词汇,避免冲突;
- 精确控制元素出现次数(minOccurs="0" maxOccurs="unbounded")、是否可为空、默认值或固定值;
- 复杂类型(含属性+子元素)、简单类型(仅文本内容)、分组(xs:group)、属性组(xs:attributeGroup)等高级建模能力。
典型声明方式:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/ns example.xsd"
为什么 XSD 逐渐取代 DTD
不是因为DTD“不能用”,而是XSD在工程实践中更可靠、可维护、可扩展:
- DTD无法表达数据类型,所有内容都被当作文本处理;
- DTD不支持命名空间,多源XML集成时易出错;
- DTD语法独立于XML,学习成本高,且不能用XPath/XSLT直接处理;
- XSD可被IDE智能提示、自动补全、图形化建模工具支持,也便于生成Java类(如JAXB)。
Spring等主流框架默认使用XSD验证,就是基于这些实际优势。









