声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4290887.html

XML概述

XML是eXtensible Markup Language(可扩展标记语言)的缩写。

XML和HTML一样,都衍生于SGML (Standard Generalized Markup Language,标准通用化标记语言)。

SGML有非常强大的适应性,同时也非常复杂,其复杂程度无法适应网络上的日常应用,以致在小型的应用中难以普及。XML的产生就是为了简化SGML,以便用于更加通用的目的。

W3C于1998年2月批准了XML的1.0版本,XML既具有SGML的强大功能和可扩展性,同时又具有HTML.的简单性。它是一个非常简单的SGML语言,方便普通人的使用。可以认为,XML是SGML的一个子集,而HTML则是SGML的一个应用。

XML只是用来传递数据,它是一种纯文本格式,与平台没有关系。

XML与HTML比较

1、    HTML.将数据和其显示效果混在一起,它是一种表现技术,定义了如何显示信息的标签;而XML文档只是存储了数据和描述了数据之间的关系,没有规定该如何显示数据,即将数据和其显示进行了分离。

2、    HTML.的格式要求比较松散,HTML解释器通常采用尽量解释的机制.这祥容易造成同一个页面在不同的浏览器中可能显示出大不相同的结果;而XML是非常严格的标记语言,例如严格区分大小写等问题。

3、    HTML的标记集合是固定的,你不能在自己的应用中扩展HTML标记;而XML没有提供一组事先已经定义好的标签,只是提供一个标准,人们可以按照这个标准来定义自己专用的标记,所以XML的标记是可无限扩展的,它可以用于描述各种应用领城的数据。

4、    XML允许粒度更新,不必在XML文档每次有局部改变时都发送整个文档内容,只有改变的元索才必须从服务器发送到客户机;HTML不支持类似功能。

HTML规范的最终版本HTML 4.01,HTML目前己经不再是Web标记的标准,它已经被XHTML所取代。XHTML是HTML和XML的混合物,它完全采用XML的语法和规则来编写Web页面。

XML基本语法

文档声明

<?xml version="1.0" encoding="GB2312" standalone="yes" ?>

l  XML声明语句从 <?xml 开始,到 ?> 结束;

l  声明语句里必须有version属性,但是encoding和standalone属性是可选的;

l  version、encoding、standalone三个属性必须按上述顺序排列;

l  version属性值必须是1.0或1.1;

l  XML声明必须放在文件的开头,即文件的第一个字符必须是 < ,前面不能有空行或空格,关于这一点,有些解析器不那么严格。

1)        version属性

解析器遇到它不能识别的版本时,会拒绝解析。目前只有两个版本1.0或1.1。

这两个版本的标准几乎一样,只是在给元素命名时,对某些Unicode字符采取不同的处理方法,以及在某些主机系统里如何处理行结束符问题上也有不同的规定。

除非你遇到一些Unicode字符在1.0版本里不能使用,否则最好使用1.0版本,因为1.1版本的解析器还支持的不够。

2)        encoding属性

Unicode个字母(包括非拉丁字符)或下划线(_),不可是其他字符或其他标志符(注,不能以“$”符开头,这与Java语言命名不一样);

l  其他字符可以是数字、下划线和句点;

l  名字里不能有空格;

l  名字里不能含有冒号(:),严格说,这个字符是允许的,但是根据XML规范,它是“保留”的。我们尽量不要在文档中使用这个字符,除非我们在文档中使用了名称空间;

l  名字的开始字符不可以是xml,不管它是小写的,大写的,或者大小写混合的;

l  开始符 < 之后紧跟着元素名字,期间不能有空格,但是在元素名与结束符 > 之间可以有空格。

注,元素的这些命名规则同样可以应用到XML中其他对象的命名。

l  在HTML里,单词之间凡是被认为不重要的空白字符都会被从文档中删除。多于一个空格都被认为是没有意义的,因此只保留一个。但我们可以使用一个<pre>标签将这些内容括起来,这样就会原样显示了,注,不能使用 <p> 标签;但如果是在XML里,则会原样显示,注,如果使用IE打开,空白字符还是被删除了,这是因为IE并不是直接显示XML文档,它利用一种称之为XSL的技术,先把XML转换为HTML,然后再显示HTML文档。

l  删除行结束空白符:由于在Windows与Unix上的换行不一样,Windows上是使用回车加换行来表示一行的结束,但Unix却只使用一个换行,所以为了统一,标准是要删除除了一个换行符之外其他空白字符。

l  标记里的空白字符:

比如上面 <name> 标签后面有一个回车换行符,这些空白符是为了使文档更具有可读性,实际上不是数据的一部分。这些增强可读性的空白符又称为”,所以有如下两种替代方案:

;

">

">

种类型。

1、    CDATA

它表示属性值为普通文本字符串(注,与ELEMENT声明中的PCDATA关键字稍有不同,解析器在解析CDATA时,忽略某些保留字),当然,在属性设置值中出现的特殊字特,也需要使用字符的转义实体来表示,例如,用 &lt;表示字符 <,它是属性的默认值。

