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)!

更多相关文章

  1. php操作xml入门之xml基本介绍及xml标签元素
  2. 解析php DOMElement 操作xml 文档的实现代码
  3. XML指南——XML元素
  4. 给XML文档添加新 ”records”
  5. XML解析之sax解析案例(二)使用sax解析把 xml文档封装成对象
  6. XML解析之sax解析案例(一)读取contact.xml文件,完整输出文档内容
  7. Dom4j修改xml文档引入
  8. 根据Schema写出XML文档四部曲
  9. xml学习(2)xml文档树结构图

随机推荐

  1. Android(安卓)drawRegion 绘制
  2. android 学习基础篇---开发环境的搭建 Ec
  3. SQLite数据库并发访问
  4. Android输入输出系统之TouchEvent流程
  5. Android(安卓)特殊用法--来自中国移动开
  6. Eclipse Jar包源码关联
  7. 修改android挂载时的盘符名
  8. 【Android】Android 中string-array的用
  9. 菜鸟学Android开发系列之:发送短信拨打电
  10. Android 绘制动画(波浪动画/轨迹动画/Pat