Hubungan dan perbedaan antara SGML, XML, HTML dan XHTML

16
  1. Saya bertanya-tanya apa arti "profil" di Wikipedia :

    XML adalah profil SGML standar ISO, dan sebagian besar XML berasal dari SGML tidak berubah.

  2. Menurut http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML adalah bagian dari SGML.

    XML adalah subset yang sangat fungsional dari SGML.

    XHTML meluas dan himpunan bagian HTML.

    Apakah "satu menjadi bagian dari yang lain" berarti bahwa kode pada yang pertama juga benar secara sintaksis dan secara semantik sama dengan yang kedua?

    Seperti dalam pengertian teori himpunan dasar,

    • Apakah HTML, XML, dan XHTML semuanya merupakan subset berbeda dari SGML?
    • Apakah XML dan HTML hampir tidak saling berpotongan?
    • Apakah XHTML adalah superset dari XML dan HTML?
  3. Dapatkah saya mengharapkan penjumlahan yang lebih singkat dan jelas dari perbedaan tujuan keempat dan / atau kapan menggunakan yang mana, daripada tautan di atas? Saya benar-benar bingung tentang garis yang jelas antara tujuan yang dimaksudkan.
  4. Menurut http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML bukan Bahasa Markup tunggal. Ini adalah bahasa logam untuk memungkinkan pengguna mendesain bahasa markup mereka sendiri.

    Saya bertanya-tanya bagaimana memahami XML dan HTML, keduanya merupakan himpunan bagian dari SGML, tetapi HTML adalah bahasa markup sementara XML bukan bahasa markup tetapi bahasa logam untuk merancang bahasa markup?

    Apakah SGML dan XHTML keduanya juga bahasa logam untuk merancang bahasa markup?

  5. Seperti dalam kedua tautan menyebutkan bahwa HTML adalah aplikasi SGML serta subset SGML, dan XHTML adalah aplikasi XML. Saya bertanya-tanya apa perbedaan antara mengatakan satu bahasa adalah aplikasi dari yang lain, dan satu bahasa adalah bagian dari yang lain?
StackExchange untuk Semua
sumber

Jawaban:

8

HTML dan XML keduanya bahasa markup (karenanya * ML). XML adalah bahasa markup umum yang cocok untuk mewakili data arbitrer, sedangkan HTML adalah bahasa markup spesifik yang hanya cocok untuk mewakili halaman web.

HTML dan XHTML hanya merupakan himpunan bagian dari SGML, kecuali bahwa XHTML memiliki spesifikasi tambahan sehingga juga divalidasi sebagai XML. Pikirkan XML sebagai ayah baptis berpengaruh XHTML.

Karena hubungan ini dengan SGML di ketiga bahasa ini, ada banyak kesamaan, tetapi mereka semua dianggap bahasa yang berbeda. Namun, sebagian besar yang mendefinisikan bahasa-bahasa ini adalah pembatasan mereka pada SGML.

  • HTML membatasi SGML dengan mendefinisikan daftar tag yang diizinkan untuk digunakan.
  • XML membatasi SGML dengan tidak mengizinkan tag awal dan akhir yang tidak tertutup atau kosong, dan memaksa atribut menjadi eksplisit. XML juga memiliki sejumlah besar batasan tambahan yang tidak ditemukan di SGML.
  • XHTML membatasi SGML dengan tag dari HTML (dengan beberapa pengecualian, seperti frameset, et al), dan dengan batasan tag dan entitas dari XML.

Anda mungkin menemukan dokumen ini bermanfaat, walaupun istilah teknisnya mungkin sulit dicerna. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML bukan bahasa logam untuk mendefinisikan bahasa markup. Sungguh itu hanya SGML. XML hanyalah bahasa markah pemformatan data. Sumber yang Anda kutip menggunakan istilah teknis dengan tidak tepat, itulah sebabnya mereka membingungkan.

Tujuan

XML adalah untuk mendefinisikan format data Anda sendiri. Jika Anda ingin meneruskan data antara dua sistem, XML sering kali merupakan cara untuk melakukannya.

Jika, misalnya, Anda harus mengirimkan pesanan penjualan dari situs web Anda ke sistem penagihan Anda, Anda dapat membuat muatan XML ini:

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

Situs web Anda kemudian akan mengirim XML itu ke sistem penagihan Anda, yang kemudian dapat menguraikan data dari XML itu.

XHTML dan HTML jelas hanya untuk halaman web. Tujuan utama XHTML adalah untuk menghapus banyak ambiguitas yang kami miliki di tahun-tahun sebelumnya (dekade) pengembangan web. Kembali di akhir 90-an ketika saya mulai, kami menggunakan HTML 3.2 yang memungkinkan untuk kode ceroboh serius. HTML 4+ dan XHTML mencoba untuk memperbaikinya dengan menyarankan atau menegakkan tag penutup eksplisit, atribut eksplisit, dan tag yang tidak diizinkan, yang membuatnya lebih mudah pada browser dan manusia, dan menghindari perbedaan tak terduga dalam perilaku lintas-browser.

