ความสัมพันธ์และความแตกต่างระหว่าง SGML, XML, HTML และ XHTML


16
  1. ฉันสงสัยว่า "โปรไฟล์" หมายถึงอะไรในWikipedia :

    XML เป็นโปรไฟล์ของ SGML มาตรฐาน ISO และ XML ส่วนใหญ่มาจาก SGML ที่ไม่เปลี่ยนแปลง

  2. ตามที่ http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML เป็นชุดย่อยของ SGML

    XML เป็นชุดย่อยที่ใช้งานได้ดีของ SGML

    XHTML ขยายและย่อย HTML

    "หนึ่งเป็นส่วนย่อยของอีกคน" หมายความว่ารหัสในครั้งแรกยังถูกต้อง syntactically และ semantically เหมือนกันในครั้งที่สองหรือไม่

    ในความหมายของทฤษฎีเซตเบื้องต้น

    • HTML, XML และ XHTML เป็นชุดย่อยของ SGML ที่แตกต่างกันหรือไม่
    • XML และ HTML เกือบจะไม่ตัดกันหรือไม่
    • XHTML เป็นชุดของทั้ง XML และ HTML หรือไม่
  3. ฉันสามารถคาดหวังการสรุปที่ชัดเจนและชัดเจนมากขึ้นเกี่ยวกับความแตกต่างในวัตถุประสงค์ของสี่และ / หรือเมื่อต้องการใช้สิ่งใดมากกว่าลิงก์ด้านบน ฉันสับสนเกี่ยวกับเส้นแบ่งที่ชัดเจนระหว่างจุดประสงค์ของพวกเขา
  4. ตามที่ http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML ไม่ใช่ภาษามาร์กอัปเดียว เป็นภาษาที่ให้ผู้ใช้ออกแบบภาษามาร์กอัปของตนเอง

    ฉันสงสัยว่าจะเข้าใจ XML และ HTML เป็นทั้งชุดย่อยของ SGML ได้อย่างไร แต่ HTML เป็นภาษามาร์กอัปในขณะที่ XML ไม่ใช่ภาษามาร์กอัป แต่เป็นภาษาสำหรับการออกแบบภาษามาร์กอัป

    SGML และ XHTML เป็นโลหะทั้งสองสำหรับการออกแบบภาษามาร์กอัปหรือไม่

  5. ในลิงก์ทั้งสองระบุว่า HTML เป็นแอปพลิเคชันของ SGML เช่นเดียวกับชุดย่อยของ SGML และ XHTML เป็นแอปพลิเคชันของ XML ฉันสงสัยว่าความแตกต่างระหว่างการพูดภาษาหนึ่งเป็นแอปพลิเคชั่นของภาษาอื่นและภาษาหนึ่งเป็นภาษาย่อยของอีกภาษาหนึ่ง

คำตอบ:


8

HTML และ XML เป็นทั้งภาษามาร์คอัป (ดังนั้น * ML) XML เป็นภาษามาร์กอัปทั่วไปที่ใช้สำหรับแสดงข้อมูลโดยพลการในขณะที่ HTML เป็นภาษามาร์กอัปเฉพาะที่เหมาะสมสำหรับแสดงหน้าเว็บเท่านั้น

HTML และ XHTML เป็นทั้งชุดย่อยของ SGML เท่านั้นยกเว้นว่า XHTML มีข้อกำหนดเพิ่มเติมเพื่อให้สามารถตรวจสอบได้เป็น XML คิดว่า XML เป็นเจ้าพ่อที่มีอิทธิพลของ XHTML

เนื่องจากความสัมพันธ์นี้กับ SGML ในทั้งสามภาษาเหล่านี้จึงมีความคล้ายคลึงกันมาก แต่ทั้งหมดถือว่าเป็นภาษาที่แตกต่างกัน อย่างไรก็ตามสิ่งที่กำหนดภาษาเหล่านี้ส่วนใหญ่คือข้อ จำกัด ของ SGML

  • HTML จำกัด SGML ด้วยการกำหนดรายการของแท็กที่ได้รับอนุญาตให้ใช้
  • XML จำกัด SGML โดยไม่อนุญาตให้แท็กเริ่มต้นและแท็กสิ้นสุดและว่างเปล่าและบังคับให้แอตทริบิวต์ต้องชัดเจน XML ยังมีข้อ จำกัด เพิ่มเติมจำนวนมากที่ไม่พบใน SGML
  • XHTML จำกัด SGML ด้วยแท็กจาก HTML (ที่มีการยกเว้นบางอย่างเช่น frameset, et al) และด้วยข้อ จำกัด ของแท็กและเอนทิตีจาก XML

