码迷,mamicode.com
首页 > 其他好文 > 详细

DTD

时间:2019-06-03 22:23:42      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:rac   gif   接收   完整   data   程序   com   标记   解析   

1.DTD:
    (Document Type Definition文档类型定义)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则,可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。既可被成行地声明于XML文档中,也可作为一个外部引用
    
2.内部的DOCTYPE声明:如果DTD被包含在XML源文件中,它应当通过下面的语法包装在一个DOCTYPE声明中
    <!DOCTYPE 根元素 [元素声明]>
   

	//带有DTD的XML文档实例
	<?xml version="1.0"?>
	<!DOCTYPE note [				    //定义此文档是note类型的文档
		<!ELEMENT note (to,from,heading,body)>	    //定义note元素有四个元素to from heading body
		<!ELEMENT to      (#PCDATA)>		    //定义to元素为 "#PCDATA" 类型
		<!ELEMENT from    (#PCDATA)>
		<!ELEMENT heading (#PCDATA)>
		<!ELEMENT body    (#PCDATA)>
	]>
	<note>
		<to>George</to>
		<from>John</from>
		<heading>Reminder</heading>
		<body>Don‘t forget the meeting!</body>
	</note>

 
3.外部文档声明:DTD位于XML源文件的外部,那么它应通过下面的语法被封装在一个DOCTYPE定义中
    <!DOCTYPE 根元素 SYSTEM "文件名">
    

	//这个XML文档和上面的XML文档相同,但拥有一个外部的DTD
	<?xml version="1.0"?>
	<!DOCTYPE note SYSTEM "note.dtd">
	<note>
		<to>George</to>
		<from>John</from>
		<heading>Reminder</heading>
		<body>Don‘t forget the meeting!</body>
	</note>
	
	//这是包含DTD的 "note.dtd" 文件:

	<!ELEMENT note (to,from,heading,body)>
	<!ELEMENT to (#PCDATA)>
	<!ELEMENT from (#PCDATA)>
	<!ELEMENT heading (#PCDATA)>
	<!ELEMENT body (#PCDATA)>

   
4.DTD的作用:
    4.1通过DTD,你的每一个XML文件均可携带一个有关其自身格式的描述
    4.2通过DTD,独立的团体可一致地使用某个标准的DTD来交换数据
    4.3应用程序也可使用某个标准的DTD来验证从外部接收到的数据
    
5.DTD-XML构建模块
    所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:
        元素:HTML的"body"和"table",xml的"note"和"message"。空的HTML元素有"hr"、"br"和"img"
        属性:提供有关元素的额外信息,属性总是以名/值的形式成对出现。如:<img src="computer.gif" />
        实体:用来定义普通文本的变量。如:"&nbsp;" "&lt;" "&gt;" "&amp;" "&quot;" "&apos;"
        PCDATA:被解析的字符数据(parsed character data),这些文本将被解析器检查实体以及标记。
        CDATA:字符数据(parsed character data),不会被解析器解析的文本

6.DTD-元素
    在DTD中,xml元素通过元素声明来进行声明,语法格式如下:

    <!ELEMENT 元素名称 类别>
    //或者
    <!ELEMENT 元素名称 (内容)>
    //空元素
    <!ELEMENT 元素名称 EMPTY>
    //如:
    <!ELEMENT br EMPTY>
    //xml例子:
    <br />
    //只有PCDATA的元素
    <!ELEMENT 元素名称 (PCDATA)>
    //例子
    <!ELEMENT from (PCDATA)>
    //带有任何内容的元素,通过类别关键词ANY声明的元素,可包含任何可解析数据的组合
    <!ELEMENT 元素名称 ANY>
    //例子
    <!ELEMENT note ANY>
    //带有子元素(序列)的元素
    <!ELEMENT 元素名称    (子元素1,子元素2,子元素3,...)>
    //例子
    <!ELEMENT note (to,from,heading,body)>
    //注意:当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。
    //在一个完整的声明中,子元素也必须被声明,子元素也可以拥有子元素
    //声明只出现一次的元素(出现一次而且必须出现一次)
    <!ELEMENT 元素名称 (子元素)>
    //声明最少出现一次的元素
    <!ELEMENT 元素名称 (子元素+)>
    //声明出现零次或多次的元素
    <!ELEMENT 元素名称 (子元素*)>
    //声明出现零次或一次的元素
    <!ELEMENT 元素名称 (子元素?)>
    //声明"|"的内容
    <!ELEMENT note (to,from,heading,(body|message))>
    //混合型声明:"note" 元素可包含出现零次或多次的PCDATA、"to"、"from"、"header" 或者 "message"
    <!ELEMENT note (#PCDATA|to|from|header|message)*>

 
7.DTD-属性:
    <!ATTLIST 元素 属性 属性类型 默认值>

    //DTD实例:
    <!ATTLIST payment type CDATA "check">
    //xml实例:
    <payment typ="check" />
  

    属性类型的选项:
 技术图片

 
8.
    
   

DTD

标签:rac   gif   接收   完整   data   程序   com   标记   解析   

原文地址:https://www.cnblogs.com/kuai-man/p/10970129.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!