Varlık (işaretleme dili)

Varlıklar ( ingilizce varlık, varlıklar ) biçimlendirme dillerindedir ( İngilizce biçimlendirme dilleri ), çünkü SGML , XML , HTML , XHTML ve HTML5 , yönetmek ve yeniden kullanmak için yinelenen bilgi birimleri kullanır.

Günümüzde yaygın olarak kullanılan varlıkların sözdizimi SGML'ye dayanmaktadır . Geliştirirken XML ve HTML Sürüm 5, SGML parçaları varlıkların tanımlanması için bazı seçenekler de dahil olmak kabul edilmiştir.

En yaygın temsilci, tek bir karakterle değiştirilecek olan karakter varlığıdır. Özellikle, bir anımsatıcı kısaltmanın (adlandırılmış varlık) ondalık veya onaltılık karakter kodlaması (sayısal varlık, karakter referansı) ile değiştirilir.

Adlandırılmış Varlık

İsimler (adlandırılmış karakter varlıkları) insanlar içindir, sayılar makineler içindir. Bilgisayarlar beş basamaklı kodlamaları kolayca işleyebilir - bununla yalnızca insanlar sorun yaşar.

Adlandırılmış varlıklar, kullanıcı için belgelerin okunabilirliğini artırır.

Adı (varlık adı) ve içeriği (varlık içeriği) olan adlandırılmış bir varlık , bir belge türü tanımı (DTD) aracılığıyla bildirilir. Belge metninde varlık adına atıfta bulunuluyorsa, ayrıştırıcı referansı varlık içeriğiyle değiştirir.

Örnekler:
  • Burada all & amp; ondalık 38 karakterle değiştirilecek :
      <!ENTITY amp CDATA "&#38;"> <!-- ampersand/Kaufmännisches Und ("et"): & -->
(DTD biçimi: HTML)
  • Açık bir anlamı olan belge metni:
6 ve ayak; 2 inç; uzun boylu.
Bu belge için üç farklı DTD kullanılır:
  • 7 bit ASCII ortamı için DTD
            <!ENTITY foot   "&#39;"> <!-- ' -->
            <!ENTITY inch   "&#34;"> <!-- " -->
  • Çok baytlı Unicode ortamı için DTD
            <!ENTITY foot   "&#8242;"> <!-- ′ -->
            <!ENTITY inch   "&#8243;"> <!-- ″ -->
  • Sesli kitap ortamı için DTD
            <!ENTITY foot   " foot ">
            <!ENTITY inch   " inch ">

Karakter Referansı (Sayısal Varlık)

In SGML standardı, sayısal varlıklar tanıtıldı olarak karakter referansları. Sayısal kişiler hakkında da karakter referansları olarak tanımlanmaktadır içinde XML . Sayısal varlık olması durumunda , karakter kodu bir varlık olarak belgeye şu şekilde girilir:

  • &#nnn;, burada nnn, kullanılacak karakterin ondalık kodlamasıdır veya
  • &#xhhhh;, burada hhhh, kullanılacak karakterin onaltılık kodlamasıdır.

Ayrıştırıcı, karakter kodunu kodlanmış karakterle değiştirir.

Varlıkların karakterlerle değiştirilmesi

Kaynak metindeki bir karakter varlığının başka bir karakterle değiştirilmesi mutlaka 1:1 olmak zorunda değildir. Aksan işaretleri Avrupa kodlu dillerde (Latin, Yunanca) yaygındır.

Örnek:
"é" karakteri isteğe bağlı olarak şu şekilde tanımlanabilir:
  1. <! ENTITY ecute "& # 233;">
  2. <! ENTITY eacute "& # xE9;">  -  ( onaltılık )
  3. <! ENTITY ecute "é">
  4. <! ENTITY ecute "e & # x0301;">
  5. <! ENTITY Small_E_mit_Strich_drüber_nach_rechts_oben "e & # x02CA;">
İlk iki tanımda, adlandırılmış olanın yerini sayısal bir varlık, üçüncüde tek bir Unicode / ANSI karakteri ve dördüncüde iki karakterin bir kombinasyonu ile: temel harf e ile akut bir vurgu .

