用途
- 用户传输和存储数据
特点
-
自我描述性
-
于HTML类似,有树结构
语法
- XML必须包含根元素(父元素)
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
- XML声明
<?xml version = "1.0" encoding = "utf-8"?>
- 所有XML必须有关闭标签(在HTML中某些元素不必有关闭标签:<p>、<br>)
<p> this si a paragraph. </p>
注:XML声明没有关闭标签,但它不是XML文档本身的一部分
- XML标签对大小写敏感
<Body>这是错误的</Body>
<body>这是对的</body>
注:XML标签必须使用相同的大小写来编写 开始标签和结束标签
- XML必须正确嵌套
- XML的属性值必须加引号(与HTML类似)
<note data = "02/11/2018">
<to>tom</to>
<from>jack</from>
</note>
-
实体引用
某些字符有特殊的意义,如果直接将其放在XML元素中,会发生解析错误。
如:
<message>if salary < 1000 then</message>
正解:
<message>if salary < 1000 then</message>
在 XML 中,有 5 个预定义的实体引用:
注:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。
-
在XML中,空格会被保留
-
XML以LF存储换行(\n)
在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
在旧的 Mac 系统中,使用 CR 来存储新行。
XML 以 LF 存储换行。
元素命名规则
- 与其他编程语言命名规则类似
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
XML元素可扩展
<note data = "02/11/2018">
<to>tom</to>
<from>jack</from>
<body>xml language is so good!</body>
</note>
添加后:
<note data = "02/11/2018">
<to>tom</to>
<from>jack</from>
<title>The xml</title>
<body>xml language is so good!</body>
</note>
XML的优势之一:可以在不中断应用程序的情况下进行扩展。
XML属性
-
属性必须加引号
-
在XML中,应尽量避免使用属性,而使用元素(原因如下:)
-
属性不能包含多个值(元素可以)
-
属性不能包含树结构(元素可以)
-
属性不容易扩展(为未来的变化)
注:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
-