XML常见问题

1.XML是什么?

     XML 被设计用来传输和存储数据,其焦点是数据的内容。HTML 被设计用来显示数据,其焦点是数据的外观。XML即可扩展标记语言(Extensible Markup language),你可以根据自己的需要扩展XML。XML中可以轻松定义<books>, <orders>自定义标签,而在HTML等其他标记语言中必须使用预定义的标签,比如<p>,而不能使用用户定义的标签。使用DTD和XML Schema标准化XML结构。XML主要用于从一个系统到另一系统的数据传输,比如企业级应用的客户端与服务端。XML 数据以纯文本格式进行存储,因此提供了一种独立于软件和硬件的数据存储方法。

有关XML文档构建模块请移步:http://www.runoob.com/dtd/dtd-building.html

2.什么是形式良好的XML文档?

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

  • XML 文档必须有一个根元素
  • XML元素都必须有一个关闭标签
  • XML 标签对大小写敏感
  • XML 元素必须被正确的嵌套
  • XML 属性值必须加引号

3.什么是XML元素?

XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。

一个元素可以包含:

  • 其他元素
  • 文本
  • 属性
  • 或混合以上所有...
<bookstore>
    <book category="CHILDREN">
        <title>Harry Potter</title>
        <author>J K. Rowling</author>
        <year>2005</year>
        <price>29.99</price>
    </book>
    <book category="WEB">
        <title>Learning XML</title>
        <author>Erik T. Ray</author>
        <year>2003</year>
        <price>39.95</price>
    </book>
</bookstore>

在上面的实例中,<bookstore> 和 <book> 都有 元素内容,因为他们包含其他元素。<book> 元素也有属性(category="CHILDREN")。<title>、<author>、<year> 和 <price> 有文本内容,因为他们包含文本。

4.XML命名空间是什么?它为什么很重要?

XML命名空间与Java的package类似,用来避免不同来源名称相同的标签发生冲突。XML命名空间在XML文档顶部使用xmlns属性定义,语法为xmlns:prefix=’URI’。prefix与XML文档中实际标签一起使用。下面例子为XML命名空间的使用。

<root xmlns:inst="http://instruments.com/inst"
    <inst:phone>
        <inst:number>837363223</inst:number>
    </inst:phone>
</root>

5.DOM和SAX解析器有什么区别?

NO区别DOM解析SAX解析
1操作将所有文件读取到内存中形成DOM树,如果文件量过大,则无法使用顺序读入所需要的文件内容,不会一次性全部读取,不受文件大小的限制
2访问限制DOM树在内存中形成,可以随意存放或读取文件树的任何部分,没有次数限制由于采用部分读取,只能对文件按顺序从头到尾读取XML文件内容,但不能修改
3修改可以任意修改文件树只能读取XML文件内容,但不能修改
4复杂度易于理解,易于开发开发上比较复杂,需要用户自定义事件处理器
5对象模型系统为使用者自动建立DOM树,XML对象模型由系统提供对开发人员更加灵活,可以用SAX建立自己的XML对象模型

使用DOM解析时,XML文档以树形结构的形式加载到内存中,而SAX是事件驱动的解析器

dom是w3c指定的一套规范标准,核心是按树形结构处理数据,dom解析器读入xml文件并在内存中建立一个结构一模一样的“树”,这树各节点和xml各标记对应,通过操纵此“树”来处理xml中的文件。xml文件很大时,建立的“树”也会大,所以会大量占用内存。
sax解析器占内存少,效率高。
sax解析器核心是事件处理机制。例如解析器发现一个标记的开始标记时,将所发现的数据会封装为一个标记开始事件,并把这个报告给事件处理器,事件处理器再调用方法(startElement)处理发现的数据。事件处理器可以自己编写也可以从父类继承。

所以DOM解析适合于修改,SAX解析适合于读取大型文件,2者结合的话可以用JDOM

6.什么是CDATA?

XML 文档中的所有文本均会被解析器解析。只有 CDATA 区段中的文本会被解析器忽略。

术语 CDATA 是不应该由 XML 解析器解析的文本数据。

像 "<" 和 "&" 字符在 XML 元素中都是非法的。

"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。

"&" 会产生错误,因为解析器会把该字符解释为字符实体的开始。

某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。

CDATA 部分中的所有内容都会被解析器忽略。

CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束:

具体详情请移步:http://www.runoob.com/xml/xml-cdata.html

                          http://www.cnblogs.com/qiantuwuliang/archive/2010/03/29/1699361.html


7.DTD与XML Schema有什么区别?

DTD 的目的是定义 XML 文档中合法的元素、属性和实体。通过使用 DTD,每个 XML 文件可以随身携带它自己的格式的描述。DTD 可以被用来确认您收到的数据和您自己的数据是否有效。

DTD不使用XML编写而XML Schema本身就是XML文件,且使用XML语法,这意味着XML解析器等已有的XML工具可以用来处理XML Schema。


8.什么是XML DOM?

DOM 定义了访问诸如 XML 和 HTML 文档的标准:

"W3C 文档对象模型(DOM,全称 Document Object Model)是一个使程序和脚本有能力动态地访问和更新文档的内容、结构以及样式的平台和语言中立的接口。"

XML DOM 是:

  • 用于 XML 的标准对象模型
  • 用于 XML 的标准编程接口
  • 中立于平台和语言
  • W3C 标准

XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。

换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。


本文章大部分参考于:http://www.importnew.com/10839.html

                                 http://www.runoob.com/xml/xml-tutorial.html



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值