DTD的含义&XMl与HTML的区别

1、DTD

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。它使用一系列的合法元素来定义文档结构。

2、什么是XML

XML 指可扩展标记语言(eXtensible Markup Language)。

可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言,是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等

1、XML 与 HTML 的主要差异

  • XML 被设计为传输和存储数据,其焦点是数据的内容。

  • HTML 被设计用来显示数据,其焦点是数据的外观。

  • HTML 旨在显示信息,而 XML 旨在传输信息。

3.XML的两种文档约束

XML文档定义分为 Schema 和 DTD 两种形式

  • Schema 是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性。

  • DTD 的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。

4.XML格式要求

  • XML 元素都必须有关闭标签

  • XML 标签对大小写敏感

  • XML 必须正确地嵌套

  • XML 文档必须有根元素,有且只有一个

  • XML 的属性值须加引号

  • XML中的特殊字符处理

 

5.使用DTD

5.1.在XML中加入DTD申明

 1、内部的 DOCTYPE 声明

公式:

<!DOCTYPE 根元素 [元素声明]>

 案例如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE persons [
        <!ELEMENT persons (person*)>
        <!ELEMENT person (name,age,contact,br?)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT age (#PCDATA)>
        <!ELEMENT contact (phone|mail|wechat)>
        <!ELEMENT br EMPTY>
        <!ELEMENT phone (#PCDATA)>
        <!ELEMENT wechat (#PCDATA)>
        <!ELEMENT mail (#PCDATA)>
        <!ATTLIST person
                pid ID #REQUIRED
                paddr CDATA #IMPLIED
                psex (男|女|妖) "男"
        >
] >

<persons>
    <person pid="p01" paddr="" psex="男">
        <name>张三</name>
        <age>22</age>
        <contact>
            <phone>15882821111</phone>
        </contact>
        <br/>
    </person>
    <person pid="p02">
        <name>李四</name>
        <age>23</age>
        <contact>
            <wechat>123@qq.com</wechat>
        </contact>
    </person>
</persons>

2、外部文档声明

公式:

<!DOCTYPE 根元素 SYSTEM "文件名">

案例如下: 

 新建一个file文件,将内部中的元素声明单独放入即可,名字我这里取的是fid.dtd

        <!ELEMENT persons (person*)>
        <!ELEMENT person (name,age,contact,br?)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT age (#PCDATA)>
        <!ELEMENT contact (phone|mail|wechat)>
        <!ELEMENT br EMPTY>
        <!ELEMENT phone (#PCDATA)>
        <!ELEMENT wechat (#PCDATA)>
        <!ELEMENT mail (#PCDATA)>
        <!ATTLIST person
                pid ID #REQUIRED
                paddr CDATA #IMPLIED
                psex (男|女|妖) "男"
                >

 引用外部文件即可

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

<!DOCTYPE persons SYSTEM "fid.dtd">

<persons>
    <person pid="p01" paddr="" psex="男">
        <name>张三</name>
        <age>22</age>
        <contact>
            <phone>15882821111</phone>
        </contact>
        <br/>
    </person>
    <person pid="p02">
        <name>李四</name>
        <age>23</age>
        <contact>
            <wechat>123@qq.com</wechat>
        </contact>
    </person>
</persons>

  5.2.元素定义语法

<!ELEMENT 元素名称 元素类型>

5.3.元素的分类

类型:

        (1)空元素:EMPTY

<!ELEMENT 元素名称 EMPTY>

        (1)文本元素:(#PCDATA)

<!ELEMENT 元素名称 (#PCDATA)>

        (1)混合元素:(子元素名称1,子元素名称2,...)

<!ELEMENT 元素名称 (子元素名称1,子元素名称2,...)>

5.4.元素的限制

     

什么的不指定,代表默认一次。

5.5.属性定义语法

基本语法

<!ATTLIST 元素名称 属性名称 属性类型 设置说明>

 属性类型:

 

设置说明 :

  

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值