XHTML5 öldü mü yoksa sadece HTML5'in eş anlamlısı mı?


87

Peki XHTML5'e ne oldu?

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

Bu sayfa hem xhtml5 hem de html5 için taslak mı? Yani bu doktipler arasında bir fark yok mu?


1
2014-12-08 itibariyle W3C'nin hala standart üzerinde çalıştığı görülmektedir. w3.org/TR/html5 ve w3.org/TR/html5/the-xhtml-syntax.html 2014-10-28 güncellendi.
Russel Winder

6
Günümüzde, 2015'in, XHTML bir W3C standardıdır! ... Güncel tartışmalara
Peter Krauss

2
Yanlış cevabı kabul ettin. Vaxquis tarafından cevap doğru cevaptır.
JacquesB

Yanıtlar:


77

2012 yılında W3C'nin HTML 5 için XHTML'den vazgeçmeye karar verdiği açıktı.

  • Sadece birkaç kişi XHTML ile gerçekten ilgilendi. Web sitelerinin çoğu düz HTML olarak yazılmıştır.

  • Daha azı bile XHTML'nin ne hakkında olduğunu ve nasıl kullanılacağını gerçekten anlamıştı. XHTML kullanıyor gibi görünen pek çok web sitesi yerine yanlış başlıklar kullanılıyordu Content-Type: application/xhtml+xml.

  • XHTML'nin ne olduğunu ve başlıkların ne olması gerektiğini tam olarak anladığınız zaman bile, bazı crappy tarayıcıların application/xhtml+xmliçerik türünü kabul etmeyen / desteklemeyen işler gerçekten zor . Bu, başlığı tarayıcıya göre değiştirmeniz gerektiği anlamına geliyordu.

  • XHTML'nin XML kısmı, geliştiricilerin çözmesi gereken bazı garip durumlara da neden oldu. Bunlardan biri, INVALID_STATE_ERR: DOM Exception 11HTML karakterlerini içeren metni (gibi é) XHTML sayfasındaki bir öğeye atadığınızda görünen mesajdır . Bir AJAX isteğinde bulunduktan sonra büyük bir web uygulamasında çok yararlı mesajı ile bu hatayla karşılaştığınızda, JQuery, AJAX veya başka bir şeylerin hatası olup olmadığı hakkında hiçbir fikriniz yok.

  • HTML 5 kodunu yazmak, etiketlerin her yere karıştırılması anlamına gelmez. XML ve XHTML konusunda tutkuluysanız, yine de XML'e çok yakın görünecek olan HTML 5 kodunu yazabilirsiniz.

  • Cep telefonlarının ilk günlerinde, XHTML çok güçlü olmayan mobil cihazlar için ilginçti. XML Ayrıştırma HTML'den çok daha kolaydır. Şimdi, çift çekirdekli mobil cihazlarda, geçerli geçerli XML veya kirli HTML'yi kesmek ve karışık etiketlerle doldurmak zorunda kalmaları gerçekten önemli değil.

Ekim 2014'ün spesifikasyonu XHTML sözdiziminden bahseder . Şimdilik, yeni XHTML dili ( sözdizimi değil ) gibi bir şey olup olmadığı ve XHTML'nin konumu ne olacak, ne de yeni XHTML standardının ana tarayıcılar tarafından benimsenmesi açık değildir.


11
Sanırım cevabınızdaki eksik olan tek şey polyglot işaretlemesine
yannis

2
Bununla birlikte, HTML5'i XML olarak sunabilir ve daha katı sözdiziminden faydalanabilirsiniz.
Erik,

3
@ErikReppen, ancak varlık referanslarının avantajını kaybedeceksiniz 
Bay Lister

4
Berbat bir karar. XML'le kullanılabilecek XSL takımlarını attık.
Mihai Danila

5
Bu ifade yanlıştır. W3C, HTML5'te XHTML'yi terk etmedi XHTML sözdizimi, kelime haznesi ve API'ler
Rob

32

XHTML5 , "HTML5 XML olarak seri hale getirilmiş HTML" ile eşanlamlıdır.

İkisi bu şartnamede tanımlanan bu soyut dili kullanan kaynakları iletmek için kullanılabilecek çeşitli somut sözdizimleri vardır.

...

İkinci somut sözdizimi, bir XML uygulaması olan XHTML sözdizimidir. Bir belge application / xhtml + xml gibi bir XML MIME türüyle iletildiğinde, bir XML işlemcisi tarafından ayrıştırılmak üzere Web tarayıcıları tarafından bir XML belgesi olarak değerlendirilir. Yazarlara, XML ve HTML işlemlerinin farklı olduğu hatırlatılır; özellikle, küçük sözdizimi hataları bile, XML olarak etiketlenen bir belgenin tam olarak oluşturulmasını engellerken, HTML sözdiziminde yoksayılırlar. Bu spesifikasyon, "XHTML 5" olarak bilinen XHTML sözdiziminin 5.0 versiyonunu tanımlar.

