XML(一):XML文档结构

一、XML简介

XMl,EXtensible Markup Language,可扩展标记语言。标记,类似于标签,一般这样标示:<Student>;可扩展:可以随意地往里面添加自己的标签。

特点:1、XML与造作系统、编程语言的开发平台都无关。2、规范统一。

作用:数据交换、配置应用程序和网站、Ajax基石。

二、XML文档结构

1、声明

声明:说明本XML文档符合XML的哪个版本规范,并且说明本文档的编码格式。对于任何一个XML文档,其声明部分都是固定的格式。如下:

<?xmlversion="1.0" encoding="UTF-8">

2、标签

在XML中,用<>括起来的各种标签(Tag)来标记数据,标签需成对使用来界定字符数据,例如<author>王珊</author>这一对标签中,<author>是开始标签,</author>是结束标签,“王珊”是标签描述的内容,表示作者信息。XML文件可以包含任意数量的标签。

3、根元素

<books> </books>成对出现,叫做XML文档的根元素。每个XML文件的根元素有且只有一个。
根元素的特点如下:
1、根元素是一个完全包括文档中其他所有元素的元素。
2、根元素的起始标签要放在所有其他元素的起始标签之前。
3、根元素的结束标签要放在所有其他元素的结束标签之后。

<?xmlversion="1.0" encoding="UTF-8">
<books>
    <!--图书信息-->  注释
   <book id = "bk101">
        <author>王珊</author>
        <title>.NET高级编程</title>
        <description>包含C#框架和网络编程等  </description>
   </book>

   <book id = "bk102">
        <author>张三</author>
        <title>基础编程</title>
        <description>包含XML基础概念和基本作用</description>
   </book>
</books>

4、元素

XML文档的主要部分是元素,元素由开始标签、元素内容和结束标签组成。元素内容可以包含子元素、字符数据等。如<author>王珊</author>就是一个元素。

元素的命名规则如下:

  • 名称中可以包含字符、数字或者其他字符。
  • 名称不能以数字或者标点符号开始。
  • 名称不能以字符xml(或者XML、Xml)开始。
  • 名称中不能包含空格。

注:1、XML标签必须成对出现并正确嵌套,如下面的嵌套方式是不正确的。<title><name>XML编程</title></name>
2、元素允许是空元素,如以下元素的写法是允许的:<name> </name>或者<name/>
3、 属性值用双引号包裹

5、属性

在描述图书信息的XML文档中,<book id = "bk101">标签使用id属性描述图书的编号信息。属性定义的语法格式如下:<元素名 属性名 = "属性值">

注:1、一个元素可以有多个属性,它的基本格式为<元素名 属性名 = "属性值" 属性名 = "属性值"/>多个属性之间用空格隔开。
2、属性值不能直接包含< “ &(不建议: ‘ >)等字符
3、属性可以加在任何一个元素的起始标签上,但不能加在结束标签上。

6、XML中的特殊字符的处理

在XML中,有时在元素的文本中会出现一些特殊字符(如<、>、'、"、&),而XML文档结构本身就用到了这几个特殊字符,有以下两种办法,可以正确地解析包含特殊字符的内容。

1、转义

对这5个特殊字符进行转义,也就是使用XML文档中的预定义实体代替这些字符,XML中的预定义实体和特殊字符的对应关系如下:

在后面要记得加分号
符号             转义符(预定义实体)
<                      &lt;(less than)
>                      &gt;
"                      &quot;
'                      &apos;
&                      &amp;

如:
<student id="&lt;s1">解析为<student id="<s1">
如:<test>我们上面的标签包含&lt;student&gt;&lt;/student&gt;</test>解析为
<test>我们上面的标签包含<student></student></test>
但是这种方式太麻烦,可读性差。只需告诉浏览器我这是一个普通的文本,不是标签,那怎么去做呢?

2、CDATA节

当元素中出现很多特殊字符时,可以使用CDATA节。CDATA节中的所有字符都会被当做元素字符数据的常量部分,而不是XML标签。定义CDATA节的语法格式如下:

   <![CDATA[要显示的字符]]>

<description>
       <![CDATA[讲解了元素<title>以及</title>的使用]]>
</description>

7、XML中的注释

注释的语法格式如下:

<!--注释内容-->

8、格式良好的XML文档

格式良好的XML文档需要遵循如下规则:

1、必须有XML声明语句
2、必须有且仅有一个根元素
3、标签大小写敏感
4、属性值用双引号包含起来
5、标签成对出现
6、元素正确嵌套

三、XML编写注意事项

1、所有XML元素都必须有结束标签
2、XML标签对大小写很敏感
3、XML必须正确的嵌套
4、同级标签以缩进对齐
5、元素名称可以包含字母、数字和其他的字符
6、元素名称不能以数字或者标点符号开始比如<5name>就不行
7、元素名称不能包含空格
在<student name>里面,系统会认为空格后面就是属性了,不会认为这两个是一体。

四、推荐命名习惯

1、见名知意
2、名字尽量比较简短一点<book_title>
3、可以用下划线,但是不要用中横线、不要用点、也不要用冒号。如<book-title> <book.title><book:title>冒号在XML中有特殊的作用。
4、因为数据库跟XML有很大的关系,所以一般数据可怎么命名,XML文件就怎么命名,这两个平着来就可以了。

五、XML中的命名空间

命名空间在XML文档中可以用作元素或属性名称的名称集合,它们用来标示来自特定域(标准组织、公司、行业)的名称。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345