คุณอาจพบว่าเอกสารนี้มีประโยชน์แม้ว่าเงื่อนไขทางเทคนิคอาจย่อยได้ยาก http://www.w3.org/TR/NOTE-sgml-xml-971215

XML ไม่ใช่ภาษาสำหรับการกำหนดภาษามาร์กอัป นั่นเป็นเพียง SGML XML เป็นเพียงภาษามาร์คอัปการจัดรูปแบบข้อมูล แหล่งที่มาที่ยกมาของคุณกำลังใช้คำศัพท์ทางเทคนิคอย่างไม่ถูกต้องซึ่งเป็นสาเหตุที่ทำให้พวกเขาสับสน

วัตถุประสงค์

XML ใช้สำหรับกำหนดรูปแบบข้อมูลของคุณเอง หากคุณต้องการส่งผ่านข้อมูลระหว่างสองระบบ XML มักจะเป็นวิธีที่จะทำ

ตัวอย่างเช่นหากคุณต้องการส่งคำสั่งขายจากเว็บไซต์ของคุณไปยังระบบการเรียกเก็บเงินคุณสามารถสร้าง XML payload นี้ได้:

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

เว็บไซต์ของคุณจะส่ง XML นั้นไปยังระบบการเรียกเก็บเงินของคุณซึ่งสามารถแยกวิเคราะห์ข้อมูลจาก XML นั้นได้

XHTML และ HTML นั้นชัดเจนสำหรับเว็บเพจเท่านั้น วัตถุประสงค์หลักของ XHTML คือการลบความคลุมเครือจำนวนมากที่เรามีในการพัฒนาเว็บในหลายปีที่ผ่านมา (หลายทศวรรษ) ย้อนกลับไปในช่วงปลายยุค 90 เมื่อฉันเริ่มต้นเราใช้ HTML 3.2 ซึ่งอนุญาตให้ใช้โค้ดเลอะเทอะอย่างจริงจัง HTML 4+ และ XHTML พยายามแก้ไขด้วยการแนะนำหรือบังคับใช้แท็กปิดอย่างชัดเจนแอตทริบิวต์ที่ชัดเจนและแท็กที่ไม่อนุญาตซึ่งทำให้ทั้งเบราว์เซอร์และมนุษย์ง่ายขึ้นและหลีกเลี่ยงความแตกต่างที่ไม่คาดคิดในพฤติกรรมข้ามเบราว์เซอร์


ขอบคุณ! (1) เป็นทั้งชุดย่อย HTML และ XML ของ XHTML หรือไม่ (2) ถูกต้องหรือไม่ว่า HTML นั้นไม่ใช่ชุดย่อยของ XML และ XML นั้นเป็นชุดย่อยของ HTML หรือไม่ HTML และ XML มีจุดตัดที่ไม่ว่างเปล่าหรือแยกจากกันโดยสิ้นเชิงหรือไม่?
StackExchange สำหรับทุก

(3) ความแตกต่างระหว่างการพูดภาษาหนึ่งคือแอปพลิเคชั่นของอีกภาษาหนึ่งและภาษาหนึ่งเป็นอีกส่วนหนึ่งของภาษาอื่น?
StackExchange สำหรับทุก

มีเอกสารที่สอดคล้องกับทั้ง XML และ HTML; มีเอกสารที่สอดคล้องกับ XML ไม่ใช่ HTML และมีเอกสารที่สอดคล้องกับ HTML ไม่ใช่ XML ดังนั้นทั้งเซตย่อยของอีกอันหนึ่งไม่ได้ แต่มีจุดตัดที่ไม่ว่างเปล่า
Michael Kay

@Tim: (1) HTML, XML และ XHTML ไม่ใช่ชุดย่อยของอะไรยกเว้น SGML พวกเขาต่างกันทั้งหมด XML ไม่มีอะไรเกี่ยวข้องกับ HTML หรือ XHTML จริงๆ ... มันมีจุดประสงค์ที่ต่างออกไป XHTML สามารถแยกวิเคราะห์เป็นทั้ง HTML และ XML แต่ใช้เฉพาะกับเบราว์เซอร์เป็น HTML มาร์กอัป HTML และ XML ทั้งคู่มีบรรพบุรุษร่วมกันของ SGML แต่ไม่เกี่ยวข้องกัน สำหรับความตั้งใจทุกอย่างพวกเขาจะแยกกันเพราะ SGML เป็นเรื่องทั่วไป
Jordan