Ayrıca, burada HTML5 polyglots (normal HTML5 ve XML olarak seri hale getirilebilen sayfalar) yazma konusunda güzel bir belge var:

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

Ve hatta bir validator!

http://html5.validator.nu/

Bugünlerde nadiren XHTML5 olarak adlandırılır (ve muhtemelen daha nadiren kullanılır), çünkü temel olarak hala HTML5'tir, ancak hala oradadır.

Basitçe söylemek gerekirse: HTML5 spec'teki her değişiklik aynı zamanda XHTML5'teki tekabül eden bir değişikliktir.


10

HTML5 bir fiili ve de jure standardıdır! Standart olarak XHTML de var.

HTML5 - HTML ve XHTML için bir kelime hazinesi ve ilişkili API'ler

W3C Tavsiye Kararı 28 Ekim 2014

Standardın başlığı "ve XHTML" dizesini içerir , bu nedenle W3C'nin HTML ve XHTML'yi tek bir standartta birleştirme kararından söz ediyoruz ; ve bu standart, bir HTML dosyasının nasıl XHTML dosyasına seri hale getirileceğini ve bunun tersi de gösterir.

XHTML parçalar ve önemli notlar:


Anlama ve kullanma

LF Sikos tarafından özetlendiği gibi

XHTML5, HTML5'in XML serileştirmesidir. Sözdizimi, HTML5 özelliği tarafından tanımlanmıştır. Ancak, XHTML5 bir XML uygulaması olduğundan biriyle karıştırılmamalıdır. Başka bir deyişle, HTML5 ve XHTML5 aynı kelime haznesi ancak farklı ayrıştırma kurallarına sahiptir.

HTML5 belgeleri de geçerli XML belgeleri olabilir. Bu işaretlemeye genellikle “çok dilli” bir dil denir. Aynı anda HTML5 ve XML belgeleri olan belgelerin örtüşen dilidir. HTML5 ve XHTML5 serileştirmeleri çapraz uyumludur. Bununla birlikte, XHTML5 daha katı bir sözdizimine sahiptir. Ayrıca, XHTML5'in bazı kısımları HTML5'te, örneğin işleme talimatlarında geçerli değildir.

Yani, açıkçası (ve @vaxquis vurguladığı) "XHTML XML seri için sadece bir sözdizimi" vardır hayır DTD veya XML şema diğer tür .

Bazı insanlar "XHTML5, XHTML'dir" demekten hoşlanmaz. Soru, "XHTML olarak ne zaman kullanabilirim" hakkında bir mini SSS'ye bölünmelidir. Bu bir WIKI, lütfen bazı "yanlış anlama" varsa düzeltin ...


SSS

XHTML5'i "2014 XHTML standardı sürümü" olarak kullanabilir miyim?

"Mükemmel ve genel HTML5 - XHTML5 / XHTML5 - HTML5 dönüşümlerinde" bazı sorunlar vardır, "kişisel seçimler" yapmanız ve bilgileri kaybetmeniz gerekir. Bağlam farklı cevaplar olacağı için:

  • Gevşek konuşma : EVET. Haritalamanın mükemmel ve geri döndürülebilir olduğu birçok (basit) örnek var.

  • Kesinlikle konuşuyorum : HAYIR. Ayrıca aşağıdaki @vaxquis yorumuna ve bu sayfadaki eski cevaplara bakın. Bazı tipik problemler:

XSLT, XPath vb. İle (korkusuz!) XHTML5 serileştirme kullanabilir miyim?

Evet yapabilirsin. Serileştirme parçaları bile.

XHTML5'i doğrulayabilir miyim?

Evet, ama bu kadar hızlı ve eski DTD'leridir daha kolay değil ... gibi karmaşık doğrulayıcılarını Bkz validator.nu

XHTML5'i bir XSLT zincirinde terminal olmayan çıkış olarak kullanabilir miyim?

Evet yapabilirsin. Ne yapabileceğini açıklayalım.

Cocoon gibi bazı çerçeveler " XSLT zincirlerini " kullanıyor. HTML5 ve XHTML5 çıktıları "zincirdeki son çıktı" olarak kullanılabilir ... Tabii ki, ara adımlarda, HTML5 kullanılamaz, çünkü XML değildir, ancak XHTML5 kullanılabilir.

Yukarıdaki doğrulama sorunu burada tekrar ortaya çıkmaktadır : güçlü bir kongre yoktur, bu nedenle, bazen, "XHTML standart yapısının" daha az netliği ortaya çıkar. Bu durumda “kendiniz sözleşmelere” dikkat etmeli ve tutarlı olmalısınız.

HTML5 sayfasının DOMDocument'i kullanırken, bir saveXML()yöntem kullanabilir miyim ?

