DTD - Öznitelikler

Bu bölümde DTD Nitelikleri hakkında tartışacağız. Öznitelik, bir öğe hakkında daha fazla bilgi verir veya daha kesin olarak bir öğenin bir özelliğini tanımlar. Bir XML niteliği her zaman bir ad-değer çifti biçimindedir. Bir öğe, herhangi bir sayıda benzersiz özelliğe sahip olabilir.

Öznitelik bildirimi, biri dışında birçok yönden öğe bildirimlerine çok benzer; Öğeler için izin verilen içeriği bildirmek yerine, her öğe için izin verilen özniteliklerin bir listesini bildirirsiniz. Bu listelere ATTLIST bildirimi denir.

Sözdizimi

DTD öznitelikleri bildiriminin temel sözdizimi aşağıdaki gibidir -

<!ATTLIST element-name attribute-name attribute-type attribute-value>

Yukarıdaki sözdiziminde -

  • Öğe, özniteliği içeriyorsa, DTD öznitelikleri <! ATTLIST anahtar sözcüğü ile başlar.

  • element-name özniteliğin geçerli olduğu öğenin adını belirtir.

  • attribute-name eleman-ismine dahil olan özniteliğin ismini belirtir.

  • attribute-typeözniteliklerin türünü tanımlar. Sonraki bölümlerde bu konu hakkında daha fazla tartışacağız.

  • attribute-valueözniteliklerin tanımlaması gereken sabit bir değeri alır. Sonraki bölümlerde bu konu hakkında daha fazla tartışacağız.

Misal

Aşağıda, DTD'de öznitelik bildirimi için basit bir örnek verilmiştir -

<?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>

Yukarıdaki kodu gözden geçirelim -

  • Aşağıdaki ifadeyle XML bildirimi ile başlayın -

<?xml version = "1.0"?>
  • XML başlığının hemen ardından, aşağıda gösterildiği gibi genellikle DOCTYPE olarak anılan belge türü bildirimi bulunur -

    DOCTYPE, ayrıştırıcıya bir DTD'nin bu XML belgesiyle ilişkilendirildiğini bildirir. DOCTYPE bildiriminde, öğe adının başında bir ünlem işareti (!) Bulunur.

