XML---DTD

来源:互联网 发布:淘宝待配货是什么意思 编辑:程序博客网 时间:2024/05/16 04:50

 DTD的作用

XML文档是一种元标记语言,即一种定义标记语言的语言。在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(DocumentType Definitions,DTD)来定义。DTD文档是这些新的标记语言的法律性文档。如果XML文档的语法符,DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档。合法的XML文档在实际应用中的地位很重要,因为只有合法的XML文档才能被应用软件有效地处理。

DTD定义了文档的逻辑结构,规定了文档中所使用的元素、实体、元素的属性、元素与实体之间的关系。其作用主要表现在以下几个方面。

(1) 使用DTD可以提供一种统一的格式。XML的可扩展性为文档的作者提供了很高的灵活性,可有时候需要的是统一,要求某一类文档具有相同的结构。

(2) 使用DTD可以保证数据交流和共享的顺利进行。

(3) DTD使用户能够不依赖具体的数据就知道文档的逻辑结构。在没有XML文档的时候,也可以根据DTD为XML文档编写样式单,编写处理程序,这样可以有效地提高工作效率。

(4) 使用DTD可以验证数据的有效性。DTD对文档的逻辑结构进行了约束,这种约束可以比较宽松,也可以十分严格。可以根据DTD检查数据,以验证其是否符合规定和要求,这可以保证数据的正确和有效。


“#PCDATA”(Parsed Character Data)表示标记的内容是可解析文本,所谓的可解析文本就是非标记文本。用“#PCDATA”规范了的元素不能再包含子元素。例如How do you do是不包含标记的文本,而How do you <list>do</list>就不是可解析的数据类型,因为其中包含有标记<list>和</list>。另外DTD文档中不同元素定义的次序没有先后关系,但文档的语法对大小写敏感。

“#PCDATA”的声明格式:

 <!ELEMENTElement_Name (#PCDATA )>


在DTD中,属性的声明格式:

 <!ATTLIST Element_name Attribute_name TYPEDefault_value>

 其中,<!ATTLIST>为属性声明的关键字,Element_name为元素名,Attribute_name为属性名,TYPE是属性类型,Default_value为没有设定属性值时的默认值。


<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE bookinfo[   <!--     <!ELEMENT bookinfo ((author+,title)|(title,author+),publish) ><!--+(表示一个或多个) (a,b)|(b,a)表示a和b的位置任意 -->     <!ELEMENT bookinfo ((author|title)*,publish) >*<表示“有多个”> ?<表示0个或者多个>      <!ELEMENT bookinfo ANY >   -->    <!ELEMENT bookinfo (title,author+,publish,price)>    <!ELEMENT title (#PCDATA) >    <!ELEMENT publish (publisher,ISBN,pubdate)>    <!ELEMENT price (#PCDATA)>       <!ATTLIST author id ID #REQUIRED >    <!ATTLIST publish aa (文艺|自然科学) "文艺"> ]><bookinfo>     <title>计算机导论</title>     <author id="A001">丁跃潮</author>     <author id="A002">张三</author>     <publish aa="自然科学">       <publisher>高等教育出版社</publisher>       <ISBN>7-04-014768-8</ISBN>  <pubdate>2004.6</pubdate>   </publish>   <price>19.7</price>   </bookinfo>


0 0
原创粉丝点击