Bütünleşik Biçembentler, 2. Aşama
ÖncekiYukarıSonraki

3 Uyumluluk: gereksinimler ve öneriler

İçindekiler

    3.1 Tanımlar
    3.2 Uyumluluk
    3.3 Hata durumları
    3.4 text/css içerik türü

3.1 Tanımlar

Bu bölümde yazarlar, kullanıcılar ve gerçeklenimciler arasında ortak dil konusunda bir anlaşma sağlayarak, BB2 belirtimine şeklen başlayacağız.

Bu çeviride, vurgulandıklarında, ZORUNLU, ÖNERİ ve SEÇİMLİK anahtar sözcükleri [keywords]'un Türkçe çevirisinde açıklandığı gibi yorumlanır. Ç.N. - Deniyorsa da bu gösterime bu belgede rastlamayacaksınız (özgün belgede de olmadığından).

Bu aşamada, bu belirtim yazarlar ve kullanıcı arayüzleri için doğru uygulamalar önerir. Bu öneriler uyulması zorunlu öneriler değildir ve bu belirtimle uyumluluk bunların gerçekleşmesine bağlı değildir. Bu öneriler arasında "... öneririz", "Bu belirtim ... önerir" ve benzeri ifadeler bulunacaktır.

Biçembent
Bir belgenin sunumunda belirleyici olan yönergeler.

Biçembentler üç farklı kaynaktan elde edilirler: yazar, kullanıcı ve kullanıcı arayüzü. Bu kaynaklar arasındaki etkileşim Nitelik Değerlerinin Atanması, Bütünleşme ve Kalıtım bölümünde açıklanmıştır.

Geçerli biçembent
Bir biçembendin geçerliliği biçembent için kullanılan BB aşamasına bağlıdır. Tüm geçerli BB1 biçembentleri aynı zamanda geçerli BB2 biçembentleridir. Bununla birlikte, BB1den farklılıklar nedeniyle birkaç BB1 biçembendinin anlambilgisi BB2'den biraz farklı olacaktır.

Geçerli bir BB2 biçembendinin BB2 yazım bilgisine göre yazılması gerekir. Dahası, bu belirtimde tanımlanmış kuyruklu-a kuralları, nitelik adları ve değerlerini içermesi gerekir. Bir kuraldışı kuyruklu-a kuralı, nitelik adı veya değerinin varlığında biçembent geçerli kabul edilmez.

Kaynak belge
Bir veya daha fazla sayıda biçembende atıfta bulunan belge. Belge, belgeyi bir eleman ağacı olarak ifade eden bir dille kodlanmıştır. Her eleman, eleman türünü belirten bir isim, istenen sayıda öznitelik ve (boş olması olası) bir içeriğe sahiptir.

Belge dili
Kaynak belgeyi kodlayan dil (HTML, XML gibi).

