`

xml的基础知识1

    博客分类:
  • xml
阅读更多

1、HTML 的历史,大家可以更容易理解 XML 要解决什么问题。
2、第二部分给些对 XML 的感性认识,这部分是很重要的,需要再扩充些内容。
3、第三部分和第四部分完全可以合在一起,主要讲 XML 解析器和 3 种 API。3 种 API 都需要详细讲解,而且要举出例子。
4、第五和第六部分也需要举些例子,以使程序员得到感性的认识。
5、需要把 xpath 和名字空间(namespace)详细讲一下,因为这些也是非常重要的内容。

 

 

1、HTML 的缺点以及 XML 的产生原因
HTML 最初是一种表义的标记语言。Tim Berners-Lee 最初发明 HTML 的主要目的是为了与研究物理学的同事交流的方便(他当时是 CERN(欧洲粒子物理实验室)的研究人员)。超链接可以很方便地把关于物理学研究的各种资源链接起来。HTML 最初只是设计用来交流文本信息的,最初的 HTML 显示出来就是简单的文本,没有多少表示显示格式的标记。Marc Andreessen 发现了 HTML 和超链接的商业价值,开发出了世界上第一个图形界面的浏览器 NCSA Mosaic。Andreessen 随后与别人合作开了 Netscape 公司,并且制造出当时最成功的浏览器 Netscape Navigator。为了提高浏览器的表现能力,显示更加丰富的内容,有必要扩充 HTML,添加各种与显示格式有关的标记和属性,并且把对多媒体的支持加进去。例如

、、、、align、bgcolor 等等。Netscape Navigator 大为成功,尤其是在其后续版本推出强大的脚本语言 JavaScript、支持 plugin 并且能在页面中运行 Java Applet 后。甚至有人认为浏览器就是下一代的操作系统,将来开发的所有应用程序都应该是针对浏览器开发的(B/S 结构)。Netscape 是 1995 年 NASDAQ IPO(新股上市)最成功的公司,Marc Andreessen 一夜之间成为了亿万富翁。这引起了软件之王 M$ 的注意和警觉,M$ 认为 Netscape 正在对其构成威胁,一定要把 Netscape 击垮,占据互联网这个战略制高点。而互联网最重要的应用软件就是浏览器,于是 M$ 推出了自己的浏览器 Internet Explorer,并且采用免费和捆绑等不正当竞争手段,在 5~6 年(从真正展开竞争的 1997 年 IE 3.0 推出并与 Windows 捆绑到 2003 年 AOL 彻底放弃 Netscape 浏览器)的时间里将 Netscape 彻底赶出了浏览器市场。如今 Netscape 浏览器这个产品已经彻底灭亡,只留下了它开放源代码后浴火重生的 Mozilla 继续在与 IE 进行着顽强的抗争。不过由于 Linux 桌面应用已经走向成熟,所以将来 Mozilla 也会有很好的前景,事实上支持 Mozilla 已经提上了很多 B/S 结构软件开发商的议事日程。在 IE 与 Netscape 角力的几年时间里,两大浏览器都为了提高自己的表现能力各出奇招。他们不断推出新的只有自己才支持的、互不兼容的 HTML 标记。W3C 为了考虑工业界的需求也在不断地扩充 HTML 规范,以求各种浏览器能够有一个兼容的基础。HTML 规范经历了 2.0、3.2、4.0 等重要版本后已经非常庞大,完全背离了 HTML 最初设计主要用来表义的初衷,其中含有大量表示显示格式的标记和属性。结果是实现一个完全的 HTML 浏览器越来越困难和复杂,IE 和 Netscape 的规模都达到了 10M 以上。为 HTML 减肥的呼声越来越高。为了解决这个问题,以利于 Web 的健康发展,W3C 设计了 XML。

XML 的设计思想来自于古老的 SGML(其实 HTML 的设计思想也是来自于 SGML)。SGML 是 IBM 创造的一个用于出版业的文档格式标准,后来被 ISO 采纳作为国际标准(ISO 8879)。SGML 把文档内容与文档格式完全分离开,使得内容提供者的与排版人员的工作可以相互独立。SGML 是一种非常严谨的标记语言,但是 SGML 的问题是过于复杂,一个基于 SGML 的出版系统开发成本高昂,价格不菲,只有象 IBM 一样的大型企业才有能力购买这样的系统。SGML 过于重量级的特点使其完全不适合用于 Web 领域,而且 SGML 的设计完全是面向文档的,而不是面向数据的,大量基于 Web 的应用是面向数据的应用。W3C 参考 SGML 设计了新一代的标记语言 XML,XML——可扩展标记语言是一种元语言(我们使用的 Eclipse 也可以称做是一种元工具),它可以建造其它任意种类的标记语言。XML 实现了 W3C 最初设定的所有目标,轻量级、易于理解、扩展性好、平台中立、兼顾文档和数据。实际上 XML 规范只有几十页,只是 SGML 规范的 1/10 左右。

注:XML 1.0 规范的中文版可以在网上找到,地址是 http://lightning.prohosting.com/~qqiu/REC-xml-20001006-cn.html

 

 

2、XML 的外观
我们来看看 XML 是什么样:
[code="java"]<book id="1">
XML 高级编程
<isbn>7-111-07315-0</isbn>
<author>Didier Martin 等</author>
<pages>944</pages>
</book>[/code]
好了,这个就是 XML,如果你熟悉 HTML 的话学习 XML 不非吹灰之力。在 XML 中的可以自定义任意的标记。
一段最低要求的 XML(文档或数据)只需要满足以下 4 个要求:
a、所有的起始标记都必须有结束标记。对于空元素可以采用这种形式表示:

b、标记区分大小写,起始标记与结束标记大小写必须一致。
c、多个起始、结束标记之间不能发生顺序错误,例如:
<br /><isbn> <br />
</isbn>
可以把 XML 看作一个堆栈,起始标记代表 push 操作,结束标记代表 pop 操作,所以必须采用后进先出的方式编写 XML。
d、所有的属性都必须有引号,引号可以是双引号也可以是单引号。一般采用双引号。

这就是最简单的 XML 的规则,简单吧?

XML 的内容当然不只这么多,可以看看《无废话 XML》以了解更多的内容。下面是一个更完整的 XML。

[code="java"]<!---->


<!---->
<!---->
<!---->
<configure class="org.mortbay.jetty.Server">

<!---->
<!---->
<!---->

<!---->
<!---->
<!---->
<!---->
<call name="addListener">
<arg>
<new class="org.mortbay.http.SocketListener">
<systemproperty name="jetty.port" default="8080">
10
100
30000
5000
</new>
</arg>
</call>

<!---->
<!---->
<!---->


<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
<!---->
root
<call name="addWebApplications">
<arg></arg>
<arg><systemproperty name="jetty.home" default=".">/webapps/</arg>
<arg>org/mortbay/jetty/servlet/webdefault.xml</arg>
<arg type="boolean">true</arg>
</call>

<call name="addWebApplication">
<arg>/gwwweb</arg>
<arg>D:/WORK/gwwweb/webapps/default</arg>
</call>

<call name="addWebApplication">
<arg>/publish</arg>
<arg>D:/WORK/gwwweb/webapps/publish</arg>
</call>

<call name="addContext">
<arg>/</arg>
D:/WORK/shljjnew/webapps/default
<call name="addHandler">
<arg><new class="org.mortbay.http.handler.ResourceHandler"></arg>
</call>
</call>

<!---->
<!---->
<!---->

<new class="org.mortbay.http.NCSARequestLog">
<arg><systemproperty name="jetty.home" default=".">/logs/yyyy_mm_dd.request.log</arg>
90
true
false
false
GMT
</new>


<!---->
<!---->
<!---->
2000
false

</configure>[/code]

事实上,这个就是我们做开发时使用的 Jetty 的配置文件中的一部分(删除了一些内容以便于讲解)。
在这个文件中:
[code="java"]<!---->[/code]
是所有 XML 文档中都必须有的 XML 声明,用途是告诉 XML 解析器文档所遵从的 XML 规范的版本和使用字符集。目前 XML 规范的最高版本就是 1.0。除了 ISO-8859-1 外(这个就是缺省的字符集,所以也可以不写),我们做开发时最常用的两个字符集是 GBK 和 UTF-8。

包含在 <!----> 中的内容叫做处理指令(Processing Instruction,PI),处理指令不是 XML 的一部分,它的作用是为 XML 应用程序处理 XML 提供一些指示。注意,刚才说的 XML 声明虽然与处理指令很象,但是并不是处理指令。这个文档中并没有处理指令。我来举一个处理指令的例子,例如在文档中用到了 CSS 样式单,那么应该有这样一个类似的处理指令:
[code="java"]<!---->[/code]
这个处理指令就是告诉应用程序使用哪个样式单来显示 XML。

[code="java"][/code]
是文档类型定义(DTD),指出这个 XML 是哪一类的标记语言,应该遵从哪一类标记语言的定义。除了用 DTD 的方式来定义标记语言类型外还可以用 Schema 来定义标记语言的类型。例如:
[code="java"]<wjml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.xxx.com/dagl wjml.xsd" xmlns="http://www.xxx.com/dagl">[/code]
这个 XML 中使用的是标准的 XML Schema。稍后我会详细讲解 DTD 和 Schema 的适用场合。

包含在 <!----> 中的内容是注释,也不是 XML 的一部分,这个与 HTML 是相同的。

其它的内容都很容易理解了,注意看这个文档是否完全满足我上面讲的 4 个条件。 

 

 

分享到:
评论

相关推荐

    XML基础知识大全

    在本文中,我们将深入探讨XML的基础知识,包括它的结构、语法、解析方式以及在IT行业中的应用。 一、XML简介 XML起源于1998年,由万维网联盟(W3C)制定,它是一种可扩展的标记语言,旨在替代HTML,因为HTML主要...

    XMLBOOK xml基础知识

    XML的设计目标是传输和存储数据,而不是显示数据,因此它的主要焦点在于数据的结构化和标准化,而非数据的外观。...无论你是网页开发者、软件工程师还是数据管理人员,XML基础知识的掌握都将对你的工作带来极大的帮助。

    xml基础知识文档

    xml基础,xml语言的定义,xml的数据岛,xml结点的设置、获取。

    JAVA 处理XML 基础知识

    DOM初步 DOM是Document Object Model的缩写,即文档对象模型。...通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容。

    xml基础.pdf

    ### XML基础知识详解 #### 一、XML概述 **XML**(可扩展标记语言,Extensible Markup Language)是一种标记语言,其设计目的是为了传输和存储数据。与HTML相比,XML更侧重于数据的描述而非展示。XML的核心优势在于...

    xml基础知识讲义

    总结来说,XML基础知识涉及XML文档的结构、实体的使用、特殊字符的实体引用以及不受解析的CDATA段。理解这些概念对于创建和处理XML文档至关重要,因为它们确保了数据的准确性和一致性。在实际应用中,XML广泛用于...

    c#汇总,包括asp.net xml c#基础知识

    【C#基础知识】 C#(读作"C sharp")是一种面向对象的编程语言,由微软公司为.NET框架开发。它的设计目标是提供一种简洁、类型安全、高效且现代的编程语言,用于构建Windows桌面应用程序、Web应用程序以及移动平台...

    2020-2021上半学期XML期末考题1

    本文将对 2020-2021 上半学期 XML 期末考题 1 进行详细解析,涵盖了 XML 基础知识、XSLT、SAX、XML Schema、XQuery、SOAP 和 WSDL 等方面的知识点。 一、XML 基础知识 1. XML 文档声明:XML 文档以 &lt;?xml version=...

    xml基础知识测试题

    根据提供的文件信息,我们可以整理出一系列关于XML的基础知识点,这些...以上就是从题目中提取出来的XML基础知识要点。这些知识点覆盖了XML的基本概念、语法、元素定义、属性使用等方面,对于理解和掌握XML非常有帮助。

    XML相关基础知识集合

    XML相关基础知识集合XML相关基础知识集合XML相关基础知识集合XML相关基础知识集合

    XML技术基础知识

    XML技术基础知识的介绍,适合初学者学习。

    自己写的xml基础知识

    XML基础知识 XML(Extensible Markup Language)是一种标记语言,主要用于存储和传输数据。它与HTML相似,但有着不同的功能和特点。XML的主要应用场景是在企业开发中用于数据交换和配置文件。 XML的功能 * 用于...

    快速学习XML基础知识

    XML的基础知识主要包括以下几个方面: 1. **XML文档结构**:XML文档由三部分组成:声明、元素和属性。声明部分通常以`&lt;?xml version="1.0" encoding="UTF-8"?&gt;`开始,定义文档的版本和字符编码。元素是XML的核心,...

    xml基础知识的ppt

    XML的发展伴随着一系列相关技术,如XPath用于查询XML文档中的数据,XSLT用于转换XML文档,以及DOM(Document Object Model)用于解析和操作XML文档。这些技术共同构成了XML生态系统,使得XML成为现代软件开发中不可...

    XML基础实例 数据岛

    在本主题“XML基础实例 数据岛”中,我们将深入探讨XML的基础概念,以及如何使用XML创建数据岛,这是一个在网页中嵌入XML数据的技术。 1. **XML的基本结构** - XML文档由元素组成,元素是XML文档的构建块。每个...

    《XML实用大全》.pdf

    ### XML基础知识 1. **定义**:XML(Extensible Markup Language)是一种用于标记数据、定义数据类型以及在不同系统之间进行数据交换的标准格式。它被设计为具有自我描述性,能够清晰地表示数据的含义和结构。 2. *...

Global site tag (gtag.js) - Google Analytics