`

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 个条件。 

 

 

分享到:
评论

相关推荐

    上市公司-重污染企业数据(1991年-2023年).zip

    上市公司-重污染企业数据(1991年-2023年)

    (最新更新!)15个典型水环境(湖泊、湿地)面积变化数据集(1990-2021)

    数据介绍 包括2000-2021年青藏高原15个典型湖泊的面积变化数据和1990-2020年黄河第一弯(以黄河进出玛曲县为控制点,玛曲小分水岭提取黄河所在地作为研究区:北纬32°16'-34°51',100°76'-东经103°41')研究区内水体、湿地、林地、草地、人类利用地、裸地的面积变化。 湖泊面积变化信息的提取采用数据分别来自陆地资源卫星 Landsat(包括 MSS、TM 和ETM+传感器)、高分辨率对地观测系统卫星(高分 1 号,WFV 传感器),其中2000-2012 年采用 Landsat 卫星数据,2013-2021 年采用高分 1 号数据。 湿地面积变化数据基于Landsat TM/OLI 卫星图像,选择了1990 年至 2020 年每隔5年的七个时间段进行提取计算。 文章命名与使用方法 文件命名:数据以.xlsx格式存储 文件的名称为“XX-area_yyyy-yyyy.xlsx”,其中XX代表地点,yyyy代表年,前面的yyyy代表数据开始时间,后面的yyyy代表数据结束记录时间。 数据读取方式:该数据集可以直接用excel程序打开。 ## 数据信息 数据大小:22.88kb 数据年份:1990-2021 数据格式:Excel

    (最新更新)全国教学创新大赛、青教赛、混合式教学设计大赛三大赛资料大全

    一年一度的全国教学创新大赛开始,我们收集了教学创新大赛、青教赛、混合式教学设计大赛三大赛相关资料,包含了课件、实施报告、案例、教学设计分享给大家! 一等奖、第二届救学创新大赛创新成果报告分享 特等奖教学设计案例分享|第一、二、三届全国高校混合... 陕西第三届高校课堂教学创新大赛获奖课件 全国高校教师教学创新大赛实战经验分享(第二届教创赛.. 全国高校教师教学创新大赛经验分享(PPT+讲座视频) 數学创新设计、实施、成效的系统性和逻辑性汇总 救学创新大赛详细教学设计案例、创新报告-《概率论与.. 教学创新大赛课件、教学大纲、教案分享(11门课) 教学创新大赛教学创新成果报告案例-《剧目与排练》 教学创新大赛获奖成果报告案例(新工科新文科新医科新... 敦学创新大赛国赛一等奖PPT 救学创新大赛国赛一等奖《工程力学》教学设计、申报书.... 教学创新大赛创新成果报告分享(文科艺术体育)30个 教学创新大赛创新成果报告分享(理科工科30个) 数学创新大赛创新成果报告分享(21个)

    2020-2035长三角城市群碳排放预测数据集.dataset.xlsx

    数据介绍 城市群内部空间网络的特征决定了单个城市的碳峰值路径不可避免地受到邻近城市的影响,但考虑空间相关性的碳峰值预测还没有得到很好的研究。针对这一情况,我们开发了空间嵌入式深度学习预测模型,并根据中国长三角城市群2000-2019年的数据进行了2020-2035年的碳排放预测。预测场景包括基线场景和绿色场景。提供的数据集包括 2020-2035 年这两种情景下 41 个城市的预计碳排放量。该数据集可用于研究城市群碳达峰全球战略的制定。 数据大小:27.25KB 数据时间:2020年至 2035年 数据格式:xlsx 数据作者: shi changfeng;yu yue;yao xiao;pang qinghua 引用方式: shi changfeng, yu yue, yao xiao, et al. A dataset of carbon emission projections for Yangtze River Delta Urban Agglomeration, China, 2020-2035.[DS/OL]. V1. Science Data Bank, 202

    大学生资助管理系统(源码+数据库+论文+ppt)java开发ssm框架javaweb,可做计算机毕业设计或课程设计

    大学生资助管理系统(源码+数据库+论文+ppt)java开发ssm框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 1.登录模块:系统会进行用户身份进行判别,如果判断为学生用户,则进入学生模块。判断为教师用户,则进入教师模块。 2.学生模块:学生登录后,可以进行贫困申请,查看自己的申请结果、下载申请表、申请进度,并可以对登录密码进行修改。 3.教师模块:教师登录后,即可看到学生提交上来的申请,查看学生信息,学生信息包括学生学号、姓名、性别、所在学院、专业、密码、班级、联系方式、身份证号以及贫困生申请结果等等。教师可以审核材料、提交意见、并导出表格。 4.管理员模块:管理员登录后,对贫困生信息进行查询、修改等操作,若该贫困生信息不符合贫困生的认定资格,可撤销贫困生资格;筛选条件,查看贫困生信息,并将数据以Excel形式导出。贫困生数据信息进行删除和批量删除的修改。设置信息提示功能如申请进度和申请结果。管理员可以发表相关公告通知,相关申请表下载,公示名单等,学生可以查阅并下载。  【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。

    LabView阶次与振动噪声分析系统:旋转机械故障诊断与变速诊断的同步信号采集与阶次分析功能详述,labview阶次分析,振动噪声分析 描述:旋转机械故障诊断,变速诊断,振动噪声分析

    LabView阶次与振动噪声分析系统:旋转机械故障诊断与变速诊断的同步信号采集与阶次分析功能详述,labview阶次分析,振动噪声分析。 描述:旋转机械故障诊断,变速诊断,振动噪声分析,轴承诊断等。 功能: 1. 同步采集振动信号(或噪声信号)和速度信号,绘制振动曲线和速度曲线。 2.绘制色谱图,可以选择通道类型,自动分析图中阶次,可以db显示。 3.绘制功率阶次谱,可以选择合适窗函数,可以db显示。 4.阶次切片,分析不同阶次的相对大小。 可以选择横坐标类型,纵坐标可以db显示。 5.保存历史数据到文件中。 ,Labview阶次分析;振动噪声分析;旋转机械故障诊断;同步采集信号;色谱图分析;功率阶次谱;阶次切片;历史数据保存,LabView阶次分析与振动噪声诊断系统

    防疫工作志愿者服务平台(源码+数据库+论文)java开发ssm框架javaweb,可做计算机毕业设计或课程设计

    防疫工作志愿者服务平台(源码+数据库+论文)java开发ssm框架javaweb,可做计算机毕业设计或课程设计 【功能需求】 主要功能:打卡管理、字典管理、论坛管理、公告管理、活动管理、活动收藏管理、活动留言管理、活动报名管理、活动分组管理、组内成员管理、内部邮件管理、用户管理、工作人员管理、管理员管理等功能。 【环境需要】 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.数据库:MySql 5.7/8.0等版本均可; 【购买须知】 本源码项目经过严格的调试,项目已确保无误,可直接用于课程实训或毕业设计提交。里面都有配套的运行环境软件,讲解视频,部署视频教程,一应俱全,可以自己按照教程导入运行。附有论文参考,使学习者能够快速掌握系统设计和实现的核心技术。

    AnythingLLMDesktop.exe

    使用ai如deepseek进行本地部署然后喂饭自制知识库进行使用

    Delphi 12 控件之DeepSeek-V3-main.zip

    DeepSeek-V3-main.zip

    上市公司-历史业绩、行业业绩预期差距(2001-2022年).zip

    上市公司-历史业绩、行业业绩预期差距(2001-2022年)

    地级市-固定资产投资额数据(2000-2022年).zip

    地级市-固定资产投资额数据(2000-2022年)

    基于PLECS仿真的IEEE顶刊复现研究:DAB变换器峰值电流前馈控制策略的深入探讨与分析,PLECS仿真,IEEE顶刊复现,DAB变器峰值电流前馈控制策略 ,PLECS仿真; IEEE顶刊复现;

    基于PLECS仿真的IEEE顶刊复现研究:DAB变换器峰值电流前馈控制策略的深入探讨与分析,PLECS仿真,IEEE顶刊复现,DAB变器峰值电流前馈控制策略。 ,PLECS仿真; IEEE顶刊复现; DAB变换器; 峰值电流前馈控制策略,"PLECS仿真下DAB变换器峰值电流前馈控制策略复现IEEE顶刊研究"

    激光增材制造:同轴送粉激光沉积与数值模拟仿真教程包(含源文件与文献),同轴送粉激光沉积增材制造,激光熔覆,数值模拟仿真模型FLOW 3D(单层单道) 熔池温流场仿真 含仿真模型源文件,热源模型,软

    激光增材制造:同轴送粉激光沉积与数值模拟仿真教程包(含源文件与文献),同轴送粉激光沉积增材制造,激光熔覆,数值模拟仿真模型FLOW 3D(单层单道)。 熔池温流场仿真。 含仿真模型源文件,热源模型,软件基础教学视频等,附赠激光增材制造模拟仿真相关文献。 包后。 [VS]许可证过期问题可以解决,亲测可计算使用 ,核心关键词: 同轴送粉激光沉积;激光熔覆;数值模拟仿真模型FLOW 3D;熔池温流场仿真;仿真模型源文件;热源模型;软件基础教学视频;激光增材制造模拟仿真文献;VS许可证过期问题。,"同轴送粉激光增材制造温流场数值模拟包:源文件&仿真文献集成版"

    车载DoIP协议详解及其TCP源端口定制方法

    内容概要:本文深入介绍了Diagnosics over Internet Protocol(DoIP)协议的技术背景、发展动因以及其在现代汽车行业的重要作用。DoIP协议作为一种基于车载以太网的诊断协议,解决了传统CAN总线带宽不足的问题,能够高效地支持大量数据传输的需求。文中特别阐述了DoIP的应用场景,例如ECU固件的OTA更新、自动驾驶系统的调试、生产线最终检验及售后诊断和云端远程诊断。此外,针对具体的技术应用难题——如何为tester定义特定TCP源端口提供了详细的指导步骤,包括编辑DoIP.ini文件以强制指定发送时使用的TCP端口号。 适用人群:主要适用于汽车电子工程师和技术开发者,尤其是那些关注车联网技术和高级辅助驾驶系统的专业人员。 使用场景及目标:有助于从业者深入了解和支持基于DoIP协议的各种高级功能和服务,确保设备之间的稳定通信;同时也为从事相关工作的技术人员提供了一种实用的方法,即当需要进行诊断任务或者执行某些自动化测试时,可以为连接车辆ECU的工具(如诊断仪)指定一个固定的TCP源端口以便更好地管理和跟踪网络流量。 其他说明:本文不仅提供了理论知识还附带有实际操作指南,对于想要掌握最新行业技术趋势或希望优化现有系统的个人来说都是非常宝贵的资料。它强调了DoIP作为一项新兴且重要的联网汽车核心技术的地位,并对其未来发展作出了展望,如5G-V2X集成、AI驱动的预测性维护等。

    基于SpringBoot的零食商城系统的设计与实现

    随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,闲一品交易平台当然也不能排除在外。闲一品交易平台是以实际运用为开发背景,运用软件工程原理和开发方法,采用SpringBoot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。这种个性化的网上管理系统特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对闲一品交易平台而言非常有利。本闲一品交易平台采用的数据库是MySQL,使用SpringBoot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

    python爬虫从0开始_pgc.zip

    python爬虫从0开始_pgc

    win32汇编环境,结构体的使用示例一

    win32汇编环境,结构体的使用示例一

    清华大学DeepSeek从入门到精通

    《DeepSeek从入门到精通》手册精心划分为三大核心部分,旨在引领用户从基础到高级,全面探索DeepSeek的无限可能。 本手册不仅内容丰富、结构清晰,而且注重实战应用,旨在为用户提供一份全面、实用的DeepSeek学习资料,助力用户在DeepSeek的探索之路上不断前行。

    PHPLimeSurvey在线问卷管理系统 v3.28.28.zip

    LimeSurvey问卷管理系统是一款在线问卷管理系统,具有问卷的设计、修改、发布、回收和统计等多项功能。同时它也是一个开源软件,其最新版本的软件包可以完全免费获取和使用。它集成了调查程序开发、调查问卷的发布以及数据收集等功能,使用它,用户不必了解这些功能的编程细节。 网上收集的调查数据可以导出多种文件格式以便分析,例如 spss数据格式 *.dat文件。 limesurvye重要特点 1、LimeSurvey是一个基于WEB的投票系统,它支持MySQL/PostgreSQL 2、LimeSurvey总计有49种语言/方言版本,它使用UTF-8字符集(易于国际化)。这些版本主要包括:阿尔巴尼亚,巴斯克语,中文,克罗地亚,丹麦语,荷兰语,芬兰语,法语,加利西亚语,德语,希腊语,匈牙利语,希伯来语,意大利语,日语,葡萄牙语,俄语,塞尔维亚语,斯洛文尼亚语,西班牙语,瑞典语,以及其他一些不完全的翻译版本。

    【Java】rbac_shiro框架整合springboot单体项目是一款权限认证授权的网站敏捷开发的解决方案,Shiro是一个强.zip

    【Java】rbac_shiro框架整合springboot单体项目是一款权限认证授权的网站敏捷开发的解决方案,Shiro是一个强

Global site tag (gtag.js) - Google Analytics