xml

Posted on Posted in php
Tips: 本文创建于2014年5月7日,已超过 2 年,内容或图片可能已经失效!

目录

xml

作用:xml用来存储和传输数据,xml不具有数据传输的作用,而是做为一个载体来传输数据。
特点:
1、以一种结构化表示数据之间的嵌套关系
2、可以为xml中的数据指定数据类型,但是需要和其他的数据结合使用。DTD、schema
3、xml遵循树状结构,可以被所有的语言通过该结构来解析数据。

主要用途:
1、xml把数据从html分离处理
xml需要和其他的程序结合起来使用才能充当html
2、xml作为一个小型的数据库用来存储数据
3、作为信息出题的载体进行数据的交互
4、应用程序的配置文件
5、创建新的internet语言

注释

[code lang="xml"]
<!--注释内容-->
<!-- 注释内容 -->
[/code]

文档声明

version与encoding不能交换顺序,这句话必须写在最前面

[code lang="xml"]
<!--?xml version='1.0' encoding='utf-8'?-->
[/code]

元素

  • 1、格式良好的XML文档必须有且仅有一个根元素,其它元素都是这个根元素的子孙元素。
  • 2、空元素:
  • 3、区分大小写
  • 4、名称避免使用xml字符
  • 5、不能包含空格
  • 6、不能有冒号
  • 7、不能使用.点号
  • 8、使用下划线,不使用减号
  • 9、名称尽量简短
  • 10、名称的大小写统一标准
  • 11、名称可以使用中文,但尽量使用英文,因为有些软件不支持非字符

元素属性

1、一个标签可以有多个属性
2、属性值要使用双引号和单引号
3、=号两边不能有空格
4、属性可以被改成用子元素来描述同样的信息

空格和换行

xml对空格和换行解释为节点

特殊字符

[code lang="xml"]
&:&amp;
<:&lt;
>:&gt;
":&quot;
':&apos;
[/code]

CDATA

作用:字符转义

[code lang="xml"]
<![CDATA[内容]]>
[/code]

xml约束(DTD)

DTD
注释与xml相同

在XML文档中引入外部DTD文件

[code lang="xml"]
1、<!DOCTYPE 文档类型名称 SYSTEM "DTD文件的URL">
eg:<!DOCTYPE students SYSTEM "students.dtd">
2、<!DOCTYPE 文档类型名称 PUBLIC "DTD名称" "DTD文件的URL">
eg:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
[/code]

在XML文档中直接嵌入DTD定义语句
格式:

[code lang="xml"]
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE 根元素名 [
DTD定义语句
……
]>
<根元素>
……………..
</根元素>
[/code]

DTD元素定义

[code lang="xml"]
格式
<!ELEMENT 元素名称 使用规则>
举例
<!ELEMENT student (name,age,sex)>
<!ELEMENT NAME (#PCDATA)>
使用规则
#PCDATA:parsed character data
(name,age,sex):包含的子元素
EMPTY:一个元素既不包含字符数据,也不包含子元素,就是空元素。eg:<!ELEMENT HR EMPTY>定义的元素形式为<HR />
ANY:一个元素可以包含任意内容

一个元素的各个组成成份之间可以有各种关系:
<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)> 这种是错的,无法表示无序,只穷举
<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>:顺序关系
<!ELEMENT MYFILE (#PCDATA|TITLE|AUTHOR|EMAIL)*>:互斥关系

在元素的使用规则中可以定义子元素出现的次数:
(书+)>=1、 (书?)0||1、 (书*)>=0、 (书)=1

一对圆括号( )可用于将括在其中的内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组。
<!ELEMENT MYFILE((TITLE*, AUTHOR?, EMAIL)* | COMMENT)>
[/code]

属性定义

[code lang="xml"]
语法格式:
<!ATTLIST 元素名
属性名1 属性类型 设置说明
属性名2 属性类型 设置说明
……
>
或者
<!ATTLIST 元素名 属性名1 属性类型 设置说明>
<!ATTLIST 元素名 属性名2 属性类型 设置说明>
举例:
<!ATTLIST 商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
应用:
<商品 类别="服装" 颜色="黄色">…</商品>
<商品 类别="服装">…</商品>
举例:
<!ATTLIST 页面作者
姓名 CDATA #IMPLIED
年龄 CDATA #IMPLIED
联系信息 CDATA #REQUIRED
网站职务 CDATA #FIXED "页面作者"
个人爱好 CDATA "上网"
>
设置说明:
#REQUIRED:该属性必须存在
#IMPLIED:属性不是必需的
#FIXED value:属性值是固定的
直接使用默认值
[/code]

属性的类型

CDATA:值为字符数据 (character data)
ENUMERATED :此值是枚举列表中的一个值,各个值之间用短竖线分隔,(en1|en2|..)
ID:值为唯一的 id
IDREF和IDREFS:值为另外一个元素的 id (id列表)

实体定义

引用实体(引用外部DTD浏览器不支持,但php支持)

[code lang="xml"]
<!ENTITY info '信息内容'>
……
<info>&info;</info>
[/code]

参数实体

[code lang="xml"]
<!ENTTY % hobby '(lanqiu|zuqiu)'>

hobby %hobby #REQUIRED

……
[/code]

» 转载请注明来源:若我若鱼 » xml

Leave a Reply

Your email address will not be published. Required fields are marked *

one × 4 =