Friday 28 March 2014

What is XHTML


जब W3C ने HTML का 4.1 Version Release किया, तब उन्होंने Document के Style से सम्बंधित सभी Markup को Deprecated Mark कर दिया यानी उन्होंने तय कर लिया कि HTML के Future Versions में इन HTML Markups को Remove कर दिया जाएगा। ऐसा उन्होंने इसलिए किया था, ताकि लोग Web Pages के Structure को Web Pages के Style से अलग Develop करें। परिणामस्वरूप आज के सभी नए Web Pages में केवल HTML Document का Structure होता है और HTML Web Page से सम्बंधित सभी Stylizing Markup एक अलग CSS File में होते हैं। हालांकि हम आज भी इन Style Markups को अपने HTML Document में HTML Structure के साथ उपयोग में ले सकते हैं, लेकिन हमें ऐसा करना नहीं चाहिए।
HTML के 4.1 Version को Release करने के बाद W3C ने HTML का 5.0 Version Release नहीं किया, बल्कि उन्होंने HTML को एक नए रूप में Release किया जिसका नाम उन्होंने XHTML रखा, ठीक उसी तरह से जिस तरह से Microsoft ने Window 2000 Release करने के बाद Windows 2001 Release नहीं किया बल्कि Windows XP Release किया था।
HTML के नाम के पहले X अक्षर को इसलिए लगाया गया, क्योंकि ये अक्षर एक नई Language XML (eXtensible Markup Language) से आया था। इस इस Language ने विभिन्न Programming क्षैत्रों में बहुत ही जल्दी बहुत ज्यादा प्रसिद्धि प्राप्त कर ली थी, क्योंकि इस Language का प्रयोग करके हम हमारी जरूरत के अनुसार अपने स्‍वयं के HTML Elements Create कर सकते हैं। इसीलिए W3C ने तय किया कि वह HTML के अगले Version को XML में लिखकर Release करेगा और उन्होंने ऐसा ही किया।
प्रायोगि‍क रूप से इसका मतलब ये हुआ कि जो लोग Web Pages लिखते हैं, उन लोगों को अब अपने HTML Codes को लिखने के बारे में ज्यादा सावधान रहना जरूरी है, क्योंकि XML एक Strict Language है, इसीलिए XHTML भी एक Strict Language बन गई है। Stricter Language का एक फायदा ये है कि Web Browser की Size छोटी हो गई है, जिससे Web Pages को अब ज्यादा छोटी Screen यानी Mobile जैसे Device पर भी आसानी से देखा जा सकता है। दूसरा फायदा ये है कि XML के लिए कई Tools को Develop किया गया है और हम उन सभी Tools को XHTML के साथ भी उपयोग में ले सकते हैं।
Web Programming सीखने वाले एक नए Developer के लिए फायदा ये है कि उसे HTML व  XHTML दोनों Languages को सीखने की जरूरत नहीं है। क्योंकि जब XHTML को Develop किया जा रहा था, तब इस बात का ध्यान रखा गया था कि XHTML उन Web Browsers के Compatible रहे, जो केवल HTML Pages को ही Display कर सकते हैं। कहने का मतलब ये है कि हम जितने भी XHTML Elements को उपयोग में लेना सीखेंगे, उनमें से लगभग सभी Elements HTML के 4.1 Version में भी उपलब्ध हैं। HTML से XHTML के बीच XHTML के तीन Versions को हमें ध्यान में रखना होता है।

Transitional XTHML 1.0

XHTML के इस Version में एक Developer उन HTML Markup को भी उपयोग में ले सकता है, जिन्हें HTML के 4.01 Version में Deprecated Declare कर दिया गया था, लेकिन इस Version में भी Developer को Stricter Syntax Use करने का ध्यान रखना होता है।

Strict XHTML 1.0

XHTML के इस Version में एक Developer उन HTML Markup को उपयोग में नहीं ले सकता है, जिन्हें HTML के 4.01 Version में Deprecated Declare कर दिया गया था, साथ ही इस Version में भी Developer को Stricter Syntax Use करने का ध्यान रखना होता है।

Frameset XHTML 1.0

