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文档类型定义

DTD不是xml文档,它是xml是约束。在DTD中定义元素,定义属性,然后某个xml与这个DTD关联,这时xml中只能出现在DTD中定义的元素了。

DTD定义元素语法

<!ELEMENT 元素名 元素描述>

  • <!ELEMENT students (student+)>,定义元素students,其内容为1~N个student元素
  • <!ELEMENT students (#PCDATA)>,定义元素students,内容为纯文本
  • <!ELEMENT student(name,age,sex)>,定义元素student,内容依次为name、age、sex元素 。
  • <!ELEMENT student ANY>定义名为student元素,内容为意。
  • <!ELEMENT student EMPTY>,定义名为student元素,不能有内容,即空元素,注意空元素是可以有属性的。

子元素出现的次数

可以使用*、+、?来指定子元素出现的次数。

  • *:可以出现0~N次;
  • +:可以出现1~N次;
  • ?:可以出现0~1次;
    例如:
    <!ELEMENT student(name?,hobby*,score,sex)>。

枚举类型

<!ELEMENT gfs(g1 | g2)*>多次选择。

DTD的分类

  • 内部DTD和外部DTD
  • 外部DTD分为:SYSTEM(本地的)和PUBLIC(网上的)
内部DTD:
  • 位置:内部DTD在文档声明下面,在根元素上面;
  • 语法格式:放到<!DOCTYPE 根元素名称 [和]>之间;
  • 只对当前XML文档有效;
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE students[
<!ELEMENT students(student+)>
<!-- 定义元素students,其内容为1~N个student元素 -->
<!ELEMENT student(name,age,sex)>
<!-- 定义元素student,内容依次为name、age、sex元素 -->
<!ELEMENT name(#PCDATA)>
<!-- 定义元素name,内容为纯文本 -->
<!ELEMENT age(#PCDATA)>
<!-- 定义元素age,内容为文本 -->
<!ELEMENT sex(#PCDATA)>
<!-- 定义元素sex,内容为文本 -->
]>
<students>
    <student number="0001">
        <name>zhangsan</name>
        <age>23</age>
        <sex>male</sex>
    </student>
    <student number="0002">
        <name>lisi</name>
        <age>22</age>
        <sex>female</sex>
    </student>
</students>
本地 SYSTEM DTD
  • 位置:本地硬盘上;
  • 语法格式:<!DOCTYPE 根元素 SYSTEM "dtd文件路径">直接定义元素或属性即可;
  • 本地所有XML文档都可以引用这个dtd文档;
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE students SYSTEM "students.dtd">
<students>
    <student>
        <name>zhangsan</name>
        <age>23</age>
        <sex>male</sex>
    </student>
    <student number="0002">
        <name>lisi</name>
        <age>22</age>
        <sex>female</sex>
    </student>
</students>

students.dtd

<!ELEMENT students(student+)>
<!ELEMENT student(name,age,sex)>
<!ELEMENT name(#PCDATA)>
<!ELEMENT age(#PCDATA)>
<!ELEMENT sex(#PCDATA)>
PUBLIC DTD
  • 位置:放到网络上。
  • 语法:<!DOCTYPE 根元素 PUBLIC "dtd文件" "dtd路径">
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE students PUBLIC "-//qdmmy6//DTD ST 1.0//ZH" "http://www.qdmmy6.com/xml/dtds/st.dtd">
<!-- 官网给定的名称和地址"-"表示非官方 -->
<students>
    <student>
        <name>zhangsan</name>
        <age>23</age>
        <sex>male</sex>
    </student>
</students>

DTD定义属性

语法

<!ATTLIST 元素名 属性名 属性类型 设置说明>
例如:
<!ATTLIST student number CDATA #REQUIRED>,给student元素定义属性number,类型为文本,这个默认是必须的。

属性类型

  • CDATA :文本类型;
  • Enumerated:枚举类型;
  • ID:ID类型,ID类型属性用来标识元素的唯一性。即元素的ID属性值不能与其他元素的ID属性值相同,ID值不能以数字开头。
  • IDREF:ID引用类型,用来指定另一个元素,与另一个元素建立关联关系,IDREF类型的属性值必须是一个元素的ID。

属性设置说明

  • #REQUIRED: 说明属性是必须的;
  • #IMPLIED: 说明属性是可选的;
  • 默认值:在不给出属性时,使用默认值;
<!ATTLIST student number ID #REQUIRED>
<!-- 为student定义属性number,类型为ID,该属性必须是必须出现的。 -->
<!ATTLIST student sex(male | female) "male">
<!-- 为student定义属性sex,类型为枚举,默认值为“male” -->
<!ATTLIST student friend IDREF #IMPLIED>

实体

定义实体:定义变量。
引用实体:使用变量。

实体分类

  • 一般实体:定义实体在DTD中,实体应用在xml中。
  • 参数实体:定义实体在DTD中,实体引用在DTD(内部DTD不太好使)中。

定义一般实体

格式:
<!ENTITY 实体名 "实体值">
<!ENTITY ch "中华人民共和国">

引用一般实体

<student number="ID_001" name="zhangsan"  country="&ch;"/>
<student number="ID_002" name="zhangsan" friend="ID_001" country="&ch;"/>

定义参数实体

格式:
<!ENTITY % 实体名 "实体">

<!ENTITY % friend "sutdent friend IDREF #IMPLIED">

引用参数实体

<!ATTLIST %friend;>

相当于转换成:

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

相关推荐

深入解析UEFI PEI阶段:PeiCore的三次调用与内存管理机制

本文深入解析UEFI启动流程中的PEI阶段,重点探讨PeiCore的三次调用与内存管理机制。详细介绍了PeiCore在临时内存中的初始化、堆栈切换至永久内存的过程,以及最终交接给DXE阶段的关键步骤,为开发者提供调试技巧与实战案例,助力解决UEFI启动问题。

weixin_28452161的博客 649

【XML系列】----DTD约束(一)

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。 为了能够编写一个格式良好且有效的XML文档,我们需要在XML文档之前添加DTD或者schema约束。 常用的约束有:   1.DTD约束   2.Schema约束 约束在XML文档中的作用:   XML文档的约束可以规定该文档都有哪些标签,包括标签的属性等等,都可以在约束中进行规范编写。 这篇文章我

Laughing_Vzr_KISS Formula 924

【Unity3D渲染】Unity3d实现Photoshop的各种图层混合模式

Adobe Photoshop图层混合原理、Unity ShaderLab图层混合实现

a310989583的专栏 2434

XML介绍之DTD约束语法详解一

我们在编写XML文件时,可能要使用某种约束对于文件中的元素进行约束、限定XML的约束有DTD、Schema约束,这里,将先为大家详细介绍XML中的DTD约束,随后再为大家介绍Schema约束。 DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。 它使用一系列的合法元素来定义文档结构。 下面,让我们开始学习 DTD 吧! 先看一下目录: 内容目录

lijizh1013的专栏 932

ArcGIS License Server点击启动没反应,许可管理器无法启动怎么办

4 当我们再打开ArcGIS License Server Administrator的时候。3 在【服务】中找到【ArcGIS License Manager】双击。无法启动ArcGIS License Server的情况。在使用ArcGIS的过程中,我们经常会遇到。专注GIS领域知识分享,交流行业软件技巧。欢迎关注,不定期分享GIS各种问题和技巧。1 右击我的电脑——【管理】服务状态——启动,确定即可。启动类型选择——自动。

GIS蒲公英的博客 2万+

海康威视VS互联网大厂:薪资、福利、工作强度全方位对比

本文全面对比了海康威视与互联网大厂在薪资、福利和工作强度等方面的差异。海康威视提供稳定的薪资结构和较低的工作强度,适合追求专业深度的职场人;而互联网大厂则以高薪和快速成长吸引人才,但工作压力较大。文章还分析了职业发展路径和长期价值,帮助求职者做出明智选择。

weixin_29171129的博客 386

XML(4)_XML 约束_DTD

XML XML 约束_DTD ● 什么是 DTD DTD(Document Type Definition),文档类型定义,用来约束 xml 文档。例如要求 xml 文档的根元素必须是 <students>,在 <students> 元素下可以包含 0~n 个 <students> 元素,每个 <students> 元素必须有一个 number...

魏宇轩 708

光学系统仿真软件:OSLO_(13).衍射光学元件设计v1

目标函数是设计DOE的关键步骤之一。目标函数可以是一个具体的光强分布,也可以是一个特定的波前形状。在仿真软件中,目标函数通常用数学表达式或数据文件来定义。假设我们需要设计一个二元相位掩模,使其在特定位置生成三个焦点。我们可以定义一个目标函数来描述这三个焦点的光强分布。# 定义目标函数"""定义一个多焦点目标函数:param x: 横坐标:param y: 纵坐标:param z1: 第一个焦点的深度:param z2: 第二个焦点的深度:param z3: 第三个焦点的深度。

kkchenjj的博客 1001

xml之dtd约束详解

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

林高禄 9642

改进后的yolov8导出进行部署到rk3588上时,导出为onnx格式报错aten::fft_fft2算子不支持导出...如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1795

【nvidia-B200 生产环境】NVIDIA 570.124.06+Cuda12.8 Ubuntu22.04 nccl-test 一键部署脚本(免修改复制即用)

目录1. 初始化与日志记录2. 安装基础工具与配置更新3. NVIDIA 驱动安装 570.124.064. 安装 Mellanox OFED 24.10-2.1.8.05. 安装 CUDA 12.86. 安装 NCCL 和测试7. 配置 rc.local 和其他优化8. B200 单独步骤9. 最终测试与重启10. 完整生产脚本,复制即可直接使用总结 功能: 设置日志目录和日志文件路径。 使用 命令将标准输出和错误输出同时写入日志文件和终端。 记录脚本开始时间,并计算开始的秒数

jundao1997的专栏 2797

DTD约束&schema约束学习

DTD约束 概念 ​ DTD是文档类型定义(Document Type Definition)。DTD 可以定义在 XML 文档中出现的元素、这些元素出现的次序、它们如何相互嵌套以及XML文档结构的其它详细信息。 约束体验 体验效果说明:当编写xml文档时不符合指定dtd约束时,进行提示xml编写错误,如下图: 体验步骤: 步骤1:复制bookshelf.dtd文件 步骤2:bookshelf.dtd文件内容如下 <!ELEMENT 书架 (书+)> <!ELEMENT 书 (书名,作者

weixin_43521028的博客 1231

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

XML之DTD约束

一 DTD约束的基础知识 1 什么是DTD约束? DTD即是文档类型定义,可定义合法的XML文档构建模块,它使用一系列合法的元素来定义文档的结构。 2 内部的 DOCTYPE 声明 假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中: &lt;!DOCTYPE 根元素 [元素声明]&gt; 3 外部文档声明 假如 DTD 位于 XML 源文件的外...

Geffin的博客 407

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

xml之dtd约束

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

weixin_45311284的博客 267

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: XML的基础
下一篇: Schema
小青蛙哎呀
博客等级 码龄10年 56粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值