首页 > 其他分享 >开心档之DTD - 元素

开心档之DTD - 元素

时间:2023-08-03 18:00:21浏览次数:30  
标签:XML 开心 定义 元素 DTD 文档 属性

开心档之DTD - 元素

目录

开心档之DTD - 元素

元素的定义

元素的分类

基本元素

衍生元素

元素的属性

结语



​编辑

 

 

DTD(Document Type Definition)是一种文档类型定义语言,它用于定义XML文档中所包含的元素以及元素之间的关系。在DTD中,元素是非常重要的概念,本文将详细介绍DTD中的元素。

元素的定义

在DTD中,元素被定义为XML文档中的基本构建单元。一个元素可以包含文本、属性或其他元素。元素的定义方式如下:

<!ELEMENT 元素名 元素类型>

其中,元素名表示元素的名称,元素类型表示元素的类别。元素类型可以是:

EMPTY:表示元素为空,不包含任何内容

ANY:表示元素可以包含任何文本和标记

(#PCDATA):表示元素可以包含包含文本

子元素类型:表示元素可以包含指定类型的其他元素。

元素的分类

DTD中的元素分为两种:基本元素和衍生元素。

基本元素

基本元素是文档定义过程中最基本的构建单元,它们不依赖于任何其他元素而定义。在DTD中,基本元素通常包括文本、数字和布尔值等基础数据类型,以及其他可以作为XML文档根元素的元素。

衍生元素

衍生元素是根据其他元素而定义的,它们通常是基本元素的组合或者修改。在DTD中,衍生元素通常包括组合元素、可选元素、重复元素、序列元素和选择元素等。

组合元素:组合元素是将多个子元素组合在一起的元素,通常用符号“,”表示。例如,若有一个元素Person,其中包含了三个子元素Name, Age, Gender,则其定义为:<!ELEMENT Person (Name,Age,Gender)>。

可选元素:可选元素是指XML文档中可以存在但不是必须的元素。在DTD中,可选元素可以用符号“?”表示。例如,若一个元素包含一个可选的子元素Address,则其定义为:<!ELEMENT Employee (Name,Age,Gender,Address?)>。

重复元素:重复元素是指XML文档中可以出现多次的元素。在DTD中,重复元素可以用符号“*”表示。例如,若一个元素包含多个子元素Address,则其定义为:<!ELEMENT Employee (Name,Age,Gender,Address*)>。

序列元素:序列元素是指XML文档中子元素的出现顺序。在DTD中,序列元素可以用符号“,”表示。例如,若一个元素先后包含子元素Name, Address和Phone,则其定义为:<!ELEMENT Employee (Name,Address,Phone)>。

选择元素:选择元素是指XML文档中多个子元素中只有一个可以出现的元素。在DTD中,选择元素可以用符号“|”表示。例如,若一个元素中只能出现名为Phone或Fax的子元素,则其定义为:<!ELEMENT Contact (Phone|Fax)>。

元素的属性

除了可以包含其他元素以外,元素还可以包含属性。属性是用于描述元素特性的构建单元,它们被定义为元素的子元素。DTD中的属性定义格式如下:

<!ATTLIST 元素名 属性名1 属性类型1 属性默认值1 属性名2 属性类型2 属性默认值2 ... 属性名n 属性类型n 属性默认值n>

其中,元素名表示该元素所包含的属性,属性名和属性类型分别表示属性的名称和数据类型。属性默认值是该属性的默认值。属性的数据类型包括字符串、整数、浮点数、日期时间等基本类型。

元素中的属性可以使用实体引用(Entity Reference)进行转义,以避免XML特殊字符的误解。例如,<代表<、>代表>、&代表&、"代表"、'代表单引号等。

结语

本文详细介绍了DTD中的元素以及元素的分类和属性。在XML文档定义过程中,元素是非常重要的构建单元,掌握DTD中元素的定义和使用方法对于正确的XML文档定义至关重要。

标签:XML,开心,定义,元素,DTD,文档,属性
From: https://www.cnblogs.com/gddg/p/17604066.html

相关文章

  • jquery 点击元素以外任意地方隐藏该元素的方法
    //点击a元素内除b元素外的地方隐藏c元素$('#a').on('click',function(e){varcon=$(".b");//点击区域划分if(!con.is(e.target)&&con.has(e.target).length===0){//设置目标区域外if($(".b").is(":visible")){......
  • HTML5与HTML4的区别,新增了哪些元素
    注:部分格式编写存在<>封闭错误,只为在博客中显示,并非正确写法。1.  HTML5推出的理由解决Web上存在的问题:Web浏览器间的兼容性低:在一个浏览器中可以运行的HTML、Css、Javascript,在另一个浏览器中不能运行。原因:各浏览器规范不统一,没有被标准化。解决方案:使各浏览器的功能符......
  • 18.vector越界访问下标,map越界访问下标?vector删除元素时会不会释放空间?
    18.vector越界访问下标,map越界访问下标?vector删除元素时会不会释放空间?1.vector越界访问下标std::vector是C++标准库中的一种动态数组,其大小可以根据需要进行调整。当你试图访问一个不存在的元素,即访问超出其当前大小范围的索引时,将会发生越界访问。在C++中,如果你使用operator[......
  • 9.vector与list的区别与应用?怎么找某vector或者list的倒数第二个元素
    9.vector与list的区别与应用?怎么找某vector或者list的倒数第二个元素1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(......
  • vue 通过css 给html元素增加前缀红色星号
    <el-form-item>前面增加红色星号要为<el-form-item>的label增加红色星号,你可以使用CSS中的伪元素::after或::before来实现。下面是如何在样式中添加红色星号的示例:<el-form-itemclass="red-label"label="物流商信息"></el-form-item><stylescopedlang="scss"......
  • css 中强制换行后,伪类元素变形,用到的flex-shrink 属性
    之前都没用过这个属性,最近做项目遇到一个不同屏幕下可能会换行的问题,设置了强制不换行,但是伪类元素就没挤没了,请教了同事,用到了flex-shrink属性然后我就去看了看这个属性的用法,简单记录一下flex-shrink属性指定了flex元素的收缩规则。flex元素仅在默认宽度之和大于容器的时......
  • js处理数组,删除指定元素
    //获取元素下标Array.prototype.indexOf=function(val){for(vari=0;i<this.length;i++){if(this[i]==val){returni;}}return-1;}//根据下标删除元素Ar......
  • 搭建帮助中心到底要重点关注哪些元素呢?
    搭建帮助中心的目标是给用户提供全面的问题解决方案,所以我们在搭建帮助中心的时候就要多去注意“用户”“问题”“解决方案”“使用方法”这些元素。今天looklook就从这些重点展开,帮助大家深入了解一下帮助中心。帮助中心的用户在帮助中心中,我们对用户进行了细分,以满足不同用户的需......
  • IOS Safari、微信小程序 img或者其他标签元素出现黑边、黑线阴影
    这个问题最开始出现在小程序上,然后在社区找到一个一样得案例案例:https://developers.weixin.qq.com/community/develop/doc/000608420706f0d8f65f4e8c95b800一开始以为是小程序的BUG,后来认真看文字才发现在IOS的Safari浏览器里就已经存在,ios的BUG了...,并且复现的......
  • 因为子元素的浮动,导致父元素的边框变成一条线
    因为子元素的浮动,导致父元素的边框变成一条线,如下:<style>.container{width:500px;border:1pxsolid#ccc;}p{float:left;}</style><body><divclass="container">......