XML(二)

 前面简单介绍了如何定义一个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(二)

 

 在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:"黑体"

}

 

 

  

 

你可能感兴趣的:(xml)