XML的DTD的规则的介绍

XML的主要的功能就是配置文件、数据传输、数据存储

配置文件:我们常用的框架Struts2 、Spring、Hibernate、Ibaits等一些Web框架都需要使用xml文件进行配置。

数据传输:Web Service使用的是SOAP协议传输数据,该数据的格式就是xml文档的片段。

数据的存储:如果没有数据库,我们可以使用xml文件进行数据的存储。

XML有自己的语法,但是为了让我们开发的xml文档其他人可以看懂,所以需要有规定关于xml,XML的约束主要有2个,DTD ,SCHEMA

首先介绍一下DTD规则,(Document type definition)

这个规定,既可以定义在xml文件的内部,也可以把这个规则定义在一个单独的dtd文件中。

例如:

将DTD规则和xml数据写在一个xml文件中。

book.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE  书架[

    <!ElEMENT 书架 (书+)>

    <!ElEMENT 书 (书名,作者,售价)>

    <!ElEMENT 书名 (#PCDATA)>

    <!ElEMENT 作者 (#PCDATA)>

    <!ElEMENT 售价 (#PCDATA)>

]>

<书架>
   <书>
      <书名>水浒传</书名>
      <作者>吴承恩</作者>
      <价格>12</价格>
   </书>
   <书>
      <书名>三国演义</书名>
      <作者>罗贯中</作者>
      <价格>33</价格>
   </书>
</书架>

第二种定义就是将规范,放到一个单独的文件中

book.dtd

 <!ElEMENT 书架 (书+)>

    <!ElEMENT 书 (书名,作者,售价)>

    <!ElEMENT 书名 (#PCDATA)>

    <!ElEMENT 作者 (#PCDATA)>

    <!ElEMENT 售价 (#PCDATA)>

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
   <书>
      <书名>水浒传</书名>
      <作者>吴承恩</作者>
      <价格>12</价格>
   </书>
   <书>
      <书名>三国演义</书名>
      <作者>罗贯中</作者>
      <价格>33</价格>
   </书>
</书架>

dtd规则主要包括:元素、属性、实体

元素主要就是:

<!ELEMENT  名称   类型  或者 内容>

例如:

<!ELEMENT 书架 (书+)>

<!ELEMENT 书 (书名,作者,售价)>

<!ELEMENT 书 (书名|作者|售价)> | 表示哪一个都行

+ 代表一个或者多个

?0个或者1个

* 0个或者多个

什么都没有表示默认的一个

属性:

<!ATTLIST  元素的名字

   属性的名字  属性类型  属性的说明

>

属性的类型主要有以下类型:

 CDATA  字符串

  ID     ID

 ENUMERED

ENTRY  实体对象

属性的说明主要有以下几种类型:

REQUIRED  必须有的

IMPLEMENTED  可以没有

FIXED   固定的不能变的

举个例子:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE   书架[

  <!ELEMENT  书架(书+)>

   <!ELEMENT  书(作者,书名,售价)>

   <!ATTLIST  书   color CDATA  #REQUIRED>

 <!ELEMENT  作者  (#PCDATA)>

 <!ELEMENT  书名  (#PCDATA)>

 <!ELEMENT  售价  (#PCDATA)>

]>

<书架>
   <书 color="red">
      <书名>水浒传</书名>
      <作者>吴承恩</作者>
      <价格>12</价格>
   </书>
   <书 color="green">
      <书名>三国演义</书名>
      <作者>罗贯中</作者>
      <价格>33</价格>
   </书>
</书架>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值