Yordania
sumber
Terima kasih! (1) Apakah himpunan bagian XHTML HTML dan XML? (2) Apakah benar bahwa HTML bukan bagian dari XML, atau XML adalah bagian dari HTML? Apakah HTML dan XML berpotongan nonempty, atau benar-benar terpisah satu sama lain?
StackExchange for All
(3) Apa perbedaan antara mengatakan satu bahasa adalah aplikasi dari yang lain, dan satu bahasa adalah bagian dari yang lain?
StackExchange for All
Ada dokumen yang sesuai dengan XML dan HTML; ada dokumen yang sesuai dengan XML dan bukan HTML, dan ada dokumen yang sesuai dengan HTML dan bukan XML. Jadi tidak ada subset dari yang lain, tetapi mereka memiliki persimpangan yang tidak kosong.
Michael Kay
@Tim: (1) HTML, XML, dan XHTML bukan subset dari apa pun kecuali SGML. Mereka semua berbeda. XML sebenarnya tidak ada hubungannya dengan HTML atau XHTML ... ini melayani tujuan yang berbeda. XHTML dapat diuraikan sebagai HTML dan XML, tetapi hanya digunakan oleh browser sebagai markup HTML. HTML dan XML keduanya memiliki nenek moyang yang sama dengan SGML, tetapi sebaliknya tidak terkait. Untuk setiap maksud, mereka terpisah karena SGML sangat umum.
Jordan
Jujur saya pikir Anda menyelam terlalu dalam ke terminologi dengan aplikasi vs subset. Saya tidak berpikir ada perbedaan antara istilah-istilah itu, atau jika ada, saya ragu itu disetujui secara luas. Cukuplah untuk mengatakan bahwa XHTML meminjam konsep dari XML dan digunakan sebagai subset ketat dari HTML. HTML lebih dulu. XHTML datang sesudahnya.
Jordan
6

Saya akan mulai dengan mengatakan bahwa XML adalah subset dari SGML, kemudian XHTML adalah subset dari XML.

HTML didasarkan pada SGML tetapi dengan beberapa aturan berbeda. XHTML pada dasarnya adalah versi HTML yang diperbarui tetapi dengan beberapa aturan meletakkannya sehingga XML juga benar.

Beberapa catatan tentang bagaimana HTML 5 Standard bekerja dengan spesifikasi lain. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

Saya tidak yakin tentang perbedaan antara SGML dan XML atau kapan Anda akan menggunakannya. Meskipun XML tampaknya biasa digunakan.

Untuk XHTML dan HTML Anda mungkin lebih baik selalu menggunakan XHTML. Kesalahan lebih mudah ditemukan dan sebagai bonus itu juga akan menjadi XML yang valid.

WalterJ89
sumber
Terima kasih! (1) Saya bertanya-tanya bagaimana memahami dua fakta yang tampaknya saling bertentangan: XML dan HTML keduanya adalah himpunan bagian dari SGML, dan HTML adalah bahasa markup sementara XML bukan bahasa markup tetapi bahasa logam untuk merancang bahasa markup? (2) Menurut balasan Anda, XHTML adalah bagian dari XML. XHTML adalah superset HTML sebagai "XHTML subset HTML" yang dikutip dari satu tautan di posting saya. Jadi HTML adalah bagian dari XML? Saya tidak yakin itu benar.
StackExchange for All
HTML melanggar terlalu banyak aturan menjadi XML. HTML lebih dekat ke SGML saya percaya. HTML longgar dengan tag dan ada sejumlah jenis tag yang berbeda. XHTML hanya versi XML dari HTML.
WalterJ89
Terima kasih! Seperti dalam kedua tautan menyebutkan bahwa HTML adalah aplikasi SGML serta subset SGML, dan XHTML adalah aplikasi XML. Saya bertanya-tanya apa perbedaan antara mengatakan satu bahasa adalah aplikasi dari yang lain, dan satu bahasa adalah bagian dari yang lain?
StackExchange for All
2

Sejarah ini mungkin menerangi Anda di sini. Cukup berbicara tentang meta-bahasa, profil, himpunan bagian dan contoh sedikit kering! Saya akan mencoba membuatnya singkat dan sederhana.

SGML berevolusi dari GML (Generalized Markup Language) yang dirancang oleh 3 insinyur IBM pada 1960-an sebagai sarana untuk menyimpan dokumen hukum, pemerintah, industri dan militer yang rumit. GML secara bertahap disempurnakan hingga distandarisasi sebagai SGML pada tahun 1986.

GML / SGML bukan bahasa per se . Ini agak meta-bahasa , yaitu bahasa untuk mendefinisikan bahasa yang sesuai atau "aturan" di mana format berbagai dokumen yang rumit dapat dirancang dengan cara yang secara umum konsisten. Oleh karena itu setiap jenis dokumen yang berbeda akan menentukan SGML sendiri yang sesuai dengan set nama tag ditambah atribut terkait, serta setiap pengidentifikasi publik formal / ruang nama, skema, dll. Setiap format yang ditentukan seperti itu menjadi bahasa penyimpanan data yang berbeda untuk dokumen ketik yang bersangkutan. Karena konsistensi antara semua dokumen yang sesuai dengan aturan SGML, dimungkinkan untuk menulis kode untuk menyusun / memproses data dalam dokumen-dokumen ini dan mentransfer data antara dokumen yang berbagi format umum.

SGML ditemukan terlalu rumit untuk banyak dokumen tetapi berukuran lebih kecil. Jadi XML dikembangkan antara 1996 dan 2006 sebagai himpunan bagian (kata profil secara efektif berarti sama dengan himpunan bagian) dari SGML yang dapat menangani dokumen kecil dan besar. Menjadi bagian dari bahasa meta, XML itu sendiri adalah bahasa meta, meskipun lebih sederhana. Anda bisa mengatakan bahwa XML menyediakan dasar untuk mendesain format dokumen yang cocok untuk penyimpanan yang mudah dan transfer antar sistem dalam jaringan.

Setelah standarisasi SGML tetapi sebelum disederhanakan menjadi XML, internet muncul dan dengan itu diperlukan suatu format dokumen yang memungkinkan transfer dan tampilan dokumen dan data yang longgar. Hasilnya adalah bahasa HTML, sebuah instance (kadang-kadang disebut sebagai aplikasi ) dari SGML dengan 18 tag yang telah ditentukan memberikan cara standar untuk menampilkan berbagai tipe data, misalnya teks, gambar, audio, dll. HTML dieksploitasi memungkinkan SGML mengizinkan beberapa elemen untuk menghilangkan tag awal atau akhir. Versi HTML selanjutnya menambahkan tag dan atribut baru ke dalamnya dan membuat beberapa yang sudah usang menjadi usang. Sampai HTML 5, perubahan pada HTML dibuat agar selalu menjadi bahasa anak SGML.

Setelah XML distandarisasi, sebuah contoh yang disebut XHTML keluar yang menggabungkan nama tag HTML yang ada dengan kekakuan XML pada penutupan tag, ruang nama, skema, dll. XHTML awalnya memegang janji berguna untuk menyimpan, mentransfer, dan menampilkan data. Tampaknya akan menggantikan HTML sebagai cara paling umum untuk menampilkan materi web - sampai HTML 5 keluar. HTML 5 memiliki beberapa fitur sintaksis yang melampaui yang didefinisikan dalam SGML sehingga memberikan tampilan data yang lebih kaya, terutama untuk situs web yang sarat multimedia. Seiring berjalannya waktu, fitur tambahan ditambahkan ke HTML 5 yang memperkaya lebih banyak penggunaannya untuk tampilan data / penggunaan ke titik yang tidak mungkin digantikan oleh versi XHTML baru, setidaknya sejauh tampilan data yang bersangkutan. Meskipun standar untuk HTML & XHTML dilakukan oleh kelompok kerja W3C, propagasi aktual dari bahasa-bahasa ini "di lapangan" dilakukan oleh perancang web progresif dan tidak ada yang lebih progresif daripada mereka yang bekerja di sektor media (periklanan / PR / pemasaran): lihat saja kreativitas situs agen periklanan dibandingkan dengan situs lain. Sektor ini sangat menyukai bahasa HTML 5 yang baru, senang mengeksploitasi kapasitasnya untuk SVG, audio, video danAPI baru . Adopsi mereka yang siap terhadap HTML 5 menyebabkan popularitasnya di kalangan desainer web secara umum, proses yang dipercepat oleh pertukaran keterampilan dan trik online di YouTube dan berbagai situs lainnya. Versi XHTML yang diperbarui, XHTML5, telah muncul tetapi sebenarnya bukan turunan XML yang ketat, melainkan versi HTML5 yang merupakan serial-XML. Hanya sebagian kecil dari situs yang tampaknya memiliki kegunaan untuk itu.

Itulah kisah di balik bahasa data ini. Saya harap ini membantu Anda membedakan arti dan tujuan dari semuanya. Secara filosofis, cerita ini menunjukkan bagaimana alat pengaktif penting (SGML) untuk teknologi baru (internet) dapat, dalam lingkungan baru dengan tuntutan yang semakin beragam, melampaui batas aslinya namun menjadi lebih sederhana secara konseptual, lebih fleksibel, dan lebih kuat.

Bagasi
sumber
1

Umumnya di dunia standar, "profil" standar adalah pilihan opsi yang ditawarkan standar: misalnya, jika standar memungkinkan dokumen dikodekan dalam UTF-8 atau UTF-16, profil standar mungkin memerlukan mereka akan dikodekan dalam UTF-8. Istilah "himpunan bagian" memiliki arti yang sangat mirip; meskipun bisa dibilang istilah "profil" sedikit lebih luas.

Michael Kay
sumber
Terima kasih! (1) Bagaimana dengan arti dan perbedaan antara "aplikasi", "subset" dan "profil", seperti pada Bagian 5 dari pertanyaan saya? (2) Dalam "XHTML adalah dasar untuk sekumpulan tipe dokumen masa depan yang memperluas dan mengelompokkan HTML", apakah itu berarti XHTML adalah subset dari HTML atau HTML adalah subset dari XHTML?
StackExchange for All