XML(DTD)

    xiaoxiao2022-07-13  155

    DTD

    简介

    在说DTD之前,先简单的说一下什么是DTD,它是干什么的,有什么用。

    文档类型定义可定义合法的标准通用标记语言、可扩展标记语言文档构建模块。它使用一系列合法的元素来定义文档的结构。 文档类型定义可被成行地声明于标准通用标记语言、可扩展标记语言文档中,也可作为一个外部引用。

    为什么要用到DTD

    通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。 通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。 而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。 您还可以使用 DTD 来验证您自身的数据

    模块构成

    XML 文档构建模块 所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成: 元素 属性 实体 PCDATA CDATA 下面是每个构建模块的简要描述。

    元素

    元素是 XML 以及 HTML 文档的主要构建模块。 HTML 元素的例子是 “body” 和 “table”。XML 元素的例子是 “note” 和 “message” 。元素可包含文本、其他元素或者是空的。空的 HTML 元素的例子是 “hr”、“br” 以及 “img”。

    属性

    属性可提供有关元素的额外信息

    实体

    实体是用来定义普通文本的变量。实体引用是对实体的引用。 大多数同学都了解这个 HTML 实体引用:" "。这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。

    使用方法

    在XML加入DTD声明

    语法

    元素定义的语法

    <!ELEMENT element-name (type)>

    注:根标签也要定义!!!

    元素的分类

    <!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素

    元素的限制

    , | 次数: +, 1~n *, 0~n ?, 0或1 没有

    XML中的特殊符号

    &(逻辑与) & <(小于) < >(大于) > "(双引号) " '(单引号) '

    类型定义的语法

    <!ELEMENT name(#PCDATA)> 验证的类型 (#PCDATA):类必须为字符串类型 EMPTY:类型必须为空 ANY:任意类型

    属性定义

    格式

    <!ATTLIST 元素名称 属性名称 属性类型 属性验证>

    属性类型:

    CDATA:只允许为字符串 ID:值只能是字母或下划线 枚举(类似与男女,true,false什么的 单选框功能)

    属性验证: #REQUIRED:便是属性值不能为空 #IMPLIED:可为空可不为空 默认为空 #FIXED:有默认值

    实例

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE presons[ <!-- PCDATA文本元素 EMPTY空元素 --> <!ELEMENT presons (preson*)> <!ELEMENT preson (name,age,contact,br?)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT contact (phone|email)> <!ELEMENT phone (#PCDATA)> <!ELEMENT br EMPTY> <!ELEMENT email (#PCDATA)> <!-- ATTLIST属性定义语法 REQUIRED 唯一的 IMPLIED 依赖的 --> <!ATTLIST person pid ID #REQUIRED sex (男|女) '男' qq CDATA #IMPLIED parent IDREF #IMPLIED > ]> <persons> <person pid="p1" sex="男" qq="aaa" parent="p2"> <name>张小明</name> <age>10</age> <contact> <phone>1234567</phone> </contact> <br/> </person> <person pid="p2"> <name>张大明</name> <age>35</age> <contact> <email>123@qq.com</email> </contact> </person> </persons>

    以下是我对DTD的一些理解与整理,希望对大家有一点帮助

    最新回复(0)