WebService(2)-XML系列之DTD

来源:互联网 发布:教师网络学平台登录 编辑:程序博客网 时间:2024/04/28 12:08

源码下载:链接:http://pan.baidu.com/s/1jGzSw5o 密码: ftgw

一.定义

文档类型定义 DTD(Document Type Definition),专门用于检测XML是否符合语法规则。

二.实例

文档类型声明的两种方式:

1.内部定义

persons.xml文件

<?xml version="1.0" encoding="UTF-8"?><!-- <!DOCTYPE 根元素 [元素声明]> --><!DOCTYPE persons[<!--常用的控制符:?:0-1次  ;  *:0-N次;  +:1-N次; 默认:1次  --><!ELEMENT persons (person+)><!ELEMENT person (name , password, age)><!-- #PCDATA 是XML解析器解析的文本数据使用的一个术语 --><!-- CDATA出现在属性声明中 --><!ELEMENT name (#PCDATA)><!ELEMENT password (#PCDATA)><!ELEMENT age (#PCDATA)><!-- #REQUIRED属性值是必需的 --><!-- #IMPLIED属性不是必需的 --><!-- #FIXED value属性值是固定的 --><!-- ID值为唯一的 id --><!ATTLIST person id ID #REQUIRED><!-- CDATA值为字符数据 (character data) --><!ATTLIST person email CDATA #REQUIRED>]><persons><person id="p1070541038" email="452274335@qq.com"><name>赵栗婧</name><password>000000</password><age>26</age><!-- <id>p1070541038</id> --><!-- 错误写法 --><!-- <email>452274335@qq.com</email> --></person><person id="p2070541038" email="552274335@qq.com"><name>赵栗婧</name><password>000000</password><age>26</age></person></persons>

2.外部定义

classroom.dtd 文件

<?xml version="1.0" encoding="UTF-8"?><!ELEMENT classroom (name,grade,students)><!ATTLIST classroom id ID #REQUIRED><!ELEMENT name (#PCDATA)><!ELEMENT grade (#PCDATA)><!ELEMENT students (student+)><!ELEMENT student (id,name,age)><!ELEMENT id (#PCDATA)><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)>

classroom.xml文件

<?xml version="1.0" encoding="UTF-8"?><!-- 外部文档声明 --><!-- 假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中: --><!DOCTYPE classroom  SYSTEM "classroom.dtd"><classroom id="classroomid1"><name>classname1</name><grade>grade1</grade><students><student><id>studentid1</id><name>studentname1</name><age>studentage1</age></student><student><id>studentid2</id><name>studentname2</name><age>studentage2</age></student></students></classroom>

三.点评

1.优点:

简单明了,容易编写。

可检测XML是否有效

2.缺点:

1)与XML语法不同
2)提供有限的数据类型,用户无法自定义类型

3)不支持域名机制


1 0
原创粉丝点击