XML之DTD(1)

前端之家收集整理的这篇文章主要介绍了XML之DTD(1)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

过马路我们都知道要走人行横道,开车要靠右行驶......这些都是我们熟知的交通法则。那么在XML中也有一套法则——DTD,让我们来认识一下它吧。

定义与用途

DTD定义XML文件的结构;为XML文件提供语法与规则;内容 既可以定义在XML文件中,也可以定义在XML文件之外;使用XML进行数据交换的行业和组织可定义自己的DTD;DTD对于XML是可选的内容

为什么要使用DTD?为了正确交换数据,XML文件需要确定的结构。

XML内置DTD内容

<?xml version="1.0" encoding="utf-8"?>
<DOCTYPE 书籍列表[
     <!ELEMENT 书籍列表(计算机书籍)*>
     <!ELEMENT 计算机书籍(书名,价格,简要介绍)>
     <!ELEMENT 书名(#PCDATA)>
     <!ELEMENT 价格(#PCDATA)>
     <!ELEMENT 简要介绍(#PCDATA)>
    ]>
<书籍列表>
     <计算机书籍>
           <书名>XML的今生今世</书名>
           <价格>66.66</价格>
           <简要介绍>
            该书详细描写XML的从出生到衰老的整个过程
           </简要介绍>
     </计算机书籍>
</书籍列表>
外部DTD:

DTD文件book.dtd:

<?xml version="1.0" encoding="utf-8"?>
<!ELEMENT 书籍列表(计算机书籍)*>
<!ELEMENT 计算机书籍(书名,简要介绍)>
<!ELEMENT 书名(#PCDATA)>
<!ELEMENT 价格(#PCDATA)>
<!ELEMENT 简要介绍(#PCDATA)>
使用外部DTD文件的XML文件
<?xml version="1.0" encoding="utf-8">
<!DOCTYPE 书籍列表 SYSTEM "book.dtd">
每个XML文档单独定义的DTD推广位一个系统内共享的公用DTD,关键字SYSTEM用于引用一个作者或组织所编写的众多XML文档中通用的DTD。另一种外部DTD,一个由权威机构制定的,提供给特定行业或公众使用的DTD。关键字是PUBLIC。
结构
所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:元素、属性、实体、PCDATA、CDATA。

PCDATA的意思是被解析的字符数据(Parsed character data),是会被解析器解析的文本。这些文本将被解析器检查实体以及标记

CDATA的意思当然就是字符数据(character data),是不会被解析器解析的文本。在这些文本中的标签不会被当做标记来对待,其中的实体也不会被展开。

定义元素

在一个DTD中,元素通过元素声明来进行声明

声明一个元素:<!ELEMENT 元素名称 类别>或者<!ELEMENT 元素名称(元素内容)>

声明空元素:<ELEMENT 元素名称 EMPTY>

声明只有PCDATA的元素:<!ELEMENT 元素名称 (#PCDATA)>

声明带有任何内容的元素:<!ELEMENT 元素名称 ANY>

声明带有子元素(序列)的元素:<!ELEMENT 元素名称 (子元素名称1,子元素名称2,......)>,当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。

声明只出现一次的元素:<!ELEMENT 元素名称 (子元素名称)>

声明最少出现一次的元素:<!ELEMENT 元素名称 (子元素名称+)>

声明出现零次或多次的元素:<!ELEMENT 元素名称 (子元素名称*)>

声明出现零次或一次的元素:<!ELEMENT 元素名称 (子元素名称?)>

声明“非.../既...”类型的内容

例子:<!ELEMENT note(to,from,header,(message|body))>

声明混合型的内容

例子:<!ELEMENT note (#PCDATA|to|from|header|message)*>

定义元素的属性

在DTD中,属性通过ATTLIST声明来进行声明。

声明属性<!ATTLIST 元素名称 属性名称 属性类型 默认值>

以下是属性类型的选项:


默认值参数可使用下列值:

小结

通过学习,我们知道了怎么描述XML文档的结构,如何使用DTD定义一个XML文档的合法元素,以及如何在您的XML内部或者作为一个外部引用来声明DTD。您已经学习了如何为XML文档声明合法的元素、属性。如果你认为到这里DTD就学完了,那就大错特错了,请期待下一篇博客,我们将继续DTD的学习。

原文链接:https://www.f2er.com/xml/296585.html

猜你在找的XML相关文章