สุจริตฉันคิดว่าคุณกำลังดำน้ำลึกเกินไปในคำศัพท์ด้วยแอปพลิเคชัน vs ชุดย่อย ฉันไม่คิดว่าจะมีความแตกต่างระหว่างข้อกำหนดเหล่านั้นหรือถ้ามีฉันสงสัยว่ามันตกลงกันอย่างกว้างขวาง เพียงแค่บอกว่า XHTML ยืมแนวคิดจาก XML และใช้เป็นส่วนย่อยที่เข้มงวดของ HTML HTML มาก่อน XHTML มาหลังจากนั้น
Jordan

6

ฉันจะเริ่มต้นด้วยการบอกว่า XML เป็นส่วนย่อยของ SGML แล้ว XHTML เป็นส่วนย่อยของ XML

HTML ใช้ SGML แต่มีกฎแตกต่างกันบ้าง XHTML นั้นเป็น HTML เวอร์ชันที่ได้รับการปรับปรุงแล้ว แต่ด้วยกฎบางอย่างก็วางไว้ดังนั้นมันจึงเป็น XML ที่ถูกต้อง

หมายเหตุบางประการเกี่ยวกับการทำงานของมาตรฐาน HTML 5 กับข้อกำหนดอื่น ๆ http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

ฉันไม่แน่ใจเกี่ยวกับความแตกต่างระหว่าง SGML และ XML หรือเมื่อคุณจะใช้อีกแบบหนึ่ง แม้ว่า XML ดูเหมือนว่าจะใช้อย่างใดอย่างหนึ่ง

สำหรับ XHTML และ HTML คุณน่าจะดีกว่าเสมอเมื่อใช้ XHTML ข้อผิดพลาดง่ายต่อการค้นหาและโบนัสจะเป็น XML ที่ถูกต้อง


ขอบคุณ! (1) ฉันสงสัยว่าจะเข้าใจข้อเท็จจริงที่ขัดแย้งกันทั้งสองได้อย่างไร: XML และ HTML เป็นทั้งชุดย่อยของ SGML และ HTML เป็นภาษามาร์กอัปในขณะที่ XML ไม่ใช่ภาษามาร์กอัป แต่เป็นภาษาสำหรับการออกแบบภาษามาร์คอัป (2) ตามคำตอบของคุณ XHTML เป็นส่วนย่อยของ XML XHTML เป็นชุดของ HTML เป็น "XHTML ชุดย่อย HTML" ที่ยกมาจากลิงค์เดียวในโพสต์ของฉัน ดังนั้น HTML เป็นส่วนย่อยของ XML หรือไม่ ฉันไม่แน่ใจว่ามันเป็นเรื่องจริง
StackExchange สำหรับทุก

HTML แบ่งกฎมากเกินไปที่จะเป็น XML HTML ใกล้กับ SGML ฉันเชื่อว่า HTML มีแท็กหลวมและมีแท็กประเภทต่างๆจำนวนหนึ่งที่กำหนดไว้ XHTML เพียงแค่เวอร์ชัน XML ของ HTML
WalterJ89

ขอบคุณ! ในลิงก์ทั้งสองระบุว่า HTML เป็นแอปพลิเคชันของ SGML เช่นเดียวกับชุดย่อยของ SGML และ XHTML เป็นแอปพลิเคชันของ XML ฉันสงสัยว่าความแตกต่างระหว่างการพูดภาษาหนึ่งเป็นแอปพลิเคชั่นของภาษาอื่นและภาษาหนึ่งเป็นภาษาย่อยของอีกภาษาหนึ่ง
StackExchange สำหรับทุก

2

ประวัติความเป็นมาของสิ่งเหล่านี้อาจทำให้คุณรู้แจ้งที่นี่ เพียงแค่พูดถึงเมตาดาต้าโปรไฟล์ชุดย่อยและอินสแตนซ์จะแห้งไปหน่อย! ฉันจะพยายามทำให้มันสั้นและง่าย

SGML วิวัฒนาการมาจาก GML (Generalized Markup Language) ซึ่งคิดค้นโดยวิศวกรของไอบีเอ็ม 3 คนในทศวรรษที่ 1960 เพื่อเป็นวิธีการจัดเก็บเอกสารทางกฎหมายรัฐบาลอุตสาหกรรมและทหารอย่างละเอียด GML ได้รับการปรับปรุงอย่างค่อยเป็นค่อยไปจนกว่าจะได้มาตรฐานตาม SGML ในปี 1986

