【php基础】XML,DTD实例

要求一:能看懂别人写的DTD文件,自己能写更好。例如products.dtd:

 1 <!ENTITY AUTHOR "John Doe">
 2 <!ENTITY COMPANY "JD Power Tools, Inc.">
 3 <!ENTITY EMAIL "[email protected]">
 4
 5 <!ELEMENT CATALOG (PRODUCT+)>
 6
 7 <!ELEMENT PRODUCT
 8 (SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
 9 <!ATTLIST PRODUCT
10 NAME CDATA #IMPLIED
11 CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
12 PARTNUM CDATA #IMPLIED
13 PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
14 INVENTORY (InStock|Backordered|Discontinued) "InStock">
15
16 <!ELEMENT SPECIFICATIONS (#PCDATA)>
17 <!ATTLIST SPECIFICATIONS
18 WEIGHT CDATA #IMPLIED
19 POWER CDATA #IMPLIED>
20
21 <!ELEMENT OPTIONS (#PCDATA)>
22 <!ATTLIST OPTIONS
23 FINISH (Metal|Polished|Matte) "Matte"
24 ADAPTER (Included|Optional|NotApplicable) "Included"
25 CASE (HardShell|Soft|NotApplicable) "HardShell">
26
27 <!ELEMENT PRICE (#PCDATA)>
28 <!ATTLIST PRICE
29 MSRP CDATA #IMPLIED
30 WHOLESALE CDATA #IMPLIED
31 STREET CDATA #IMPLIED
32 SHIPPING CDATA #IMPLIED>
33
34 <!ELEMENT NOTES (#PCDATA)>

要求二:能根据别人写的DTD文件来写符合标准的xml文件,products.xml

1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE CATALOG SYSTEM "products.dtd">
3 <CATALOG>
4 <PRODUCT NAME="冰箱" CATEGORY="HandTool" PLANT="Chicago" INVENTORY="Discontinued">
5 <SPECIFICATIONS WEIGHT="80kg" POWER="1000w">这是国产海尔冰箱</SPECIFICATIONS>
6 <PRICE>1000</PRICE>
7 <NOTES>轻拿轻放</NOTES>
8 </PRODUCT>
9 </CATALOG>

要求三:可以检验自己写的xml文件是否有误,   checkdtd.html

 1 <html>
 2 <head>
 3 <title>测试dtd</title>
 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
 5 <script language="javascript">
 6 <!--
 7     //创建一个xml解析器
 8     var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
 9     //开启校验功能
10     xmldoc.validateOnParse =true;
11     //指定对哪个 xml文件校验
12     xmldoc.load("products.xml");
13     //如果有错误信息,则输出
14     document.write("错误信息="+xmldoc.parseError.reason+"<br/>");
15     document.write("错误的行号="+xmldoc.parseError.line+"<br/>");
16
17 //-->
18 </script>
19 </head>
20 </html>

以上代码写的时候都要注意编码一致为utf-8

时间: 2024-11-12 17:48:51

【php基础】XML,DTD实例的相关文章

XML DTD详解(转)

前情提要与本文内容介绍 前面的两篇XML相关博文: 第一篇是介绍格式正规的XML: 格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节 第二篇介绍DTD,引入有效的XML的概念(符合语法规范并符合DTD要求),并介绍DTD的三种使用方法:有效的XML: DTD(文档类型定义)介绍与三种使用方式 一个有效的XML文档必然是结构正规的,结构正规的XML文档不一定是有效的,即有效的是格式正规的一个子集. 本文详细介绍DTD,包括其对元素的定义,属性的定义,以及实体的定义. 元素的定义

XML DTD详解

一个有效的XML文档必然是结构正规的,结构正规的XML文档不一定是有效的,即有效的是格式正规的一个子集. 本文详细介绍DTD,包括其对元素的定义,属性的定义,以及实体的定义. 元素的定义 DTD中的修饰符号: 这部分符号可以联系正则表达式的符号来记忆. 属性的定义 属性类型——CDATA 比如: <!ATTLIST title name CDATA #REQUIRED> 定义了一个属性,是属于title元素的,属性名叫name,类型是字符串(包括数字和中文),并且是一个必须要有的属性. 属性类

XML(二)有效的XML: DTD(文档类型定义)介绍与三种使用方式

有效的XML: DTD(文档类型定义)介绍 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档: 其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档. DTD DTD,即文档类型定义——Document Type Definition. DTD用来描述XML文档的结构, 一个DTD文档包含: 元素(ELEMENT)的定义规则: 元素之间的关系规则: 属性(ATTLIST)的定义规则: 可使用的实体(ENTITY)或符号

JavaScripts学习日记——XML DTD Schema

今日关键词: XML DTD Schema 1.XML 1 XML的概述 1.1 什么是XML XML全称为Extensible Markup Language,意思是可扩展的标记语言.XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的. W3C在1998年2月发布1.0版本,2004年2月又发布1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有人用.同时,在2004年2月W3C又发布了1.0版本的第三版.我们要学习的还是1.0版本!!

XML DTD验证

XML DTD验证 一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 二.DTD的作用 1.有了DTD,每个XML可以携带一个自身格式的描述. 2.有了DTD,不同组织可以使用一个通用的DTD来交换数据. 3.应用程序中使用DTD校检从外部接受的XML数据是否有效. 三.DTD中包含的内容 1.元素的定义规则:在DTD

SAX解析XML文件实例代码

import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.s

XML Dtd Schema

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束. 整体比较: XML Schema符合XML语法结构. DOM.SAX等XML API很容易解析出XML Schema文档中的内容. XML Schema对名称空间支持得非常好. XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型. XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制.XML Schema不能像DTD一样定义实体,比DTD更复杂,但

Struts2 Struts.xml DTD 说明

转自:http://blog.csdn.net/cuixiuqin1954/article/details/4228741 关于Struts2中的核心配置文件struts.xml,就其DTD(Document Type Definition)文件进行一下说明 <?xml version="1.0" encoding="UTF-8"?> <!-- START SNIPPET: strutsDtd --> <!-- Struts confi

SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对比注解方式的优缺点)

接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文采用强制的CGLB代理方式 SecurityHandler这个通知类可以换成安全性检测.日志管理等等. <span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18

C#操作XML文件实例汇总

针对XML文件的操作是C#程序设计中非常常见的功能.本文即以实例展示了C#操作XML文件的几个常见的示例.具体如下: 1.返回节点下标 public static XmlDocument getDoc(String path)//加载xml文档 { XmlDocument doc = new XmlDocument(); doc.Load(path); return doc; } /// <summary> /// 返回找到的节点下标 /// </summary> /// <