XML文档一般分为以下几个部分:
- 文档声明;
- 元素;
- 属性
- 注释
- CDATA区,特殊字符
- 处理指令
1.文档声明
<?xml version="1.0" encoding="utf-8" standalone="no" ?>//standalone默认为no,指与其他文档关联,但意义不大。
放在首行。
2.每个XML必须有且只有一个根元素,包裹所有其他元素。
php解析XML文档的时候,文档内容的换行及空格都会被解析,特别注意。<name>张三</name>与<name> 张三 </name>不一样。
元素命名规则:
-
- 区分大小写;
- 不能以数字或者下划线开头
- 不能以XML或xml开头
- 不能包含空格
- 名字中间不能包含冒号
3.元素的属性值
元素的属性值中出现了<>&‘ “等,可以使用字符实体
< < >--> &--& '---' "---" 后面的分号必须带上,然后以双引号裹起来
特殊字符处理:
¥@¥%……%¥……
<![CDATA[特殊字符]]>可以存储图像文件的二进制文本,保存一个图像。
4.处理指令
<?xml-stylesheet href=”css.css” ?>可以自定义xml文件的显示效果,与html中css用法类似。
5.DTD document type defination文档类型定义
DTD文件时XML文件约束的一种方式,另一种是Schema技术。DTD也可以约束HTML或者XHTML。
引入外部DTD的方法。
<!DOCTYPE 根元素名 SYSTEM 文档路径>
引入公共的DTD文件
<!DOCTYPE 根元素名 PUBLIC DTD名称 DTD.URL
内部DTD的方法
<!DOCTPYE 根元素 [
DTD定义的内容
]>
6.DTD的语法
利用ELEMENT关键字 定义元素。
<!ELEMENT NAME CONTENT>
NAME是元素的名称,是自己定义的。CONTENT是元素的类型分为以下三种
EMPTY--不能包含子元素和文本,但可以有属性<br/>,即空标签
ANY--包含任何在DTD中定义的元素内容。
#PCDATA,可以包含任何字符数据,但是不能在其中包含子元素和其他类型。(即不能 有子元素)
对元素的修饰,组合分组.
<!ELEMENT NAME(NAME1?, NAME2+,NAME3*) >
?表示0或者1个,+表示至少一个,*号表示0个或多个,逗号表示元素定义顺序。
|表示选择。
定义属性列表。
<!ATTILIST 元素名称
属性名称 类型 属性特点
>
类型
CDATA 属性值可以是字符或者数字
ID 属性值唯一,并且以字母开头
IDREF/IDREFS ID引用
Enumerated 枚举,不能超出枚举范围
ENTITY/ENTITIES 实体
------------》实体定义
1.引用实体:在dtd中定义<!ENTITY en “content” >
在xml文件中引用&en;即可
2.参数实体:<! ENTITY % 实体名称 “实体内容”>
在dtd文件中自己使用 %实体名称;
特点
#REQUIRED //必须有
#IMPLIED //可有可无
#FIXED value //固定值
Default value //默认值