2、   ENUMERATED(枚举类型)

属性的类型可以是一组取值的列表,在XML文件中设置的属性值只能是这个列表中的某个值。注意,在DTD定义中并不会出现关键字ENUMERATED,如:

个内置的实体,如果需要,我们只能使用字符实体,如:

<!ENTITY % DefaultPhoneKind ""Home"">

<!ATTLIST phone kind (Home | Work | Cell | Fax) %DefaultPhoneKind;>

或者这样:

、#REQUIRED:说明必须设置该属性。

、#IMPUED:说明可以设置,也可以不设置该属性。

<!ATTLIST knows contacts IDREFS  #IMPLIED>

3、#FIXED:说明该属性的取值固定为一个默认值,在XML文件中不能将该属性设置为其他值。使用#FIXED时,还需要为该属性提供一个默认值。

<!ATTLIST contacts version CDATA #FIXED "1.0">

4、直接使用默认值:如果在属性的设置说明部分没有使用上面任何一种关键字,而是直接指定一个默认值的话,那么在XML文件中可以设,也可以不设置该属性。如果XML文件中没有设置该属性,该属性将被自动设置为DTD中定义的默认值;如果XMI.文件中设置了该属性,可以使用新的属性值来覆盖DTD中定义的默认值。

<!ATTLIST phone kind (Home|Work|Cell|Fax) "Home">

XML详解:第一部分的更多相关文章

  1. Web.xml详解(转)

    这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论. ---题记 一.            Web.xml详解: (一)  web.xml加载过程(步骤) 首 ...

  2. Maven-pom.xml详解

    (看的比较累,可以直接看最后面有针对整个pom.xml的注解) pom的作用 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵 ...

  3. 【转】maven核心,pom.xml详解

    感谢如下博主: http://www.cnblogs.com/qq78292959/p/3711501.html maven核心,pom.xml详解 什么是pom?    pom作为项目对象模型.通过 ...

  4. C#中的Linq to Xml详解

    这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...

  5. Tomcat配置(二):tomcat配置文件server.xml详解和部署简介

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  6. 前端技术之_CSS详解第一天

    前端技术之_CSS详解第一天 一html部分 略.... 二.列表 列表有3种 2.1 无序列表 无序列表,用来表示一个列表的语义,并且每个项目和每个项目之间,是不分先后的. ul就是英语unorde ...

  7. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务 ...

  8. Maven配置文件setting.xml详解

    注:本文来源于:大话JAVA的那些事 <Maven配置文件setting.xml详解> <?xml version="1.0" encoding="UT ...

  9. Logback简介及配置文件logback.xml详解

    logback简介及配置文件说明 @author:wangyq @date:2021年3月31日 logback简介 ​ Logback是由log4j创始人设计的另一个开源日志组件,官方网站: htt ...

  10. 【maven】 pom.xml详解

    pom.xml详解 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www ...

随机推荐

  1. Rsync详解

    Rsync详解 1.什么是RsyncRsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本 ...

  2. sql server 2008 安装过程与创建建sql server登录用户

    1.sql server 下载安装包路径:http://pan.baidu.com/s/1qWuzddq 2.安装过程图解教程 ,参照网址:http://jingyan.baidu.com/album ...

  3. Cacti Install

    一.Cacti简介 Cacti是通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数.它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查 ...

  4. android 使用WebView 支持播放优酷视频,土豆视频

    看了很多文章和所谓的解决android WebView播放优酷,土豆等视频的办法,都是什么 setPluginsEnabled,在android 4.x之后都不好使,压根就没这函数,因为android ...

  5. ImageLoader 图片加裁

    // String picurl = article.cateLogo;// ImageLoader.getInstance().displayImage(picurl, holder.cate_Lo ...

  6. Spring集成memcached的详细介绍

    前提条件:工程需要引入jar包java_memcached-release_2.0.1.jar 第一步:添加memcached的配置文件. <bean class="org.sprin ...

  7. hdwiki 数据库结构说明

    HDWiki数据库结构说明          以下标有“A”的表示该列为自增列,标有“P”的表示该列为主码,标有“I”的表示该列为索引列,标有“U”的表示该列为唯一列,标有“F”的表示全文搜索.   ...

  8. PRINCE2七大原则(2)

    PRINCE2七大原则(2) 我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 第二个原则:吸取经验教训. PRINCE2要求 ...

  9. rtc关机闹钟4 AlarmManagerService.java

    vim base/services/core/java/com/android/server/AlarmManagerService.java AlarmManager 调用 IAlarmManage ...

  10. 【20160924】GOCVHelper综述

    GOCVHelper(GreenOpen Computer Version Helper )是我在这几年编写图像处理程序的过程中积累下来的函数库.主要是对Opencv的适当扩展和在实现Mfc程序时候的 ...