Eleman
(Bir SGML terimi, [ISO8879]'a bakınız.) Belge dilinde başat sözdizimsel oluşumlar. Çoğu BB biçembent kuralı biçimleme bilgisini belirtmek için eleman isimlerini kullanır (HTML için <p>, <table> ve <ol> gibi).

Yerleştirilen eleman
BB biçimleyicinin, yerleşik boyutlarının olduğunu bildiği eleman türlerinden biri. HTML'deki <img>, <input>, <textarea>, <select> ve <object> elemanları yerleştirilen elemanlara birer örnektir. Örneğin, <img> elemanının içeriği olarak 'src' özniteliğine göre atanan resim yerleştirilir. BB yerleştirilen elemanların boyutların nasıl bulunacağını tanımlamaz.

Yerleştirilmeyen eleman
Yerleşik boyutları olmayan (örneğin, <img> genişliği ve yüksekliği sabit, yerleşik boyutları olan bir eleman türüdür; bu türden olmayan elemanlara) yerleştirilmeyen elemanlar denir.

Yerleşik boyut
Elemanın kendisi tarafından belirtilen, çevredeki elemanlarca dayatılmış olmayan genişlik ve yükseklik. BB2'de sadece ve sadece yerleştirilen elemanların yerleşik boyutlarla geldiği kabul edilir.

Öznitelik
Bir elemanla ilişkilendirilmiş bir isim-değer çifti. Bir isim ve dizgesel bir değerden oluşur.

İçerik
Kaynak belgedeki bir elemanla ilişkili olan içerik. Bütün elemanların birer içeriği olmayabilir; içeriği olmayan elemanlara boş elemanlar denir. Eleman içeriği metin ve alt elemanlardan oluşur. Alt elemanları olan bir eleman, alt elemanlarının ebeveyni olur.

Oluşturulan içerik
Bir elemanın içeriği oluşturulduktan sonra buna ilgili biçembentler uygulanır. Bir yerleştirilen elemanın oluşturulan içeriği kaynak belge dışından gelir. Oluşturulan içerik bir eleman için asıl içeriğinden başka bir içerik olabileceği (örneğin, HTML'deki 'alt' özniteliğinin değeri) gibi biçembent tarafından doğrudan veya dolaylı olarak yerleştirilen öğeleri de içerebilir (madde imleri, numaralama gibi).

Belge ağacı
Kaynak belgede kodlu eleman ağacı. Bu ağaçtaki her elemanın, kök eleman hariç, bir ebeveyni vardır (Kök elemanın ebeveyni yoktur).

Çocuk
Bir A elemanının bir B elemanının çocuğu olması için gerek ve yeter koşul, B elemanının A elemanının ebeveyni olmasıdır.

Astsallar
Bir A elemanının bir B elemanının astsalı olması için A elemanı ya B elemanının çocuğu olmalı ya da B elemanının bir astsalı olan bir C elemanının çocuğu olmalıdır.

Üstseller
Bir A elemanının bir B elemanının üstseli olması için gerek ve yeter koşul, B elemanının A elemanının astsalı olmasıdır.

Kardeşler
A ve B elemanlarının kardeş olması için gerek ve yeter koşul, A va B elemanlarının ebeveynlerinin aynı eleman olmasıdır. A elemanı belge ağacında B elemanından önce geliyorsa, B'nin büyük kardeşi, aksi takdirde küçük kardeşi olur.

Öncekiler
Bir A elemanının bir B elemanının önceki elemanı olması için A elemanının ya B'nin büyük kardeşi ya da B'nin üstsellerinden birinin büyük kardeşi olması gerekir.

Sonrakiler
Bir A elemanının bir B elemanının sonraki elemanı olması için A elemanının ya B'nin küçük kardeşi ya da B'nin astsallarından birinin küçük kardeşi olması gerekir.

Yazar
Belgeleri ve onlarla ilişkili biçembentleri yazan kişiye yazar, bunları üreten araca da yazım aracı denir.

Kullanıcı
Bir belgeyi okumak, dinlemek veya başka bir şekilde kullanmak için bir kullanıcı arayüzü ile etkileşen kişiye kullanıcı denir. Kullanıcı isterse, kendi kişisel tercihlerini yansıtan bir biçembende sahip olabilir.

Kullanıcı arayüzü (KA)
Bir kullanıcı arayüzü belli bir belge dilinde yazılmış bir belgeyi yorumlayan ve buna bu belirtimin kurallarına uygun olarak biçembentleri uygulayan bir yazılımdır. Bir kullanıcı arayüzü bir belgeyi gösterebilir, seslendirebilir, basılmasını sağlayabilir, başka bir biçime dönüştürebilir, vs.

Örnek:
HTML ile kodlanmış bir kaynak belge örneği:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
  <title>My home page</title>
  <body>
    <h1>My home page</h1>
    <p>Welcome to my home page! Let me tell you about my favorite
    composers:</p>
    <ul>
      <li> Elvis Costello</li>
      <li> Johannes Brahms</li>
      <li> Georges Brassens</li>
    </ul>
  </body>
</html>

Bu örneğin belge ağacı şöyle olur:

HTML tanımına göre, <head> elemanının etiketi kaynak belgede yer almasa bile, çözümleme sırasında ortaya çıkacak ve belge ağacının bir parçası haline gelecektir. Benzer şekilde, kaynak belgede <p> ve <li> etiketleri </p> ve </li> etiketleri ile kapatılmamış olsa bile çözümleyici ne yapılacağını bilecektir (Ç.N. - XHTML için belge yazarı bitiş etiketlerini belgede belirtmek zorundadır; XHTML bu konuda, HTML kadar esnek değildir).

3.2 Uyumluluk

Bu bölümde sadece BB2 belirtimi ile uyumluluk tanımlanmıştır. Gelecekte BB'nin başka aşamaları da olabilir ve bunlar bir kullanıcı arayüzünün başka özelliklere uygun olarak gerçeklenmesini gerektirebilir.

Genelde, bu belirtime uyumlu olması istenen bir kullanıcı arayüzü için beklentiler şu noktalarda toplanır:

  1. En azından bir ortam türünü desteklemesi gerekir.

  2. Her kaynak belge için, desteklediği ortam türleri ile ilişkili ve uygun bütün biçembentleri toplamaya çalışması gerekir. Eğer hepsini toplayamazsa (bir ağ sorunu nedeniyle örneğin), belgeyi toplayabildikleri ile göstermelidir.

  3. Biçembentleri bu belirtime göre çözümlemelidir. Özellikle, kuyruklu-a kurallarını, blokları, bildirimleri ve seçicileri desteklemelidir BB2 Dilbilgisi Kuralları bölümüne bakınız). Eğer bir kullanıcı arayüzü desteklenen bir ortam türüne bir niteliğin uygulandığnı saptarsa, değeri niteliğin tanımına uygun olarak çözümlemelidir. Yani, kullanıcı arayüzleri tüm değerleri kabul etmeli ama geçersiz bildirimleri yoksaymalıdır. Kullanıcı arayüzlerininin desteklenmeyen ortam türlerini yoksaymaları gerekir.

  4. Belge ağacındaki her eleman için, nitelik tanımına ve Nitelik Değerlerinin Atanması, Bütünleşme ve Kalıtım bölümündeki kurallara uygun olarak uygulanabilir her nitelik için bir değer atamalıdır.

  5. Eğer belge başka biçembentlerle de geliyorsa (örneğin, HTML 4.0'da [HTML40] "alternate" sözcüğü ile betimlenmiş olarak), kullanıcı arayüzü kullanıcının biçembentlerden birini seçebilmesine olanak sağlamalı ve seçileni uygulamalıdır.

Her kullanıcı arayüzü için beklenmemekle birlikte:

Bir kullanıcı arayüzünün, belli bir aygıtın sınırlamalarından dolayı bu belirtime uygun gerçeklenememesi bir uyumsuzluk olarak nitelenmez (örneğin, kullanıcı arayüzleri renkleri bir siyah-beyaz monitörde gösteremez).

Bu belirtim, bir kullanıcı arayüzünün kullanıcısına, bir kullanıcı biçembenti belirtebilme olanağı sağlamasını önerir.

3.3 Hata durumları

Genelde, bu belirtim kullanıcı arayüzlerinin hataları nasıl yakalayacaklarını belirtmez (örneğin, bir tanım-yeri tarafından atanan bir özkaynak bulunamadığında kullanıcı arayüzünün ne yapması gerektiğini söylemez).

Bununla birlikte, kullanıcı arayüzlerinin çözümleme hatalarını yakalama kurallarını yerine getirmeleri gerekir.

Kulanıcı arayüzlerinin hatalar karşısındaki davranışları farklı olabileceğinden, yazarlar ve kullanıcılar belli bir hatadan kaçınma davranışı beklentisine girmemelidirler.

3.4 text/css içerik türü

Ayrı dosyalar halindeki BB biçembentleri, Genel Ağ üzerinden kodlama bilgisi eşliğinde bir bayt dizisi olarak gönderilirler ([HTML40], 5. kısma bakınız). Aktarımın yapısı, bir ileti öğesi olarak RFC 2045 ve RFC 2068 (bkz, [RFC2045] ve [RFC2068]) tarafından tanımlanmıştır. "text/css" içerik türündeki bir ileti öğesi bağımsız bir BB biçembendini ifade eder. "text/css" içerik türü [RFC2318] tarafından kayıt altına alınmıştır.

ÖncekiYukarıSonraki
BB2'ye GirişBir Linux Kitaplığı SayfasıBB Sözdizimi ve Temel Veri Türleri