xml编程(一)-xml语法
Xml语法
DTD约束
PHP DOM
SIMPLEXML
一、 简介
1、 发展
gml 通用标记语言 1969年 软件如果想实现高度的移植性,必须要有一个统一的标准
sgml 标准通用标记语言1985年
html 超文本标记语言1993年,解决不同平台,不同浏览器访问同一网页
xml可扩展标记语言 1998年
2、 关于xml的定义
extensible markup language ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
3、 xml和html的不同
html:显示数据 <div> <font color=’red’
xml:保存数据
html标签不能自定义,从标签上不能达到“见词知意”的目的
html:<table>武松</table>
xml:<表格>武松</表格>
html将数据与格式绑定在一起
<span>商品名</span>
不同浏览器解html不同:IE,火狐。
html语法要求不严格
<table><tr><td></td></table>
等等
4、 xml的主要用途
程序之间的相互通讯
作为程序的配置文件
存储数据
规范数据格式
二、 xml快速入门
描述一个人的信息
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这里有很多人的信息 -->
<persons>
<person id='s101'>
<name>张三</name>
<age>30</age>
</person>
</persons>
三、 xml语法
xml文件的构成
文档声明
元素
元素属性
注释
CDATA区
特殊字符
处理指令
文档声明:
需要先使用文档声明来声明XML文档
最简单的语法:<?xml version=“1.0”encoding='字符集编码' standalone='yes/no'?>
encoding
指定编码格式
standalone
当前文档是否独立 yes/no
元素:
一个标签分为起始和结束标签(不能省略)
错误:<tr><td>内容</tr>
正确:<a></a>
一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套
错误:<a><b></a></b>
正确:<a><b></b></a>
一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签
元素-命名:
元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点
严格区分大小写;
<name>和</NAME>表示两个标签
只能以字母或下划线开头;
A123
_123
错误:12a
不能以xml(或XML、Xml等)开头
错误:xmlabc
名称字符之间不能有空格或制表符;
错误:<a b>,<ab>;正确:<a_b>
名称字符之间不能使用冒号:错误:<a:b>
元素属性
一个元素可以有多个属性
<person id=’s101’ sex=’男’ ….. >
属性值一定要用引号(单引号或双引号)引起来
<person id=’s101’>
<person id=”s101”>
属性名称的命名规范与元素的命名规范相同
元素中的属性是不允许重复的
错误 <person id=’s101’ id…
标签属性所代表的信息也可以被改成用子元素的形式来描述
<person id=’100’><name></name></person> 可以改成
<person><id>100</id></person>
注释
<!—这是注释-->
XML声明之前不能有注释
注释不能嵌套,
错误<!--<!---->>
CDATA区:
CDATA:Character Data 字符数据
作用:把标签当做普通文本内容
语法:<![CDATA[内容]]>
特殊字符:
对于一些特殊字符,若要在元素主体内容中显示,必须进行转义。
<img border="0" alt="xml教程" src="http://www.phpstar.cn/uploads/allimg/130126/1_130126174632_1.png" width="585" height="164" />
<img border="0" alt="xml教程" src="http://www.phpstar.cn/uploads/allimg/130126/1_130126174651_1.png" width="554" height="65" />
处理指令:
作用:用来指挥软件如何解析XML文档。
语法:必须以“<?”作为开头,以“?>”作为结尾。
常用处理指令:
xml指令
xml-stylesheet指令
#p#xml教程-xml的dtd约束#e#
DTD约束
一、 什么是约束
XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束,Xml约束文档
约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。
格式良好的XML:遵循XML语法的XML
有效的XML:遵循约束文档的XML
遵循xml语法的文档称之为合法的
遵循约束文档的xml文档称之为合理的
合法的xml不一定是合理的
合理的一定是合法的
二、 常见的约束
XML DTD
XDR
SOX
XML Schema
三、 什么是dtd
l Document Type Definition 文档类型定义
约束XML的书写规范
四、 dtd存放的位置
文件中:可以将dtd约束放在当前xml文件中
外部文件:也可以将约束放到一个外部的.dtd的文档中
五、 dtd快速入门
六、 如何检测我们xml文档是否符合dtd约束???
程序
ActiveXObject("Microsoft.XMLDOM") //实例化xmldom对象
doc.validateOnParse //是否开启检验
doc.async //是否异步
doc.load() //加载
doc.parseError.reason //错误信息
doc.parseError.line //错误行号
软件 iexmltls 这个小插件可以在ie下检测你写的文档是否是有效的xml'文档。
七、 如何引用外部dtd
DOCTYPE声明:
<!DOCTYPE 根元素 SYSTEM “DTD文档路径”> //外部引入dtd文档
<img border="0" alt="xml教程" src="http://www.phpstar.cn/uploads/allimg/130126/1_130126175853_1.png" width="535" height="116" />
八、 dtd语法
定义元素
定义属性
定义实体
1、 定义元素
语法:
<!ELEMENT 元素名 使用规则>
使用规则:
(#PCDATA) :文本数据
EMPTY :空
ANY :任意
(子元素) :只出现一次
(子元素1,子元素2,……) :顺序指定子元素
(子元素+) :至少出现一次
(子元素*) :子元素可以出现任意次数
(子元素?) :子元素出现0次或1次
(子元素1|子元素2) :任选其一
2、 定义属性
语法:
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型:
CDATA :文本
(en1|en2|……) :值任选其一
ID :值为唯一
默认值:
#REQUIRED 非空 使用这个修饰的属性必须要写
#IMPLIED 可选 可写可不写
#FIXED 固定值 可以不指定,如果指定,只能使用这个值
值 默认值 如果指定值,则以指定值为标准,如果没有指定,则使用默认值
3、 定义实体
定义实体就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的内容
内部实体
外部实体
定义内部实体
定义语法:
<!ENTITY 实体名称 "实体的值">
引用语法:
&实体名;
定义外部实体
定义语法:
<!ENTITY 实体名称 SYSTEM "URL">
引用语法:
&实体名
<img border="0" alt="xml教程" src="http://www.phpstar.cn/uploads/allimg/130126/1_130126180610_1.png" width="554" height="104" />
以上就是xml编程(一)-xml语法的内容,更多相关内容请关注PHP中文网(www.php.cn)!
上一篇: windows远程桌面默认端口怎么修改
下一篇: win7系统怎么提高网速
推荐阅读
-
使用PHP与XML进行网站编程(1)
-
xml和实体对象相互转换 一步到位 博客分类: J2EEXML javaxmlxstream转换
-
xml和实体对象相互转换 一步到位 博客分类: J2EEXML javaxmlxstream转换
-
JDBC 4.0 里的新东西 JDBCDerbySQL编程XML
-
Spring基于xml配置与注解驱动开发(一)
-
09、主要服务可用性监控 (一) 博客分类: Saas监控--Shell脚本补充 Python电信XML脚本Web
-
Maven简介(一)——Maven的安装和settings.xml的配置 博客分类: maven Maven安装installsettings.xml
-
web.xml安全性认证优先过滤器执行导致的一个问题
-
Hibernate 一对一关系(基于XML) 博客分类: Hibernate hibernate
-
XML基础语法 博客分类: XML XML