XHTML के इस Version में एक Developer उस Technology का प्रयोग कर सकता है, जिसे Frames कहते हैं। यानी इस Version में हम एक ही Browser में एक से ज्यादा Web Pages को Open कर सकते हैं। इसके बारे में हम बाद में पढेंगे। इस Version में भी Developer को Stricter Syntax Use करने का ध्यान रखना होता है।
सामान्यतया हम Transitional XTHML 1.0 Version के Elements को ही उपयोग में लेंगे, क्योंकि ये Version HTML 4.01 Version के Elements को भी Support करता है। लेकिन जहां तक हो सके हमें XHTML के Elements का ही प्रयोग करना चाहिए। जब हम केवल Pure XHTML के Elements ही उपयोग में लेते हैं और Deprecated Elements व Attributes का प्रयोग नहीं करते हैं, तब हमारा Page स्‍वयं ही Strict XHTML 1.0 का Page बन जाता है।

XHTML और HTML में अंतर

XHTML के नियमों को समझ लें, तो हम इन दोनों Languages के बीच के आपसी अन्‍तर को भी समझ सकते हैं। XHTML के विभिन्न Restrictions व विशेषताएं निम्नानुसार हैं:

Include XML Declaration

HTML की तुलना में XHTML के Syntax ज्यादा Strict होते हैं। चूंकि XHTML को XML में लिखा गया है, इसलिए जब हम एक XHTML Document बनाते हैं, तब वास्तव में हम एक XML Document भी बना रहे होते हैं। इसलिए हम हमारे Document की शुरूआत निम्नानुसार एक Optional Line से भी कर सकते हैं, जो कि सभी XML Documents में एक Optional Declaration होता है।
<?xml version=”1.0” encoding=”UTF-8” ?>
 
यदि हम हमारे Document में इस XML Declaration को Include करते हैं, तो ये Statement हमारे Document का सबसे पहला Statement होना जरूरी होता है, यहां तक कि इस Statement से पहले एक Blank Space भी नहीं होना चाहिए। इस Statement द्वारा हम अपने Web Browser को ये बताते हैं कि हम हमारे Document में XML के 1.0 Version के Standards के आधार पर नए Elements भी Create करने की सुविधा प्राप्त करना चाहते हैं और encoding Attribute द्वारा हम ये बताते हैं कि हम हमारे Document में किस Encoding को Support करवाना चाहते हैं। उदाहरण के लिए यदि हम हमारे Web Page में हिन्दी भाषा में भी Contents लिखना चाहते हैं और हम चाहते हैं कि इस भाषा में लिखे गए Content को दुनियां के सभी नए Web Browsers बिना किसी परेशानी के दिखा सकें, तो हमें Encoding के रूप में “UTF-8” को चुनना होता है, क्योंकि हिन्दी भाशा के Unicode इसी Encoding के अन्‍तर्गत Defined हैं।

Include a DOCTYPE Declaration

DOCTYPE Declaration इस बात को Indicate करता है कि हम HTML/XHTML के कौनसे Version को उपयोग में ले रहे हैं। इसे Opening <html> Tag को Use करने से पहले Specify किया जाता है। यदि हम हमारे Document में Transitional XHTML 1.0 Version के आधार पर Coding कर रहे हैं, जिसमें हम पुराने HTML 4.01 Version के Elements को Use करना चाहते हैं, तो हमें हमारे Web Browser को ये बात निम्नानुसार बतानी होती है:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
इसके बजाय यदि हम Strict XHTML 1.0 Version के आधार पर अपने Web Pages तैयार कर रहे हों, तो हमें अपने Web Page में निम्न DOCTYPE Declaration Statement को उपयोग में लेना होता है:
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
जबकि यदि हम हमारे Document में Frameset का प्रयोग करना चाहते हैं, तो हमें हमारे Web Page में निम्न DOCTYPE Declaration Statement को Use करना होता है:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 
Strict XHTML Documents में हमें DOCTYPE Declaration Statement को <html> Tag से पहले Use करना जरूरी होता है, जबकि यदि हम Transitional अथवा Frameset Document Create कर रहे हों, तो हम इस Declaration को छोड भी सकते हैं।

HTML के Versions और <!DOCTYPE> Declaration

                         <!DOCTYPE> declaration किसी वेब पेज को browser में सही तरीके से प्रदर्शित करने मे सहायता करता है।

HTML के विभिन्न वर्जनों के सामान्य Declarations है –

Version
Year
<!DOCTYPE> declaration
HTML
1991

HTML+
1993

HTML 2.0
1995

HTML 3.2
1997

HTML 4.01 Strict
1999
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 Transitional
1999
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Frameset
1999
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 Strict
2000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional

