xml DTD验证
来源:互联网 发布:c unity3d 仿真 编辑:程序博客网 时间:2024/05/22 01:35
1、DTD:Document Type Definition 文档类型定义
XML文件:
格式良好的XML:只要符合语法规范,就是格式良好的
合法的: 经过验证并且验证通过的就是合法的
2、先将DTD验证规则和XML文件关联起来
<!DOCTYPE 根元素 SYSTEM “dtd文件”>
现在已经关联起来,但是还没有验证
3、什么时候验证呢?
Php文件加载xml文件的时候验证
alidateOnParse
4,定义DTD的规则:
(1)DTD与XML文档联系起来
(2)加载XML文档时,使用DTD验证XML文档
(3)DTD中应该规定:
(1)有哪些元素
(2)元素的位置
(3)元素有哪些属性
DTD规则
(1)定义元素
<!ELEMENT 元素名 元素的特征>
()表示子元素列表,后面规定子元素的数量 * + ?
如果没有子元素,需要声明这个元素保存的是一个值
(#PCDATA)
(2)定义属性
<!ATTLIST 元素名 属性名 属性类型 属性的特征值>
CDATA 属性是一个普通值
ID 属性是唯一的标识
#REQUIRED 代表当前的属性是必须的
#IMPLIED 代表当前的属性是可选的
5、DTD中定义实体符号
1,引用实体
在XML文档中使用的实体符号
<!ENTITY 实体名称 “实体的值”>
2,参数实体
在DTD文档中使用的实体符号
<!ENTITY % 实体名称 “实体的值”>
例:
1、store.dtd
<!ELEMENT bookshelf (book+)>
<!ATTLIST book id ID #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT book (title,author)>
<!ATTLIST book name CDATA #IMPLIED>
<!ENTITY copy SYSTEM"copyright@hbsi.com">
2、store.php
<?php
//现有DOMDocument对象
$doc = newDOMDocument('1.0','utf-8');
//加载进来之前验证
$doc->validateOnParse = true; //表示加载的时候验证
$doc->load('store.xml');
3、store.xml
<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE bookshelf SYSTEM"store.dtd">
<bookshelf>
<book id="book1">
<title>笑傲江湖</title>
<author>金庸</author>
</book>
<book id="book2"name="book">
<title>天龙八部</title>
<author>金庸</author>
</book>
<book id="book3">
<title>侠客行</title>
<author>古龙</author>
<copy>©</copy>
</book>
</bookshelf>
例2:xml的DTD规则
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookstore [
<!ELEMENT bookstore (book)*><!--在bookstore中只能包含一个book,*出现任意个book--><!ELEMENT book (bookname , author , (publisher | published_b))><!--第一个是publisher第二个是published_b-->
<!ELEMENT bookname (#PCDATA)><!--#PCDATA解析文本-->
<!ELEMENT author (#PCDATA | au_name)*><!--author中可以包含au_name-->
<!ELEMENT au_name (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT published_b (#PCDATA)>
<!ATTLIST author zhicheng (初级 | 中级 | 高级) "中级"><!--attlist属性author中的职称有初中高,默认是中级-->
<!ATTLIST author id ID #IMPLIED><!--#IMPLIED代表属性不必是唯一的,id值不能重--><!ATTLIST publisher p_name CDATA #FIXED "电子工业出版社"><!--#FIXED属性值是固定的-->
<!ENTITY me "高锣鼓"><!--实体定义-->
]>
<bookstore>
<book>
<bookname>细说php</bookname>
<author id="a1" zhicheng="高级">&me;<au_name>兄弟连</au_name></author>
<publisher p_name="电子工业出版社"/>
</book>
<book>
<bookname>mysql</bookname>
<author id="a2" zhicheng="高级">张三</author>
<published_b/>
</book>
</bookstore>
- XML验证规范------DTD
- 用DTD验证XML
- xml DTD验证
- DTD - XML验证文件
- php xml dtd 验证
- 验证xml--xsd和dtd
- XML第二讲:DTD验证
- xml基础、DTD验证、Schema验证
- 使用dtd对xml进行验证
- XML DOM初学者指南(包括验证DTD)
- dom4j通过dtd或者schema验证xml
- XML验证实践(DTD和Schema)
- JAVA解析XML,DTD验证问题
- Xml基础详解和DTD验证
- Eclipse给XML加入DTD验证
- XML格式验证——DTD
- Xml基础详解和DTD验证
- XML----DTD-引用,验证,元素属性
- 求整数数组中和最大的子数组的3种方法
- JVM监控工具介绍
- linux学习入门2——linux文件系統基本结构(linuxcast.net)(倒转树状结构、命名机制、查看文件类型)
- php通过xpath访问xml文件
- TM框架-MySQL版本(实现动态开发和权限管理)-附下载地址
- xml DTD验证
- C/C++中函数参数传递详解
- 从阿里云os和Google之争看开源协议
- STL中sort、priority_queue、map、set的自定义比较函数
- 『转』Struts2总结(一)
- 异常机制
- linux 新建用户、用户组及用户权限
- 红黑树(Red Black Tree)
- joomla模板首页无内容时自动隐藏主体内容区域