Apakah XHTML5 mati atau hanya sinonim dari HTML5?

87

Jadi apa yang terjadi dengan XHTML5?

http://www.w3.org/TR/html5/

Halaman itu adalah konsep untuk xhtml5 dan html5? Jadi tidak ada perbedaan di antara kedua tipe ini?

W3C
sumber
1
Tampaknya pada 2014-12-08 bahwa W3C masih bekerja pada standar. w3.org/TR/html5 dan w3.org/TR/html5/the-xhtml-syntax.html dimutakhirkan 2014-10-28.
Russel Winder
6
Saat ini, tahun 2015, XHTML adalah standar W3C! ... Lihat diskusi terbaru
Peter Krauss
2
Anda menerima jawaban yang salah. Jawaban oleh vaxquis adalah jawaban yang benar.
JacquesB

Jawaban:

77

Pada 2012 saat penulisan, jelas bahwa W3C memutuskan untuk meninggalkan XHTML untuk HTML 5. Keputusan ini dimotivasi oleh beberapa alasan:

  • Hanya sedikit orang yang benar-benar tertarik pada XHTML. Sebagian besar situs web ditulis dalam HTML biasa.

  • Bahkan lebih sedikit yang benar-benar mengerti tentang XHTML dan bagaimana menggunakannya. Terlalu banyak situs web yang berpura-pura melayani XHTML menggunakan header yang salah, alih-alih Content-Type: application/xhtml+xml.

  • Bahkan ketika Anda sepenuhnya memahami apa XHTML itu dan apa yang harus menjadi header, masalahnya benar-benar rumit dengan beberapa browser jelek yang tidak menerima / mendukung application/xhtml+xmltipe konten. Ini berarti Anda harus mengubah tajuk sesuai dengan peramban.

  • Bagian XML dari XHTML juga menyebabkan beberapa situasi aneh yang harus diselesaikan oleh pengembang. Salah satunya adalah INVALID_STATE_ERR: DOM Exception 11pesan yang muncul ketika Anda menetapkan teks yang berisi karakter HTML (seperti é) ke elemen dalam halaman XHTML. Ketika Anda menemukan kesalahan ini dengan pesan yang sangat membantu dalam aplikasi web besar setelah melakukan permintaan AJAX, Anda benar-benar tidak tahu apakah itu kesalahan JQuery, AJAX, atau yang lainnya.

  • Menulis kode HTML 5 tidak berarti mencampur tag di sekitar. Jika Anda bersemangat tentang XML dan XHTML, Anda masih dapat menulis kode HTML 5 yang akan terlihat sangat dekat dengan XML.

  • Pada masa awal ponsel, XHTML menarik untuk perangkat seluler yang tidak terlalu kuat. Parsing XML jauh lebih mudah daripada HTML. Sekarang, dengan perangkat mobile dual-core, itu benar-benar tidak masalah jika mereka harus mengurai XML yang valid bersih atau HTML kotor penuh dengan hacks dan tag campuran.

Spesifikasi Oktober 2014 menyebutkan sintaks XHTML . Untuk saat ini, tidak jelas apakah ada yang namanya bahasa XHTML baru (bukan sintaksis ), dan jika ada, apa yang akan menjadi posisi XHTML, atau adopsi standar XHTML baru oleh browser utama.

Arseni Mourzenko
sumber
11
Saya pikir satu-satunya jawaban Anda yang hilang adalah referensi ke marka polyglot
yannis
2
Anda dapat menyajikan HTML5 sebagai XML, dan mendapatkan manfaat dari sintaksis yang lebih ketat.
Erik Reppen
3
@ErikReppen tetapi Anda akan kehilangan manfaat dari referensi entitas seperti 
Mr Lister
4
Keputusan yang mengerikan. Kami membuang alat XSL yang mungkin tersedia dengan XML.
Mihai Danila
5
Pernyataan ini salah. W3C belum meninggalkan XHTML dalam HTML5 Sintaks, kosa kata dan API XHTML
Rob
32

XHTML5 adalah sinonim untuk "HTML5 serialized sebagai XML".

Ada berbagai sintaks konkret yang dapat digunakan untuk mengirimkan sumber daya yang menggunakan bahasa abstrak ini, dua di antaranya didefinisikan dalam spesifikasi ini.

...

Sintaks konkret kedua adalah sintaks XHTML, yang merupakan aplikasi XML. Ketika suatu dokumen ditransmisikan dengan tipe MIME XML, seperti aplikasi / xhtml + xml, maka itu diperlakukan sebagai dokumen XML oleh browser Web, untuk diurai oleh prosesor XML. Penulis diingatkan bahwa pemrosesan untuk XML dan HTML berbeda; khususnya, bahkan kesalahan sintaksis kecil akan mencegah dokumen yang diberi label sebagai XML tidak diterjemahkan sepenuhnya, sedangkan kesalahan tersebut akan diabaikan dalam sintaks HTML. Spesifikasi ini mendefinisikan versi 5.0 dari sintaks XHTML, yang dikenal sebagai "XHTML 5".

