标签:style blog http color java 使用 io 文件
前面简单介绍了如何定义一个XML.想想如果没有一个规范来对XML文档进行一个格式等的限制,那么一个XML文档可能只能被定义这个XML文档的人读懂.DTD就是一种对XML文档约束的模式语言.
DTD介绍:
DTD,Document Type Definition.是文本格式文件,后缀名会.dtd.一个DTD文件中可以包含元素与元素之间的关系的定义,元素的属性定义,以及实体和符号的定义.通过比较DTD文件与XML文档,就可以判断XML文档是否符合某种约束规范,以及其中的元素和标签使用是否正确.
DTD的定义:
.dtd文件是一个非常简单的文件,<!ELEMENT 元素名称 使用规则>为其通用的语法规则.它定义每一个元素.例如:<!ELEMENT 书架(书名,作者,售价)>中"书架"为元素名称,"(书名,作者,售价)"为使用规则.使用规则定义了元素中包含的组成成分,以及每种组成成分出现的次数,次序.例如下面这个DTD文件:
1 <!ELEMENT 书架 (书+)> 2 <!ELEMENT 书(书名,作者,售价)> 3 <!ELEMENT 书名(#PCDATA)> 4 <!ELEMENT 售价(#PCDATA)> 5 <!ELEMENT 作者(#PCDATA)>
#PCDATA表示元素中嵌套的内容为纯文本字符串,(书名,作者,售价)用户表示元素要嵌套的子元素,并且这些子元素要按顺序依次出现.(书+)中+表示他修饰的成分必须出现一次或者多次.
外部引入DTD文件:
DOCTYPE的声明语句要紧跟在XML文档声明语句之后.有两种格式:
1.<!DOCTYPE 文档类型名称 SYSTEM "DTD文件的URL">
2.<!DOCTYPE 文档类型名称 PUBLIC "DTD名称" "DTD文件的URL">
文档类型名称由XML文档的编写者自己定义.一般是XML文档的根元素名称.关键字SYSTEM表明XML文档所遵循的是一个本地的DTD文件.PUBLIC表明XML文档遵循的是一个权威机构制定的DTD文件.
例子演示
book.xml文件如下:
1 <?xml version="1.0" encoding="gb2312" ?> 2 <!-- 3 导入css样式, 4 --> 5 <?xml-stylesheet type="text/css" href="book.css"?> 6 7 <!-- 8 在XML文件中导入外部的DTD文件.DTD(Document Type Definition) 9 --> 10 <!DOCTYPE book SYSTEM "book.dtd"> 11 12 <!-- 13 在XML文件中直接定义DTD,如下 14 15 <!DOCTYPE 书架[ 16 <!ELEMENT 书架 (书+)> 17 <!ELEMENT 书(书名,作者,售价)> 18 <!ELEMENT 书名(#PCDATA)> 19 <!ELEMENT 作者(#PCDATA)> 20 <!ELEMENT 售价(#PCDATA)> 21 ]> 22 --> 23 24 <书架> 25 <书> 26 <书名>基于J2EE的AJAX宝典</书名> 27 <作者>李刚</作者> 28 <售价>58元</售价> 29 </书> 30 <书> 31 <书名>JAVA_WEB开发核心内幕</书名> 32 <作者>李大刚</作者> 33 <售价>60元</售价> 34 </书> 35 <书> 36 <书名>锋利的JQUERY</书名> 37 <作者>李小刚</作者> 38 <售价>70元</售价> 39 </书> 40 </书架>
而在与book.xml文件的同一目录中定义book.dtd,如下:
1 <!ELEMENT 书架 (书+)> 2 <!ELEMENT 书(书名,作者,售价)> 3 <!ELEMENT 书名(#PCDATA)> 4 <!ELEMENT 售价(#PCDATA)> 5 <!ELEMENT 作者(#PCDATA)>
之后在浏览器中可以看到效果如下:
在XML文档内部直接嵌入DTD
可以在XML文档里直接嵌入DTD.格式如下:<!DOCTYPE 根元素名[DTD定义语句]>.在上面的代码中也有演示.
在XML文档内部引入CSS
使用<?xml-stylesheet type="text/css" href="" ?>可以将指定的CSS样式导入.由于CSS不支持中文命名,所以在用css进行美化时,要将XML文档中的元素命名为英文.
例如person.xml如下:
1 <?xml version="1.0" encoding="gb2312" ?> 2 <?xml-stylesheet type="text/css" href="books.css" ?> 3 4 <person> 5 <name>张三</name> 6 </person>
person.css如下:
<?xml version="1.0" encoding="gb2312"?> name{ color:red; font-size:20px; font-family:"黑体" }
标签:style blog http color java 使用 io 文件
原文地址:http://www.cnblogs.com/zhouxuanyu/p/3921922.html