XML之DTD约束

XML文件约束之DTD详解 目录1. 这些都是什么?为什么要学?目的是什么?2.标准的XML格式3.DTD3.1 内部DTD的定义,需要在顶部加入,语法如下:3.1.1 元素定义:3.1.2 属性定义:3.2 外部定义4.总结,思维导图本章来介绍一下,什么是XML,什么是DTD,还有一个跟DTD作用一样的Schema,以及为什么要学习这些东西,学习这两些东西的目的是什么。1. 这些都是什么?为什么要学?目的是什么? XML : 指可扩展标记语言(eXtensible Markup Language), 被设计用来传 阅读详情

一 DTD约束的基础知识

1 什么是DTD约束?
DTD即是文档类型定义,可定义合法的XML文档构建模块,它使用一系列合法的元素来定义文档的结构。

2 内部的 DOCTYPE 声明
假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

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

3 外部文档声明
假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

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

4 使用DTD约束的优点

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

5 XML 文档构建模块
所有的 XML 文档均由以下简单的构建模块构成:

  • 元素
  • 属性
  • 实体
  • PCDATA
  • CDATA

6 PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符。

7 CDATA
CDATA 的意思是字符数据(character data),是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

二 DTD元素

1 声明一个元素

<!ELEMENT 元素名称 类别>
<!ELEMENT 元素名称 (元素内容)>

2 空元素

<!ELEMENT 元素名称 EMPTY>

3 只有 PCDATA 的元素

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

4 带有任何内容的元素
通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合:

<!ELEMENT 元素名称 ANY>

5 带有子元素(序列)的元素
带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:

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

当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。下面是一个例子:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>

6 声明只出现一次的元素

<!ELEMENT 元素名称 (子元素名称)>

以下例子说明了message 子元素必须出现一次,并且必须只在 “note” 元素中出现一次

<!ELEMENT note (message)>

7 声明最少出现一次的元素

<!ELEMENT 元素名称 (子元素名称+)>

8 声明出现零次或多次的元素

<!ELEMENT 元素名称 (子元素名称*)>

9 声明出现零次或一次的元素

<!ELEMENT 元素名称 (子元素名称?)>

10 声明“非…/既…”类型的内容

<!ELEMENT note (to,from,header,(message|body))>

上面的例子声明了:“note” 元素必须包含 “to” 元素、“from” 元素、“header” 元素,以及非 “message” 元素既 “body” 元素。

三 DTD属性

1 在 DTD 中,属性通过 ATTLIST 声明来进行声明。

<!ATTLIST 元素名称 属性名称 属性类型 默认值>

2 以下是属性类型的选项:

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

3 默认值参数可使用下列值:

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

四 DTD实体

1 实体是用于定义引用普通文本或特殊字符的快捷方式的变量。实体引用是对实体的引用。实体可在内部或外部进行声明。

2 内部实体声明

语法:

<!ENTITY 实体名称 "实体的值">

DTD 例子:

<!ENTITY writer "Bill Gates">
<!ENTITY copyright "Copyright W3School.com.cn">

XML 例子:

<author>&writer;&copyright;</author>

注意:一个实体由三部分构成: 一个和号 (&), 一个实体名称, 以及一个分号 。

3 外部实体声明

<!ENTITY 实体名称 SYSTEM "URI/URL">

DTD 例子:

<!ENTITY writer SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.w3school.com.cn/dtd/entities.dtd">

XML 例子:

<author>&writer;&copyright;</author>

五 一个简单的DTD例子

例子来源 http://www.w3school.com.cn/dtd/dtd_examples.asp

