在本章中,我们将讨论DTD属性。属性提供有关元素的更多信息,或更准确地说,它定义元素的属性。XML属性始终采用名称/值对的形式。元素可以具有任意数量的唯一属性。 属性声明在很多方面与元素声明非常相似,除了一种方式。您不必为元素声明允许的内容,而是为每个元素声明允许的属性的列表。这些列表称为ATTLIST声明。 句法DTD属性声明的基本语法如下-
<!ATTLIST element-name attribute-name attribute-type attribute-value>
在上面的语法中-
例以下是DTD中属性声明的简单示例- <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id = "123">Tanmay Patil</name> </address> 让我们看一下上面的代码-
<?xml version = "1.0"?>
<!DOCTYPE address [
<!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )>
<!ATTLIST name id CDATA #REQUIRED>
属性声明规则
属性类型声明属性时,可以指定处理器应如何处理值中显示的数据。我们可以将属性类型分为三个主要类别:
下表提供了不同属性类型的摘要-
属性值声明在每个属性声明中,您必须指定该值在文档中的显示方式。您可以指定属性-
默认值它包含默认值。这些值可以用单引号(')或双引号(“)引起来。 句法 以下是value的语法-
<!ATTLIST element-name attribute-name attribute-type "default-value">
其中default-value是定义的属性值。 例 以下是带有默认值的属性声明的简单示例- <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA "0"> ]> <address> <name id = "123"> Tanmay Patil </name> </address> 在此示例中,我们具有名称元素,其属性ID的默认值为0。默认值用双引号引起来。 固定值当您要指定属性值是恒定且不能更改时,使用#FIXED关键字后跟固定值。固定属性的常见用法是指定版本号。 句法 以下是固定值的语法-
<!ATTLIST element-name attribute-name attribute-type #FIXED "value" >
其中#FIXED是定义的属性值。 例 以下是带有FIXED值的属性声明的简单示例- <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "tutorialspoint"> ]> <address> <company name = "tutorialspoint">we are a free online teaching faculty</company> </address> 在此示例中,我们使用关键字#FIXED表示值“ tutorialspoint”是元素<company> 的属性名称的唯一值。如果我们尝试更改属性值,那么它将给出错误。 以下是无效的DTD- <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "tutorialspoint"> ]> <address> <company name = "abc">we are a free online teaching faculty</company> </address> 所需值每当您需要指定属性是必需的时,请使用#REQUIRED关键字。 句法 以下是#REQUIRED的语法-
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
其中#REQUIRED是定义的属性类型。 例 以下是使用#REQUIRED关键字的DTD属性声明的简单示例- <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id = "123"> Tanmay Patil </name> </address> 在这个例子中,我们使用了#REQUIRED关键字指定属性ID必须为元素名称提供名称 隐含价值声明属性时,必须始终指定一个值声明。如果您要声明的属性没有默认值,没有固定值,并且不是必需的,那么您必须声明该属性为implied。关键字#IMPLIED用于指定隐含属性。 句法 以下是#IMPLIED的语法-
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
其中#IMPLIED是定义的属性类型。 例 以下是#IMPLIED的简单示例 <?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #IMPLIED> ]> <address> <name /> </address> 在此示例中,我们使用关键字#IMPLIED,因为我们不想指定要包含在元素name中的任何属性。它是可选的。 |