《计算机是怎么跑起来的》第十章 XML(可扩展标记语言)
资料来源
(1) 《计算机是怎么跑起来的》
注1:XML是Extensible Markup Language(可扩展标记语言)的缩写;
1.XML是标记语言
(1) 通常把通过添加标签为数据赋予意义的行为称为"标记";为这种给数据赋予意义的行为定义规则的语言就是"标记语言";
注1:HTML是用于编写网页的标记语言; HTML决定了可用于编写网页的标签; Web浏览器会对HTML的标签进行解析,把由它们标记的信息渲染成在视觉上可以阅读的网页;
2.XML是可扩展的语言
(1) XML文件的扩展名一般是.xml;
(2) XML本身不会限定标签的种类,允许使用者随意创建标签,即在"<"和">"中的单词可以是任意的; 这就是可扩展的含义;
注1:HTML是固定的标记语言,只能使用由HTML定义出的若干种标签;
3.XML是元语言
(1) XML不限定标签的使用方式,使用什么样的标签都行;XML仅仅限定了进行标记时标签的书写格式;
(2) 通过定义要使用的标签种类,就可以创建出一门新的标记语言; 这种用于创造语言的语言就称作"元语言";但是,需要注意的是,创造出的新语言仍然属于XML格式的标记语言,还是需要遵循一定的规定;
XML中的主要约束 1.XML文档开头要写有XML声明,表明使用的XML版本和字符编码; 2.信息要用形如"<标签名>"的开始标签和形如"</标签名>"的结束标签括起来; 3.标签名不能以数字开头,中间也不能含有空格; 4.标签名区分大小写; 5.标签中可以嵌套标签以表示层级结构,但不能交叉嵌套; 6.在XML声明之后,必须有且只有一个"根元素",该标签包含了所有其他标签; 7.在开始标签中,可以以属性名=“属性值”的形式,加入任意的属性; 8.如果要在内容中使用"<",">","&",""","'"这5个特殊符号,有两种方式: (1)把它们写成"<",">","&",""","&apos"的形式; (2)用"<![CDATA["和"]]>"把内容括起来,可以在里面直接使用这5个特殊符号; 9.注释的写法是用"<!--"和"-->"把注释的内容括起来;
4.XML文件示例
1 <?xml version="1.0" encoding="UTF-8"?> 2 <pet> 3 <cat>妙妙</cat> 4 <dog>旺旺</dog> 5 </pet>
注1:示例中使用了三种标签:<pet>,<cat>,<dog>;
5.XML可以为信息赋予意义
注1:HTML中规定的各种标签只能用来指定信息的呈现样式,而不能表示信息的含义;HTML主要用于信息的可视化;
注2:HTML的标签比较有限;
6.XML是通用的数据交换格式
注1:CSV(Comma Separated Value,逗号分隔值)也是一种通用数据交换格式;
注2:与XML一样,CSV也是仅由字符构成的纯文本文件;但在CSV中,只记录了信息本身,并没有为各个信息赋予意义;
//CSV文件示例 1234,"手提包",19800 5678,"手表",24800
//xml文件示例 <?xml version="1.0" encoding="UTF-8"?> <shop> <product> <productId>1234</productId> <productName>手提包</productName> <price>19800</price> </product> </shop>
7.可以为XML标签设定命名空间
(1) 场景:标签的名字相同,但是标记语言的创造者们为它们赋予了不同的含义;为了防止同形异义带来的混乱,引入命名空间来修饰限定标签的名字;
(2)为标签设定命名空间示例(其中,xmlns为xml namespace的缩写)
<cat xmlns="http://www.grapecity.com/yazawa">小玉</cat>
8.严格定义XML的文档结构
(1) 完整的XML文档包括XML声明、XML实例和DTD信息;其中,XML声明是写在XML文档开头的、形如<?xml version="1.0" encoding="Shift_JIS"?>的部分; XML实例是文档中通过标签被标记的部分,其实就是XML文档的主要内容与信息; 而DTD的作用是定义XML实例的结构; 虽然可以省略DTD,但是通过DTD可以严格地检查XML实例的内容是否有效;
注1:比如DTD中定义一个标签中需要包含哪些标签;
注2:XML Schema也可以用于定义XML实例的结构;