XML总结(二)

本文深入解析XML文件结构的定义方式——DTD(Document Type Definition),包括DTD的作用、命名空间的引入背景、属性与元素的规范说明,以及内置与外置DTD的使用场景。探讨DTD如何确保XML文件的数据交换准确无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.DTD简介

全称Document Type Definition 文件类型定义

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

2.命名空间

在一个XML文档中,包含由多个DTD描述的元素。会出现名称冲突问题
为了解决名称冲突问题,W3C的XML小组制定了被称为命名空间(NameSpace) 的标准

3.属性

(1)属性的默认值

解释
#REQUIRED属性的默认值是必须的
#IMPLIED属性的默认值不是必须的
#FIXED value属性的默认值是固定的

(2)属性的类型

类型描述
CDATA值为字符数据(character data)
(en1en2
ID值唯一的id
IDREF值为另一个元素的id
IDREFS值为其他id的列表
NMTOKEN值为合法的XML名称
NMTOKENS值为合法的XML名称的列表
ENTITY值是一个实体
ENTITIES值是一个实体列表
NOTATION此值是符号的名称
xml:值是一个预定的XML值

4.元素

空元素通过关键词EMPTY进行声明:

<!ELEMENTY元素名称EMPTY>
DTD中:<!ELEMENT br EMPTY>
XML中:<br/>

5.XML内置DTD和外置DTD

(1)XML内置DTD内容

   <?xml version="1.0" encoding="utf 8"?>
    <!DOCTYPE书籍列表[
     <NELEMENT书籍列表(计算机书籍)*>
      <!ELEMENT计算机书籍(书名,价格,简要介绍)>
      <!ELEMENT书名(#PCDATA)>     
       <IELEMENT价格(#PCDATA)>
      <IELEMENT简要介绍(#PCDATA)>]>

      <书籍列表>
          <计算机书籍>
                     <书名>XML的今生今世</书名>
                     <价格> 66.66</价格>
                  <简要介绍>
                     该书详细描写XML的从出生到衰老的整个过程
                  </简要介绍>
         </计算机书籍>
      </书籍列表>


(2)外部DTD

每个XML文档单独定义的DTD可推广为一个系统内共享的公用DTD;
关键字SYSTEM用于引用一个作者或组织所编写的众多XML文档中通用的DTD;
另一种外部DTD,一个由权威机构制定的,提供给特定行业或公众使用的DTD。关键字是PUBLIC.


<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"http:p/java. sun com/dtd/web-app 2 3.dtd">

(3)外部DTD

    DTD与XML的内容分别在不同的文件中
      
  DTD文件book. dtd :
      <?xml version="1.0"encoding="utf-8"?>
      <!ELEMENT书籍列表(计算机书籍)*>
      <IELEMENT计算机书籍(书名,价格,简要介绍)>
      <!ELEMENT书名(#PCDATA)><!ELEMENT价格(#PCDATA)>
      <!ELEMENT简要介绍(#PCDATA)>
    使用外部DTD文件的XML文件
      <?xml version="1.0" encoding- " utf-8" >
      <!DOCTYPE书籍列表SYSTEM "book.dtd'>

6.为什么要使用DTD

为了正确交换数据,XML文件需要确定的结构例如:

<student>
< name>小宅</name>
<number> 2966556</number><student>

//一个<student标签只能包含一个<name>和<number>标签
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值