Java EE 开发技术与案例教程——第五章:XML

这次我们将学习以下内容

  • 什么是XML?什么是DTD?什么是Schema
  • 什么是DOM?有什么作用?
  • 什么是SAX?简述其作用
  • 实现一访问XML文档的DOM程序。
  • 实现一访问XML文档的SAX程序。

XML

eXtensible Markup Language ,XML 可拓展标记语言,和HTML和JSON同属于标准通用标记语言SGML的一个简化子集

那为什么需要XML而不用HTML呢?

  • HTML智能显示内容却不能表达数据内容;
  • HTML不能描述矢量图形、数学公式、化学符号等特殊对象;
  • HTML的可扩展性差,用户不能根据自己的需求定义有意义的标记

并且XML的优势之一是允许建立适合应用需求的标记集,数据格式不受显示格式限制

文档三要素:

  1. 数据
  2. 结构
  3. 显示方式

HTML的显示方式嵌在数据中,创建文本的时候不需要考虑输出格式,如果有需要对相同的内容进行不同格式的显示则需要重新建立文档,重复量大

XML把三要素单独处理,利用样式表文件定义文档的显示方式:需要改变显示方式只需要改变样式表文件即可

下面来看看XML长啥样

一开始是xml声明,可以涉及三个属性:

  1. version:XML版本号
  2. standlone:是否和另外一个独立的dtd标记类型声明文件配合使用,yes表示自成一体,没有另外的dtd。no表示有一个dtd供该xml文件使用,默认是yes。
  3. encoding 编码标准

然后就是元素了,元素里面还可以嵌套其他元素,并且元素中可以有属性,属性是如下面一样的name-value对

<order orderNO ="12345"
    customer="Hohn Smith"
    date ="October 15,2009">
  <item itemNo="a528" quantity ="1"/>
  <item itemNo="c817" quantity ="3"/>
</order>

这里就是元素order中嵌套两个item

并且order有三个属性

item有两个属性,但是item是空元素

但是上面的也可以只用嵌套元素的形式表示

<order>
  <orderNO>12345</orderNO>
    customer<Hohn Smith"customer
    date<October 15,2009">date
  <item>
    <itemNo>a528</itemNo>
    <quantity>1</quantity>
  </item> 
  <item>
    <itemNo>c817</itemNo>
    <quantity>3</quantity>
  </item> 
</order>

哪种方法按照自己喜欢,但是属性不可以嵌套

DTD

简单来说DTD文档类型定义,就是来定义XML文档的规则的,DTD分为内部DTD和外部DTD。

如果一个XML文档包含了DTD声明,则这个DTD叫做内部DTD,一般放在XML声明之后,并且在standalone=“yes”,不能放在XML数据之后以及XML声明之前。

外部DTD的好处是多个XML文档可以共享,standalone=“no”

由于xml standlone 默认值是 “yes”,所以book.dtd是外部DTD。

这个就是外部的DTD

语法看这里,本文不介绍。

DOM SAX

DOM解析XML文档的时候是:一次读入、随机访问

而SAX解析XML的时候是:顺序访问,触发读入

代码请看这里:XML文件解析DOM解析和SAX解析

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值