xml dtd

场景:XML资料引用DTD

XML文件引用DTD

DTD用来规范XML的语法正确性。引用DTD方式有2种:内部DTD和外部DTD

  • 内部DTD文档:是指直接在XML文件中书写DTD的定义,其约束范围也仅限于当前XML文件。

       

<?xml version=”1.0” encoding=”gb2312” standalone=”yes”?>
<!DOCTYPE root [
    <!ELEMENT root (#PCDATA)>
]>

 

  • 外部DTD文档:是指DTD文件放在本XML文档的外部,作为一个单独的文件来保存的。

使用外部DTD时,要在DOCTYPE中使用关键字SYSTEM或者PUBLIC。
SYSTEM 关键字表示文档使用的是私有的DTD文件,就好像是公司的规章制度,只是公司内部人员遵守。
PUBLIC 关键字用于公共的DTD,就好像是多家公司联合出台的规章制度,每个公司都要遵守。

<!DOCTYPE  根元素名 SYSTEM  "外部DTD文件的URL">
<!DOCTYPE  根元素名 PUBLIC  "公共DTD的名称"  "公共DTD文件的URL">

 

例如struts2引用的DTD:

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

  
"公共DTD的名称"要遵循一些约定:
如果一项DTD是ISO标准,他的名称要以字符串"ISO"开始;
如果是一个非ISO的标准组织批准的DTD,它的名称以加号(+)开始;
如果不是标准组织批准的DTD,它的名称以连字符(-)开始。

这些开始字符或字符串后接双斜杠(//)和DTD所有者的名字;之后是一个双斜杠和DTD描述的文档类型;接着又是一个双斜杠后接ISO 639 语言标识符,如EN表示英语,ZH表示中文。