- 对于XML文档来说,<?处理指令必须要顶格写,前面不能有任何的空白。
- XML元素可以具有属性,属性的形式为“属性名="属性值",比如gender="male"。属性值需要使用单引号或双引号括起来。多个属性之间使用空格分开。
- 通过样式,我们可以实现XML内容与展现形式的分离。
- XML的注释:<!-- comments -->,注释不允许嵌套。
- 在一个元素上相同的属性值只能出现一次。
- 格式正规( well formed)的XML文档就是符合XML语法要求的XML文档就是格式正规的XML文档。
第一行是XML声明,以下是XML处理指令的例子。处理指令以<?开始,而以?>结束。在?后的第一个单词是处理指令名,在本例中是xml。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
- XML声明有version和standalone两个特性。特性是由等号分开的“名称-数值对”。位于等号左边的是特性名,而其值位于等号的右边,并用双引号或单引号括起来。
- 每一个XML文档都以一个XML声明开始,用以指明所用的XML的版本。在上例中,version特性表明这个文档符合XML 1.0规范。
- XML声明还有standalone特性,这告诉我们文档是否在这一个文件里还是需要从外部导入文件。在本例中,所有的文档都在一个文件里完成,因而standalone特性的值要设置为yes。
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <GREETING> Hello world! </GREETING>
- 总体上说,这三行组成了GREETING元素。
- 分开说,<GREETING>是开始标记,而</GREETING>是结束标记,Hello world!是GREETING元素的内容
- XML允许用户来创建任何所需要的标记。当然,由于用户在创建标记上有完全的自由,因而通用的浏览器无法预期用户的标记的意义,也无法为显示这些标记而提供规则。因而,用户必须为文档编写样式单,告诉浏览器如何显示特定的标记。与标记集类似,用户创建的样式单可由不同的文档不同的人所共享,还可将自己创建的样式单与其他人编写的样式单集成在一起。
为XML文档编写样式单
- 现在有不止一种样式单语言可以使用。这里所用的是级联样式单(Cascading Style Sheets,简写为CSS)。CSS的优势在于它是W3C制定的标准,为编写HTML的许多人所熟悉,且被具有XML能力的浏览器所支持。
- 另一种可能的选择是可扩展的样式语言(Extensible Style Language)。XSL是当前最强大和灵活的样式语言,是特别为应用XML而设计的。但是,XSL比CSS更为复杂。
将样式单附加到XML文档上
在编写好XML文档和用于该文档的CSS样式单之后,还需要告诉浏览器将样式单作用到该文档上。方法是在XML文档中包括另一个处理指令,以便指定所要使用的样式单。
<?xml-stylesheet type="text/css" href="hello.css"?>
XML文档实例分析
根元素
- 每个XML文档必须有且只有一个根元素。
- 根元素是一个完全包括文档中其他所有元素的元素。
- 根元素的起始标记要放在所有其他元素的起始标记之前。
- 根元素的结束标记要放在所有其他元素的结束标记之后。
属性值
<Student ID="100"> <Name>TOM</Name> </Student>
- 属性值用双引号(")或单引号(')分隔(如果属性值中有'用"分隔;有"用'分隔)一个元素可以有多个属性
- 它的基本格式为:<元素名 属性名="属性值">
- 特定的属性名称在同一个元素标记中只能出现一次
- 属性值不能包括<、>、&
实体
作用:避免重复输入(宏、变量)
XML中预定义实体
自定义实体语法
<!DOCTYPE 根元素[ <!ENTITY 实体名 "实体内容"> ]>
引用已定义的实体
&实体名;
实体 | 符号 |
< | < |
> | > |
& | & |
" | " |
&apos | ' |
XML专用标记(1)—— 注释
<!--这是一个注释-->
- 注释内容中不要出现--
- 不要把注释放在标记中间
-
以下是错误示范
<Name <!--the name--> > TOM </Name>
-
- 注释不能嵌套
- 可以在除标记以外的任何地方放注释
XML专用标记(2)—— 处理指令PI
- 处理指令用于XML解析器传递信息到应用程序。
- XML解析器是读取并保存XML文档内容的软件模块
- 应用程序是从解析器获取文档内容并处理和显示这些内容的独立软件模块
- IE同时提供XML解析器和应用部分
- 语法
-
<?目标 指令?>
- PI必须以一个叫做目标的标识符开头,这个标识符遵从如同元素和属性一样的规则,目标是指令所指向的应用的名称。
- 指令是传递给应用程序的信息。
-
- <?开始,?>结束
- 样式表处理指令
- 样式表处理指令xml-stylesheet。这个处理指令必须出现在厅言部分,在根元素之前。
-
<?xml-stylesheet type="type" href="uri" ?> type="text/css" 或者 type="text/xsl"
XML专用标记(3)—— CDATA节
- 用于把整段文本解释为纯字符数据而不是标记的情况。包含大量<、>、&或者"字符。CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记。
- 语法
-
<![CDATA[ 。 。 。 。 。 。 。 。 ]]>
-
- 可以输入任意字符(除]]>外)
- 不能嵌套
- 例子
-
<?xml version="1.0"> <root> <![CDATA[ <HELLO> <WORLD> ]]> <subRoot> </subRoot> </root>
-
文档类型定义 —— DOCTYPE
- 文档类型声明,紧跟XML声明之后,包含所有实体声明
- 语法:
-
<?xml version="1.0"> <!DOCTYPE 根元素标记名[ <!--实体声明--> ]>
-
格式正规的XML文档
遵循如下规则的XML文档称为格式正规的XML文档
- 语法规范
- 必须有XML声明语句
-
<?xml version="1.0" encoding="gb2312"?>
-
- 必须有且仅有一个根元素
- 标记大小写敏感
- 属性值用引号
- 标记成对
- 空标记关闭
- 元素正确嵌套
- 必须有XML声明语句
- 元素语法
- 名称中可以包含字幕、数字或者其他字符
- 名称不能以数字开头
- 不能以XML/xml/Xml/...开头
- 名称中不能含空格
- 名称中不能含冒号(注:冒号留给命名空间使用)