【XML】——XML浅析

基本定义

XML是可扩展标记语言,是标准通用标记语言的子集,是一种标记电子文件,使其具结构性的标记语言。

XML和HTML有很大的相似性,可以说是几乎相同的内容,但是却负责不同方面的功能

相同点
1、他们都是标记语言
2、语言格式相同,<>为开始标记,</>为结束标记
3、都有各自的语言结构

不同点
1、HTML扩展性不强,XML是原标记语言,可用于定义新的标记语言
2、HTML不要求嵌套和配对等,但是XML必须严格遵守DTD或者Schema定义的结构
3、HTML主要是用来显示数据的,XML主要是用来包含和传输数据的
4、HTML难于阅读维护,XML结构清晰,易于维护

XML相对HTML的优点
实用性强
访问速度快
扩扩展性好
跨平台性好

DTD 简介

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

1.内部的 DOCTYPE 声明
假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

<!DOCTYPE 根元素 [元素声明]>

带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码):

<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Reminder</heading>
  <body>Don't forget the meeting!</body>
</note>

以上 DTD 解释如下: !DOCTYPE note (第二行)定义此文档是 note 类型的文档。
!ELEMENT note (第三行)定义 note 元素有四个元素:“to、from、heading,、body”
!ELEMENT to (第四行)定义 to 元素为 “#PCDATA” 类型
!ELEMENT from (第五行)定义 from 元素为 “#PCDATA” 类型
!ELEMENT heading (第六行)定义 heading 元素为 “#PCDATA” 类型
!ELEMENT body (第七行)定义 body 元素为 “#PCDATA” 类型

2.外部文档声明
假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

<!DOCTYPE 根元素 SYSTEM "文件名">

这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。)

    <?xml version="1.0"?>
    <!DOCTYPE note SYSTEM "note.dtd">
    <note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note> 

这是包含 DTD 的 “note.dtd” 文件:

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

为什么使用 DTD?

  • 通过 DTD,每一个 XML 文件均可携带一个有关其自身格式的描述。
  • 通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。
  • 应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。
  • 使用 DTD 来验证自身的数据。

XML Schema

XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 可描述 XML 文档的结构。

什么是 XML Schema?
Schema和DTD文件十分类似,同样是定义XML文件的结构。但是Schema是XML内部文件,属于DTD的替代者,用于保护通讯数据。

XML Schema:

  • 定义可出现在文档中的元素
  • 定义可出现在文档中的属性
  • 定义哪个元素是子元素
  • 定义子元素的次序
  • 定义子元素的数目
  • 定义元素是否为空,或者是否可包含文本
  • 定义元素和属性的数据类型
  • 定义元素和属性的默认值以及固定值

一个xml可以有多个Schema,但是最多只能有一个DTD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值