eXtensible Markup language:可扩展的标记语言
解决HTML不可扩展的问题,
作用:保存或传输数据,不是用来显示数据的。
1、 基于文本格式的
2、 标签没有被预定义,需要自定义
3、 用于保存或传输数据,不是用来显示数据的。
4、 是元语言(可以通过这门语言开发其他的语言)
1、最上面一行是文档的声明,注意:声明必须放在第一行
 
2、是一种树形的结构
3、必须包含根元素,在根元素中扩展到树叶
4、文档有元素、属性、值、注释、实体组成
1、 至少需要一个元素
2、 XML标签是区分大小写(HTML不区分大小写)
3、 不允许空标记存在,所有的标记必须成对
4、 标签的嵌套要正确
 
5、标签的命名规则:以字母、下划线、冒号开头,后面跟的是字母,数字,下划线、冒号、句号(点)、连字符。中间不能有空格,不能以XML开头。
| 
 语言  | 
 注释  | 
| 
 HTML  | 
 <!--这是注释-->  | 
| 
 CSS  | 
 /* 注释 */  | 
| 
 Js  | 
 单行注释 // 多行注释 /* */  | 
| 
 PHP  | 
 单行注释 // # 多行注释 /* */  | 
| 
 Sql语句  | 
 单行 -- 多行 /* */  | 
| 
 XML  | 
 <!--这是注释-->  | 
注意:
(1)注释不可以放在声明之前
 
(2)注释不能嵌套
 
1、PCDATA(parse character data):可以解析的字符数据,
2、CDATA(character data)字符数据,不会由解析器解析。
 
注意:CDATA块之中的字符串中不能出现"]]>"。
实体相当于我们说的常亮,
XML中预定义的实体
| 
 实体  | 
 描述  | 
| 
 "  | 
 双引号  | 
| 
 '  | 
 单引号  | 
| 
 <  | 
 <  | 
| 
 >  | 
 >  | 
| 
 &  | 
 &  | 
要实现如下效果:
‘He said:"1<2"‘
 
自定义实体分为
a) 一般实体
b) 参数实体
Document Type Definition,文档类型定义,
格式良好:满足XML最低规范的
有效:通过DTD验证的文档称为有效
| 
 符号  | 
 含义  | 
| 
 +  | 
 >=1  | 
| 
 *  | 
 >=0  | 
| 
 ?  | 
 =0 或=1  | 
<!DOCTYPE 根 SYSTEM "验证文档.dtd">
dtd在XML文件外称为外部dtd
1、XML如下
 
2、DTD如下:
 
dtd文件在XML文件内部称为内部DTD。
 
 
 
XML
 
对应的DTD如下:
 
1、DTD如下:
 
2、XML如下:
 
格式:
<!ATTLIST 元素名称 属性的名称 数据类型 附加条件>
TIP:声明元素的时候,元素的数据类型是PCDATA
属性的时候,属性的数据类型是CDATA
 
| 
 名称  | 
 含义  | 
 语法  | 
| 
 REQUIRED  | 
 必填属性  | 
 <!ATTLIST 元素名称 属性名称 CDATA #REQUIRED>  | 
| 
 IMPLIED  | 
 属性可有可无  | 
 <!ATTLIST 元素名称 属性名称 CDATA # IMPLIED >  | 
| 
 default  | 
 默认值  | 
 <!ATTLIST 元素名称 属性名称 CDATA "默认值" >  | 
| 
 FIXED  | 
 固定值  | 
 <!ATTLIST元素名称 属性名称 CDATA #FIXED "值">  | 
| 
 枚举  | 
 枚举  | 
 <!ATTLIST 元素名称 属性名称 (值1|值2|值3...) "默认值">  | 
| 
 ID  | 
 唯一  | 
 <!ATTLIST 元素名称 属性名称 ID #REQUIRED >  | 
XML如下:
 
对应的DTD是:
 
参数实体就是在普通实体名字前面加上“%”。
 
对应的XML是
 
1、XML是可扩展标记语言,用于保存,传输结构化数据。
2、XML的文档定义:
第一行必须放文档的声明
按树形结构组织XML元素
3、XML中包含:声明、元素、属性、值、实体、注释
4、XML最低规范:
1、必须(只能)要一个一个根
2、标签必须是容器标记
3、命名规则:以字母、下划线、冒号开头,后面跟的是字母、数字、下划线、冒号、句号、连字符。
5、格式良好和有效
满足最低规范称为格式良好,先满足格式良好,再满足有效,通过DTD来保证文档的有效性。
6、DTD分为:内部DTD和外部DTD
内部DTD把规范写在XML文档的内部
外部DTD把规范写在XML文档的外部
7、引用外部DTD的方法
SYSTEM:如果DTD和XML在同一台服务器上用SYSTEM
PUBLIC:如果引用的网络上的DTD用public。
8、
通过<!ELEMENT>来声明元素
通过<!ATTLIST>来声明属性
通过<!ENTITY>声明实体
9、表示数量
+ >=1
* >=0
? =0 =1
10、属性
必填 required
隐含 implied
固定 fixed
默认
枚举
唯一
11实体
实体的分类
 
参数实体和一般实体的区别,在一般实体前面加一个%就是参数实体
补充:(W3C是什么)
World Wide Web Consortium => wwwc => 3wc => w3c
引入命名空间 xmlns
 
1、不支持命名空间
2、支持的数据类型很少
3、DTD不可扩展
4、DTD不遵循XML规范
简洁
通过schema来解决DTD的不足
1、如果一个元素下有子元素或属性,必须把元素和属性放在复杂数据类型的标记(<xs:complexType>)里面
2、如果是子元素,必须放在复杂数据类型下的序列标签中(<xs:sequence>),属性不可以放在序列标签中。
例题:
XML代码如下:
 
原文:http://www.cnblogs.com/ycalovewcl/p/7486203.html