XML中的DTD语法

Posted H.U.C-王子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XML中的DTD语法相关的知识,希望对你有一定的参考价值。

DTD(Document Type Definition),全称为文档类型定义。

XML元素定义

语法如下:

<!ELEMENT 元素名称 元素类型>        //定义元素的类型,但是只能是 ANY(表示任意类型)或EMPTY(空元素);

<!ELEMENT 元素名称 (元素内容)>    //定义元素的内容,一定要加上();

 

对于元素内容

----可以定义子元素的名称,比如:

<!ELEMENT 元素名称 (子元素1,子元素2,子元素3)> 表示3个子元素只能出现一次,并且按照此顺序出现;

<!ELEMENT 元素名称 (子元素1|子元素2|子元素3)> 表示3个子元素中只能出现一个;

我们还可以定义子元素的个数,比如:

(1)+:1次或多次;比如 (name+)表示此name元素只能出现1次或多次。

(2)?:0次或1次;比如(name?)表示此name元素只能出现0次或1次。

(3)*:0次或多次;比如(name*)表示此name元素任意出现几次。

(4)无:只能一次;比如(name)表示此name元素只能出现1次。

对于元素内容,

----也可以定义子元素内容的类型,比如#PCDATA,表示字符串;

 

XML属性定义

<!ATTLIST 标签名

    属性名1        属性类型        属性说明

    属性名2        属性类型        属性说明

>

属性类型可以是

(1)CDATA:最普通的字符串;

(2)枚举,即(值1|值2|值3),需要括号

(3)ID:属性值需要以字母或下划线开头;

属性说明可以是:

(1)#REQUIRED:必须设置;

(2)#IMPLED:可选值,即此属性可以设置,也可以不设置;

(3)#FIXED:固定值,通常语法为:#FIXED  "固定值"

(4)默认值;

XML实体定义

实体类似于一个可重用常量,或者说是ant中的classpath,可以被引用;

语法如下:

<!ENTITY 实体名称  "实体内容">

引用实体语法:
&实体名称;    注意:最后的“;”一定需要;

 

注意:引用实体必须在XML中引用;

实例代码:

<!DOCTYPE TreeRoot[
    <!ELEMENT TabDesc (TabNode*)>
    <!ATTLIST TabDesc
        desc CDATA #REQUIRED
        dutyType CDATA #REQUIRED>
    <!ELEMENT TabNode (Parameter*,ExtendParameter?)>
    <!ATTLIST TabNode
        id ID #REQUIRED
        desc CDATA #IMPLIED
        winName CDATA #IMPLIED
        dutyType CDATA #REQUIRED
        img CDATA #REQUIRED
        closeable CDATA #REQUIRED
        activate CDATA #REQUIRED
        position CDATA #REQUIRED
        extend CDATA #REQUIRED>
    <!ELEMENT Parameter (#PCDATA)>
    <!ATTLIST Parameter
        name CDATA #REQUIRED
        value CDATA #REQUIRED>
    <!ELEMENT ExtendParameter (#PCDATA)>
    <!ATTLIST ExtendParameter
        name CDATA #REQUIRED
        getListMethod CDATA #REQUIRED
        listMethodParameter CDATA #REQUIRED
        class CDATA #REQUIRED
        getSnMethod CDATA #REQUIRED
        getDescMethod CDATA #REQUIRED>
]>

 

根据XML自动生成DTD

因为一般我们写的XML基本都是没有DTD的,如果要自己写DTD,又很麻烦,因此我们可以通过工具来自动生成:trang

功能:能够完成如下转换:

(1)XML ---> DTD

(2)XML --->XSchema

(3)DTD--->XSchema

 

使用方法:

java -jar trang.jar -I xml -O dtd input.xml output.dtd 即可;

-I xml 表示输入为xml;

-O dtd表示输出为dtd文件;

input.xml表示输入文件;

output.dtd表示输出文件;

以上是关于XML中的DTD语法的主要内容,如果未能解决你的问题,请参考以下文章

XML约束

xml约束

XML文档类型定义---DTD文档

XML大作业

未检测到文档的语法约束(DTD 或 XML 模式) (Android)

XML Dtd Schema