什么是XML元素?
XML是一种标识语言,一组用来创建描述数据的语法标签的规则集。一个XML元素是由开
始标签、结束标签以及标签之间的数据构成的。开始和结束标签用来描述标签之间的数
据。标签之间的数据被认为是元素的值。例如,在下面一个XML元素的例子中,元素"di
rector"的值是"Ed Wood"。
<director>Ed Wood</director>
元素名("director")允许你把"Ed Wood"这个值标出来,这样你就能把这些数据同另外
类似的数据区分开来。例如,有可能另一个元素的值也是"Ed Wood"。
<actor>Ed Wood</actor>
由于每个元素都有不同的标签名,所以你能很容易把上面两个元素的值区别开来。如果
从语义上没有办法把数据标出来,两个有同样值的元素会混淆起来。
属性
一个元素可以包含一个或多个属性,属性是一个由“=”隔开的名称值,如:
<CITY ZIP="01085">Westfield</CITY>
在上面的例子中,ZIP="01085"是元素<CITY>的一个属性。属性用来给一个元素添加附加
的、次要的信息,通常是元信息,属性还可以使用缺省值,而元素却不能这样做。元素
的每一个属性可以以任意顺序进行说明,但仅能说明一次。
此外,XML标签对大小写敏感,因此以下这三个是不同的元素。
<City><CITY><city>
XML的头
•
• XML声明一般是XML文档的第一行
• XML声明由以下几个部分组成:
– version - -文档符合XML1.0规范
– encoding - -文档字符编码,默认为"UTF-8"
根元素:
• XML 文档必须包含在一个单一元素中。这个单一元素称为根元素,它包含文档中所有文本和所有其它元素。
• 而不包含单一根元素的文档不管该文档可能包含什么信息,XML 解析器都会拒绝它。
• 每个XML文档必须有且只有一个根元素
• 根元素是一个完全包括文档中其他所有元素的元素。
• 根元素的起始标记要放在所有其他元素的起始标记之前。
• 根元素的结束标记要放在所有其他元素的结束标记之后
标记:
• 标记是左尖括号(<)和右尖括号(>)之间的文本。有开始标记(例如 <name>)和结束标记(例如 </name>)
• 不能省去任何结束标记。
• 如果一个元素根本不包含标记,则称为空元素;HTML 换行(<br>)就是个例子。在 XML 文档的空元素中,您可以把结束斜杠放在开始标记中。
字符数据:
开始标记和结束标记之间的文本被定义为“字符数据”
• 字符数据可以是“<”以外的任何合法 (Unicode) 字符
– <book>Java夜未眠</book>
• 字符数据分类
– PCDATA --- 普通字符数据
• 将由解析器解析
– CDATA
• 不会由解析器解析
注释:
<!--这是一个注释-->
• 注释内容中不要出现--;
• 不要把注释放在标记中间;
– <Name <!--the name-->>TOM</Name>
• 注释不能嵌套;
• 可以在除标记以外的任何地方放注释。
属性
<Student ID="100“>
<Name>TOM</Name>
</Student>
• 属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔)
• 一个元素可以有多个属性,它的基本格式为:
<元素名 属性名="属性值">
• 特定的属性名称在同一个元素标记中只能出现一次
• 属性值不能包括<, >, &
XML 文档中的属性有两个规则:
您可以使用单引号,也可以使用双引号,但要始终保持一致。
DOCTYPE:
文档类型声明,紧跟XML声明之后,包含所有实体声明
• 语法:
<?xml version="1.0"?>
<!DOCTYPE 根元素标记名 [
<!--实体声明-->
]>
实体引用:
• 为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些有用的实体引用。
• 作用:避免重复输入
• 自定义实体语法:
<!DOCTYPE 根元素 [
<!ENTITY 实体名 "实体内容">
]>
• 引用已定义的实体:
&实体名;
< |
< |
小于 |
> |
> |
大于 |
& |
& |
和号 |
' |
' |
单引号 |
" |
" |
引号 |
XML文档节点类型:
• 文档(document)
• 元素(element)
• 属性(attribute)
• 文本(PCDATA--parsed character data)
• 注释(comment)
• 处理指令(PI--processing instruction)
• DOCTYPE
• 实体(ENTITIES)
• CDATA(character data)
无效、有效以及格式良好的文档
• 有三种 XML 文档:
• 无效文档没有遵守 XML 规范定义的语法规则。如果开发人员已经在 DTD 或模式中定义了文档能够包含什么,而某个文档没有遵守那些规则,那么这个文档也是无效的。
• 有效文档既遵守 XML 语法规则也遵守在其 DTD 或模式中定义的规则。
• 格式良好的文档遵守 XML 语法,但没有 DTD 或模式。
结构完整的XML文档
遵循如下规则的XML文档称为结构完整:
u 语法规范
– 必须有XML声明语句
<?xml version="1.0" encoding=“GBK"?>
– 必须有且仅有一个根元素
– 标记大小写敏感
– 属性值用引号
– 标记成对
– 空标记关闭
– 元素正确嵌套
– 元素语法
– 名称中可以包含字母、数字或者其它字符
– 名称不能以数字和"_"(下划线)开头
– 不能以XML/xml/Xml/…开头
– 名称中不能含空格
– 名称中不能含冒号(注:冒号留给命名空间使用)
创建XML文档
• 创建XML声明
• 创建根元素
• 创建XML代码
• 必须的规则
– 至少需要一个元素
– XML 标签区分大小写
– 应正确使用结束标签
– 正确嵌套标签
– 应使用合法标签
– 标记名称的长度
– 应定义有效的属性
– 应验证文档
XML文档规则总结
• XML文档通常以一个XML声明开始
• 通过XML元素来组织XML数据
• XML元素包括标记和字符数据
• 为组织数据更方便、清晰,在字符数据中引入CDATA数据块
• 在文档中引入注释
• 需要给XML处理程序提供一些指示信息,XML文档中可以包含处理指令