XML 验证 (DTD)

拥有正确语法的 XML 被称为 "形式良好" 的 XML 通过 DTD 验证的 XML 是 "合法" 的 XML

形式良好的 XML 文档

"形式良好"的 XML 文档拥有正确的语法

也就是遵守前面的章节描述的语法规则

  1. XML 文档必须有一个根元素
  2. XML 元素都必须有一个关闭标签
  3. XML 标签对大小写敏感
  4. XML 元素必须被正确的嵌套
  5. XML 属性值必须加引号
<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>小明</to>
  <from>小红</from>
  <heading>短信</heading>
  <body>I miss you so much</body>
</note>

验证 XML 文档

合法的 XML 文档是 "形式良好"的 XML 文档

也就是符合文档类型定义(DTD)的规则:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">   
<note>
  <to>小明</to>
  <from>小红</from>
  <heading>短信</heading>
  <body>I miss you so much</body>
</note>

DOCTYPE 声明是对外部 DTD 文件的引用

Note.dtd 的内容会在下一节中学习到

XML DTD

DTD 的目的是定义 XML 文档的结构。 它使用一系列合法的元素来定义文档结构

<!DOCTYPE note[
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to  (#PCDATA)>
    <!ELEMENT from  (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body    (#PCDATA)>
]>

如果要深入要学习 DTD,请移步在我们的 DTD 基础教程

XML Schema

W3C 支持一种基于 XML 的 DTD 代替者 XML Schema

<xs:element name="note">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="to" type="xs:string"/>
            <xs:element name="from" type="xs:string"/>
            <xs:element name="heading" type="xs:string"/>
            <xs:element name="body" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

看起来 XML Schema 比 DTD 要复杂有没有?

所以,才流行不起来?

如果要深入学习 XML Schema,请移步我们的 XML Schema 基础教程

一个通用的 XML 验证器

为了更简单快捷的检查 XML 文件的语法,我们会在下一章节中创建一个 XML 验证器,以便在需要时对任何 XML 文件进行语法检查


Copyright © 简单教程 www.twle.cn