• 【HTML/XML 9】XML中的DTD文件


    导读:DTD是Document type definition(文档类型定义的缩写),是一套关于标记符的语法规则,它是XML文件的验证机制,数以XML文件的组成部分。XML文档是一种描述标记语言的语言,它可以由DTD来定义结构,DTD制定了文档的一系列规则,确保文档的一致性和有效性。本篇博客,就将具体介绍:什么是DTD,为什么用DTD,怎样用DTD。


    一、什么是DTD

    DTD是一套关于标记的语法规则,该规则详细地描述了一组XML文档的结构。DTD说明了在文档中可以使用哪些标记,哪些标记可以出现在其他标记中,哪些标记具有属性,使用的标记应该按什么次序出现等。

    XML文档的解析器分为两类:一、解析器不会进行有效性的检查;二、需要进行有效性的检查。对于具备有效性检查的解析器,他将会根据相应的文件或存在于XML文档中的定义代码,对具体文档中使用的实例元素进行检查,以确定这些元素是否符合定义的格式,而DTD正是实现XML文档有效性验证的途径之一。


    二、为什么要用DTD

    2.2,不使用DTD的后果:

    在编写XML文档时,由于应用程序的需求经常会发生改变,所以有时需要对所编写的XML文档结构加以改变,而文档结构改变时,就需要修改代码并添加新的元素,然而当应用程序执行出现了错误时,如果没有显示的文件资料,就无法可靠捕获XML文档中的错误,只能依靠程序顺利执行,当出现结果和预期不符时,就更难检测到错误。在这个时候,就需要依赖清晰、准确的语法规则文档:DTD。

    2.2,使用 DTD的好处:

    1,使用DTD可以确保XML文档的规则和验证文档数据的有效性;2,使用共同的DTD可以为某类XML文档提供统一的格式和相同的结构;3,使用共同的DTD可以保证在一定范围内,XML文档数据的交流和共享

    4,应用程序设计人员根据DTD就能够知道对应的XML文档的逻辑结构,不必依赖具体的数据就能编写出对此类XML文档中的数据进行处理的应用程序。


    三、DTD的使用方式

    DTD共有四种使用方式,分别是:内部定义、外部引用、混合DTD、公用DTD

    3.1,内部定义

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <!DOCTYPE 学生 [
    	<!ELEMENT 姓名 (#PCDATA)>
    	<!ELEMENT 学号 (#PCDATA)>
    	<!ELEMENT 性别 (#PCDATA)>
    ]>
    <学生>
    	<姓名>Angel</姓名>
    	<学号>201601152224</学号>
    	<性别>女</性别>
    </学生></span>
    效果:


    注意;standalone属性的默认值为no,表示引入外部的DTD格式。本次效果是yes,代表着使用内部DTD定义。

    3.2,外部定义

    DTD文档:

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" ?>
    <!ELEMENT 学生 (姓名,学号,性别)>
    <!ELEMENT 姓名 (#PCDATA)>
    <!ELEMENT 学号 (#PCDATA)>
    <!ELEMENT 性别 (#PCDATA)></span>
    XML文档:

    <span style="font-family:KaiTi_GB2312;font-size:18px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE 学生 SYSTEM "TestDTD2.dtd">
    <学生>
    	<姓名>Angel</姓名>
    	<学号>201601152224</学号>
    	<性别>女</性别>
    </学生></span>

    3.3,混合DTD(外部和内部结合使用)

    当一个外部的DTD文档并不能包含XML文档中所有的的元素或者实体时,就得使用内部DTD进行声明定义。

    3.4,公用的DTD

    在DOCTYPE声明中,关键字并不是只有SYSTEM,它也并不是引入外部DTD的唯一方法,这个关键字主要用于引用一个作者或组织编写的众多XML文件中通用的DTD。另外一个DTD引入办法是使用关键字PUBLIC,它是由一个权威机构制定的,提供给特定行业或公众使用的DTD。语法如下:

    <!DOCTYPE 根元素名称 PUBLIC "DTD名称" "外部DTD的URL">

    实例:<!DOCTYPE 医药列表 PUBLIC "DTD名称" "http://www.Medicine.com/dtds/Mlist.dtd">


    四、总结

    DTD文档相当于是给XML提供了一种规则,HTML是使用预先确定的标记,而XML却可以使用未被预先确定的标记,但是为了规范和被浏览器理解,必须使用DTD定义标记规则定义。对于后面的几种使用方式,可以结合到CSS的应用进行理解,也可以使用函数的显示定义和隐式定义进行理解。接下来,是总结XML Schema文件以及XML和HTML的交互使用。

  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/hhx626/p/6010370.html
Copyright © 2020-2023  润新知