<!DOCTYPE address [
  • DTD'nin gövdesi aşağıdadır. Burada element ve nitelik ilan ettik -

<!ELEMENT address ( name )>
<!ELEMENT name ( #PCDATA )>
  • Öğe adı için öznitelik kimliği aşağıda verildiği gibi tanımlanır -

    İşte nitelik türüdür CDATA ve değer #required .

<!ATTLIST name id CDATA #REQUIRED>

Öznitelik Beyanı Kuralları

  • Bir XML belgesinde kullanılan tüm öznitelikler, bir Öznitelik Listesi Bildirimi kullanılarak Belge Türü Tanımında (DTD) bildirilmelidir.

  • Öznitelikler yalnızca başlangıç ​​veya boş etiketlerde görünebilir.

  • ATTLIST anahtar kelimesi büyük harf olmalıdır

  • Belirli bir öğe için öznitelik listesinde yinelenen öznitelik adlarına izin verilmez.

Öznitelik Türleri

Öznitelikleri bildirirken, işlemcinin değerde görünen verileri nasıl işleyeceğini belirtebilirsiniz. Özellik türlerini üç ana kategoriye ayırabiliriz -

  • Dize türü

  • Belirtilmiş türler

  • Numaralandırılmış türler

Aşağıdaki tablo, farklı öznitelik türlerinin bir özetini sağlar -

Sr.No. Tip ve Açıklama
1

CDATA

CDATA, karakter verisidir (metin, işaretleme değil). Bu bir olduğunu dize Özellik Tipi .

2

ID

Özniteliğin benzersiz bir tanımlayıcısıdır. Birden fazla görünmemelidir. Bu, Tokenize Edilmiş Nitelik Tipidir .

3

IDREF

Başka bir elemanın kimliğine referans vermek için kullanılır. Elemanlar arasında bağlantı kurmak için kullanılır. Bu, Tokenize Edilmiş Nitelik Tipidir .

4

IDREFS

Birden çok kimliği referans almak için kullanılır. Bu, Tokenize Edilmiş Nitelik Tipidir .

5

ENTITY

Belgedeki harici bir varlığı temsil eder. Bu, Tokenize Edilmiş Nitelik Tipidir .

6

ENTITIES

Belgedeki harici varlıkların bir listesini temsil eder. Bu, Tokenize Edilmiş Nitelik Tipidir .

7

NMTOKEN

CDATA'ya benzer ve öznitelik değeri geçerli bir XML adından oluşur. Bu, Tokenize Edilmiş Nitelik Tipidir .

8

NMTOKENS

CDATA'ya benzer ve öznitelik değeri, geçerli XML adının bir listesinden oluşur. Bu, Tokenize Edilmiş Nitelik Tipidir .

9

NOTATION

Bir eleman, DTD belgesinde belirtilen bir gösterime referans verilecektir. Bu bir olan Numaralandırılıyor Özellik Tipi .

10

Enumeration

Değerlerden birinin eşleşmesi gereken belirli bir değerler listesi tanımlamaya izin verir. Bu bir olan Numaralandırılıyor Özellik Tipi .

Öznitelik Değer Beyanı

Her öznitelik bildiriminde, değerin belgede nasıl görüneceğini belirtmelisiniz. Bir özniteliğin -

  • varsayılan bir değere sahip olabilir

  • sabit bir değere sahip olabilir

  • gerekli

  • ima edildi

Varsayılan değerler

Varsayılan değeri içerir. Değerler tek tırnak (') veya çift tırnak (") içine alınabilir.

Syntax

Değer sözdizimi aşağıdadır -

<!ATTLIST element-name attribute-name attribute-type "default-value">

nerede varsayılan değer tanımlanan özellik değeridir.

Example

Aşağıda, varsayılan değere sahip basit bir öznitelik bildirimi örneği verilmiştir -

<?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>

Bu örnekte , varsayılan değeri 0 olan öznitelik id'li isim elemanımız var . Varsayılan değer çift tırnak içine alınmıştır.

SABİT Değerler

Öznitelik değerinin sabit olduğunu ve değiştirilemeyeceğini belirtmek istediğinizde #FIXED anahtar sözcüğü ve ardından sabit değer kullanılır. Sabit özniteliklerin yaygın bir kullanımı, sürüm numaralarını belirlemektir.

Syntax

Sabit değerlerin sözdizimi aşağıdadır -

<!ATTLIST element-name attribute-name attribute-type #FIXED "value" >

burada #FIXED, tanımlanmış bir öznitelik değeridir.

Example

Aşağıda, SABİT değeri olan basit bir öznitelik bildirimi örneği verilmiştir -

<?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>

Bu örnekte, "tutorialspoint" değerinin <company> öğesinin öznitelik adı için tek değer olduğunu belirten #FIXED anahtar sözcüğünü kullandık . Öznitelik değerini değiştirmeye çalışırsak hata verir.

Aşağıda geçersiz bir 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>

GEREKLİ değerler

Bir özniteliğin gerekli olduğunu belirtmek istediğinizde, #REQUIRED anahtar sözcüğünü kullanın.

Syntax

# REQUIRED sözdizimi aşağıdadır -

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

burada # GEREKLİ, tanımlanmış bir öznitelik türüdür.

Example

Aşağıda #REQUIRED anahtar sözcüğü ile DTD öznitelik bildiriminin basit bir örneği verilmiştir -

<?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>

Bu örnekte özellik belirtmek için #REQUIRED anahtar kelime kullanmış id elemanı adı sağlanmalıdır isim

ZIMNİ Değerler

Öznitelikleri bildirirken her zaman bir değer bildirimi belirtmelisiniz. Bildirdiğiniz özniteliğin varsayılan değeri yoksa, sabit bir değeri yoksa ve gerekli değilse, özniteliğin ima edildiği gibi olduğunu bildirmelisiniz . # IMPLIED anahtar kelimesi, zımni bir özniteliği belirtmek için kullanılır .

Syntax

# IMPLIED sözdizimi aşağıdadır -

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

burada # IMPLIED, tanımlanmış bir öznitelik türüdür.

Example

Aşağıda basit bir #IMPLIED örneği verilmiştir

<?xml version = "1.0"?>

<!DOCTYPE address [
   <!ELEMENT address ( name )>
   <!ELEMENT name ( #PCDATA )>
   <!ATTLIST name id CDATA #IMPLIED>
]>

<address>
   <name />
</address>

Bu örnekte, eleman adına dahil edilecek herhangi bir özniteliği belirtmek istemediğimiz için # IMPLIED anahtar kelimesini kullandık . İsteğe bağlıdır.