[XML学习笔记]004DTD的使用
DTD有三种内置、外置和内外结合
第一种内置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem[ <!ELEMENT poem (author,title,content)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> ]> <poem> <author>王维</author> <title>鹿柴</title> <content>空间不见人,但闻人语声</content> </poem> 第二种外置
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT poem (author,content)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem SYSTEM "2.dtd"> <poem> <author>王维</author> <title>鹿柴</title> <content>空间不见人,但闻人语声</content> </poem> 第三种,内外结合
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem SYSTEM "dtd_2.dtd"[ <!ELEMENT poem (author,content)> <!ELEMENT content (#PCDATA)> ]> <poem> <author>王维</author> <title>鹿柴</title> <content>空间不见人,但闻人语声</content> </poem> DTD的修饰符号: () 用来给元素分组 例如 (金庸|古龙|梁羽生),(王朔|余杰),毛毛 分成三组 | 在列出的元素中选择一个 (金庸|古龙|梁羽生) 三者必须出现其一 + 出现至少一次 人+ 至少出现一个人 * 出现0次或者多次 猫* ? 要么出现要么不出现 ,对象必须按照一定的顺序出现
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem[ <!ELEMENT poem (author+,title*,content?)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> ]> <poem> <author>王维</author> <author>王维</author> <title>鹿柴</title> </poem> 属性的定义:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE poem[ <!ELEMENT poem (author+,content?)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> <!ATTLIST title name CDATA #REQUIRED > ]> <poem> <author>王维</author> <title name="zhangsan">鹿柴</title> <content>空山不见人</content> </poem> 注意CDATA与CDATA节的区别 以及#PCDATA与CDATA的区别 ID属性的取值必须是唯一的。 IDREF指向其他已经定义的ID值。
关于普通实体与参数实体 1)普通实体实在dtd中定义,xml中使用,使用的时候格式为:&address 2)参数实体实在dtd中定义,dtd中使用,定义的时候使用%,使用的时候也需要使用%,%address 3)外部普通实体的定义方式是: <!ENTITY address SYSTEM "http://www.shengsiyaun.com/xml/xml"> 表示使用http://www.shengsiyaun.com/xml/xml网址的内容替换掉address ,而不是字符串“http://www.shengsiyaun.com/xml/xml” 4)外部参数实体: <!ENTITY % address SYSTEM "http://www.shengsiyaun.com/xml/xml">使用的时候: %address (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |