Isi
Pengenalan SGML
SGML konstruksi yang digunakan dalam HTML
Elemen
Atribut
Karakter referensi
Komentar
Bagaimana membaca HTML DTD
DTD Komentar
Entitas parameter definisi
Elemen deklarasi
Definisi model konten
Atribut deklarasi
DTD entitas dalam definisi atribut
Boolean atribut
Bagian ini memperkenalkan dokumen SGML dan mendiskusikan hubungannya dengan HTML. Diskusi lengkap SGML yang tersisa ke standar (lihat [ISO8879]).
Pengenalan 3,1 SGML
SGML adalah sebuah sistem untuk mendefinisikan bahasa markup. Penulis mark up dokumen mereka dengan mewakili struktural, presentasi, dan informasi semantik di samping konten. HTML adalah salah satu contoh dari sebuah bahasa markup. Berikut adalah contoh dokumen HTML:
"http://www.w3.org/TR/html4/strict.dtd">
HEAD>
Halo dunia!
BODY>
HTML>
Sebuah dokumen HTML terbagi menjadi bagian kepala (di sini, antara
. ... Item daftar 1 ... ... List item 2 ... Ini adalah paragraf pertama. P> Ini adalah paragraf pertama. ditutup oleh elemen blok berikut. Demikian pula, jika sebuah paragraf adalah blok yang dilingkupi oleh elemen, seperti pada: Ini adalah paragraf. .
Setiap bahasa markup yang didefinisikan dalam SGML disebut aplikasi SGML. Sebuah aplikasi SGML umumnya dicirikan oleh:
Sebuah pernyataan SGML. SGML deklarasi yang menentukan karakter dan delimiters yang mungkin muncul dalam aplikasi.
Sebuah definisi jenis dokumen (DTD). DTD mendefinisikan sintaks markup konstruksi. DTD dapat mencakup definisi tambahan seperti referensi entitas karakter.
Sebuah spesifikasi yang menggambarkan semantik dapat dianggap berasal dari markup. Spesifikasi ini juga menetapkan pembatasan sintaks yang tidak dapat dinyatakan dalam DTD.
Contoh dokumen yang berisi data (isi) dan markup. Setiap contoh berisi referensi ke DTD digunakan untuk menafsirkannya.
Spesifikasi ini mencakup deklarasi SGML, tiga jenis dokumen definisi (lihat bagian tentang informasi versi HTML untuk deskripsi dari tiga), dan daftar referensi karakter.
SGML 3,2 konstruksi yang digunakan dalam HTML
Bagian berikut memperkenalkan konstruksi SGML yang digunakan dalam HTML.
Daftar lampiran SGML beberapa fitur yang tidak didukung oleh HTML secara luas alat dan agen pengguna dan harus dihindari.
3.2.1 Elemen
Sebuah definisi jenis dokumen SGML menyatakan jenis unsur yang mewakili struktur atau perilaku yang diinginkan. HTML termasuk elemen yang mewakili jenis paragraf, hypertext link, daftar, tabel, gambar, dll
Setiap elemen deklarasi tipe umumnya menggambarkan tiga bagian: sebuah start tag, isi, dan tag akhir.
Nama elemen muncul di awal tag (ditulis
UL>
Beberapa jenis elemen HTML memungkinkan penulis untuk menghilangkan tag penutup (misalnya, unsur P dan LI jenis). Beberapa jenis elemen juga memungkinkan tag untuk mulai dihilangkan misalnya, HEAD dan BODY. DTD HTML untuk setiap elemen menunjukkan jenis apakah tag awal dan tag akhir diperlukan.
Beberapa jenis elemen HTML tidak memiliki konten. Sebagai contoh, garis elemen BR istirahat tidak memiliki konten; satu-satunya peran adalah untuk mengakhiri baris teks. Elemen kosong seperti tidak pernah berakhir tag. Definisi jenis dokumen dan teks dari spesifikasi menunjukkan apakah jenis elemen kosong (tidak memiliki konten), atau jika dapat memiliki konten, apa yang dianggap sebagai isi hukum.
Nama unsur selalu case-insensitive.
Silakan berkonsultasi dengan standar SGML untuk informasi tentang aturan-aturan yang mengatur unsur-unsur (misalnya, mereka harus benar bersarang, menutup tag akhir, kembali ke start tag yang cocok, semua intervensi unclosed mulai dihilangkan tag dengan tag penutup (bagian 7.5.1), dll ).
Sebagai contoh, ayat berikut:
... blok elemen ...
mungkin akan ditulis ulang tanpa akhir tag:
... blok elemen ...
sejak start tag
DIV>
akhir tag penutup elemen balok (di sini, DIV>) menunjukkan tag akhir yang terbuka start tag
Unsur tidak tag. Beberapa orang menyebut unsur-unsur sebagai tag (misalnya, "P tag"). Ingat bahwa unsur adalah satu hal, dan tag (baik itu tag awal atau akhir) adalah hal lain. Sebagai contoh, elemen HEAD selalu hadir, meskipun kedua awal dan akhir tag HEAD mungkin hilang di markup.
Semua jenis unsur dinyatakan dalam spesifikasi ini terdaftar dalam indeks elemen.
3.2.2 Atribut
Unsur mungkin memiliki sifat-sifat yang terkait, yang disebut atribut, yang mungkin memiliki nilai-nilai (secara default, atau ditetapkan oleh penulis atau script). Atribut / nilai pasangan muncul sebelum akhir ">" dari suatu unsur mulai tag. Sejumlah (hukum) nilai atribut pasangan, dipisahkan oleh spasi, mungkin muncul dalam elemen mulai tag. Mereka mungkin muncul dalam urutan apapun.
Dalam contoh ini, atribut id ditetapkan untuk sebuah elemen H1:
Ini adalah pos diidentifikasi berkat atribut id
H1>
Secara default, SGML mensyaratkan bahwa semua nilai atribut harus dipisahkan baik menggunakan tanda kutip ganda (ASCII desimal 34) atau satu tanda kutip (ASCII desimal 39). Tanda kutip tunggal dapat dimasukkan dalam nilai atribut ketika nilai dipisahkan oleh tanda kutip ganda, dan sebaliknya. Penulis juga dapat menggunakan karakter numerik referensi untuk mewakili tanda kutip ganda ( ") dan tanda kutip tunggal ( '). Untuk penulis tanda kutip ganda juga dapat menggunakan referensi entitas karakter".
Dalam kasus tertentu, penulis dapat menetapkan nilai dari atribut tanpa tanda kutip. Nilai atribut hanya boleh berisi huruf (az dan AZ), angka (0-9), tanda hubung (ASCII desimal 45), periode (ASCII desimal 46), garis bawah (ASCII desimal 95), dan titik dua (ASCII desimal 58). Kami merekomendasikan menggunakan tanda kutip bahkan ketika adalah mungkin untuk menghilangkannya.
Nama Atribut selalu case-insensitive.
Nilai atribut umumnya case-insensitive. Definisi setiap atribut dalam manual referensi menunjukkan apakah nilainya case-insensitive.
Semua atribut yang didefinisikan oleh spesifikasi ini terdaftar dalam indeks atribut.
3.2.3 Karakter referensi
Karakter referensi adalah angka atau nama simbolis untuk karakter yang dapat dicantumkan dalam dokumen HTML. Mereka berguna untuk mengacu pada karakter jarang digunakan, atau yang authoring tools membuat sulit atau tidak mungkin untuk masuk. Anda akan melihat karakter referensi di seluruh dokumen ini, mereka mulai dengan "&" tanda dan diakhiri dengan semi-colon (;). Beberapa contoh yang umum mencakup:
"<" mewakili
"" "mewakili" tanda.
"å" (dalam desimal) mewakili huruf "a" dengan lingkaran kecil di atasnya.
"И" (dalam desimal) mewakili huruf Cyrillic "Aku".
"水" (dalam heksadesimal) mewakili karakter Cina untuk air.
Kami membahas referensi karakter HTML secara rinci kemudian dalam bagian mengenai dokumen HTML character set. Spesifikasi juga berisi daftar referensi karakter yang mungkin muncul dalam dokumen HTML 4.
3.2.4 Komentar
Komentar HTML memiliki sintaks berikut:
yang menempati lebih dari satu baris ->
Ruang putih tidak diizinkan antara deklarasi markup pemisah (""). Sebuah kesalahan umum adalah untuk menyertakan tanda hubung serangkaian ("---") dalam komentar. Penulis harus menghindari memasukkan dua atau lebih tanda hubung yang berdekatan di dalam komentar.
Informasi yang muncul antara komentar tidak memiliki arti khusus (misalnya, karakter referensi tidak ditafsirkan seperti itu).
Perhatikan bahwa komentar yang markup.
3,3 Bagaimana membaca HTML DTD
Setiap elemen dan atribut deklarasi dalam spesifikasi ini disertai oleh definisi jenis dokumen fragmen. Kami telah memilih untuk menyertakan DTD fragmen dalam spesifikasi daripada mencari yang lebih didekati, tetapi lebih lama dan kurang akurat berarti menggambarkan sifat-sifat suatu unsur. Tutorial berikut ini harus memungkinkan pembaca terbiasa dengan SGML DTD untuk membaca dan memahami rincian teknis spesifikasi HTML.
3.3.1 DTD Komentar
Dalam DTDs, komentar dapat menyebar ke satu atau lebih baris. Dalam DTD, komentar yang dibatasi oleh sepasang "-" tanda, misalnya
Di sini, komentar "nilai properti bernama" menjelaskan penggunaan jenis elemen param. Komentar di DTD adalah hanya informatif.
3.3.2 Parameter definisi entitas
DTD HTML dimulai dengan serangkaian parameter definisi entitas. Sebuah parameter definisi mendefinisikan entitas semacam makro yang dapat dirujuk dan dikembangkan di tempat lain dalam DTD. Macro ini mungkin tidak muncul dalam dokumen HTML, hanya dalam DTD. Macro jenis lain, yang disebut karakter referensi, dapat digunakan dalam teks dari sebuah dokumen HTML atau dalam nilai atribut.
Ketika entitas parameter disebut namanya dalam DTD, ini berkembang menjadi sebuah string.
Sebuah definisi entitas parameter diawali dengan kata kunci . Contoh parameter entitas dalam DTD dimulai dengan "%", maka parameter nama entitas, dan diberhentikan oleh opsional ";".
Contoh berikut mendefinisikan string bahwa "% fontstyle;" entitas akan diperluas untuk.
Parameter string entitas berekspansi ke mungkin berisi nama-nama entitas parameter lain. Nama-nama ini diperluas secara rekursif. Pada contoh berikut, "% inline;" entitas parameter didefinisikan untuk memasukkan "% fontstyle;", "% frase;", "% khusus;" dan "% formctrl;" entitas parameter.
Anda akan menemukan dua entitas DTD HTML sering di DTD: "% block;" "% inline;". Mereka digunakan ketika model konten termasuk blok-level dan unsur inline, masing-masing (didefinisikan dalam bagian mengenai struktur global dari dokumen HTML).
3.3.3 Elemen deklarasi
Sebagian besar DTD HTML terdiri dari unsur deklarasi jenis dan atribut mereka. The karakter berakhir itu. Antara ini ditetapkan:
Nama elemen.
Apakah elemen tag adalah opsional. Dua tanda hubung yang muncul setelah nama elemen berarti bahwa awal dan tag akhir wajib diisi. Satu tanda hubung diikuti dengan huruf "O" menunjukkan bahwa tag akhir dapat diabaikan. Sepasang huruf "O" s menunjukkan bahwa baik awal dan tag akhir dapat diabaikan.
Elemen konten, jika ada. Konten yang dibolehkan untuk unsur ini disebut model isinya. Unsur jenis yang dirancang untuk tidak memiliki konten yang disebut elemen kosong. Model konten untuk jenis unsur tersebut dinyatakan dengan menggunakan kata kunci "KOSONG".
Dalam contoh ini:
Jenis unsur yang dinyatakan adalah UL.
Kedua tanda hubung menunjukkan bahwa baik tag awal dan tag akhir UL> untuk jenis unsur ini diperlukan.
Model konten untuk jenis unsur ini dinyatakan "paling tidak satu elemen LI". Di bawah ini, kami akan menjelaskan bagaimana untuk menentukan model konten.
Contoh ini menggambarkan deklarasi tipe elemen yang kosong:
Jenis unsur yang dinyatakan adalah IMG.
Tanda hubung dan berikut "O" menunjukkan bahwa tag akhir dapat diabaikan, tetapi bersama-sama dengan konten model "KOSONG", ini diperkuat dengan aturan bahwa tag akhir harus dihilangkan.
The "KOSONG" kata kunci berarti bahwa contoh-contoh dari jenis ini pasti belum konten.
Definisi model konten
Model konten menggambarkan apa yang mungkin terkandung oleh sebuah contoh dari tipe elemen. Model konten definisi meliputi:
Nama-nama yang diizinkan atau dilarang jenis unsur (misalnya, elemen UL berisi contoh-contoh dari elemen LI jenis, dan jenis unsur P tidak boleh mengandung unsur-unsur P lainnya).
DTD entitas (misalnya, elemen LABEL berisi contoh-contoh dari "% inline;" parameter entitas).
Dokumen teks (ditunjukkan oleh SGML membangun "# PCDATA"). Teks mungkin berisi referensi karakter. Ingatlah bahwa ini dimulai dengan & dan diakhiri dengan tanda titik koma (misalnya, "petualangan Hergé Tintin" mengandung karakter entitas referensi untuk "e akut" karakter).
Model isi suatu elemen ditentukan dengan sintaks berikut. Harap dicatat bahwa daftar di bawah ini adalah penyederhanaan SGML penuh aturan sintaks dan tidak alamat, misalnya, precedences.
(...)
Delimits kelompok.
Sebuah
Seorang harus terjadi, satu kali saja.
A +
Seorang harus terjadi satu atau lebih kali.
A?
Seorang harus terjadi nol atau satu waktu.
A *
A mungkin terjadi nol atau lebih kali.
+ (A)
A mungkin terjadi.
- (A)
Seorang tidak boleh terjadi.
A | B
A atau B harus terjadi, tetapi tidak keduanya.
A, B
Baik A dan B harus terjadi, dalam urutan itu.
A & B
Baik A dan B harus terjadi, dalam urutan apapun.
Berikut adalah beberapa contoh dari DTD HTML:
Elemen yang UL harus berisi satu atau lebih elemen LI.
DL elemen harus berisi satu atau lebih elemen DT atau DD dalam urutan apapun.
Elemen yang OPTION mungkin hanya berisi teks dan entitas, seperti & - ini diindikasikan oleh tipe data SGML # PCDATA.
Beberapa jenis elemen HTML menggunakan SGML tambahan fitur untuk mengecualikan unsur-unsur dari model konten mereka. Elemen Dikecualikan didahului oleh tanda hubung. Pengecualian eksplisit diperbolehkan menggantikan elemen.
Dalam contoh ini, - (A) berarti bahwa unsur yang tidak dapat muncul dalam elemen yang lain (yakni, jangkar mungkin tidak akan bersarang).
Perhatikan bahwa elemen tipe A adalah bagian dari entitas parameter DTD "% inline;", tapi tidak dimasukkan secara eksplisit karena - (A).
Demikian pula, deklarasi tipe elemen berikut untuk melarang bersarang FORMULIR bentuk:
3.3.4 Atribut deklarasi
The . Setiap atribut definisi adalah triplet yang mendefinisikan:
Nama atribut.
Jenis atribut nilai atau eksplisit seperangkat nilai-nilai yang mungkin. Nilai secara eksplisit didefinisikan oleh DTD adalah case-insensitive. Silahkan baca bagian tentang tipe data HTML dasar untuk informasi lebih lanjut tentang jenis nilai atribut.
Apakah nilai default atribut implisit (kata kunci "# TERSIRAT"), dalam hal mana nilai default harus dipasok oleh agen pengguna (dalam beberapa kasus melalui warisan dari orang tua elemen); selalu dibutuhkan (kata kunci "# REQUIRED") atau tetap dengan nilai tertentu (kata kunci "# FIXED"). Beberapa atribut definisi secara eksplisit menentukan nilai default untuk atribut.
Dalam contoh ini, nama atribut didefinisikan untuk elemen MAP. Atribut bersifat opsional bagi elemen ini.
Nama CDATA # TERSIRAT
>
Jenis nilai atribut diizinkan untuk diberikan sebagai CDATA, sebuah tipe data SGML. CDATA adalah teks yang dapat berisi referensi karakter.
Untuk informasi lebih lanjut tentang "CDATA", "NAMA", "ID", dan tipe data lainnya, silahkan baca bagian tentang tipe data HTML.
Contoh berikut menggambarkan beberapa atribut definisi:
rowspan NOMOR 1 - jumlah baris yang dibatasi oleh sel --
http-equiv NAMA # TERSIRAT - nama header respon HTTP --
id ID # TERSIRAT - dokumen-lebar id unik --
valign (atas | tengah | bottom | baseline) # TERSIRAT
Rowspan atribut yang nilai-nilai memerlukan tipe NOMOR. Nilai default diberikan secara eksplisit sebagai "1". Opsional http-equiv nilai atribut memerlukan tipe NAMA. Id atribut opsional memerlukan tipe nilai ID. Valign atribut opsional dibatasi untuk mengambil nilai dari himpunan (atas, tengah, bawah, baseline).
DTD entitas dalam definisi atribut
Atribut definisi mungkin juga mengandung parameter referensi entitas.
Dalam contoh ini, kita melihat bahwa daftar definisi atribut untuk elemen LINK dimulai dengan "% attrs;" parameter entitas.
% attrs; -% coreattrs,% i18n,% peristiwa --
charset% Charset; # TERSIRAT - char encoding yang terhubung sumber daya --
href% URI; # TERSIRAT - URI untuk dihubungkan sumber daya --
hreflang% LanguageCode; # TERSIRAT - kode bahasa --
ketik% contenttype; # TERSIRAT - penasihat jenis konten --
rel% LinkTypes; # TERSIRAT - jenis link forward --
rev% LinkTypes; # TERSIRAT - reverse link jenis --
media% MediaDesc; # TERSIRAT - untuk rendering pada media ini --
>
Start tag: dibutuhkan, Akhiri tag: dilarang
The "% attrs;" entitas parameter didefinisikan sebagai berikut:
The "% coreattrs;" entitas parameter dalam "% attrs;" melebarkan definisi sebagai berikut:
"id ID # TERSIRAT - dokumen-lebar id unik --
kelas CDATA # TERSIRAT - daftar yang dipisahkan ruang kelas --
gaya% StyleSheet; # TERSIRAT - gaya terkait info --
title% Text; # TERSIRAT - penasihat judul - "
>
The "% attrs;" entitas parameter telah ditetapkan untuk kemudahan karena atribut-atribut ini ditetapkan untuk sebagian besar jenis elemen HTML.
Demikian pula, DTD mendefinisikan "% URI;" parameter entitas sebagai ekspansi ke string "CDATA".
- Sebuah Uniform Resource Identifier,
lihat [URI]
->
Sebagai contoh ini menggambarkan, entitas parameter "% URI;" menyediakan pembaca DTD dengan lebih banyak informasi mengenai jenis data yang diharapkan untuk sebuah atribut. Entitas serupa telah ditetapkan untuk "% Color;", "% Charset;", "% Length;", "% Pixels;", dll
Boolean atribut
Beberapa atribut memainkan peran boolean variabel (misalnya, atribut yang dipilih untuk elemen OPSI). Penampilan mereka di awal tag dari suatu unsur menunjukkan bahwa nilai atribut "benar". Ketidakhadiran mereka menyiratkan nilai "false".
Atribut boolean dapat secara legal mengambil nilai tunggal: nama atribut itu sendiri (misalnya, dipilih = "dipilih").
Contoh ini mendefinisikan atribut yang dipilih untuk menjadi atribut boolean.
dipilih (dipilih) # TERSIRAT - Pilihan ini pra-selected --
Atribut di-set ke "true" dengan muncul di awal elemen tag:
Tidak ada komentar:
Posting Komentar