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), 被设计用来传 阅读详情

今日金句

家俭则兴 人勤则健 能勤能俭 永不贫贱


前言

框架通常借助设计模式、反射和配置文件等技术实现灵活的开发和可扩展性。而常见的配置文件有xml文件,今天我们就来学习它(今天主要介绍XML,以及XML的DTD约束)。

一、XML

1.1XML概念

  • XML 指可扩展标记语言(eXtensible Markup Language)
  • XML是一种常见的配置文件格式,可以使用各种XML解析器来解析和读取XML配置文件。XML可以方便地表示复杂的数据结构和层次关系,并且可以通过DTD或XSD等方式进行验证
  • 常用的技术:约束(Schema/DTD)、解析(Parsing)和建模技术(XML Schema/Relax NG)

1.2XML作用

1.2.1数据交换

XML可以作为数据交换的中间格式,供应用程序之间进行数据传输和交换。例如,Web服务可以使用XML格式传输数据。

1.2.2数据存储

XML可以作为数据存储格式,存储各种结构化数据,例如配置文件、日志文件、数据库数据等等。XML的可扩展性和灵活性使得它成为一个方便、可靠和可读的数据存储和传输方式。

1.2.3Web应用

XML是Web应用的核心技术之一,主要用于定义Web服务、SOAP消息、XML文档等。

1.2.4数据分析

XML可以作为数据分析的输入,将数据从文件中提取出来,并使用XML Schema或XSLT进行转换和处理。

1.3XML标准格式

  • XML声明:以 <?xml 版本="1.0" ?>的形式出现在XML文档的第一行,用于说明XML的版本和编码方式等信息。
  • 根元素:XML文档的根元素是XML文档的最外层元素,一个XML文档只能有一个根元素。
  • 元素:XML文档中的各个元素分别由开始标签、结束标签和元素内容组成。
    • 标签大小写正确区分;正确结束标签;正确嵌套标签
  • 属性:元素可以拥有零个或多个属性,属性是以键值对的形式出现在元素的开始标签中的。
  • 注释:以的形式出现在XML文档中,用于标记注释或者说明。

二、DTD约束

2.1概念

  • DTD(Document Type Definition)是一种用于定义XML文档结构和格式的语言,它可以用于定义XML文档的元素、属性、值、实体等信息,并对这些信息进行约束和验证。

  • DTD约束是指DTD规范定义的一些规则和约束,用于检查和验证XML文档是否符合DTD定义的结构和格式要求

2.2作用

DTD约束可以帮助开发人员检查和验证XML文档的结构、格式和内容是否符合规范和要求。通过使用DTD约束,可以确保XML文档在传递、存储和处理数据时的完整性、一致性和可靠性

2.3在XML中添加DTD

这跟在html里用css一样,可以外部引入,也可以内嵌。

<?xml version="1.0" encoding="UTF-8"?>
<!--外部引入-->
<!DOCTYPE catalog SYSTEM "root.dtd">
<!--自定义-->
<!DOCTYPE root[]>

三、常见的DTD约束

3.1元素约束

DTD可以用ELEMENT关键字定义XML文档中的元素和元素类型,约束元素在XML文档中出现的顺序、出现次数和内容等。

3.1.1元素的分类

空元素类

空元素类定义一个元素,只有开始标签;没有结束标签或结束标签是可选的。用<!ELEMENT ... EMPTY>来定义,例如:

<!ELEMENT hr EMPTY>

,表示“hr”元素为空元素,不需要结束标签。

文本元素类

指XML元素只包含文本数据,不包含子元素的类型,使用#PCDATA来定义。

例如,下面是一个文本元素类型的DTD定义:

