菜鸟一只,若有不正之处,还请批评指正。
1.形式:
<标记>元素内容</标记> 开始标签和结束标签
加上属性
<标记 属性名="属性值">元素内容</标记>
对于没有元素内容时可以是:
<标记/>
<标记 属性名="属性值"/> 属性可以有多个,属性值包含在单引号或双引号之中
2.XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
3.XML 标签对大小写敏感。标签 <Letter> 与标签 <letter> 是不同的。
3.XML 元素必须遵循以下命名规则:
-
名称可以包含字母、数字以及其他的字符
-
名称不能以数字或者".""-"开始
-
名称不能以字母 xml(或者 XML、Xml 等等)开始
-
名称不能包含空格或斜线"/"
-
最好不要以":"开始
4.元素内容可以包括被解析的字符数据、字符数据CDATA段、处理指令和注释。
5.为了使用具有特定含义的符号,可以使用实体转义的方式
下面是预定义的实体引用
< | < |
---|---|
> | > |
& | & |
' | ' |
" | " |
记住是以"&"开始,";"结束
大于'>'是能正常用的,小于不可以直接用'<', 必须用<
6.CDATA段,有点类似c++和python字符串前面加R或r,后者是为了不让字符串里的转义字符转义,输出字符串原本的内容,前者也是为了输出CDATA中原本的内容,使特殊符号不起特殊符号的作用,当然使用实体转义的方式也可以,但当内容多时偏复杂。
语法形式:
<![CDATA[文本内容]]>
例:
<msg>
<![CDATA[2<3,3<4,4<5]]>
</msg>
注意:不允许嵌套使用
6.元素可以嵌套,但不能交叉
7.最好不要把属性作为数据的容器,否则文档难以阅读和维护。属性命名规则和元素类似。
8.属性不容易扩展,XML 元素是可扩展的
9.命名空间
在 XML 中,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
XML 命名空间提供避免元素命名冲突的方法。
声明命名空间语法形式:
xmlns:命名空间前缀="统一资源标识符(URI)"
命名空间前缀是命名空间名的缩写替代标识,前缀较短,使用更方便。前缀命名规则和标记命名规则相同。
使用:
<mm:root xmlns:mm="http://www.demo/mm" xmlns:nn="http://www.demo/nn">
<mm:head>mm的head</mm:head>
<mm:body>mm的body</mm:body>
<nn:head>nn的head</nn:head>
<nn:body>nn的body</nn:body>
</mm:root>
默认命名空间
为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。
语法形式:
xmlns="URI"
使用:
<mm:root xmlns:mm="http://www.demo/mm" xmlns="http://www.demo/nn">
<mm:head>mm的head</mm:head>
<mm:body>mm的body</mm:body>
<head>nn的head</head>
<body>nn的body</body>
</mm:root>
元素在使用命名空间时,既可以在该元素的起始标记处声明命名空间,也可以在父元素节点处声明。
命名空间作用域:
命名空间的作用于声明它的元素以及该元素的所有子元素,除非元素被其他命名空间覆盖。
属性也可以具有命名空间。
<mm:body mm:size="18">mm的body</mm:body>
缺省命名空间不直接应用到属性中