【JavaWeb】DTD语法

152 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

哈喽大家好,这里是颜颜颜yan_的掘金博客~

个人主页:颜颜颜yan_

个人专栏:JavaWeb专栏

❀欢迎关注👀点赞👍收藏❤留言🖊

还请大家多多指教吖~

本期我们一起了解一下DTD语法吧~

DTD语法

在编写DTD文档时,需要遵循一定的语法。DTD的结构一般由元素类型定义、属性定义、实体定义、记号(notation)定义等构成,一个典型的文档类型定义会把将来要创建的XML文档的元素结构、属性类型、实体引用等预先进行定义。

元素定义

元素是XML文档的基本组成部分,在DTD定义中,每一条语句用于定义一个元素,基本语法格式如下:

< !ELEMENT 元素名称 元素内容>

元素名称是自定义的名称,用来定义被约束XML文档中的元素。

元素内容是对元素包含内容的声明,包括数据类型和符号两部分。主要包括5种内容形式。

PCDATA

PCDATA定义

PCDATA表示元素中嵌套的内容是普通文本字符串,其中,关键字PCDATA是Parsed Character Data的简写。例如表示书名所嵌套的内容是字符串类型。

子元素:说明元素包含的元素。通常用一对圆括号()将元素中要嵌套的一组子元素括起来。

例如,< !ELEMENT 书 (书名,作者,售价) >表示元素书中要嵌套书名、作者、售价等子元素。

混合内容

表示元素既可以包含字符数据,也可以包含子元素。混合内容必须被定义零个或多个。 例如,< !ELEMENT 书 (#PCDATA|书名)*>表示书中嵌套的子元素书名包含零个或多个,并且书名是字符串文本格式。

EMPTY

表示该元素既不包含字符数据,也不包含子元素,是一个空元素。如果在文档中元素本身已经表明了明确的含义,就可以在DTD中用关键字EMPTY表明空元素。例如,,其中br是一个没有内容的空元素。

ANY

表示该元素可以包含任何的字符数据和子元素。例如,表示联系人可以包含任何形式的内容。但在实际开发中,应该尽量避免使用ANY,因为除了根元素外,其他使用ANY的元素都将失去DTD对XML文档的约束效果。

常见符号的作用

  • 问号[?]:表示该对象可以出现0次或1次。
  • 星号[*]:表示该对象可以出现0次或多次。
  • 加号[+]:表示该对象可以出现1次或多次。
  • 竖线[|]:表示列出的对象中选择1个。
  • 逗号[,]:表示对象必须按照指定的顺序出现。
  • 括号[()]:用于给元素进行分组。

属性定义

定义元素的同时,还可以为元素定义属性。语法格式如下:

元素名:属性所属元素的名字。

属性名:属性的名称。

属性类型:用来指定该属性是属于哪种类型。

设置说明:用来说明该属性是否必须出现。

总结

以上就是本期的学习内容啦~

如果对您有帮助,可以订阅专栏噢,持续更新呢~

👍点赞:你的认可是我创作的动力!

❤收藏:你的青睐是我努力的方向!

🖊 评论:你的意见是我进步的财富!