有效的XML文档必须首先格式良好,即标签闭合、嵌套正确、属性有引号、单根元素;其次需符合DTD或XSD定义的结构规则。DTD通过DOCTYPE声明元素和属性约束,XSD则用XML语法支持数据类型和命名空间,提供更精细控制。使用解析器启用验证模式,检查是否符合预定义规范,才能确认有效性。

一个有效的(Valid)XML文档,不仅需要是格式良好(Well-formed)的XML,还必须符合特定的结构约束规则。这些规则通常通过DTD(Document Type Definition)或XSD(XML Schema Definition)来定义。只有当XML文档在语法和结构上都满足这些预定义的规范时,才被称为“有效的XML”。
在讨论有效性之前,XML必须首先是格式良好的。这意味着:
格式良好是XML能被解析的基础,但不保证内容结构的正确性。
DTD 是一种较早的 XML 约束机制,用于声明文档中允许的元素、属性、它们的层级关系以及内容类型。使用 DTD 验证的 XML 被称为 DTD 有效。
关键特点:示例:
<!DOCTYPE book [ <!ELEMENT book (title, author+, price)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ATTLIST book id ID #REQUIRED> ]>
此 DTD 规定:book 必须包含一个 title、至少一个 author 和一个 price,且必须有唯一的 id 属性。XML 文档若不符合这些规则,即为无效。
XSD(XML Schema Definition)是比 DTD 更强大、更现代的验证机制,基于 XML 语法编写,支持数据类型和命名空间。
主要优势:示例片段(XSD):
<xs:element name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
</xs:element>
XML 文档引用该 XSD 后,解析器会验证其结构和数据类型是否匹配。任何偏差都会导致验证失败。
需要借助支持 DTD 或 XSD 验证的 XML 解析器(如 DOM 解析器、SAX 解析器,或工具如 xmllint、XMLSpy)进行显式验证。仅能被解析不等于有效。
基本上就这些。有效的 XML 是业务系统间可靠交换数据的基础,尤其在金融、医疗、出版等领域,结构一致性至关重要。DTD 简单轻量,XSD 功能全面,选择取决于实际需求。
以上就是什么是有效的(Valid)xml? DTD或XSD验证下的xml规范的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号