DTD详解

news/2025/3/19 16:12:40/

基本概述

文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言(SGML)和可扩展标记语言(XML)1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。文档类型定义也可用做保证标准通用标记语言、可扩展标记语言文档格式的合法性,可通过比较文档和文档类型定义文件来检查文档是否符合规范,元素和标签使用是否正确。文件实例提供应用程序一个数据交换的格式。

PS:简而言之,DTD就是用来约束XML文档的,使其在一定的规范下使用,除了DTD技术外,还有Schema技术,也是用于约束XML文档的。

参考文档:DTD http://www.w3school.com.cn/dtd/index.asp

参考文档:Schema http://www.w3school.com.cn/schema/index.asp


 

PS:通过DTD约束,XML就能在DTD的约束下进行自定义了,不过DTD有个缺点,那就是不能对数据进行数值约束这种范围约束。

DTD文档的声明及引用

内部DTD文档

<!DOCTYPE 根元素 [定义内容]>

外部DTD文档

<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

内外部DTD文档结合

<!DOCTYPE 根元素 SYSTEM "DTD文件路径" [

定义内容

]>

注意事项:

1、定义关键字一定要大写,例如:DOCTYPE、ELEMENT、ATTLIST。

2、

当引用的文件在本地时,采用如下方式:

<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">

例如: <!DOCTYPE 书架 SYSTEM “book.dtd”>

当引用的文件是一个公共的文件时,采用如下方式:

<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">

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

 

DTD元素

基本语法
    <!ELEMENT NAME CONTENT>

解释:

ELEMENT:关键字(必须大写)。

NAME:元素名称。

CONTENT:元素类型,有四种,都必须大写。

    1、EMPTY-该元素不能包含子元素和文本,但可以有属性(空元素)

    2、ANY-该元素可以包含任何在DTD中定义的元素内容

    3、#PCDATA-可以包含任何字符数据,但是不能在其中包含任何子元素

    4、其它类型(组合),可以是子元素,子元素与修饰符组合,基本元素与子元素与修饰符组合。

修饰符

DTD属性

基本语法
<!ATTLIST 元素名称

属性名称    类型    属性特性

属性名称    类型    属性特性…...

>

解释:

ATTLIST:属性列表,(必须大写)。

元素名称:对应的元素的名称。

属性:属性能够有多个,其格式是名称 类型 属性特性

类型:

PS:常用的有CDATA(字符型),枚举(枚举格式是(值1|值2|值3...)),ID(ID不能重复,不能以数字开头),IDREF(引用另一个ID值),IDREFS(可以引用多个ID值,以空格隔开)

属性特性有:


http://www.ppmy.cn/news/781947.html

相关文章

DHT网络简介

DHT网络全称为分布式哈希表网络(Distributed Hash Table net)&#xff0c;是一种由键值对唯一标识的信息按某种协议被分散在多个节点上的“非中心化服务”网络。可在分布式对等网络环境中进行存储、检索、查询、等管理数据。其数据大规模分散在多个节点上的网络。可以有效避免单…

DTN中基于两跳ACK 确认机制的备用副本转发算法

DTN中基于两跳ACK 确认机制的备用副本转发算法 摘要 针对DTN在遇到路由空洞问题&#xff08;由于某些原因&#xff0c;没有合适的下一跳节点&#xff09;时缺乏有效回避路由空洞的方法导致信息端到端传输时延较大的问题&#xff0c;提出了DTN中基于两跳ACK &#xff08;ACK1 …

DTn one 的学习,,,

在今天开始学习了one的代码学习 《机会网络模拟器ONE及其扩展研究*》王朕王新华隋敬麒这。 想看看在one中有没有应用层的使用 看了想明天看 《基于社会网络特性的机会计算服务平台》 陈加忠1, 鞠增伟1, 陈常念1, 李 榕1, 夏 涛1, 王 冼 收获是对DTn中的主要包的主要功能有个…

ION-DTN-AMS(Asynchronous Message Service)实现配置

AMS 概述 Asynchronous Message Service (AMS&#xff09; 是一种数据系统通信架构&#xff0c;由自主的互操作模块组成&#xff0c;任务系统的模块可以被设计为独立运行&#xff0c;每个模块产生和消耗任务信息&#xff0c;而不明确知道其他模块当前正在运行 AMS的目的是通…

层次分析法-基于节点关键度的DTN路由算法

当你看到一个知识点的时候&#xff0c;不是收藏和点赞&#xff0c;而是想办法转化成自己需要的知识&#xff0c;好记性不如烂笔头。 层次分析法 层次分析法(运筹学理论)&#xff0c;简称AHP&#xff0c;是指将于决策总是有关的元素分解成目标、准则、方案等层次&#xff0c;在…

基于ns-3的DTN code安装教程

这是我第100次重装DTN了&#xff0c;再装就自杀。 系统&#xff1a;Ubuntu16.04LTS ns3版本&#xff1a;3.22 装完系统直接装ns3&#xff0c;为防止版本支持问题&#xff0c;用的老版本系统软件。 1 更改镜像源 习惯性装完系统先改成清华镜像源已备不测 &#xff08;1&#…

ION-DTN AMS协议介绍

AMS介绍与目的&#xff1a; AMS&#xff1a;Asynchronous Message Service&#xff0c;异步消息服务 AMS是CCSDS提出的基于DTN的应用层协议&#xff0c;AMS是一种数据系统通信体系结构&#xff0c;任务系统的模块可以在该体系结构下设计成好像要在隔离地操作一样&#xff0c;…

TNN

一、实验目的 1、掌握神经网络的基本原理。 2、熟悉神经网络的实现方式。 二、实验环境 1. PC机一台&#xff0c;机器上装有Python&#xff1b; 2、实验前做好上机实验的准备&#xff0c;针对实验内容&#xff0c;认真复习与本次实验有关的知识&#xff0c;完成实验内容的…