Evet. Bu seri hale getirme tavsiyelerinin kullanıldığı tipik bir durumdur. XML geçerli olacak, XHTML5 kodu orijinal HTML5 ve DOM durumundan eşlenecek ... Ancak bazı yapılarda, yukarıda açıklandığı gibi bazı bilgiler kaybolabilir.


Hayır. XHTML, HTML5'in XML serileştirmesi için bir sözdizimidir ; bu, yaklaşık bir yıl önce cevabımda anlattığım bir konudur. "Birleştirme" yok, çünkü XHTML 2.0'ı rafa kaldırdıktan sonra W3C / WHATWG HTML5 taslaklarının başında "birleştirildi"; Burada bağlamı yanlış anlıyorsunuz. Ayrıca, XPath ve XSLT sadece konu ile teğetsel olarak ilişkilidir; Ayrıca, iyi bilinen bir MIME türü "XHTML parçası ve / veya notu" nasıldır? Ayrıca, temelde olamaz HTML seri haline XHTML - Önerilen çözümün her durumda, "yeniden serialize" seri hale Polyglots yazmaktır.
vaxquis

hum ... @vaxquis, tamam, düzenleme yaptım, lütfen yardım et. Ve burada, yorumlarda, aynı dilde konuşalım: "kesinlikle konuşma" yı kullandınız ve giriş bölümünde "daha geniş konuşma" yı kullandım ... Artık cevap metninde neyi düzeltmek istediğinizi gösterebiliriz.
Peter Krauss

9

Evet, ne yazık ki XHTML gitti.

MainMa'nın büyük cevabına 1 neden daha eklemek:

XHTML oluşturulduğunda, WebApps tarafından, tarayıcı dışı yazılımlar tarafından anlaşılan ve etiketli çorba HTML ayrıştırıcılarına sahip olmayacak şekilde yapılandırılmış içerik sunmak için kullanılmıştır. ScreenReaders için XHTML hala harika, ancak başka herhangi bir yazılım için, WebServices bu ihtiyaca uygun ve çoğunlukla XML veya JSON kullanıyorlar. SOAP'ın kendisi, XHTML'den daha basit ve operasyon odaklı olan kendi XML Şemasına sahiptir.

Bildiğim kadarıyla, dünyada hem tarayıcılara hem de diğer istemcilere aynı HTTP mesajını veren 1 WebApp bile yok. Müşterinin tercihine bağlı olarak bir içeriğin birden fazla içerik türünde aynı temsili olarak sunulması amaçlanan REST mimarisi bile, XHTML / feed tarayıcılarına hizmet vermek için kullanılmaz.

Örneğin, Java EE'de Eclipse kullanarak HTML sunmak için Servlets + JSP'leri, Axis2 ile birlikte bir Web Hizmeti sunmak için tutan benzersiz bir savaş dosyası dağıtabiliriz. Tarayıcılara ve Web Hizmetine yönelik ayrı yazılımlar geliştirmek, hepsine hizmet veren benzersiz, karmaşık bir yazılım kullanmaktan daha kolaydır.

REST'in reddedilmesinin ana nedeni, hakkında hiçbir şey bilmeden, her tür müşteri için aynı içeriğe hizmet eden bir sunucu geliştirmenin karmaşıklığıdır (ve basit olması gerekiyordu!). Ayrıca, XHTML her değiştiğinde tarayıcı olmayan istemcileri güncellenmeye zorlamayacak kararlı bir tanımın sürdürülmesiyle birlikte Web’in hızlı gelişme ihtiyacını ele almak zordur.

Aynı şekilde, bir XHTML belgesini ayrıştıran, tarayıcı tarafından oluşturulan düzeni yapılandırması gereken ve içeriği tutması amaçlanan tüm XML öğeleri nedeniyle geçerli olsa bile tarayıcı olmayan bir istemci geliştirmek çok zordur.

REST uygulayıcıları SOAP'ın bir tarayıcı için tasarlanan bir XHTML'den daha basit olan XML karmaşıklığından şikayet ediyorlarsa, birden fazla istemci türü, sunucu ve istemci tarafı için XHTML'yi kullanmanın ne kadar zor olduğunu hayal edin.

Uygulamada: HTML'leri, isterseniz XML benzeri, tarayıcılar için Web Siteleri ve tarayıcı olmayan istemciler için herhangi bir Web Hizmeti çözümü oluşturmak için kullanın.

AMA, ayrıca XHTML5'in oluşturulması gerektiğini düşünüyorum. XHTML 1.1 (tamam, 1.0, 1.1 kullanılamaz) HTML5 ile modası geçmiş olacak ve yine de HTML5'in öğelerini kabul eden ve XML'in düzgünlüğünü doğrulayan bir denetleyiciye ihtiyacımız var.


1
Belki biraz geciktim ama XHTML 1.1 nasıl 1.0'a göre kullanılmaz? Herhangi bir şey olursa, DTD'si daha fazla eleman içerir. Çerçeve setleri ve bunun gibi şeyler hakkında konuşmuyorsanız?
Bay Lister,

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.