Juga, ada dokumen yang bagus untuk menulis polyglots HTML5 (halaman, yang dapat diserialisasi baik sebagai HTML5 dan XML biasa) di sini:

http://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5

Dan bahkan validator!

http://html5.validator.nu/

Ini jarang disebut XHTML5 saat ini (dan mungkin bahkan lebih jarang digunakan), karena pada dasarnya masih HTML5, tetapi masih ada di sana.

Sederhananya: setiap perubahan ke spesifikasi HTML5 juga merupakan perubahan yang terkait dan tersirat ke XHTML5.

vaxquis
sumber
10

HTML5 adalah standar de facto dan de jure ! XHTML ada di sana, sebagai standar juga.

HTML5 - Kosa kata dan API terkait untuk HTML dan XHTML

Rekomendasi W3C 28 Oktober 2014

Judul standar berisi string "dan XHTML" , jadi, kita berbicara tentang keputusan akhir W3C untuk menggabungkan HTML dan XHTML menjadi satu standar tunggal ; dan standar ini menunjukkan cara membuat serial file HTML ke dalam file XHTML dan sebaliknya.

XHTML bagian dan catatan penting:


Memahami dan menggunakan

Seperti yang dirangkum oleh LF Sikos

XHTML5 adalah serialisasi XML dari HTML5. Sintaksnya dijelaskan oleh spesifikasi HTML5. Namun, orang jangan bingung karena XHTML5 adalah sebagai aplikasi XML. Dengan kata lain, HTML5 dan XHTML5 memiliki kosa kata yang identik tetapi aturan parsing yang berbeda.

Dokumen HTML5 mungkin juga dokumen XML yang valid. Markup ini sering disebut sebagai bahasa "polyglot". Ini adalah bahasa dokumen yang tumpang tindih yang merupakan dokumen HTML5 dan XML secara bersamaan. Serialisasi HTML5 dan XHTML5 kompatibel lintas. Namun, XHTML5 memiliki sintaksis yang lebih ketat. Selain itu, beberapa bagian XHTML5 tidak valid dalam HTML5, misalnya, instruksi pemrosesan.

Jadi, secara tegas (dan ditekankan oleh @vaxquis) "XHTML hanyalah sintaks untuk serialisasi XML", tidak ada DTD atau jenis skema XML lainnya .

Beberapa orang tidak suka mengatakan "XHTML5 is XHTML". Pertanyaan harus dibagi menjadi mini-FAQ tentang "kapan saya bisa menggunakannya sebagai XHTML". Ini adalah WIKI, mohon koreksi jika ada beberapa "kesalahpahaman" ...


Faq

Bisakah saya menggunakan XHTML5 sebagai "versi standar XHTML 2014"?

Ada beberapa masalah dalam "konversi HTML5-ke-XHTML5 / XHTML5-ke-HTML5 yang umum dan generik", Anda harus melakukan "pilihan pribadi" dan kehilangan informasi. Karena konteksnya akan menjadi jawaban yang berbeda:

  • Longgar berbicara : YA. Ada banyak contoh (sederhana) di mana pemetaannya sempurna dan dapat dibalik.

  • Sebenarnya : TIDAK. Lihat juga @vaxquis komentar di bawah dan jawaban lama di halaman ini. Beberapa masalah khas:

Dapatkah saya menggunakan serialisasi (tak kenal takut!) XHTML5 dengan XSLT, XPath, dll.?

Ya kamu bisa. Bahkan serialisasi fragmen.

Bisakah saya memvalidasi XHTML5?

Ya, tetapi tidak begitu cepat dan mudah daripada DTD yang lama ... Lihat validator kompleks, sebagai validator.nu

Bisakah saya menggunakan XHTML5 sebagai output non-terminal dalam rantai XSLT?

Ya kamu bisa. Mari kita jelaskan apa yang Anda bisa.

Beberapa kerangka kerja, seperti Cocoon , menggunakan " rantai XSLT ". Output HTML5 dan XHTML5 dapat digunakan sebagai "output terakhir dalam rantai" ... Tentu saja, dalam langkah perantara, HTML5 tidak dapat digunakan karena non-XML, tetapi XHTML5 dapat digunakan.

Masalah validasi di atas muncul kembali di sini: tidak ada konvensi yang kuat, sehingga, kadang-kadang, kurang jelasnya "struktur standar XHTML" muncul. Dalam situasi itu Anda harus memperhatikan "konvensi diri sendiri", dan konsisten.

Saat menggunakan DOMDocument halaman HTML5, dapatkah saya menggunakan saveXML()metode?