GML / SGML ไม่ได้เป็นภาษาต่อ se มันค่อนข้างเมตา - ภาษาคือภาษาเพื่อกำหนดภาษาที่สอดคล้องหรือ "กฎ" โดยที่การจัดรูปแบบของเอกสารที่ซับซ้อนหลากหลายสามารถออกแบบในลักษณะที่สอดคล้องกันโดยทั่วไป แต่ละประเภทเอกสารที่แตกต่างกันจะกำหนด SGML ที่สอดคล้องกับชุดของชื่อแท็กรวมถึงแอตทริบิวต์ที่เกี่ยวข้องรวมถึงตัวระบุสาธารณะ / เนมสเปซสาธารณะอย่างเป็นทางการที่กำหนดไว้สกีมา ฯลฯ แต่ละรูปแบบที่กำหนดไว้เช่นนั้นจึงกลายเป็นภาษาจัดเก็บข้อมูลที่แตกต่างกัน ประเภทที่เกี่ยวข้อง เนื่องจากความสอดคล้องกันระหว่างเอกสารทั้งหมดที่เป็นไปตามกฎ SGML จึงเป็นไปได้ที่จะเขียนรหัสเพื่อรวบรวม / ประมวลผลข้อมูลภายในเอกสารเหล่านี้และถ่ายโอนข้อมูลระหว่างเอกสารที่ใช้รูปแบบทั่วไป

SGML พบว่ามีความซับซ้อนมากเกินไปสำหรับเอกสารจำนวนมาก แต่มีขนาดเล็กลง ดังนั้น XML ได้รับการพัฒนาระหว่างปี 1996 และ 2006 ในฐานะส่วนย่อย ( โปรไฟล์คำที่มีประสิทธิภาพหมายถึงเหมือนกับส่วนย่อย) ของ SGML ที่สามารถจัดการกับเอกสารทั้งขนาดเล็กและขนาดใหญ่ เป็นส่วนย่อยของเมตาดาต้า XML เป็นตัวเมตาดาต้าแม้ว่าจะง่ายกว่า คุณสามารถพูดได้ว่า XML เป็นพื้นฐานสำหรับการออกแบบรูปแบบเอกสารที่เหมาะสมสำหรับการจัดเก็บง่ายและการถ่ายโอนระหว่างระบบบนเครือข่าย

หลังจากมาตรฐานของ SGML แต่ก่อนที่จะถูกทำให้ง่ายต่อ XML อินเทอร์เน็ตก็เกิดขึ้นและด้วยความต้องการรูปแบบเอกสารที่เปิดใช้งานการถ่ายโอนและการแสดงผลที่ง่ายของทั้งเอกสารและข้อมูลที่หลวม ผลลัพธ์คือภาษา HTML ตัวอย่าง (บางครั้งเรียกว่าแอปพลิเคชัน ) ของ SGML พร้อมแท็กที่กำหนดไว้ล่วงหน้า 18 รายการซึ่งเป็นวิธีมาตรฐานในการแสดงประเภทข้อมูลที่หลากหลายเช่นข้อความรูปภาพเสียง ฯลฯ HTML ใช้ประโยชน์จาก SGML ที่ SGML อนุญาต องค์ประกอบบางอย่างเพื่อละเว้นแท็กเริ่มต้นหรือแท็กสิ้นสุด HTML เวอร์ชันที่ตามมาเพิ่มแท็กและแอตทริบิวต์ใหม่ลงไปและทำให้ล้าสมัยไปแล้วบางส่วน จนกระทั่ง HTML5 มีการเปลี่ยนแปลง HTML เพื่อให้ยังคงเป็นภาษาย่อยของ SGML