Ancak, temel bir harf her zaman tam olarak bir aksan işaretiyle çakışmak zorunda değildir; temel harfin üstünde, altında ve yanında bu tür birkaç değişiklik yapılabilir.

Avrupa dışındaki yazı sistemlerinde de çeşitli bitişik harfler vardır , yani bir araya gelen tek harflerin en çeşitli kombinasyonları - Devanagari veya Tamil bunlara örnektir . Diğer durumlarda (örneğin Arapça'da ) ortaya çıkan karakterin şekli bağlama, dilsel anlama bağlıdır - ve yazılım tarafından kolayca dönüştürülebileceği gibi sadece sayısal olarak kodlanmış bireysel karakterlerin tesadüfüne değil. Almanca olarak, karşılık gelen bir örnek doğru kullanımı olacaktır uzun s ve yuvarlak s veya yasaklanması ff , fi , fl hece sınırları ötesinde bitişik harfler.

Ancak, bir karakter oluşturmak için birkaç öğenin her kombinasyonu, kendi Unicode numarasıyla kaydedilmez. Bu nedenle, kullanıcılara belirli karakterleri kendi karakter varlıkları olarak kabul etme seçeneği sunulmaya devam edilmelidir . Bir varlık ayrıca bir grafiğe referans olabilir ( bitmap ve SVG ).

Örnek:
Varlık, Kore alfabesindeki bir metin koleksiyonunda &ko_37;kullanılır. Yayıncı, belgeleri aşağıdaki dört DTD ile birlikte dağıtır.
  1. <!ENTITY ko_37 " &#12629;">
    <!ENTITY Encoding "UCS">  -  Unicode
  2. <!ENTITY ko_37 " yeo ">
    <!ENTITY Encoding "romanization">  -  Romanizasyon
  3. <!ENTITY ko_37 "¤Å">
    <!ENTITY Encoding "EUC-KR">  -  EUC -KR
  4. <!ENTITY ko_37 "&#60;img src='ko_37.png'&#62;">
    <!ENTITY Encoding "graphic glyphs">  -  Yedek grafikler
Birçok faydalı metinde, karakterler daha sonra & ko_ nn ; yazılı. Şöyle bir not:
Bu belge görünümü & Encoding; (sürüm: & koTXT-Sürüm; - gerekli: 1.2).
Bu, okuyuculara şu anda hangi DTD'nin entegre edildiğini bildirir ve görüntüleme sorunlarına yardımcı olabilir.

Karakter varlıklarının geleceği

Kademeli yayılmasıyla birlikte UTF- 8, UTF-16, UCS uluslararası -2 ve UCS-4 BT uygulamaları kullanarak kodlamak karakterlere ihtiyaç karakter varlıkları olan kademeli azalan . Ancak, dünya çapındaki son iletişim protokolünün ve yazılım uygulamasının çok baytlı karakterleri hatasız bir şekilde işleyebilmesi yıllar alacaktır.

Bu nedenle, sayısal varlıkları kullanan değişim için us-ascii (7 bit) seviyesine geri dönebilme ihtiyacı devam etmektedir . Ancak, genel varlıklara dokunulmamak ve evrensel karakter kümesinde özel bir kodlama varsa , kayıpsız her iki yönde de dönüştürme mümkündür .

Uzun vadede, iyi tanımlanmış bireysel karakterlerin adlandırılmış bir varlık olarak temsili, yalnızca karakterler ilgili dil dünyasının (yabancı dil veya matematik) dışında ortaya çıkıyorsa, insan editörler tarafından XML kaynak metninin okunması ve yazılması için önemli olacaktır. Sorunlu sayı aralıklarından gelen kodlamaların görüntülenmesi ve değiştirilmesi için kaynak metinde anında adlandırılmış varlıklara dönüştürülmesi ve kaydedildiğinde tekrar sayısal varlıklara veya doğrudan karakter olarak kodlanması beklenir.

Adlandırma şeması daha sonra yalnızca yerel olarak işlemcide bulunur ve dışarıya sızmaz; SGML tarafından tanımlanan yaygın İngilizce adlara ek olarak, Almanca, Fransızca veya Rusça varlık adları da görüntülenebilir.

Adlandırılmış karakter varlıkları, 1986 yılında o zamanki koşullar altında SGML'de anlamlı ve gerekli bir kavramdı. Yavaş değişen koşullar altında ve kullanıcı dostu grafik giriş yardımcıları sayesinde, Unicode karakterlerin tanımlanması şartıyla modern sistemlerde bu ihtiyaç artık yoktur. En yaygın uygulama olan HTML'de durum budur.

ISO standartlaştırılmış karakter adları

SGML (1986)
Latin harfleri
isolat1   Latince 1 Eklendi
isolat2   Latince 2 Eklendi
isodia Aksan    İşaretleri
Grafikler ve Semboller
isonum    Sayısal ve Özel Grafik
isopub    Yayıncılık (Tipografik)
isotech   Genel Teknik
isobox    Kutusu ve Çizgi Çizme
Matematiksel Semboller Eklendi
isoamsa   Ok İlişkileri
isoamsb   ikili operatörler
isoamsc   sınırlayıcılar
isoamsn   Olumsuz İlişkiler
isoamso   Sıradan
isoamsr   ilişkileri
Yunanca karakterler
isogrk1   Yunan Harfleri
isogrk2   Monotoniko Yunanca
isogrk3   Yunan Sembolleri
isogrk4   Alternatif Yunan Sembolleri
Kiril Karakterleri
isocyr1   Rusça Kiril
isocyr2   Rusça olmayan Kiril
İşaretin yalnızca isimleri ve açıklaması belirtildi; Kodlama ancak daha sonra Unicode kullanılarak atanabilir .
HTML2 (1995)
  • HTML sözdizimi için yedek karakterler: amp , lt , gt , quot
  • ISO 8859-1 için adlandırılmış karakterler (yani 160 ... 255 kodları)
Tanımları SGML ile aynıdır: isolat1 ( olarak gösterilir www.w3.org/TR/REC-html40/HTMLlat1.ent).
HTML4 (1999)
HTML 2 ile aynı, ancak 152 ek kodlamanın tanımı> 255 - Gösterim için Unicode gerekli (UTF-8).
Tanımlar şu adreste mevcuttur:
Bu URL'ler , bir HTML tarayıcısının tanımları İnternet'ten sürekli olarak yeniden yüklemesi gerektiği izlenimini verir . Bu böyle değil; standart karakterler sabit kodlanmıştır, tüm HTML görüntüleme programları bunları "bilmelidir".
XML (1998)
Yalnızca genel varlıklar (amp, lt, gt, apos, quot), XML sözdiziminde yedek karakterler olarak önceden tanımlanmıştır.
Kullanıcılar, herhangi bir varlığı kendileri tanımlayabilir veya yukarıda belirtilen DTD'yi SGML veya HTML'den dahil edebilir.
XHTML (2000)
HTML 4 gibi, ancak aynı zamanda XML'den de &apos;miras alınır .
(aşağıya bakınız )
MathML
Matematiksel formüller için gerekli olanlar gibi yüzlerce özel karakter tanımlanmıştır. Çoğunlukla HTML ve SGML'deki adlardan neredeyse her zaman daha uzun olan kendi adları kullanılır.
XML (2010)
2007-2010 tüm ortak isimler tek bir taslakta toplandı ve birleştirildi. Bir DTD'de 2237 ad, karakter kodlamalarına eşlenir:
Özellikle, SGML (1986) ve MathML ; buna HTML'nin tamamı da dahildir. Bireysel durumlarda, aynı amaç için birkaç karakter kodunda farklı görüntülerin bulunduğu en pratik varyant standartlaştırıldı.

Aynı karakter için birden fazla ad kullanılabilir:

ondalık
karakterler
unicode
varlık tanım
168
¨
U + 00A8
" " SGML: isodia
" Nokta " SGML: izotek
" um " HTML.2, SGML: isodia
913
Α
U + 0391
" Ağr " SGML: isogrk1
" Alfa " HTML.4
8598

U + 2196
" aptal " SGML: isoamsa kuzey batı oku
& # x2196; HTML
" Üst Sol Ok " MathML
" nwarr " MathML

Yunanca büyük harfli alfa mı yoksa Latince A mı olduğu »Α« karakterinden anlaşılamaz.

Dipnot

Zaman zaman, anımsatıcı varlıkların işi gereksiz yere karmaşık hale getirdiği, çünkü karşılık gelen DTD'lerin kabul edilmesi ve sağlanması gerektiği ve doğru karakterlerin hemen yazılması veya yalnızca sayısal varlıklarla çalışılması gerektiği itirazı ortaya çıkar.

SGML'de sadece bir örnek : karşılaştırma için isocyr1 :

□ □ □ □ □ □ □
& R cy; & u cy; & s cy; & s cy; & k cy; & i cy; & j cy;
Rus
& # 1056; & # 1091; & # 1089; & # 1089; & # 1082; & # 1080; & # 1081;
& # x0420; & # x0443; & # x0441; & # x0441; & # x043A; & # x0438; & # x0439;
= Русский

Düzenlemeden sonra adlandırılmış varlıkları otomatik olarak sayısal forma dönüştürmek ve bunları bu formatta başkalarına iletmek mükemmel bir anlam ifade edebilir - ancak sayısal varlıkları insan editörler tarafından bir sonraki değiştirildiğinde tekrar anımsatıcı olarak temsil etmek.

Varlıklar olarak gösterim, grafik gösterimde çok benzer olan (örneğin kesme işareti, vurgu, kesme işareti, tırnak işaretleri) farklı anlamlara sahip farklı karakterlerin açıkça ayırt edilebilmesi avantajına da sahiptir.

XHTML

XHTML, HTML 4.0'daki tüm tanımları tam olarak içerir ve herhangi bir uygulamada tüm adlandırılmış varlıklar bilinmelidir (ve genellikle sabit kodlanmıştır). Bu daha fazla gelişme, öğelerin ( etiketler ) iç biçimini ve yapısını etkiler , ancak yararlı metni ve varlıkları etkilemez.

Ancak, 2000'lerin ortalarında, web sunucuları ile iletişimde giderek daha fazla sorun ortaya çıktı : Artık belgeleri MIME tipi text/html ile değil, application/xml , text/xml ve diğerleri olarak sağlıyorlar. O zaman, bu aslında (eski) tarayıcılar metni HTML olarak tanımadığında sorunlara yol açtı.

Metin pasajlarıyla çalışan ve karşılaştırılabilir ve tanıdık HTML öğelerine dayanan XML uygulamaları da vardır. Güncel ve en yaygın örnek yazılı RSS - web beslemeleridir ( haberler ). HTML gibi, <p> , <span> , <div> ve ayrıca <head> / <body> içerirler . Kaynak metin bu nedenle HTML gibi görünüyor . Ancak, bir HTML belgesi olmadığı için, ilgili DTD entegre edilmedikçe veya görüntüleme yazılımı (çoğunlukla web tarayıcısı ) kendi iyi bilinen tanımlarını kullanmadıkça , adlandırılmış varlıklar kullanılamaz .

Parametre varlıkları

İçinde özel bir durum SGML , XML vb vardır parametre öğeleri . Belgelerde değil, yalnızca DTD içinde kullanılabilirler . Aksi takdirde aynı sözdizimini var, ama yerine &orada %başında.

Deklarasyonun sözdizimi:

<!ENTITY % Name SYSTEM "externe.datei" >

Referansın sözdizimi (varlığı çağırma):

%Name;

Edebiyat

İnternet linkleri

Bireysel kanıt

  1. Goldfarb ve diğerleri .: Office 2003'te XML , Pearson , 2004, s. 320–322
  2. ISO 8879: 1986-10. İçinde: www.din.de. Erişim tarihi: 4 Aralık 2016 .
  3. Genişletilebilir İşaretleme Dili (XML) 1.0 (Beşinci Baskı). İçinde: www.w3.org. Erişim tarihi: 4 Aralık 2016 .
  4. www.w3.org/TR/REC-html40/HTMLlat1.ent HTMLlat1.ent ( İngilizce , ENT) w3.org. 29 Mart 2019'da alındı.
  5. HTML 4'te (ayrıca W3C ) Karakter varlık referansları altında daha kolay okunabilir bir kaynak .
  6. En son: 10 Nisan 2014, W3C Tavsiyesi. Belge böylece bir tavsiye statüsüne sahipti.