DTD-总结

DTD(文档类型定义)

        每一个 XML 文件均可携带一个有关其自身格式的描述。

        可一致地使用某个标准的 DTD 来交换数据。

        struts.xml,hibernate.xml,ibatis.xml等apache组织下的用DTD描述限制xml文件

文档构建模块

        所有的 XML,HTML 文档均由以下简单的构建模块构成:

                元素 

                属性 

                实体 :专业字符

                PCDATA :被解析的字符数据(parsed character data)。

                CDATA         :不被解析的字符数据(character data)。像文本值一样,不会被解析<![CDATA["..."]]>。

DTD - 元素

        声明元素的语法:

                <!ELEMENT 元素名称 类别>        或        <!ELEMENT 元素名称 (元素内容)>

        <!ELEMENT note (to,from,heading,body)>        //带有子元素(序列)的元素<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>

        <!ELEMENT to      (#PCDATA)>        //只有 PCDATA 的元素

        <!ELEMENT from    (#PCDATA)>

        <!ELEMENT heading (#PCDATA)>

        <!ELEMENT body    (#PCDATA)>                

DTD - 属性

        声明属性使用下列语法:

                <!ATTLIST 元素名称 属性名称 属性类型 默认值>        

        DTD:

                <!ELEMENT square EMPTY>

                <!ATTLIST square width CDATA "0">

        合法的 XML:

                <square width="100" />

                //"square" 被定义为带有 CDATA 类型的 "width" 属性的空元素。如果宽度没有被设定,其默认值为0 。

DTD - 实体---(类似静态变量,可以直接用的固定值)

        声明实体的语法:

                <!ENTITY 实体名称 "实体的值">

        DTD :

                <!ENTITY writer "Bill Gates">

                <!ENTITY copyright "Copyright W3School.com.cn">

        XML 例子:

        <author>&writer;&copyright;</author>

        注释: 一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 (;)。

DTD例子:struts2的http://struts.apache.org/dtds/struts-2.0.dtd

        <!ELEMENT struts (package|include|bean|constant)*>        //声明可以出现*次子元素的元素

        <!ELEMENT bean (#PCDATA)>        //声明只有 PCDATA 的元素

        <!ATTLIST bean

            type CDATA #IMPLIED        //CDATA 值为字符数据 (character data)         #IMPLIED可选的

            name CDATA #IMPLIED

            class CDATA #REQUIRED

            scope CDATA #IMPLIED

            static CDATA #IMPLIED

            optional CDATA #IMPLIED

        >

DOCTYPE 声明

        内部的 DOCTYPE 声明

                <!DOCTYPE 根元素 [元素声明]>

        XML例子:

                <?xml version="1.0"?>

                <!DOCTYPE note [

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

                        <!ELEMENT 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>

        外部文档声明

                <!DOCTYPE 根元素 SYSTEM "文件名">        //SYSTEM        PUBLIC

        XML例子:

                <?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> 

        <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">

猜你喜欢

转载自luckywnj.iteye.com/blog/1722645
DTD