📅  最后修改于: 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中的任何属性。它是可选的。