XML基本语法规则

XML基本语法规则

XML 声明

可选择是否进行声明

XML 文档的第一行内容,通常是 XML 的声明部分,比如:

<?xml version="版本号" encoding="编码方式" standalone="独立与否"?>

声明时的相对位置必须与示例相同即:version>>encoding>>standalone

若出现则必须是整XML 文档的第一行内容(第一行不能为注释或者空行)。<?xml 必须顶格,且中间不能有空格。

XML声明内容是否可缺省
版本声明(version)
编码声明(encoding)
文档独立性声明(standalone)

版本声明(version 属性)

在 XML 的声明中,这个属性是必须的,并且必须作为第一个属性出现

若存在XML声明,则必须存在版本声明

编码声明(encoding 属性)

用于指明当前 XML 文档中所使用的符号的编码方式(指定解码方式)

这个编码方式与 XML 文档在文件系统中保存时使用的编码方式没有直接的关系

编码方式与解码方式是一一对应的

文档独立性声明 (standalone 属性)

表明当前 XML 文件是独立使用、还是与其他的标记文件配套使用

依赖于外部dtd、xslt等文件时,不独立,若是依赖于内部的则依旧独立

属性解析时是否需要外部标记声明文档
yes不需要
no需要

处理指令(Processing Instruction)

将 XML 文档用于特殊的应用程序时,表示需要执行的特定操作

XML 解析器并不理解这些处理指令的含义,也不会执行任何特定的操作

处理指令的语法格式如下:

<?target-name data?>

比如: <?xml-stylesheet href="style.xsl" type="text/xsl”?>。
(1) 两个问号,是处理指令的开始与结束。
(2) 当 XSL 的执行引擎碰到这个处理指令时,将会根据 href 的取值获得指定的 xsl 文件,并对输入的 XML 文档进行相应的转换。

注释 (Comment)

语法:

注释中不应该出现两个连续的横线 (-)
注释不应该出现在元素的标记中
注释之中不应该嵌套注释

元素 (Element)

在层次结构的 XML 文档中,元素是最基本的组成单元

  1. 一个元素可以包含任意多个子元素,可以包含多个同名的子元素

  2. 子元素的顺序是非常重要的

比如再书的XML文档中,第一个 author 元素表示该书籍的第一作者,而第二个 author 元素表示第二作者,所以颠倒顺序后含义完全不同。

语法格式

<element_name att1=“val1” att2=“val2”> ――开始标记
…content… ――内容
</element_name> ――结束标记

元素中可以包含文本、子元素、或者两者的组合

命名规则

  1. 元素的名称必须以字母、或者下划线( _ )、或者冒号( : )开头
  2. 元素名称中除首个符号之外的部分可以是字母、数字、横线(-)、下划线(_)、点号(.)、冒号(:)的任意组合
  3. 元素名称是大小写敏感的,因此开始标记和结束标记中元素名称的大小写形式必须完全相同
  4. 元素名称长度没有限制
  5. 可以使用非英文的元素名
位置字符
开头字母-下划线-冒号
除首字符外的其他位置字母、数字、横线(-)、下划线(_)、点号(.)、冒号(:)

不可以出现其他特殊字符,如&$%#@!等

空元素 (Empty Element)

在 XML 文档中,元素的内容可以为空

空元素是指不包含任何内容的元素,但是在其开始标记中可以包含属性

  1. <element_name att1=“val1” att2=“val2”> </element_name>

  2. <element_name> </element_name>

  3. <element_name/>

    2和3完全等价

属性 (Attribute)

  1. 元素在其开始标记中可以包含任意多个属性,但不能包含同名的属性

  2. 对于一个元素所有的属性,它们不分先后顺序,因为它们之间可以通过名称相互区别

属性不能独立于元素而存在(存在于元素的开始标记中),通常以名=值的形式出现,属性的取值必须加上引号(单引号或者双引号)。

属性的名-值对用于描述当前元素的某个方面的特征,比如:
< author firstname=“tom” lastname=“hanks” > < / author >

属性的命名规则与元素的命名规则相同

元素VS属性

元素内容中的子元素和属性,都可以用来刻画该元素某个方面的特征

对于简单的标量数据(无结构的数据),可以采用属性,否则应该采用子元素。
对于可能在数目上发生变化的特性,应该使用子元素,使用子元素的方案在可扩展性方面性能良好

比如某本书籍可能有多个作者:

  1. 子元素表示描述
    < book >
    < author >tom hanks< /author >
    < author >mike jimmy< /author >

    < /book >

  2. 属性描述
    < book author1=“tom hanks” author2=“mike jimmy”>…< /book>

方法2修改了元数据的内容,即属性名称本身,可能会影响到已经编写的用于解析该文档的应用程序

同一元素其子元素与属性的对比

子元素属性
数量无限制无限制
名称可同名不可同名
顺序有序无序

元素的内容

元素开始标记和结束标记之间的数据称为该元素的内容

内容形式

  1. 子元素
  2. 文本
  3. 子元素和文本的混合

XML解析器靠<>符号区分文本内容和元素

< > 之间的文本是元素的标记

文本内容

文本内容中不应该出现的特殊字符

特殊字符指的是在XML中有特殊含义的字符

使用特殊字符的方法
预定义实体

XML 1.0 规范中定义了五种预定义实体

字符预定义实体(解析之后将被还原)
<& lt;(less than)
>& gt;(great than)
&& amp;
& apos;
"& quot;

注意&与字符之间无空格

除此以外的的其他实体,必须在使用前进行声明

CDATA段

CDATA段的作用:告诉解析器不要试图从该文本块中查找 XML 标记,它仅仅就是文本内容

假设 XML 文档的某块文本内容中包含大量的特殊字符,那么可以将整个文本块的内容放入到一个 CDATA 段

形如:

(<![CDATA[......]]>)

…表示文本块

CDATA 段的文本内容中不能直接出现 ]]>,并且 CDATA 段不应该嵌套使用

使用空白字符的方法(White Space)

空白字符:

  1. 空格

  2. 回车

  3. 换行

  4. 制表

在缺省的情况下,对于连续出现的空白字符,解析器会将其缩减为一个空格字符。

显示标记包含的全部空格的方法: 在编辑xml文件时将输入法换成“中文”输入法,并选择“全角状态”来编辑空格字符。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值