<!ELEMENT title (#PCDATA)>

以上定义了一个名为title的元素,它只包含文本数据。

子元素序列类

子元素序列类定义了一组元素,这些元素必须以特定的顺序出现。序列元素类使用逗号分隔元素定义。例如:

<!ELEMENT person (name, telephone, email)>

表示“person”元素依次包含“name”、“telephone”、“email”三个子元素。

子元素选项类

子元素选项类定义了一组元素,这些元素中只能选择其中的一个来出现。用分隔符“|”组合多个定义项。例如:

<!ELEMENT phone (fax | email | url)>

表示“phone”元素中只能包含其中之一的子元素。

混合元素类

混合元素类包含了文本和子元素,即一个元素可以同时包含纯文本和子元素。
用<!ELEMENT ... (#PCDATA | e1 | e2 |...) > 或<!ELEMENT ... (#PCDATA , e1 , e2 , ...) > 来定义.例如:

<!ELEMENT title (#PCDATA | emp | publisher)>

表示元素"title"可以包含文本和子元素“emp”和“publisher”这其中一个。

<!ELEMENT title (#PCDATA , emp , publisher)>

表示“title”元素依次包含文本和子元素“emp”和“publisher”。

3.1.2元素次数约束

使用+和*以及?表示元素的出现次数。+表示元素至少出现一次,*表示元素可以出现零次或多次。对于一些特殊的元素出现次数约束,还可以使用?表示元素可以出现零次或一次。
例如:

<!ELEMENT title (#PCDATA , emp , publisher)*>

表示“title”元素依次包含文本和子元素“emp”和“publisher”,这些元素可以任意出现零次或多次。

3.2属性约束

DTD可以用ATTLIST关键字定义XML文档中的属性,约束属性的类型、值域和默认值等。

3.2.1属性类型

CDATA(Character Data)

字符数据类型,表示元素的属性可以是任何字符串,没有限制。
在这里插入图片描述
可以看到不管是什么字符串,都没有任何报错

ID(Identifier)

标识符类型,表示元素的属性值必须是唯一且非空的,它必须以字母或下划线开头,后跟字母、数字、连字符、下划线或句点的任意组合。

可以看到不满足条件的都会报错
在这里插入图片描述
我们将其修改成符合格式的:
在这里插入图片描述

IDREF(ID Reference)

引用标识符类型,表示元素的属性值必须引用其他元素的ID属性值。
在这里插入图片描述

ENTITY(实体类型)

表示元素的属性值必须是一个已定义的实体名称。
在这里插入图片描述
在这个例子中,我们使用#ENTITY声明了一个叫做author的实体,它的值是一个字符串John Doe。同时我们还声明了一个名为company的实体,它的值是ABC corp。在使用这些实体时,我们可以在合适的地方通过实体引用符(&和;)来调用这些实体,如上例中的&author;和&company;。

用实体的目的是在XML文档中共享和重复使用一些预定义的数据或代码块,可以提高代码的重用性和维护性

NMTOKEN(Name Token)

名称标记类型,表示元素的属性值必须是一个有效的名称标记,只能由字母、数字、下划线等字符组成,且不能以数字开头。通常用来实现非空需求,但它可重复。

3.2.2属性描述

#REQUIRED

属性值是必需的。
在这里插入图片描述

#IMPLIED

属性值是可选的,但在某些情况下可能需要使用它。
在这里插入图片描述

#FIXED value

定义固定属性值。这个属性值不能被修改。
在这里插入图片描述

好啦,今天的分享就到此为止!希望你看完本篇文章有所收获,祝你变得更强!!!

XML之dtd xml有两个作用,分别是:①数据交互 ②做配置(1)有且只有一个根元素 错误演示: 注意:在出现两个根元素时,代码会出现报错 (2)xml标签大小写正确区分 错误演示: 注意:当前后代码的字母大小写不一致,会出现报错 (3)正确使用结束标签 (4)正确嵌套标签 错误演示: 注意:当根标签嵌套错误或者结束标签使用不正确,也会出现报错 (5)使用了合法的标签名 (6)定义有效的属性 注意:在代码中不能使用无效标签名,例如用“?”符号来当做标签,也会出现错误在xml中加入dtd声明需要用: !DOCTYPE 阅读详情

相关推荐

闲置服务器之代理服务器篇

这台服务器是在阿里云免费白嫖的,天工开物计划,阿里给的300块无门槛优惠券,买了一台新加坡的境外服务器,288,刚刚抵扣完,因为是境外服务器,能够访问一些国内不能访问的网站,所以本文章仅从技术的角度来搭建代理服务器,使用时,请自觉遵守国家相关规定,如有任何违法行为,与本人无任何关系!!!。本文使用tinyproxy来搭建代理服务器。

m0_50281408的博客 2104

Xml(DTD)

文章目录一、什么是格式良好的xml👌 二、元素的定义 1、在xml中加入DTD声明😦 2、元素的分类 3、元素的限制 三、属性的定义2.属性类型type⬇3.属性描述⬇🤔了解的差不多,接下来我们看两个案例 案例1:写一个DTD限制servlet相关标签案例2:写一个DTD限制config.xml1)DTD? 文档类型定义是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。 2)作用:...

weixin_67450855的博客 3090

TSEND_C指令错误代码解析与实战排错指南

本文详细解析西门子PLC中TSEND_C指令的常见错误代码,包括连接建立、参数配置、资源限制和网络通信等错误类型。针对错误代码80C4等典型问题提供实战排错指南,帮助工程师快速诊断和解决工业通信中的连接故障,提升系统可靠性。

backprop5master的博客 411

XML配置文件(DTD详细讲解)

Extensible Markup Language(可扩展标记语言),简称XML,类似于HTML,用来传输和存储数据。可扩展标记语言是什么?有一个根元素(根元素就像HTML中的标签一样,所有的其他标签都是写在该标签中的,所有该标签只能有一个) 在XML中加入DTD声明 ,root---->根元素例如:该代码中的根元素为,那么我们语句改为。然后我们定义规范时的代码都是写...

m0_65725031的博客 6269

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

《Linux运维总结:Ubuntu22.04忘记root密码解决方案》

东城绝神 4459

AutoCAD2016安装破解教程

AutoCAD2016安装破解教程。本人亲自实验,破解成功,有效。以64位为例。 工具/原料   笔记本电脑 AutoCAD2016安装包 AutoCAD2016注册机(xf-adsk2016_x64.exe)链接:http://pan.baidu.com/s/1cAZQA windows7/8/8.1/10-32...

weixin_33804990的博客 1万+

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

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

Gavin 4万+

高通 vs MTK vs 海思:三大平台 ISP 架构横向对比与实战差异分析

随着移动影像能力成为智能终端差异化竞争的核心维度,ISP(Image Signal Processor)架构日益重要。高通、MTK、海思三大 SoC 厂商在 ISP 设计上各具特色,不仅在图像处理链路、模块集成度、算法加速路径等方面存在显著差异,同时也决定了终端厂商在成像质量、调试复杂度与扩展能力上的实际表现。本文将基于真实平台项目经验,横向对比三大主流平台的 ISP 架构关键指标,系统分析其在实际开发过程中的能力边界、工程成本与调优空间,帮助工程师更精准地进行平台选型与优化策略制定。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3929

xml之dtd约束详解

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

林高禄 9643

PyTorch实战(25)——使用PyTorch构建DQN模型

深度Q网络 (Deep Q-learning Network, DQN) 在强化学习领域取得了巨大的成功和广泛的应用,PyTorch 结合 gymnasium 库为我们提供了强大的工具,支持在各种强化学习环境中测试不同类型的深度强化学习模型。在本节中,我们使用 PyTorch 框架构建使用卷积神经网络架构的 DQN 模型,模型通过自主学习掌握 Atari 经典游戏《Pong》的操作策略,最终实现击败电脑对手的竞技目标。

盼小辉丶的博客 3449

MC_SetOverride指令详细应用介绍(基恩士PLC)

基恩士KV系列PLC和松下总线绝对值伺服运动控制(详细配置+轴控完整ST源代码)

RXXW_Dor的博客 334

XML之DTD文档

本博客内容参考《深入体验Java Web开发内幕--核心基础》 DTD 目录 DTD 前言 一 定义 二 初识 三 在xml文档中引入外部 dtd 文件 四 在XML中嵌入 DTD 定义语句 五 DTD语法细节 六 属性定义 前言 在大家学习使用Spring的时候,一定发现了相关xml文件上面总有一段代码 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.or.

Dcpnet 1282

46、大数据助力SDN优化流量管理与控制器

本文探讨了大数据在软件定义网络(SDN)中的应用,重点分析了如何利用大数据技术优化SDN控制器的可扩展性和弹性。通过介绍SDN控制器的核心功能及其面临的挑战,提出了集中式、分布式、混合式和分层式控制器放置策略,并结合大数据分析系统架构与技术,详细阐述了在控制器放置优化、流聚合和备份路径识别等场景中的实际应用。文章还给出了大数据分析在SDN控制器优化中的操作流程与优势,展望了未来结合人工智能与物联网的发展方向,强调了数据安全与算法效率的重要性。

xx56789的博客 86

XML—DTD、 Schema

ELEMENT 元素名(子元素名称)>举例:<!ELEMENT 书籍列表(计算机书籍)>在其他Schema中重复使用您的Schema创建由标准类型衍生而来的您自己的数据类型在相同的文档中引用多重的Schema。

一起加油吧~ 2742

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【XML】 DTD 详解

文档类型定义(DTD) 可定义合法的XML文档构建模块 ,它使用一系列合法的元素来定义文档的结构。 DTD可被声明于XML文档中,也可做为一个外部引用。 1.在内部声明 : 如果在内部声明的DTD包含在XML源文件中,它需要通过DOCTYPE语法包装起来进行声明: 格式如下: <!DOCTYPE 根元素 [元素声明]> 具体例子: &l...

立志欲坚不欲锐,成功在久不在速度 453

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

XML DTD简介

內部DTD一個"""""""""""""""""""""""""""""""""""" 步。一個XML文件必須遵守文件類型描述DTD(Document Type Definition)中 定義的種種規定。所有的文件都是由序言和文件體構成的。序言中包含了XML聲明, 在序言中還可以包含DTD定義。最簡單的使用DTD的方法是在XML文件的序言部分加入一個DTD描述,加入的位置是 緊接在XML處

自强不息.厚德载物 2247

XML的约束——DTD

XML文档中的标签和标签继承性称为模式。 5.使用DTD 最后看看DTD代码案例(与XML相连)——text.dtd

m0_62019369的博客 1379

XML之dtd约束

在我们建立xml约束之前,要先分析xml的结构。以这个没有配置好的demo为例。 1、与,或 2、 次数 1、混合元素: 以根标签为例: 那要怎么样才能放多个呢?这就涉及上面的元素限制了 2、文本元素: ......

qq_62331938的博客 1191

给XML文件定义DTD

DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,即我们所创建的标记,是根据我们应用的实际情况来创建的。想要创建一份完整性高、适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学、建筑、工商、行政。DTD定义的

创世纪 924

xml DTD验证

1、DTD:Document Type  Definition 文档类型定义 XML文件: 格式良好的XML:只要符合语法规范,就是格式良好的 合法的: 经过验证并且验证通过的就是合法的   2、先将DTD验证规则和XML文件关联起来     现在已经关联起来,但是还没有验证 3、什么时候验证呢? Php文件加载xml文件的时候验证 alidateOnParse

whjwhja6的专栏 876

XML约束之DTD约束详解

1、DTD介绍      DTD(Document Type Definition),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等。 2、DTD重点要求      开发中,我们很少自己编写DTD约束文档,通常情况我们都是通过框架提供的DTD约束文档,编写对应的XML文档。常见框架使用DTD约束有:struts2、hibernate等。   ...

weixin_42078450的博客 859

XML:DTD约束

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

鄧旧人博客 262

XML之DTD

DTD是一种文档类型定义(Document Type Definition),用于定义XML文档结构和规则。它描述了XML文档应该包含哪些元素、属性和实体,以及它们之间的关系和约束条件。DTD定义了XML文档的结构和模式,提供了一种用于验证XML文档格式是否正确的方式。DTD通常作为一种单独的XML文档存在,通过DOCTYPE声明包含在XML文档中。ELEMENT 元素名称 元素类型>ATTLIST 元素名称 属性名称 属性类型 设置说明>

weixin_74352229的博客 495
上一篇: Map详解
下一篇: Java集合框架
许潜行
博客等级 码龄4年 302粉丝 75原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值