一、XML简介
XML 指可扩展标记语言(EXtensible Markup Language),在格式上与HTML类似,于html不同的是,xml并不是为了显示数据而是为了传输数据,同时也不具有固定的标签,标签全由用户自定义。XML 是独立于软件和硬件的信息传输工具。
这是一个xml的例子,用于描述一封信
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML的功能:
- XML 把数据从 HTML 分离
- XML 简化数据共享
- XML 简化数据传输
- XML 简化平台变更
- XML 使您的数据更有用
- XML 用于创建新的互联网语言
总而言之,XML的通用性和便捷性为数据交互提供了大量的便利,适用于不同系统,不同平台之间的数据传输。
二、XML结构
XML采取了树的结构,XML将数据组织成为一棵树,DOM 通过解析 XML 文档,为 XML 文档在逻辑上建立一个树模型,树的节点是一个个的对象。这样通过操作这棵树和这些对象就可以完成对 XML 文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。
例如:
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
由于DOM“一切都是节点(everything-is-a-node)”,XML树的每个 Document、Element、Text 、Attr和Comment都是 DOM Node。 DOM 实质上是一些节点的集合。由于文档中可能包含有不同类型的信息,所以定义了几种不同类型的节点,如:Document、Element、Text、Attr 、CDATASection、ProcessingInstruction、Notation 、EntityReference、Entity、DocumentType、DocumentFragment等。
三、XML元素、语法
1.声明
XML 声明文件的可选部分,如果存在需要放在文档的第一行,如下所示:
<?xml version="1.0" encoding="utf-8"?>
2.属性
例子:
<student id="100">
<name>Tom</name>
</student>
- 属性值用双引号 " 或单引号 ’ 分隔,如果属性值中有单引号,则用双引号分隔;如果有双引号,则用单引号分隔。
- 一个元素可以有多个属性
- 特定的属性名称在同一个元素标记中只能出现一次
- xml并不鼓励使用属性,因为可以用子元素来进行描述,用元素的优点在于可拓展,而属性并不支持扩展
3.元素
XML 元素指的是从开始标签直到结束标签的部分。
4.常见问题
- xml必须有闭合标签
- xml大小写敏感
- xml必须按照树结构正确嵌套
- xml的属性值要加引号
- 在使用特殊字符的时候要实体引用
- 注释
<!-- This is a comment -->
5.命名规范
XML 元素必须遵循以下命名规则:
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
四、XML验证
- 定义:拥有正确语法的 XML 被称为"形式良好"的 XML。通过 DTD 验证的XML是"合法"的 XML。
- 合法的 XML 文档是"形式良好"的 XML 文档,这也符合文档类型定义(DTD)的规则:
DTD:<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE note SYSTEM "Note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Schema:DTD的代替者<!DOCTYPE note[ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
四、XML样式
1.xml可以连接css
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>