Iya. Ini adalah situasi khas di mana rekomendasi serialisasi digunakan. XML akan valid, kode XHTML5 dipetakan dari keadaan HTML5 dan DOM yang asli ... Tetapi, dalam beberapa struktur, beberapa informasi dapat hilang, seperti yang dikomentari di atas.

Peter Krauss
sumber
nggak. XHTML hanyalah sintaks untuk serialisasi XML dari HTML5, yang merupakan topik yang sudah saya bahas dalam jawaban saya sekitar setahun yang lalu. Tidak ada "penggabungan", karena sudah "digabungkan" oleh draft HTML5 W3C / WHATWG awal setelah rak XHTML 2.0; Anda salah memahami konteksnya di sini. Juga, XPath & XSLT hanya terkait secara tangensial dengan masalah tersebut; juga, bagaimana jenis MIME yang terkenal "bagian XHTML dan / atau catatan"? Juga, pada dasarnya Anda tidak dapat membuat serialisasi HTML ke dalam XHTML - solusi yang diusulkan adalah menulis polyglots sebagai serialisasi, bukan "re-serialisasi".
vaxquis
hum ... @vaxquis, ok, saya edit, tolong bantu. Dan di sini, di komentar, mari kita bicara dalam bahasa yang sama: Anda menggunakan "berbicara dengan tegas" dan saya menggunakan "berbicara lebih luas" dalam pendahuluan ... Sekarang kita dapat menunjukkan dalam teks jawaban apa yang ingin Anda koreksi.
Peter Krauss
9

Ya sayangnya XHTML hilang.

Menambahkan 1 alasan lagi untuk jawaban hebat MainMa:

Ketika XHTML dibuat, itu dimaksudkan untuk digunakan oleh WebApps untuk menyajikan konten terstruktur yang akan dipahami oleh perangkat lunak non-browser, yang tidak akan memiliki parser HTML tag-soup. Untuk ScreenReaders XHTML masih bagus, tetapi untuk semua jenis perangkat lunak lain, WebServices cocok dengan kebutuhan itu, dan mereka kebanyakan menggunakan XML atau JSON. SOAP sendiri memiliki Skema XML sendiri, lebih sederhana dari XHTML dan berorientasi operasi.

Sejauh yang saya tahu, tidak ada 1 WebApp di dunia yang menyajikan pesan HTTP yang sama untuk browser dan klien lainnya. Bahkan arsitektur REST, yang dimaksudkan untuk melayani representasi konten yang sama dalam beberapa tipe konten berdasarkan preferensi klien, tidak digunakan untuk melayani browser XHTML / feed.

Di Java EE misalnya, menggunakan Eclipse kita dapat menggunakan file perang unik yang menahan Servlets + JSPs untuk melayani HTML, bersama dengan Axis2 untuk melayani WebService. Lebih mudah untuk mengembangkan perangkat lunak terpisah yang ditujukan untuk browser dan WebService daripada memiliki perangkat lunak unik dan kompleks yang melayani semuanya.

Alasan utama penolakan REST adalah kerumitan (dan itu dimaksudkan untuk menjadi sederhana!) Untuk mengembangkan server yang menyajikan konten yang sama untuk semua jenis klien tanpa mengetahui apa pun tentangnya. Dan juga sulit untuk menangani kebutuhan Web yang berevolusi cepat, bersama dengan menjaga definisi stabil yang tidak akan memaksa klien non-browser diperbarui setiap kali XHTML berubah, katakan itu untuk menjaga XHTML valid ketika dibangun oleh banyak modul yang berbeda.

Dengan cara yang sama, sangat sulit untuk mengembangkan klien non-browser yang mem-parsing dokumen XHTML, meskipun valid, karena semua elemen XML yang dimaksudkan untuk menyusun tata letak yang dibuat oleh browser, dan tidak dimaksudkan untuk menyimpan konten.

Jika pengadopsi REST sudah mengeluh tentang kompleksitas XML SOAP, yang WAY lebih sederhana daripada XHTML yang dimaksudkan untuk browser, bayangkan betapa sulitnya menangani XHTML untuk beberapa jenis klien, server dan sisi klien.

Dalam praktiknya: gunakan HTML, seperti XML jika Anda mau, untuk membangun WebSites untuk browser, dan segala jenis solusi WebService untuk klien non-browser.

NAMUN, saya juga berpikir bahwa XHTML5 harus dibuat. XHTML 1.1 (ok, 1.0, 1.1 tidak dapat digunakan) akan menjadi usang dengan HTML5, dan kami masih membutuhkan validator yang menerima elemen HTML5 dan memvalidasi XML wellformedness.

Hikari
sumber
1
Mungkin saya agak terlambat, tetapi bagaimana XHTML 1.1 tidak dapat digunakan dibandingkan dengan 1.0? Jika ada, DTD-nya mengandung lebih banyak elemen. Kecuali Anda berbicara tentang frameset dan hal-hal seperti itu?
Tn. Lister