拥有正确语法的 XML 被称为“形式良好”的 XML-- XML with correct syntax is "Well Formed" XML.

通过某个 DTD 进行了验证的 XML 是“合法”的 XML-- XML validated against a DTD is "Valid" XML.


一个"形式良好"的 XML 文档拥有正确的语法, 会遵守前几章介绍过的 XML 语法规则:

  • XML 文档必须有根元素
  • XML 文档必须有关闭标签
  • XML 标签对大小写敏感
  • XML 元素必须被正确的嵌套
  • XML 属性必须加引号
XML 验证<?xml version="1.0" encoding="ISO-8859-1"?>
XML 验证
<note>
XML 验证
<to>George</to>
XML 验证
<from>John</from>
XML 验证
<heading>Reminder</heading>
XML 验证
<body>Don't forget the meeting!</body>
XML 验证
</note>


验证 XML 文档

 1. XML DTD 

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

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

 一个合法的 XML 文档是"形式良好"的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则:

XML 验证<?xml version="1.0" encoding="ISO-8859-1"?>
XML 验证
<!DOCTYPE note SYSTEM "Note.dtd">
XML 验证
<note>
XML 验证
<to>George</to>
XML 验证
<from>John</from>
XML 验证
<heading>Reminder</heading>
XML 验证
<body>Don't forget the meeting!</body>
XML 验证
</note>  
XML 验证

 在上例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。

 

 2. XML Schema

W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema:

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

 

 3. XML 错误会终止您的程序

XML 文档中的错误会终止你的 XML 程序。

W3C 的 XML 规范声明:如果 XML 文档存在错误,那么程序就不应当继续处理这个文档。理由是,XML 软件应当轻巧,快速,具有良好的兼容性。

如果使用 HTML,创建包含大量错误的文档是有可能的(比如你忘记了结束标签)。其中一个主要的原因是 HTML 浏览器相当臃肿,兼容性也很差,并且它们有自己的方式来确定当发现错误时文档应该显示为什么样子。

使用 XML 时,这种情况不应当存在。

 

 

相关文章:

  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2021-05-08
  • 2021-08-07
  • 2022-01-03
猜你喜欢
  • 2022-01-27
  • 2022-02-14
  • 2022-01-24
  • 2021-07-18
  • 2022-12-23
  • 2021-12-09
  • 2021-11-22
相关资源
相似解决方案