XML第四讲:DTD元素、属性深度详解
2013-03-12 22:28
274 查看
上一讲我们讲解了XML中DTD的一些基本内容,现在我们继续上一讲的内容。
1. 元素的定义_1
![](http://img.my.csdn.net/uploads/201303/12/1363098269_3363.png)
在其中ANY属性用的非常少,因为如果写上ANY,那DTD就没有起到约束的作用了。
2. 元素的定义_2
![](http://img.my.csdn.net/uploads/201303/12/1363098462_3110.png)
3. 元素的定义_3
![](http://img.my.csdn.net/uploads/201303/13/1363144266_4403.png)
4. 元素的定义_4
![](http://img.my.csdn.net/uploads/201303/13/1363144413_7001.png)
第二个写法是错误的,因为PCDATA不允许嵌套子元素。
5.
元素的定义_5
![](http://img.my.csdn.net/uploads/201303/13/1363144516_5309.png)
+
与 * 符号与正则表达式有一些关系,这个我们我们要先明白。
6.下面我们具体讲一下XML中的修饰符号的定义【重要】
![](http://img.my.csdn.net/uploads/201303/13/1363144736_7183.png)
<!ELEMENT poem ((古龙|金庸|梁羽生), (王朔|余杰), 毛毛)>
表示:poem 里面的三组信息必须是按照以上顺序进行的。第一个元素必须是 古龙|金庸|梁羽生 中的一个,它们之间是互斥的,出来一个另外一个就不能再出现了,同样第二元素可以是 王朔|余杰中的一个,第三元素必须是毛毛
写一个合法的例子如下:
<poem>
<古龙></古龙>
<余杰></余杰>
<毛毛></毛毛>
</poem>
7. 属性的定义
![](http://img.my.csdn.net/uploads/201303/13/1363155072_8992.png)
属性有一个特点,元素可以单独出现,而属性不能单独出现,属性必须依附于一个元素,表示谁的属性。所以定义属性的时候属性的名字,属性的类型,属性有什么特点(是必须要有的,还是可有可无的),这个属性属于哪一元素,这些都要告诉DTD,DTD才能去校验XML文档。
(1) 属性特点:
#REQUIRED 属性必须要出现
#IMPLIED 属性可以出现,也可以不出现,可有可无的
#FIXED value 属性是否有确定的值,
Default value 属性是否有默认的值
(2) 属性定义的例子
(3)属性类型---CDATA
![](http://img.my.csdn.net/uploads/201303/13/1363160033_6504.png)
[注意]
CDATA 与 CDATA节的区别:CDATA是用来定义属性的,表示是字符串类型,CDATA节表示里面的数据不被XML所解析
CDATA 与 #PCDATA 的区别:#PCDATA 是用来定义元素的。
(4) 属性类型---NMTOKEN/NMTOKENS
![](http://img.my.csdn.net/uploads/201303/13/1363160104_3954.png)
(5) 属性类型 ---ID (比较常用的)
这个表示学号,身份证号是比较常用的
![](http://img.my.csdn.net/uploads/201303/13/1363160153_8507.png)
属性类型----IDREF/IDREFS
![](http://img.my.csdn.net/uploads/201303/13/1363160341_6057.png)
属性类型 -- Enumerated(类似枚举)
![](http://img.my.csdn.net/uploads/201303/14/1363255809_7304.png)
8. 属性的特点 --- #REQUIRED
表示:属性的值是必须要有的
![](http://img.my.csdn.net/uploads/201303/14/1363255882_2938.png)
属性的特点 ----#IMPLIED
表示:这个属性的值是可有可无的
![](http://img.my.csdn.net/uploads/201303/14/1363255937_9299.png)
属性的特点 ---#FIXED value (用的比较少)
![](http://img.my.csdn.net/uploads/201303/14/1363256025_4372.png)
属性的特点 --- Default value
表示:如果不提供属性的值,则为默认的值,如果提供了属性的值,则使用提供的这个值,同时覆盖了这个默认值。这个跟以前学习的注解是类似的。
1. 元素的定义_1
![](http://img.my.csdn.net/uploads/201303/12/1363098269_3363.png)
在其中ANY属性用的非常少,因为如果写上ANY,那DTD就没有起到约束的作用了。
2. 元素的定义_2
![](http://img.my.csdn.net/uploads/201303/12/1363098462_3110.png)
3. 元素的定义_3
![](http://img.my.csdn.net/uploads/201303/13/1363144266_4403.png)
4. 元素的定义_4
![](http://img.my.csdn.net/uploads/201303/13/1363144413_7001.png)
第二个写法是错误的,因为PCDATA不允许嵌套子元素。
5.
元素的定义_5
![](http://img.my.csdn.net/uploads/201303/13/1363144516_5309.png)
+
与 * 符号与正则表达式有一些关系,这个我们我们要先明白。
6.下面我们具体讲一下XML中的修饰符号的定义【重要】
![](http://img.my.csdn.net/uploads/201303/13/1363144736_7183.png)
<!ELEMENT poem ((古龙|金庸|梁羽生), (王朔|余杰), 毛毛)>
表示:poem 里面的三组信息必须是按照以上顺序进行的。第一个元素必须是 古龙|金庸|梁羽生 中的一个,它们之间是互斥的,出来一个另外一个就不能再出现了,同样第二元素可以是 王朔|余杰中的一个,第三元素必须是毛毛
写一个合法的例子如下:
<poem>
<古龙></古龙>
<余杰></余杰>
<毛毛></毛毛>
</poem>
7. 属性的定义
![](http://img.my.csdn.net/uploads/201303/13/1363155072_8992.png)
属性有一个特点,元素可以单独出现,而属性不能单独出现,属性必须依附于一个元素,表示谁的属性。所以定义属性的时候属性的名字,属性的类型,属性有什么特点(是必须要有的,还是可有可无的),这个属性属于哪一元素,这些都要告诉DTD,DTD才能去校验XML文档。
(1) 属性特点:
#REQUIRED 属性必须要出现
#IMPLIED 属性可以出现,也可以不出现,可有可无的
#FIXED value 属性是否有确定的值,
Default value 属性是否有默认的值
(2) 属性定义的例子
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem [ <!ELEMENT poem (author+, title*, content?)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> <!ATTLIST title name CDATA #REQUIRED> ]> <poem> <author>王维</author> <author>李白</author> <title name = "zhangsan">鹿柴</title> <content>空山不见人,但闻人语声。 返景入深林,复照青苔上。</content> </poem>
(3)属性类型---CDATA
![](http://img.my.csdn.net/uploads/201303/13/1363160033_6504.png)
[注意]
CDATA 与 CDATA节的区别:CDATA是用来定义属性的,表示是字符串类型,CDATA节表示里面的数据不被XML所解析
CDATA 与 #PCDATA 的区别:#PCDATA 是用来定义元素的。
(4) 属性类型---NMTOKEN/NMTOKENS
![](http://img.my.csdn.net/uploads/201303/13/1363160104_3954.png)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem [ <!ELEMENT poem (author+, title*, content?)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> <!ATTLIST title name CDATA #REQUIRED> <!ATTLIST content name NMTOKEN #REQUIRED> ]> <poem> <author>王维</author> <author>李白</author> <title name = "zhangsan">鹿柴</title> <content name = "lisi">空山不见人,但闻人语声。 返景入深林,复照青苔上。</content> </poem>
(5) 属性类型 ---ID (比较常用的)
这个表示学号,身份证号是比较常用的
![](http://img.my.csdn.net/uploads/201303/13/1363160153_8507.png)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem [ <!ELEMENT poem (author+, title*, content?)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> <!ATTLIST author name ID #REQUIRED> <!ATTLIST title name CDATA #REQUIRED> <!ATTLIST content name NMTOKEN #REQUIRED> ]> <poem> <author name="wangwu">王维</author> <author name="xiaoliu">李白</author> <title name = "zhangsan">鹿柴</title> <content name = "lisi">空山不见人,但闻人语声。 返景入深林,复照青苔上。</content> </poem>
属性类型----IDREF/IDREFS
![](http://img.my.csdn.net/uploads/201303/13/1363160341_6057.png)
属性类型 -- Enumerated(类似枚举)
![](http://img.my.csdn.net/uploads/201303/14/1363255809_7304.png)
8. 属性的特点 --- #REQUIRED
表示:属性的值是必须要有的
![](http://img.my.csdn.net/uploads/201303/14/1363255882_2938.png)
属性的特点 ----#IMPLIED
表示:这个属性的值是可有可无的
![](http://img.my.csdn.net/uploads/201303/14/1363255937_9299.png)
属性的特点 ---#FIXED value (用的比较少)
![](http://img.my.csdn.net/uploads/201303/14/1363256025_4372.png)
属性的特点 --- Default value
表示:如果不提供属性的值,则为默认的值,如果提供了属性的值,则使用提供的这个值,同时覆盖了这个默认值。这个跟以前学习的注解是类似的。
![](http://img.my.csdn.net/uploads/201303/14/1363256047_4542.png)
相关文章推荐
- XML第二讲:格式正规的XML文档、XML文档的元素、属性、实体深度详解
- [XML学习笔记]002-格式正规的XML文档、XML文档的元素、属性、实体深度详解
- XML约束之DTD约束&DTD对元素属性的约束规则
- XML----DTD-引用,验证,元素属性
- tomcat配置文件serve.xml的元素及属性详解
- XML第十讲:XML中Schema深入详解、元素、属性、关系
- XML:DTD、DTD定义元素、DTD定义属性、DTD定义实体
- frameset元素属性详解
- hibernate.hbm.xml 属性详解
- tomcat中的server.xml元素详解
- Android_TextView属性XML详解
- tomcate 的 server.xml元素详解
- web.xml配置文件标签元素详解
- Maven2 Pom.xml元素详解
- [XML]学习笔记(五)——XML Schema简单类型元素与属性
- 自定义控件的自定义的属性attrs.xml下的declare-styleable中format详解
- 【AndroidManifest.xml详解】Manifest属性之sharedUserId、sharedUserLabel
- 最全web.xml配置文件元素详解
- [J2EE]追忆系列-Struts的配置文件struts-config.xml中action元素的parameter属性
- xml的约束DTD详解