แล้วเกิดอะไรขึ้นกับ XHTML5
หน้านั้นเป็นแบบร่างสำหรับ xhtml5 และ html5 หรือไม่ ดังนั้นจึงไม่มีความแตกต่างระหว่างหลักคำสอนเหล่านี้หรือไม่
แล้วเกิดอะไรขึ้นกับ XHTML5
หน้านั้นเป็นแบบร่างสำหรับ xhtml5 และ html5 หรือไม่ ดังนั้นจึงไม่มีความแตกต่างระหว่างหลักคำสอนเหล่านี้หรือไม่
คำตอบ:
ในปี 2012ในขณะที่เขียนเป็นที่ชัดเจนว่า W3C ตัดสินใจที่จะละทิ้ง XHTML สำหรับ HTML 5 การตัดสินใจครั้งนี้มีสาเหตุหลายประการ:
มีเพียงไม่กี่คนที่สนใจ XHTML จริงๆ เว็บไซต์ส่วนใหญ่เขียนด้วย HTML ธรรมดา
แม้แต่น้อยที่เข้าใจจริงๆว่า XHTML เกี่ยวกับอะไรและใช้อย่างไร เว็บไซต์ที่มากเกินไปซึ่งแสร้งทำเป็นจะให้บริการ XHTML Content-Type: application/xhtml+xml
ใช้ส่วนหัวผิดแทน
แม้ว่าคุณจะเข้าใจอย่างถ่องแท้ว่า XHTML คืออะไรและต้องเป็นส่วนหัวอะไรก็ตามเป็นเรื่องที่ยุ่งยากมากสำหรับเบราว์เซอร์เส็งเคร็งบางตัวที่ไม่ยอมรับ / สนับสนุนapplication/xhtml+xml
ประเภทเนื้อหา หมายความว่าคุณต้องเปลี่ยนส่วนหัวตามเบราว์เซอร์
ส่วน XML ของ XHTML ยังทำให้เกิดสถานการณ์แปลก ๆ ที่นักพัฒนาต้องแก้ไข หนึ่งคือINVALID_STATE_ERR: DOM Exception 11
ข้อความที่ปรากฏขึ้นเมื่อคุณกำหนดข้อความที่มีอักขระ HTML (เช่นé
) ให้กับองค์ประกอบภายในหน้า XHTML เมื่อคุณพบข้อผิดพลาดนี้พร้อมกับข้อความที่เป็นประโยชน์มากในเว็บแอปพลิเคชันขนาดใหญ่หลังจากทำคำขอ AJAX คุณไม่ทราบเลยว่าเป็นความผิดของ JQuery, AJAX หรืออย่างอื่น
การเขียนโค้ด HTML 5 ไม่ได้หมายถึงการผสมแท็กเข้าด้วยกัน หากคุณหลงใหลเกี่ยวกับ XML และ XHTML คุณยังคงสามารถเขียนโค้ด HTML 5 ซึ่งจะใกล้เคียงกับ XML มาก
ในช่วงแรก ๆ ของโทรศัพท์มือถือ XHTML นั้นน่าสนใจสำหรับอุปกรณ์พกพาที่ไม่มีพลังมาก การแยกวิเคราะห์ XML นั้นง่ายกว่า HTML มาก ตอนนี้ด้วยอุปกรณ์เคลื่อนที่แบบดูอัลคอร์มันไม่สำคัญว่าจะต้องแยกวิเคราะห์ XML ที่ถูกต้องหรือ HTML ที่สกปรกเต็มไปด้วยแฮ็กและแท็กผสม
ข้อมูลจำเพาะตั้งแต่เดือนตุลาคม 2014กล่าวถึงไวยากรณ์ XHTML ในขณะนี้ยังไม่มีความชัดเจนว่ามีสิ่งใดในภาษา XHTML ใหม่(ไม่ใช่ไวยากรณ์ ) และหากมีสิ่งที่จะเป็นตำแหน่งของ XHTML หรือการนำมาตรฐาน XHTML ใหม่มาใช้จากเบราว์เซอร์กระแสหลัก
XHTML5 เป็นคำพ้องความหมายสำหรับ "HTML5 ต่อเนื่องเป็น XML"
มีไวยากรณ์ที่เป็นรูปธรรมหลายรูปแบบที่สามารถใช้เพื่อส่งผ่านทรัพยากรที่ใช้ภาษานามธรรมนี้ซึ่งมีสองประการที่กำหนดไว้ในข้อกำหนดนี้
...
ไวยากรณ์คอนกรีตที่สองคือไวยากรณ์ XHTML ซึ่งเป็นแอปพลิเคชันของ XML เมื่อเอกสารถูกส่งด้วยชนิด XML MIME เช่น application / xhtml + xml จะถือว่าเป็นเอกสาร XML โดยเว็บเบราว์เซอร์ที่จะถูกวิเคราะห์โดยตัวประมวลผล XML ผู้เขียนได้รับการเตือนว่าการประมวลผลสำหรับ XML และ HTML แตกต่างกัน โดยเฉพาะอย่างยิ่งแม้ข้อผิดพลาดทางไวยากรณ์เล็กน้อยจะป้องกันเอกสารที่ระบุว่าเป็น XML จากการแสดงผลอย่างสมบูรณ์ในขณะที่พวกเขาจะถูกละเว้นในไวยากรณ์ HTML ข้อมูลจำเพาะนี้กำหนดไวยากรณ์ XHTML เวอร์ชัน 5.0 หรือที่รู้จักในชื่อ "XHTML 5"
นอกจากนี้ยังมีเอกสารที่ดีเกี่ยวกับการเขียน HTML5 polyglots (หน้าซึ่งสามารถจัดลำดับเป็นทั้ง HTML5 และ XML ปกติ) ได้ที่นี่:
http://dev.w3.org/html5/html-polyglot/html-polyglot.html#bib-HTML5
และตรวจสอบได้!
ปัจจุบันไม่ค่อยมีใครเรียก XHTML5 ในปัจจุบัน (และอาจไม่ค่อยมีใครใช้) เนื่องจากมันยังคงเป็น HTML5 โดยทั่วไป แต่ก็ยังอยู่ที่นั่น
พูดง่าย ๆ : การเปลี่ยนแปลงข้อกำหนด HTML5 ทุกอย่างก็เป็นการเปลี่ยนแปลง XHTML5 ที่เกี่ยวข้อง
HTML5 เป็นพฤตินัยและนิตินัยมาตรฐาน! XHTML อยู่ที่นั่นตามมาตรฐานด้วย
คำแนะนำของ W3C 28 ตุลาคม 2014
ชื่อของมาตรฐานมีสตริง"และ XHTML"ดังนั้นเรากำลังพูดถึงการตัดสินใจครั้งสุดท้ายของ W3C ที่จะผสาน HTML และ XHTML เข้าไปในมาตรฐานเดียว ; และมาตรฐานนี้แสดงวิธีการทำให้เป็นไฟล์ HTML เป็นไฟล์ XHTML และในทางกลับกัน
XHTML
ส่วนและหมายเหตุสำคัญ:
application/xhtml+xml
สรุปโดยLF Sikos
XHTML5 คือการทำให้เป็นอันดับ XML ของ HTML5 ไวยากรณ์อธิบายโดยข้อกำหนดของ HTML5 อย่างไรก็ตามสิ่งหนึ่งที่ไม่ควรสับสนเนื่องจาก XHTML5 เป็นแอปพลิเคชันของ XML กล่าวอีกนัยหนึ่ง HTML5 และ XHTML5 มีคำศัพท์ที่เหมือนกัน แต่มีการแยกวิเคราะห์กฎที่แตกต่างกัน
เอกสาร HTML5 อาจเป็นเอกสาร XML ที่ถูกต้อง มาร์กอัปนี้มักถูกเรียกว่าภาษา“ พูดได้หลายภาษา” มันเป็นภาษาที่ทับซ้อนกันของเอกสารซึ่งเป็นเอกสาร HTML5 และ XML ในเวลาเดียวกัน การทำให้เป็นอันดับ HTML5 และ XHTML5 นั้นสามารถทำงานร่วมกันได้ อย่างไรก็ตาม XHTML5 มีไวยากรณ์ที่เข้มงวดกว่า นอกจากนี้บางส่วนของ XHTML5 ไม่ถูกต้องใน HTML5 เช่นคำแนะนำในการประมวลผล
ดังนั้นการพูดอย่างเคร่งครัด (และเน้นโดย @vaxquis) "XHTML เป็นเพียงไวยากรณ์สำหรับอนุกรม XML เป็น" มีไม่มีDTD หรือชนิดอื่น ๆ ของเค้าร่าง
บางคนไม่ชอบพูดว่า "XHTML5 คือ XHTML" คำถามต้องแบ่งเป็นคำถามที่พบบ่อยเกี่ยวกับ "เมื่อฉันสามารถใช้เป็น XHTML" ได้ นี่คือ WIKI โปรดแก้ไขหากมี "ความเข้าใจผิด" บางส่วน ...
มีปัญหาบางอย่างในการแปลง "ที่สมบูรณ์แบบและทั่วไป HTML5-to-XHTML5 / XHTML5-to-HTML5" คุณต้องทำ "ตัวเลือกส่วนบุคคล" และข้อมูลที่สูญหาย เนื่องจากบริบทจะเป็นคำตอบที่แตกต่าง:
การพูดที่หลวม : ใช่ มีตัวอย่างมากมาย (แบบง่าย) ที่การทำแผนที่สมบูรณ์แบบและย้อนกลับได้
พูดอย่างเคร่งครัด : ไม่ ดูความคิดเห็น @vaxquis ด้านล่างและคำตอบเก่าในหน้านี้ ปัญหาทั่วไปบางประการ:
ใช่คุณสามารถ. แม้แต่เศษซีเรียลไลซ์เซชั่น
ใช่ แต่ไม่เร็วและง่ายกว่า DTD รุ่นเก่า ... ดูตัวตรวจสอบความถูกต้องที่ซับซ้อนเช่นvalidator.nu
ใช่คุณสามารถ. มาอธิบายสิ่งที่คุณทำได้
กรอบงานบางอย่างเช่นCocoonให้ใช้ " XSLT chains " ผลลัพธ์ HTML5 และ XHTML5 สามารถใช้เป็น "ผลลัพธ์สุดท้ายในห่วงโซ่" ... แน่นอนในขั้นตอนที่เป็นสื่อกลาง HTML5 ไม่สามารถใช้งานได้เนื่องจากไม่ใช่ XML แต่สามารถใช้ XHTML5 ได้
ปัญหาการตรวจสอบข้างต้นปรากฏขึ้นอีกครั้งที่นี่: ไม่มีการประชุมที่แข็งแกร่งดังนั้นบางครั้งความชัดเจนน้อยลงของ "โครงสร้างมาตรฐาน XHTML" จะปรากฏขึ้น ในสถานการณ์นั้นคุณต้องให้ความสนใจใน "การประชุมด้วยตัวเอง" และต้องสอดคล้องกัน
saveXML()
วิธีการได้หรือไม่?ใช่. นี่เป็นสถานการณ์ทั่วไปที่มีการใช้คำแนะนำ serializaion XML จะถูกต้องรหัส XHTML5 ถูกแมปจากสถานะ HTML5 และ DOM เดิม ... แต่ในบางโครงสร้างข้อมูลบางอย่างอาจสูญหายได้ตามความเห็นด้านบน
ใช่น่าเสียดายที่ XHTML หายไปแล้ว
เพิ่มอีก 1 เหตุผลในคำตอบที่ยอดเยี่ยมของ MainMa:
เมื่อ XHTML ถูกสร้างขึ้นมันถูกใช้โดย WebApps เพื่อให้บริการเนื้อหาที่มีโครงสร้างที่จะเข้าใจได้โดยซอฟต์แวร์ที่ไม่ใช่เบราว์เซอร์ซึ่งไม่มีแท็กซุป HTML ที่ติดแท็ก สำหรับ ScreenReaders XHTML ยังคงยอดเยี่ยม แต่สำหรับซอฟต์แวร์ประเภทอื่น ๆ WebServices เหมาะสมกับความต้องการนั้นและพวกเขาส่วนใหญ่ใช้ XML หรือ JSON SOAP นั้นมี XML Schema ของตัวเองง่ายกว่า XHTML และมุ่งเน้นการดำเนินการ
ตราบใดที่ฉันรู้ไม่มีแม้แต่ WebApp 1 แห่งในโลกที่ให้บริการข้อความ HTTP เดียวกันกับเบราว์เซอร์และไคลเอนต์อื่น ๆ แม้แต่สถาปัตยกรรม REST ซึ่งใช้แสดงเนื้อหาเดียวกันในหลายประเภทเนื้อหาตามความต้องการของลูกค้าไม่ได้ใช้เพื่อแสดง XHTML / ฟีดเบราว์เซอร์
ใน Java EE ตัวอย่างเช่นการใช้ Eclipse เราสามารถปรับใช้ไฟล์ war ที่ไม่ซ้ำกันซึ่งถือ Servlets + JSPs เพื่อให้บริการ HTML พร้อมกับ Axis2 เพื่อให้บริการเว็บเซอร์ มันง่ายกว่าในการพัฒนาซอฟท์แวร์ที่แยกกันซึ่งมีจุดประสงค์เพื่อเบราว์เซอร์และเว็บเซอร์กว่าซอฟต์แวร์ที่มีเอกลักษณ์และซับซ้อนซึ่งให้บริการทั้งหมด
เหตุผลหลักสำหรับ REST ที่ถูกปฏิเสธนั้นเป็นความซับซ้อน (และมันก็เป็นเรื่องง่าย!) ในการพัฒนาเซิร์ฟเวอร์ที่ให้บริการเนื้อหาเดียวกันสำหรับลูกค้าประเภทใดก็ได้โดยไม่ต้องรู้อะไรเกี่ยวกับมัน และยังยากที่จะจัดการกับความต้องการของเว็บในการพัฒนาอย่างรวดเร็วพร้อมกับการรักษาคำจำกัดความที่มั่นคงซึ่งจะไม่บังคับให้ไคลเอ็นต์ที่ไม่ใช่เบราว์เซอร์ได้รับการอัปเดตทุกครั้งที่มีการเปลี่ยนแปลง XHTML
ในทำนองเดียวกันมันเป็นเรื่องยากมากที่จะพัฒนาไคลเอนต์ที่ไม่ใช่เบราว์เซอร์ที่แยกวิเคราะห์เอกสาร XHTML แม้ว่ามันจะถูกต้องเพราะองค์ประกอบ XML เหล่านั้นทั้งหมดที่มีความหมายในการจัดโครงสร้างเค้าโครงเลย์เอาต์ที่แสดงโดยเบราว์เซอร์
หากผู้ใช้ REST บ่นเกี่ยวกับความซับซ้อนของ XML ของ SOAP ซึ่งเป็นวิธีที่ง่ายกว่า XHTML ที่มีความหมายสำหรับเบราว์เซอร์ลองจินตนาการว่าการจัดการ XHTML สำหรับไคลเอ็นต์หลายประเภทนั้นเป็นอย่างไรเซิร์ฟเวอร์และฝั่งไคลเอ็นต์
ในทางปฏิบัติ: ใช้ HTML เหมือน XML ถ้าคุณต้องการสร้างเว็บไซต์สำหรับเบราว์เซอร์และโซลูชั่น WebService ทุกประเภทสำหรับลูกค้าที่ไม่ใช่เบราว์เซอร์
แต่ฉันคิดว่าต้องสร้าง XHTML5 ด้วย XHTML 1.1 (ok, 1.0, 1.1 ใช้ไม่ได้) จะล้าสมัยด้วย HTML5 และเรายังต้องการเครื่องมือตรวจสอบที่ยอมรับองค์ประกอบของ HTML5 และตรวจสอบ XML wellformedness