1: 概述
1.1 什么是XML
1.2 三个重点
1.3规则
1.4 常用转义
2: Xml声明
XML 中,空格会被保留
XML 以 LF 存储换行
3:Xml标签
4:Xml元素
5:XML 属性
6:验证XML
7:最佳命名习惯
8:XML进阶
1: 概述
1.1 什么是XML
XML指可扩展标记语言。它是从标准通用标记语言派生的基于文本的标记语言(SGML).
1.2 三个重点
XML是可扩展的: XML允许你创建自己的自描述性的标签,或语言,适合您的应用程序.
XML进行数据 : 不存在它:XML允许你无论存储将如何呈现这些数据.
XML是一个公共标准 : XML是由一个组织开发的名为万维网联盟(W3C),并可以作为一个开放的标准.
1.3规则
基本语法:
1. xml文档的后缀名 .xml
2. xml第一行必须定义为文档声明
3. xml文档中有且仅有一个根标签
4. 属性值必须使用引号(单双都可)引起来
5. 标签必须正确关闭
6. xml标签名称区分大小写 (标签 属性)
7. xml只允许只有一个根(Root)标签
8. xml标签的属性也是区分大小写的
1.4 常用转义
2: Xml声明
xml分为两个部分, xml声明 xml标签
版本:
编码
是否依赖于信息从外部源,诸如外部的文档类型定义(DTD)的语法分析程序,其内容。默认值被设置为无。将其设置为yes告诉处理器有需要解析的文件没有外部声明
yes no
xml注释:
XML 中,空格会被保留
Hello Tove ====>转换为 Hello Tove
XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
3:Xml标签
完整闭合标签
这是正确的句法空标签
#或者
4:Xml元素
可以包含一个或者多个元素,这些元素允许两种不同的赋值方法
5:XML 属性
属性必须加引号
多个属性
尽量使用元素代替属性
属性不能包含多个值(元素可以)
属性不能包含树结构(元素可以)
属性不容易扩展(为未来的变化)
数据库中用于标识某个元组
使用id表示某一组数据
6:验证XML
DTD验证
本地验证:
网络验证:
// 指定验证的文件
schema验证
XSD:描述
7:最佳命名习惯
使名称具有描述性。使用下划线的名称也很不错:
名称应简短和简单,比如:
避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name。
避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。
避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。
显示XML
使用CSS
使用XLAT
8:XML进阶
XML命名空间
xmlns:f="http://www.w3cschool.cc/furniture" f就是指定的命名空间
Android中 布局标签就是使用的这种命名空间
CDATA数据
对于某些数据需要直接按照文本形式处理的 如@lt @gt 就不会处理
具体数据 ]]>
XML 数据岛
XML 数据岛是嵌入到 HTML 页面中的 XML 数据。
XML 数据岛只在 Internet Explorer 浏览器中有效。
1: 基本使用
2:声明元素
3 xml属性
4:xml实体
定义: 文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
PCDATA:
PCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
CDATA:
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
XML外部 内部:
本地路径">
// 声明为公共的DTD文件
1: 基本使用
声明DTD开始部分
具体的元素 属性 实体--> ]>
2:声明元素
空元素
# 实例
多个元素
含有多个元素的元素,子元素必须连续声明
实例
PCDATA元素(可以被解析为元素的)
# 实例
带有任何内容的元素
# 实例
声明只出现一次的元素
# 实例:
声明最少出现一次的元素 +
# 实例:
声明出现零次或多次的元素 *
# 实例:
声明出现零次或一次的元素 ?
# 实例:
声明 |可选内容
实例:
声明混合型的内容
实例:
3 xml属性
格式
# 元素名 属性名 类型 属性值 # 实例 # 这个" " 可以不给 可以给限定值 #REQUIRED #FIXED #IMPLIED
提供的类型
类型 |
描述 |
CDATA |
值为字符数据 (character data) |
(en1|en2|..) |
此值是枚举列表中的一个值 |
ID |
值为唯一的 id |
IDREF |
值为另外一个元素的 id |
IDREFS |
值为其他 id 的列表 |
NMTOKEN |
值为合法的 XML 名称 |
NMTOKENS |
值为合法的 XML 名称的列表 |
ENTITY |
值是一个实体 |
ENTITIES |
值是一个实体列表 |
NOTATION |
此值是符号的名称 |
xml: |
值是一个预定义的 XML 值 |
提供的属性
值 |
解释 |
值 |
属性的默认值 |
#REQUIRED |
属性值是必需的 |
#IMPLIED |
属性不是必需的 |
#FIXED value |
属性值是固定的 |
完整例子
# 应用 幸福大街" />
强制要求值 可选 固定值
//那street 这个属性必须给出 # 实例 必须给出固定的值"> // //可选
列举属性值
DTD: # XML 例子:
指定ID IDREF
// #
4:xml实体
定义
# 实例 # 应用
5 一些题目
根据上面的内容写出DTD约束文件
xml version='1.0' encoding='utf-8'?> DOCTYPE Teams { > ELEMENT Team (#PCDATA)> ELEMENT Team (Teamname,Country,Member+)> ELEMENT Teamname (#PCDATA)> ELEMENT Country (#PCDATA)> ELEMENT Member (#PCDATA)> ATTLIST Member Name CDATA #REQUIRED> ATTLIST Member Age CDATA #REQUIRED > ATTLIST Member Sex CDATA (Female|Male) "Male"> ]> <Teams> <Team> <Teamname>RomaTeamname> <Country>ItalyCountry> <Member Name=”AAA ”Age="36" Sex="Male" /> <Member Name=”BBB ”Age="26" Sex="Female" /> Team> Teams>
XSD Schema 描述
xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/NewXMLSchema" xmlns:tns="http://www.example.org/NewXMLSchema" elementFormDefault="qualified"> <xs:element name="Teams"> <xs:complexType> <xs:sequence> <xs:element name="Team" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="Teamname" type="xs:string">xs:element> <xs:element name="Country" type="xs:string">xs:element> <xs:element name="Member" maxOccurs="100"> <xs:complexType> <xs:attribute name="Name" type="xs:string">xs:attribute> <xs:attribute name="Age" type="xs:integer">xs:attribute> <xs:attribute name="Sex" type="xs:string">xs:attribute> xs:complexType> xs:element> xs:sequence> xs:complexType> xs:element> xs:sequence> xs:complexType> xs:element> xs:schema>
XML文档
xml version="1.0" encoding="UTF-8"?> <Teams xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="NewXMLSchema.xsd"> <Teamname>RomaTeamname> <Country>ItalyCountry> <Member Name="AAA" Age="34" Sex="Male"/> <Member Name="AAA" Age="34" Sex="Male"/> Team> Teams>