最近翻看《java核心技术》,重新清理一遍xml,在此记录、分享、加强记忆。
1.xml前奏
其实在描述文档中,可以用属性文件来描述,为什么要使用xml呢?
首先属性文件包含了一组名/值对,下面来描述字体,例如:
fontname=TIMES ROMAN
fontsize=12
如果使用单一项来描述:font=TIMES ROMAN 12。这样必须确定字体名在何处结束,字体大小在何处开始。这种结构始终是单一的平面结构。而xml就能够表示层次结构。
2.xml和html
来源:说到xml就不得不说html,其实xml和html格式都是由古老的标准通用标记语言(standard generalized markup language,sgml)衍生的语言,sgml为什么被淘汰了呢?就是复杂。1.既想确保文档能够根据其文档类型的规则来形成 2.又想要通过减少数据键入的快捷方式使数据项变得容易显示。所以xml这样简单的版本就出现了。
区别:1.与html不同,xml是大小写敏感的。
2.xml的结束标签绝对不能省略,html如果从上下文可以分清哪里是段落活列表尾的结尾,就可以省略。
3.在xml中属性值必须用引号括起来,html中,引号可有可无。
4.在xml中属性必须都有属性值,html可以没有,<input type="radio" name="language" value="java" checked>。
3.xml文档的结构
xml文档应当以一个文档头开始,例如:<?xml version="1.0"?>。
文档头之后通常是文档类型定义(document type definition , DTD),文档类型定义的是确保文档正确的一个重要机制。
xml文档的正文包含根元素,根元素包含其他元素。元素可以有子元素、文本或两者皆有。
xml元素可以包含属性,例如:<size unit="pt">36</size>,而有时候就在纠结什么时候用属性,什么时候用子元素?一个常用的经验:属性只应该用来修改值得解释,而不是用来指定值。
4.在xml,遇到的其他一些标记
(1)字符引用的形式是&#十进制;或&#x十六进制。主要就是输入键盘上没有的字符。比如欧元符号
(2)实体引用:< > & " ' 都有预定义的含义:小于、大于、&、引号、省略号
(3)CDATA用<![CDATA[ ]]>来限定界限。其实就是如果小于、大于符号,实体引用多了,就用这个,方便。
(4)处理指令:例如:<? ?>
(5)注释用<!-- -->,注释不能用--。