📜  DTD-属性

📅  最后修改于: 2020-11-10 04:43:55             🧑  作者: Mango


在本章中,我们将讨论DTD属性。属性提供有关元素的更多信息,或更准确地说,它定义元素的属性。 XML属性始终采用名称/值对的形式。元素可以具有任意数量的唯一属性。

属性声明在很多方面与元素声明非常相似,除了一种。您不必为元素声明允许的内容,而是为每个元素声明允许的属性的列表。这些列表称为ATTLIST声明。

句法

DTD属性声明的基本语法如下-

在上面的语法中-

  • 如果元素包含属性,则DTD属性以<!ATTLIST关键字开头。

  • element-name指定要应用属性的元素的名称。

  • attribute-name指定元素名称中包含的属性名称。

  • attribute-type定义属性的类型。我们将在以下各节中对此进行更多讨论。

  • attribute-value采用属性必须定义的固定值。我们将在以下各节中对此进行更多讨论。

以下是DTD中属性声明的简单示例-




   
   
   
]>

Tanmay Patil

让我们看一下上面的代码-

  • 从XML声明开始,带有以下语句-


  • XML标头之后紧跟的是文档类型声明,通常称为DOCTYPE,如下所示-

    DOCTYPE通知解析器DTD与该XML文档相关联。 DOCTYPE声明在元素名称的开头带有感叹号(!)。

  • 以下是DTD的正文。在这里我们声明了element和attribute-

  • 元素名称的属性ID定义如下:

    在这里,属性类型为CDATA ,其值为#REQUIRED

属性声明规则

  • 必须使用属性列表声明在文档类型定义(DTD)中声明XML文档中使用的所有属性。

  • 属性只能出现在开始或空标记中。

  • 关键字ATTLIST必须为大写

  • 给定元素的属性列表中不允许有重复的属性名称。

属性类型

声明属性时,可以指定处理器应如何处理值中显示的数据。我们可以将属性类型分为三个主要类别:

  • 字符串类型

  • 标记类型

  • 枚举类型

下表提供了不同属性类型的摘要-

Sr.No. Type & Description
1

CDATA

CDATA is character data (text and not markup). It is a String Attribute Type.

2

ID

It is a unique identifier of the attribute. It should not appear more than once. It is a Tokenized Attribute Type.

3

IDREF

It is used to reference an ID of another element. It is used to establish connections between elements. It is a Tokenized Attribute Type.

4

IDREFS

It is used to reference multiple ID’s. It is a Tokenized Attribute Type.

5

ENTITY

It represents an external entity in the document. It is a Tokenized Attribute Type.

6

ENTITIES

It represents a list of external entities in the document. It is a Tokenized Attribute Type.

7

NMTOKEN

It is similar to CDATA and the attribute value consists of a valid XML name. It is a Tokenized Attribute Type.

8

NMTOKENS

It is similar to CDATA and the attribute value consists a list of valid XML name. It is a Tokenized Attribute Type.

9

NOTATION

An element will be referenced to a notation declared in the DTD document. It is an Enumerated Attribute Type.

10

Enumeration

It allows defining a specific list of values where one of the values must match. It is an Enumerated Attribute Type.

属性值声明

在每个属性声明中,您必须指定该值在文档中的显示方式。您可以指定属性-

  • 可以有一个默认值

  • 可以有一个固定值

  • 是必须的

  • 被暗示

默认值

它包含默认值。这些值可以用单引号(’)或双引号(“)引起来。

句法

以下是value的语法-

其中default-value是定义的属性值。

以下是带有默认值的属性声明的简单示例-




   
   
   
]>

Tanmay Patil

在此示例中,我们具有名称元素,其属性ID的默认值为0 。默认值用双引号引起来。

固定值

当您要指定属性值是恒定且不能更改时,使用#FIXED关键字后跟固定值。固定属性的常见用法是指定版本号。

句法

以下是固定值的语法-

其中#FIXED是定义的属性值。

以下是带有FIXED值的属性声明的简单示例-




  
  
  
]>

we are a free online teaching faculty

在此示例中,我们使用关键字#FIXED表示值“ tutorialspoint”是元素的属性名称的唯一值。如果我们尝试更改属性值,则会给出错误。

以下是无效的DTD-




  
  
  
]>

we are a free online teaching faculty

所需值

每当您需要指定属性为必需时,请使用#REQUIRED关键字。

句法

以下是#REQUIRED的语法-

其中#REQUIRED是定义的属性类型。

以下是使用#REQUIRED关键字的DTD属性声明的简单示例-




   
   
   
]>

Tanmay Patil

在这个例子中,我们使用了#REQUIRED关键字指定属性ID必须为元素名称名称提供

隐含价值

声明属性时,必须始终指定一个值声明。如果您要声明的属性没有默认值,没有固定值,并且不是必需的,那么您必须声明该属性为implied 。关键字#IMPLIED用于指定隐含属性。

句法

以下是#IMPLIED的语法-

其中#IMPLIED是定义的属性类型。

以下是#IMPLIED的简单示例




   
   
   
]>

在此示例中,我们使用了关键字#IMPLIED,因为我们不想指定要包含在元素name中的任何属性。它是可选的。