欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

XML之DTD约束

程序员文章站 2022-05-30 13:13:32
...

XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义) 

DTD约束

     文档声明

            1.  内部DTD   (在XML文档内部嵌入DTD,只对当前XML有效

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!DOCTYPE web-app [
	...//具体语法
]>
<web-app>
</web-app>

            2.  外部DTD-本地DTD   (DTD文档在本地系统上,公司内部自己项目使用

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
<web-app>
</web-app>

            3.  外部DTD-公共DTD   (DTD文档在网络上,一般都有框架提供

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE web-app PUBLIC "//UNKNOWN/" "unknown.dtd">
<web-app>
</web-app>

      元素声明

定义元素语法:<!ELEMENT 元素名  元素描述>
         元素:自定义
         元素描述包括:符号和数据类型
                  常见符号: ?  *  +  ()  | ,
                  常见类型: #PCDATA 表示内容是文本,不能是子标签        
符号 符号类型 描述 示例
问号 b表示该对象可以出现,但只能出现一次 (篮球?)
* 星号 b表示该对象可以出现,可以出现任意次,也可以是零次 (运动*)
+ 加号 b表示该对象可以出现,最少出现一次,也可以出现多次 (成员+)
() 括号 b表示用来给元素分组

(足球|羽毛球|乒乓球),

(铅球|篮球),网球

| 竖条 b表示在列出的对象中选择一个 (乒乓球|篮球)
, 逗号 b表示对象必须按指定的顺序出现 (乒乓球,篮球,羽毛球)
      属性声明
        语法: <!ATTLIST 元素名称 属性名称 属性类型 属性的约束>
          属性类型:CDATA: 字符串          如:<!ATTLIST  birthday  ATT  CDATA  #REQUIRED>
            枚举 : 表示只能在一定的范围内出现值,但是只能每次出现其中的一个 。如<!ATTLIST  age  ATT2  (AA|BB|CC)   #REQUIRED>
            ID: 值只能是字母或者下划线开头  <!ATTLIST name  ATT3  ID    #REQUIRED>
      属性的约束:   #REQUIRED:属性必须存在
             #IMPLIED:属性可有可无
                                    #FIXED: 表示一个固定值   <!ATTLIST  sex ATT4  CDATA  #FIXED  "ABC">
             直接值:不写属性,使用直接值,写了属性,使用设置那个值   <!ATTLIST school ATT5 CDATA "WWW">

约束模板(加入后,编写xml文件便有了约束,有了提示)

<?xml version="1.0" encoding="UTF-8"?>
<!--
	模拟servlet2.3规范,如果开发人员需要在xml使用当前DTD约束,必须包括DOCTYPE。
	格式如下:
	<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
-->
<!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
<!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT jsp-file (#PCDATA)>

<!ELEMENT welcome-file-list (welcome-file+)>
<!ELEMENT welcome-file (#PCDATA)>

<!ATTLIST web-app version CDATA #IMPLIED>