Webservice(基础)——DTD

来源:互联网 发布:手机刷软件 编辑:程序博客网 时间:2024/06/05 11:31

  一直觉得Webservice和DTD根本是八竿子打不着的关系,但是最近仔细想想,DTD,Schema都是Webservice学习必不可少的学习内容,所以重新梳理一下DTD和Schema这块知识!

一、DTD基本含义

  文档类型定义(Document Type Definition)是一套关于标记符的语法规则。它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,是文档的验证机制。文档类型定义是一种保证标准通用标记语言、可扩展标记语言文档格式正确的有效方法,可通过比较文档和文档类型定义文件来看文档是否符合规范,元素和标签使用是否正确

  自己一句话理解:用来限定和检测XML文件是否符合规范的一种语法规则!

二、实例驱动

    通过两个实例,来理解和实践一下DTD规范!


  实例1、classroom

  

  classroom.dtd


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

  简要说明:顶级标签只能是classroom,其中可以包含claname,grade,students标签,而students标签下只能包含student标签,可以是多个student标签;student标签又有id属性,同时包括了stuname和age标签


  classroom.xml


<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE classroom SYSTEM "classroom.dtd"><classroom id="c1"><claname>2010级</claname><grade>历史学</grade><students><student id="stu1"><stuname>leilei</stuname><age>23</age></student><student id="stu2"><stuname>nane</stuname><age>23</age></student></students></classroom>

  通过eclipse右键验证,无误说明正确


  实例2、persons


  persons.dtd


<?xml version="1.0" encoding="UTF-8"?><!ELEMENT persons (person+)><!ELEMENT person (sex,name,age,messages)><!ATTLIST person id ID #REQUIRED><!ELEMENT sex (#PCDATA)><!ELEMENT nam#PCDATA)><!ELEMENT age (#PCDATA)><!ELEMENT messages (message+)><!ELEMENT message (title,content)><!ELEMENT title (#PCDATA)><!ELEMENT content (#PCDATA)>


  persons.xml


<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE persons SYSTEM "persons.dtd"><persons><person id="p1"><sex>男</sex><name>leilei</name><age>23</age><messages><message><title>您好</title><content>我是肥罗</content></message><message><title>hello</title><content>I am feiluo</content></message></messages></person></persons>

  

三)、小结

  DTD作为一种对xml文件的限定规范,可以实现我们想要对xml的限定,但是由于其限定的标签或者说内容不尽详细,所以渐渐的被一种新的限定规范schema所替代,故我们下篇博客接着来说schema的相关知识!




0 0
原创粉丝点击