DTD - Varlıklar
Varlıklar, XML belgelerindeki özel karakterlere kısayollar tanımlamak için kullanılır. Varlıklar öncelikli olarak dört türde olabilir -
Yerleşik varlıklar
Karakter varlıkları
Genel varlıklar
Parametre varlıkları
Varlık Bildirimi Sözdizimi
Genel olarak, varlıklar beyan edilebilir internally veya externally. Bunların her birini ve sözdizimini aşağıdaki gibi anlayalım:
İç Varlık
Bir varlık bir DTD içinde bildirilmişse, bu dahili varlık olarak adlandırılır.
Syntax
Dahili varlık bildirimi için sözdizimi aşağıdadır -
<!ENTITY entity_name "entity_value">
Yukarıdaki sözdiziminde -
entity_name varlığın adı ve ardından çift tırnak veya tek tırnak içindeki değeridir.
entity_value varlık adının değerini tutar.
İç Varlığın varlık değerinin referansı önek eklenerek kaldırılır & varlık adına, yani & varlık_adı.
Example
Aşağıda, dahili varlık bildirimi için basit bir örnek verilmiştir -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<!DOCTYPE address [
<!ELEMENT address (#PCDATA)>
<!ENTITY name "Tanmay patil">
<!ENTITY company "TutorialsPoint">
<!ENTITY phone_no "(011) 123-4567">
]>
<address>
&name;
&company;
&phone_no;
</address>
Yukarıdaki örnekte, ilgili varlık adları adı , şirket ve telefon_no , XML belgesindeki değerleriyle değiştirilir. Varlık değerlerinin referansı önek eklenerek kaldırılır & varlık adına.
Bu dosyayı farklı kaydedin sample.xmlve herhangi bir tarayıcıda açtığınızda name , company , phone_no için varlık değerlerinin sırasıyla değiştirildiğini fark edeceksiniz .
Dış varlık
Bir varlık bir DTD dışında bildirilirse, buna harici varlık denir. Sistem tanımlayıcılarını veya genel tanımlayıcıları kullanarak harici bir Varlığa başvurabilirsiniz.
Syntax
Harici Varlık bildirimi için sözdizimi aşağıdadır -
<!ENTITY name SYSTEM "URI/URL">
Yukarıdaki sözdiziminde -
name varlığın adıdır.
SYSTEM anahtar kelimedir.
URI/URL çift veya tek tırnak içine alınmış harici kaynağın adresidir.
Types
Aşağıdakilerden birini kullanarak harici bir DTD'ye başvurabilirsiniz -
System Identifiers - Bir sistem tanımlayıcısı, DTD bildirimlerini içeren harici bir dosyanın konumunu belirlemenizi sağlar.
Gördüğünüz gibi, SYSTEM anahtar sözcüğünü ve belgenin konumuna işaret eden bir URI referansı içeriyor. Sözdizimi aşağıdaki gibidir -
<!DOCTYPE name SYSTEM "address.dtd" [...]>
Public Identifiers - Genel tanımlayıcılar, DTD kaynaklarını bulmak için bir mekanizma sağlar ve aşağıdaki gibi yazılır -
Gördüğünüz gibi, KAMU anahtar kelimesi ile başlar ve ardından özel bir tanımlayıcı gelir. Genel tanımlayıcılar, bir katalogdaki bir girişi tanımlamak için kullanılır. Genel tanımlayıcılar herhangi bir biçimi izleyebilir; bununla birlikte, yaygın olarak kullanılan bir biçime Resmi Genel Tanımlayıcılar veya FPI'ler denir.
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
Example
Aşağıdaki örnekle dış varlığı anlayalım -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<name>
Tanmay Patil
</name>
<company>
TutorialsPoint
</company>
<phone>
(011) 123-4567
</phone>
</address>
DTD dosyasının içeriği adresi.dtd aşağıdadır -
<!ELEMENT address (name, company, phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
Yerleşik varlıklar
Tüm XML ayrıştırıcıları yerleşik varlıkları desteklemelidir. Genel olarak, bu varlık referanslarını her yerde kullanabilirsiniz. XML belgesinde, öğe içerikleri ve nitelik değerleri gibi normal metni de kullanabilirsiniz.
İyi biçimlendirilmiş XML'de rollerini oynayan beş yerleşik varlık vardır, bunlar -
ve işareti: & amp;
Tek alıntı: & apos;
Şundan büyük: & gt;
Küçüktür: & lt;
Çift tırnak: & quot;
Misal
Aşağıdaki örnek yerleşik varlık bildirimini gösterir -
<?xml version = "1.0"?>
<note>
<description>I'm a technical writer & programmer</description>
<note>
Burada görebileceğiniz gibi & amp; işlemci bununla her karşılaştığında karakteri & ile değiştirilir.
Karakter varlıkları
Karakter Öğeleri, bilginin sembolik temsili olan bazı varlıkları adlandırmak için kullanılır, yani yazılması zor veya imkansız olan karakterler Karakter Öğeleri ile değiştirilebilir.
Misal
Aşağıdaki örnek, karakter varlığı bildirimini gösterir -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<!DOCTYPE author[
<!ELEMENT author (#PCDATA)>
<!ENTITY writer "Tanmay patil">
<!ENTITY copyright "©">
]>
<author>&writer;©right;</author>
Burada kullandığımızı fark edeceksiniz ©telif hakkı karakteri için değer olarak. Bu dosyayı sample.xml olarak kaydedin ve tarayıcınızda açın, telif hakkının © karakteriyle değiştirildiğini göreceksiniz.
Genel varlıklar
Genel varlıklar bir XML belgesinde kullanılmadan önce DTD içinde bildirilmelidir. Yalnızca tek bir karakteri temsil etmek yerine, genel varlıklar karakterleri, paragrafları ve hatta tüm belgeleri temsil edebilir.
Sözdizimi
Genel bir varlık bildirmek için, DTD'nizde bu genel formun bir bildirimini kullanın -
<!ENTITY ename "text">
Misal
Aşağıdaki örnek, genel varlık bildirimini göstermektedir -
<?xml version = "1.0"?>
<!DOCTYPE note [
<!ENTITY source-text "tutorialspoint">
]>
<note>
&source-text;
</note>
Bir XML ayrıştırıcı, kaynak metin varlığına bir başvuruyla karşılaştığında, başvuru noktasında uygulamaya ikame metni sağlayacaktır.
Parametre varlıkları
Bir parametre varlığının amacı, değiştirme metninin yeniden kullanılabilir bölümlerini oluşturmanıza olanak sağlamaktır.
Sözdizimi
Aşağıda, parametre varlık bildirimi için sözdizimi verilmiştir -
<!ENTITY % ename "entity_value">
varlık_değer '&', '%' veya '"' olmayan herhangi bir karakterdir.
Misal
Aşağıdaki örnek, parametre varlık bildirimini gösterir. Aşağıdaki gibi öğe bildirimleriniz olduğunu varsayalım -
<!ELEMENT residence (name, street, pincode, city, phone)>
<!ELEMENT apartment (name, street, pincode, city, phone)>
<!ELEMENT office (name, street, pincode, city, phone)>
<!ELEMENT shop (name, street, pincode, city, phone)>
Şimdi , ek unsur ülkesi eklemek istediğinizi varsayalım , o zaman onu dört bildirime de eklemeniz gerekir. Dolayısıyla bir parametre varlık referansı için gidebiliriz. Şimdi parametre varlık referansı kullanıldığında, yukarıdaki örnek -
<!ENTITY % area "name, street, pincode, city">
<!ENTITY % contact "phone">
Parametre varlıklarının referansı, genel bir varlık başvurusuyla aynı şekilde, yalnızca "ve" işareti yerine bir yüzde işaretiyle -
<!ELEMENT residence (%area;, %contact;)>
<!ELEMENT apartment (%area;, %contact;)>
<!ELEMENT office (%area;, %contact;)>
<!ELEMENT shop (%area;, %contact;)>
Ayrıştırıcı bu bildirimleri okuduğunda, varlık başvurusu için varlığın ikame metnini değiştirir.