XML基础
前前言
先扯一点无关的蛋,今天是七夕,所以今晚就不加班了,陪老婆去。朋友圈现在流传着一首有意思的歌谣,献给屏幕前的你,^_^
Single dog, single dog, single all the day.
See AV, hit the plane, theyre doing all the day. Hey!
Single dog, single dog, why not be a gay?
No more wait, no more afraid,
make him be a gay!
前言
在《微信硬件平台蓝牙demo服务端教程》中,可以看到好多个XML的例子。
完成本文的知识储备,你将明白这个XML结构体的意思。笔记内容大多来自于孙鑫《JavaWeb开发详解》,我从中梳理总结出必要的信息,帮助消化理解。
1.XML介绍
extensible markup language。它的特点是可创建新的标记,是创建标记语言的元语言。而HTML的标记都是固定的。例子中的<欢迎词>就是一个新的标记,下文中我还针对七夕节,应景地给出了
2.XML与HTML的比较
- XML只描述数据和数据结构,而HTML还可以体现排版显示。
- XML对文档格式要求更严格
- XML有且仅有一个根元素
3.XML文档
3.1 XML声明
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
3.2 文档类型声明
DTD(Document Type Definition),规范元素和属性的规则及相互关系。HTML就有一个标准的DTD文件,所以其组织结构和所有的标签都是固定的。
XML所用的DTD有两种形式:
- 声明DTD在一个外部文件中
<!DOCTYPE greeting SYSTEM "hello.dtd">
- 在XML文档中给出DTD
<!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]>
3.3 元素
元素由开始标签、元素内容、结束标签构成。
3.3.1 元素的形式
- 空元素
<singdog/>
- 带有属性的空元素
<singdog name="张全蛋" age="28"/>
- 带有内容的元素
<singdog 这是一个学生信息 <name\>张全蛋</name> <age>28</age> />
- 带有内容和属性的元素
<singdog name="张全蛋" <age>28</age> />
3.3.2 元素的构成
元素的内容可以包含子元素、字符数据、字符引用和实体引用、CDATA段。
- 子元素
上文中的name和age都是单身狗的子元素。
- 字符数据
特殊的字符“& < ]]>”不能用。
- 字符引用和预定义实体引用
为了表示那些不能用的字符,可以采用这种方式,以&;的形式来引用。
我这边用markdown编辑这边笔记时,也输不了空格,只得用字符引用,道理上是相通的。
- CDATA段
CDATA段中包含的是纯字符数据,可将整个本文解释为字符数据,内容不被XML解析。
CDATA段以字符串“
3.4 注释
<!--这是个注释--\>
3.5 处理指令
处理指令允许文档中包含由应用程序来处理的指令。处理指令的语法和XML声明类似,以<?开始,以?>结束,一个常见的样式表单的处理指令如下所示:
<?xml-stylesheet href="hello.css" type="text/css"?>
我们的应用程序可以根据这个xml-stylesheet的标识做相应的处理。
xml-stylesheet 总是放在XML声明之后,其他的指令的位置则没那么严格,但都不能放在XML之前。
3.6 空白处理
当XML传递给应用程序时,会自动去掉空白(空格、制表符和空行),而当需要保留空白的时候,需要用到这个属性,xml:space。
当元素中使用了这个属性,元素中的空白都将会保留。
3.7 行尾处理
当需要传递行尾控制字符时,使用 #xA #xD。
3.8 语言标识
标识出内容所使用的自然或人工语言,使用xml:lang
<p xml:lang="ch"\>单身狗</p>
<p xml:lang="en"\>singledog</p>
为了一个特殊字符可搞死宝宝了,这篇笔记一直发不出去。
版权声明:本文为博主原创文章,未经博主允许不得转载。