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.