<!DOCTYPE CATALOG [

<!ENTITY AUTHOR "John Doe">
<!ENTITY COMPANY "JD Power Tools, Inc.">
<!ENTITY EMAIL "jd@jd-tools.com">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT PRODUCT
(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
<!ATTLIST PRODUCT
NAME CDATA #IMPLIED
CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
PARTNUM CDATA #IMPLIED
PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY (InStock|Backordered|Discontinued) "InStock">

<!ELEMENT SPECIFICATIONS (#PCDATA)>
<!ATTLIST SPECIFICATIONS
WEIGHT CDATA #IMPLIED
POWER CDATA #IMPLIED>

<!ELEMENT OPTIONS (#PCDATA)>
<!ATTLIST OPTIONS
FINISH (Metal|Polished|Matte) "Matte" 
ADAPTER (Included|Optional|NotApplicable) "Included"
CASE (HardShell|Soft|NotApplicable) "HardShell">

<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST PRICE
MSRP CDATA #IMPLIED
WHOLESALE CDATA #IMPLIED
STREET CDATA #IMPLIED
SHIPPING CDATA #IMPLIED>

<!ELEMENT NOTES (#PCDATA)>

]>
DTD约束文档 模拟servlet2.3规范,如果开发人员需要在xml使用当前DTD约束,必须包括DOCTYPE 立即下载

相关推荐

AFSim 2.9实战指南:从入门到精通的中文教程

本文是AFSim 2.9的实战中文教程,旨在帮助用户从零开始掌握这一先进的仿真框架。内容涵盖从环境安装、运行第一个“Hello World”仿真,到深入理解实体、组件、想定编辑器等核心概念,并进阶探讨动力学建模、传感器仿真与红蓝对抗想定构建。最后,指南还提供了效能分析与实战排错技巧,帮助用户将仿真结果转化为有价值的量化数据,适用于军事、航空航天等领域的复杂系统行为模拟研究。

weixin_29294395的博客 357

Xml-DTD约束

XML(eXtensible Markup Language)是一种标记语言,用于表示结构化的数据,并且可以和各种编程语言进行交互。它的主要用途是存储和传输数据,特别是在互联网上的数据交换。XML语言被广泛应用于Web开发、企业应用、移动应用、文档管理等领域。XML的设计初衷是为了弥补HTML在数据交换方面的不足,它可以用标记来描述数据的结构和语义,使得其更容易被计算机处理。与HTML不同的是,XML标签和元素是自定义的,这使得XML在复杂数据的表示和交互方面具有更大的灵活性和可扩展性。

SAME_LOVE的博客 974

AOA(Angle of Arrival,到达角)定位算法及其误差分析的原理和MATLAB仿真_aoa定位算法

如图所示,有基站 S 1 ( x 1 , y 1 , z 1 ) , S 2 ( x 2 , y 2 , z 2 ) S_1(x_1,y_1,z_1),S_2(x_2,y_2,z_2) S1​(x1​,y1​,z1​),S2​(x2​,y2​,z2​),目标 T ( x , y , z ) T(x,y,z) T(x,y,z)。2+(z_1-z_2)^2} step1:两基站间的距离L=(x1−x2)2+(y1​−y2​)2+(z1​−z2​)2。

2401_87555613的博客 1482

【XML之DTD约束】

目录前言合法的XMLDTD对元素限制DTD对属性限制 前言 |ू・ω・` ) DTD的概念:DTD为英文Document Type Definition,中文意思为“文档类型定义” 是一套为了进行程序间的数据交换而建立的关于标记符的语法规则 优点: 通过它,您的每一个 XML 文件均可携带一个有关其自身格式的描述。 通过它,独立的团体可一致地使用某个标准的文档类型定义来交换数据。 您还可以使用它...

旺旺的博客 430

网卡Inter (R) Wi-Fi 6 AX201突然故障 错误代码10,无法找到无线网络,蓝牙也无效了

问题描述 说来也是坑,简直就莫名其妙。早上在工位上,电脑一切正常(一直用的是无线网络),然后周五准备开周会了,所以拔掉电脑外接设备(电源线,鼠标,外接显示器)拿起电脑到会议室。到了会议室之后,无线网断开了(但一般是不会断开的,都在公司范围内),所以选择重连,但发现已经没有无线网络列表了。 电脑机型:联想YOGA 14s 2021 初步尝试 1、关闭开始飞行模式 - 无果 2、重启并重启 (因为前两天已经提醒过有windows更新,趁这个机会就更新并重启了)- 无果 3、下载鲁大师、驱动精灵、联想驱动管

疯狂的蜗牛 5万+

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1001

xml的dtd约束简介

DTD约束xml约束什么是dtd?引入dtd内部引入外部引入系统引入:网络引入:dtd语法规则dtd:元素约束dtd:属性约束dtd:实体 xml约束 xml主要用来存储数据,而不同的数据有不同数据及结构,为了使数据在存入xml时不出错的满足某项标准,因此需要对xml进行约束来规范数据的存储。 xml的约束技术有两种:dtd和schema,这里主要介绍下dtd 什么是dtd? 文档类型定义(Doc...

qq_40913192的博客 589

手把手教你用MaxEnt+ArcGIS玩转物种分布预测

本文详细介绍了如何利用MaxEnt最大熵模型与ArcGIS软件进行物种分布预测。通过实战案例,从数据收集、环境变量处理、模型参数设置到结果可视化分析,手把手教你掌握生态位模型的核心流程。结合SDM toolbox插件,可高效完成数据预处理与高级空间分析,是生态学与保护生物学研究的实用指南。

weixin_29309475的博客 560

XML的DTD约束

XML的DTD约束 1.定义:DTD是文档类型定义(约束) 2.什么是XML?什么是HTML?二者的区别? XML:可拓展标记语言,用于传输和存储数据 HMTL:超文本标记语言,用于显示数据 区别: 1>语法要求不同 2>标记不同 3>作用不同 3.XML的格式要求: 1>有且只有一个根节点 2>由开始标签和结束标签组成 3>XML标签区分大小写 4>...

weixin_44714246的博客 285

YOLOv12涨点改进 | 全网独家首发Conv改进篇 | Arxiv 2025 | 引入一种新的WConv加权卷积改进YOLOv12,显著提升其特征提取能力和目标检测精度

本文提出了一种新型加权卷积(WConv)模块,通过引入最优密度函数动态调整邻域像素权重,显著提升了YOLOv12目标检测性能。WConv在保持参数数量不变的情况下,提高了模型精度(VGG准确率提升10%)、增强了小目标检测能力,并改善了多尺度特征提取。文中详细介绍了模块原理、网络结构改进方法,并提供了核心代码实现和yaml配置文件。实验表明,该方法在图像任务中最高可降低53%的损失,虽然会带来11%的时间开销,但具有优异的鲁棒性。该技术可广泛应用于2D/3D图像处理领域。

Ai缝合怪、助力小伙伴高效发论文 215

dify安装ollama插件及OLLAMA模型添加失败问题完整解决方法

plugin_daemon-1 | 2025/05/10 17:37:36 stdio.go:160: [INFO]plugin langgenius/ollama:0.0.6: Installed model: ollama 提示ollama安装成功,再添加模型就不会有问题了。安装dify1.2.0和1.3.1均出现OLLAMA插件安装失败或插件安装后添加模型失败的问题,具体表现为一是添加ollama插件时没反应,需要二次添加才成功;二是添加模型时点保存报500错误或点保存后没反应,无法成功添加。

symstandsun的博客 9078

XML——XML文件约束之DTD详解

本文介绍了XML文件约束的概念,重点介绍了使用DTD约束XML文件,介绍了DTD的引用方式以及定义元素和属性的语法

Gavin 4万+

28-手把手教你手写CPU-Verilog - 乘法器设计:Booth算法与Wallace树乘法器

文章摘要: 本文详细介绍了两种高效乘法器设计方法:Booth算法和Wallace树乘法器。Booth算法通过检测乘数连续1/0减少部分积,适合有符号数运算;Wallace树采用树形结构压缩部分积,显著降低延迟。文章包含算法原理、具体示例、Verilog实现代码(4位乘法器)及性能对比表,指出Booth适用于通用处理器,Wallace树更适合高性能DSP/GPU。最后强调实际设计中需根据速度、面积和功耗需求选择合适方案。

2301_79143213的博客 206

xml之dtd约束详解

dtd约束 ELEMENT:定义标签 ATTLIST:定义属性 我们自定义一个dtd约束文件 <!ELEMENT Programmers (Programmer*) > <!-- 定义Programmers标签下有Programmer标签,*是正则规则,代表0次或多次 --> <!ELEMENT Programmer (name,age,code)> <!-- 定义Programmers标签下有name,age,code标.

林高禄 9643

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

DTD、XML阐述、XML的两种文档类型约束和DTD的使用

XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它具有自我描述性并且易于阅读。XML被广泛应用于各种领域,如网页开发、数据交换和配置文件等。XML的基本语法规则包括使用标签、属性和值来描述数据的结构和内容。标签用尖括号包围,属性以键值对的形式出现在标签中,值则位于标签的起始和结束之间。XML 语言没有预定义的标记。上面示例中的标记(如 和 )未在任何 XML 标准中定义。这些标记是由 XML 文档的作者“发明”的。

空空bye. 3907

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

XML约束、如何在xml中引入dtd、dtd语法、ENTITY(实体)

一、XML约束概述 1、什么是XML约束? 在xml技术里,可以编写一个文档来约束一个xml文档的写法,这称之为XML约束。 2、为什么要使用XML约束? 我们从网上下载了一个开源框架,这个开源框架是使用XML作为配置文件的,这时候框架的设计者就需要约束我们配置文件的写法。 3、XML约束的作用 约束xml文档的写法 对xml进行校验 4、常见的XML约束技术 XML DTD //文件类型定义(document type defin...

m0_49828549的博客 3909

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

xml之dtd约束

xml之dtd约束 xml约束的技术:主要有dtd约束和schema约束(面试题) 本次为dtd约束. dtd快速入门 dtd文件后缀为 dtd 看xml有多少个元素(标签),有几个元素(标签),就写几个<!ELEMENT>(大写) 看是复杂元素还是简单元素, 复杂元素:拥有子元素 * 格式:<!ELEMENT 元素名称 (子元素)> * 注意:中间必须要用空格 简单元素...

weixin_45311284的博客 268

XML文件的DTD约束和Schema约束

XML文件Contact.xml <?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE contact SYSTEM "Contact.dtd">--> <!-- <!DOCTYPE contact SYSTEM "dtd文件的路径"> <!DOCTYPE 文档根结点 SYSTEM...

Hello什么来着? 824

XML的DTD约束文件

XML虽然可以任意的扩展,没有太多的约束,但是没有规矩不成方圆。 借助XML的约束文件,有两种DTD,Schema DTD可以使用在XML文件的内部,也可以使用在XML的外部。 对元素(标签名称)的约束 <!ELEMENT 元素的名称 类别> 注意,中间都有空格 常用的: <!ELEMENT 元素的名称 (子元素1,子元素2,.....子元素N)> 某个元素下能有哪些元素,且它们之间出现的顺序。 <!ELEMENT...

FairyKunKun的博客 1111

XML:DTD约束

XML:DTD约束 1、 DTD的介绍和用处 1、因为XML中的标记有非常高的自由性,可以随意定义标记。但是很多时候我们需要对标记进行规定,比如,某个标记只能出现一次,某个标记只能叫什么。对于此类的定义就由DTD语言来定义。 2、文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。 3、为...

鄧旧人博客 262

XML的dtd约束

 XML约束之DTD的使用(1)为什么要有约束? XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束。两个概念:格式良好的XML:遵循XML语法的XML。有效的XML:遵循约束文档的XML总之:约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。...

赵国闯 廊坊师范学院 信息技术提高班 315

XML-DTD约束

XML-DTD约束 什么是框架 就是由多种设计模式配合形成的特定的框架处理特定问题底层是通过Java的反射机制来完成 了解xml XML 指可扩展标记语言(EXtensible Markup Language)。 XML 的设计宗旨是传输数据,而不是显示数据。 XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准。 Html与xm...

wx1762813417的博客 257

XML_DTD约束

XML_DTD约束 框架的由来 就是由多种设计模式配合形成的 特定的框架处理特定问题 底层是通过Java的反射机制来完成 dtd 是xml配置文件的约束技术中的一种 web.xml 配置tomcat的一些东西 schema --》是xsd文件 xml的用途? 1.做配置 2.做数据传输 html与xml区别? 约束的差异性 html是超文本 xml是可拓展标记语言 xml能够通过字...

CJQYQX的博客 267
上一篇: XML之基本知识总结
下一篇: XML之Schema约束(2)
Geffin
博客等级 码龄8年 209粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值