หลังจาก XML เป็นมาตรฐานแล้วอินสแตนซ์ของมันเรียกว่า XHTML ออกมาซึ่งรวมชื่อแท็ก HTML ที่มีอยู่กับความเข้มงวดของ XML ในการปิดแท็ก, เนมสเปซ, สกีมา ฯลฯ XHTML เริ่มต้นสัญญาว่าจะเป็นประโยชน์สำหรับการจัดเก็บข้อมูล ดูเหมือนว่ากำลังจะแทนที่ HTML เป็นวิธีทั่วไปในการแสดงเนื้อหาเว็บ - จนกระทั่ง HTML 5 ออกมา HTML 5 มีคุณสมบัติทางไวยากรณ์ที่เกินกว่าที่กำหนดไว้ใน SGML เพื่อให้การแสดงข้อมูลที่สมบูรณ์ยิ่งขึ้นโดยเฉพาะอย่างยิ่งสำหรับเว็บไซต์ที่รับภาระมัลติมีเดีย เมื่อเวลาผ่านไปมีการเพิ่มคุณสมบัติเพิ่มเติมลงใน HTML 5 ซึ่งทำให้การใช้งานยังคงมีประสิทธิภาพมากขึ้นสำหรับการแสดงข้อมูล / การใช้งานจนถึงจุดที่ไม่น่าจะถูกแทนที่ด้วย XHTML เวอร์ชั่นใหม่อย่างน้อยที่สุดเท่าที่แสดงข้อมูลที่เกี่ยวข้อง แม้ว่ามาตรฐานสำหรับ HTML & XHTML จะทำโดยคณะทำงาน W3C การเผยแพร่จริงของภาษาเหล่านี้ "บนพื้นดิน" ดำเนินการโดยนักออกแบบเว็บไซต์ที่มีความก้าวหน้าและไม่มีความก้าวหน้ามากกว่าคนที่ทำงานในภาคสื่อ (โฆษณา / ประชาสัมพันธ์ / การตลาด): เพียงแค่ดูความคิดสร้างสรรค์ของเว็บไซต์ตัวแทนโฆษณาเทียบกับเว็บไซต์อื่น ๆ ภาคนี้นำภาษา HTML 5 ใหม่มาใช้จริงซึ่งมีความยินดีในการใช้ประโยชน์จากความสามารถของ SVG เสียงวิดีโอและAPI ที่ใหม่ ความพร้อมในการยอมรับ HTML 5 นำไปสู่ความนิยมอย่างรวดเร็วในหมู่นักออกแบบเว็บไซต์โดยทั่วไปกระบวนการที่เร่งความเร็วโดยการแลกเปลี่ยนทักษะและลูกเล่นออนไลน์บน YouTube และเว็บไซต์อื่น ๆ รุ่น XHTML ที่อัปเดตแล้ว XHTML5 เกิดขึ้นแล้ว แต่ไม่ได้เป็นอนุพันธ์ของ XML ที่เข้มงวด แต่เป็นเวอร์ชันของ HTML5 ที่ได้รับการจัดลำดับ XML มีเว็บไซต์เพียงไม่กี่แห่งที่มีประโยชน์

นั่นคือเรื่องราวเบื้องหลังภาษาข้อมูลเหล่านี้ ฉันหวังว่ามันจะช่วยให้คุณแยกแยะความหมายและวัตถุประสงค์ของพวกเขาทั้งหมด ในเชิงปรัชญาเรื่องราวนี้แสดงให้เห็นว่าเครื่องมือการเปิดใช้งานที่จำเป็น (SGML) สำหรับเทคโนโลยีใหม่ (อินเทอร์เน็ต) สามารถในสภาพแวดล้อมใหม่ที่มีความต้องการที่หลากหลายมากขึ้นได้เร็วกว่าขีด จำกัด ดั้งเดิม แต่กลายเป็นแนวคิดที่เรียบง่ายใช้งานได้หลากหลาย


1

โดยทั่วไปในโลกมาตรฐาน "โปรไฟล์" ของมาตรฐานคือตัวเลือกที่มาตรฐานเสนอ: ตัวอย่างเช่นหากมาตรฐานอนุญาตให้เข้ารหัสเอกสารในแบบ UTF-8 หรือ UTF-16 โปรไฟล์มาตรฐานอาจต้องการ พวกเขาจะถูกเข้ารหัสใน UTF-8 คำว่า "เซตย่อย" มีความหมายคล้ายกันมาก แม้ว่าเนื้อหาคำว่า "โปรไฟล์" จะกว้างขึ้นเล็กน้อย


ขอบคุณ! (1) แล้วความหมายและความแตกต่างระหว่าง "แอปพลิเคชัน" "ชุดย่อย" และ "โปรไฟล์" เช่นเดียวกับในส่วนที่ 5 ของคำถามของฉัน (2) ใน "XHTML เป็นพื้นฐานสำหรับตระกูลของประเภทเอกสารในอนาคตที่ขยายและชุดย่อย HTML" หมายความว่า XHTML เป็นชุดย่อยของ HTML หรือ HTML เป็นชุดย่อยของ XHTML หรือไม่
StackExchange สำหรับทุก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.