2000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset

2000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1

2000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
HTML5
2012
<!DOCTYPE html>
XHTML5
2013

Use Lowercase Names

एक HTML Document में हम Uppercase अथवा Lowercase किसी भी तरह के Case में HTML Elements व Attributes को लिख सकते हैं, लेकिन XHTML Document में हमें सभी Element व  Attribute को Lowercase में लिखना जरूरी होता है। हालांकि Elements के बीच के Contents व Attributes के मान Case Sensitive नहीं होते हैं।

Close All Tags Correctly

XHTML में हमें हर Open होने वाले Tag को ठीक तरह से Close करना जरूरी होता है। हम केवल उसी स्थिति में किसी Tag  को Close करने से बच सकते हैं, जबकि वह Tag एक Empty Tag हो। HTML में हम किसी Paragraph को निम्नानुसार लिख सकते हैं:

<p> This is a HTML Paragraph Element.
<p> HTML could leave the closing tag.


जबकि इसी Paragraph को यदि हम XHTML में लिखें, तो हमें ये Paragraph Element निम्नानुसार Use करना होगा:

<p> This is a XHTML Paragraph Element. </p>
<p> XHTML could not leave the closing tag. </p>
जितनी बार भी एक XHTML Browser एक नए <p> Tag  को Run करता है, वह पिछले </p> Tag के अन्‍त को स्‍वयं ही मान लेता है, लेकिन XHTML तब तक नए Paragraph को नहीं मानता, जब‍ तक कि उसे पहले वाले Paragraph का Closing Tag प्राप्त नहीं हो जाता। इसलिए XHTML में हमें हर Tag को ठीक तरह से Close करना जरूरी होता है।
कुछ Tags ऐसे होते हैं, जिनके Opening व Closing Tag के बीच कोई Content नहीं होता। इस प्रकार के Tags को Empty Tag कहा जाता है। <img> व  <br> एसे ही Empty Tags हैं। इन्‍हें HTML में तो एसे ही लिखा जाता है, लेकिन जब हम XHTML Document बनाते हैं, तब हमें इन Empty Tags को भी Forward Slash के साथ लिखना होता है। यानी हमें इन्‍हें <img /> व <br /> लिखना पडता है।

Attribute Values

जब हम XHTML Attributes को कोई मान प्रदान करते हैं, तब हमें तीन बातें ध्यान में रखनी होती हैं। सबसे पहली बात ये कि हर Value को Double Quotes के बीच Enclosed रखना जरूरी होता है। दूसरी बात ये कि हर Attribute को मान प्रदान करना जरूरी होता है और तीसरी बात ये कि Value के पहले व बाद के Spaces Remove हो जाते हैं, इसलिए हमें Spaces के सम्‍बं‍ध में ध्यान रखने की जरूरत नहीं होती है।

HTML Element Must Be The Root Element

किसी भी XHTML Document की शुरूआत हमेंशा <html> Opening Tag से होती है व अन्‍त हमेंशा </html> Closing Tag से होती है। <html> Tag से पहले केवल XML Declaration व  DOCTYPE Declaration Statements ही आ सकते हैं, क्योंकि सभी XML Documents में एक Unique Root Element होना जरूरी होता है, जो कि बाकी के पूरे Document को अपने में Included या Contained रखता है। हमारे XHTML Document के सन्‍दर्भ में वह Root Element <html> Tag है।

Tags Must Nest Properly

XHTML Document में हम जिस Tag को सबसे पहले Open करते हैं, उसे सबसे बाद में व जिस Tag को सबसे बाद में Open करते हैं, उसे सबसे पहले Close करना जरूरी होता है। यदि हम एक साथ एक से ज्यादा Tags को Open करते हैं, तो हमें इस बात का ध्यान रखना होता है। उदाहरण के लिए निम्न Statement में पहले <p> Tag को Open किया है और बाद में <em> Tag को इसलिए सबसे पहले हमें <em> Tag को Close करना होता है और बाद में <p> Tag को।

<p> This is a <em>HTML Paragraph Element. </em></p>

जिन उपरोक्‍त नियमों का हमें XHTML Document बनाते समय ध्यान रखना जरूरी होता है, HTML Document बनाते समय हमें इन नियमों को ध्यान में रखने की जरूरत नहीं होती है। HTML व XHTML Document Creation में ये ही मुख्य अन्‍तर हैं।

0 comments:

Post a Comment