XML之DTD约束

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>

猜你喜欢

转载自blog.csdn.net/mmake1994/article/details/80985765