XML என சுருக்கமாக அழைக்கப்படுகின்ற விரிவாக்க குறியீட்டு மொழி (extensible markup language) என்பது ஒரு படிநிலை குறியீட்டு மொழியாகும். இதுதரவுகளை வரையறுப் பதற்காக அவற்றை திறக்கின்ற, மூடுகின்ற குறிச்சொற்களைப் பயன் படுத்துகிறது. இது தரவுகளைச் சேமிக்கவும் பரிமாறிகொள்ளவும் பயன் படுகிறது, மேலும் இதனுடைய தீவிர நெகிழ்வுத் தன்மை காரணமாக, இது ஆவணங்கள் முதல் வரைகலை வரை அனைத்து பயன்பாடுகளிலும் பயன்படுத்தி கொள்ளப் படுகிறது.ஒரு மாதிரி XML ஆவணம் பின்வருமாறு:
<xml>
<os>
<linux>
<distribution>
<name>Fedora</name>
<release>8</release>
<codename>Werewolf</codename>
</distribution>
<distribution>
<name>Slackware</name>
<release>12.1</release>
<mascot>
<official>Tux</official>
<unofficial>Bob Dobbs</unofficial>
</mascot>
</distribution>
</linux>
</os>
</xml>
இந்த மாதிரி XMLஆவணத்தினைப் படிக்கும்போது இதனுடைய வடிவமைப்பில் உள்ளுணர்வுகூடியத் தரம் இருப்பதை காணலாம். இந்த ஆவணத்தில் உள்ள தரவுகளை பற்றிய விவரங்களை நாம் அறிந்திருக்கின்றோமா அல்லது இல்லையா என்பதை எளிதாக புரிந்து கொள்ள முடியும். XML ஆனது ஒருவினைச்சொல்லாக கருதப்படுவதால் இது அதனுடைய ஒரு பகுதியாகும். இது ஏராளமானஅளவில் குறிச்சொற்களைப் பயன்படுத்துகிறது, குறிச்சொற்கள் நீண்ட, விளக்கமான பெயர்களைக் கொண்டிருக்கலாம், மேலும் தரவுகளின் உறவுகளை விளக்குவதற்காக உதவும் படிநிலை முறையில் தரவுகள் வரிசைப் படுத்தப் படுகின்றன. லினக்ஸின் Fedora ,Slackware ஆகியவை லினக்ஸின் இரண்டு வெவ்வேறான தொடர்பில்லாத நிகழ்வுகள் என்பதை இந்த மாதிரியிலிருந்து புரிந்துகொள்ளலாம், ஏனெனில் ஒவ்வொன்றும் அதனுடைய சொந்த சுதந்திரமான <distribution> tag.என்பதில் “அடங்கியுள்ளது”
. XML ஆனது மிகவும் நெகிழ்வானது. HTML போலல்லாமல், குறிச்சொற்களின் முன் வரையறுக்கப்பட்ட பட்டியல் இதில் இல்லை. பிரதிநிதித்துவம் செய்ய வேண்டிய தரவுகளின் கட்டமைப்பை உருவாக்க சுதந்திரமாக செயல்படலாம்.
XML இன் உள்ளுறுப்புகள் இதனுடைய தரவுகளை படிக்கதயாராக உள்ளன, மேலும் கணினி “தரவுகளை” படிக்கும்போது, அந்த செயல்முறையானது பாகுபடுத்தல் என்று அழைக்கப்படுகிறது. மாதிரி XML தரவுகளைப் பயன் படுத்திடுகின்ற, பெரும்பாலான XML பாகுபடுத்திகளின் குறிப்பிடத் தக்கதாகக் கருதுகின்ற விதிமுறைகள் பின்வருமாறு
ஆவணம்(Document): <xml> tag என்பது ஒரு ஆவணத்தைத் திறக்கின்றது, மேலும் </xml> tag என்பது அதை மூடுகின்றது.
முனைமம்(node): <os>, <distribution>, <mascot> ஆகியவை முனைமங்கள் ஆகும்.இவை சொற்களை அலசி ஆய்வதற்கானவை, இந்த முனைம் (node) என்பது மற்ற குறிச்சொற்களைக் கொண்ட குறிச்சொல் ஆகும்.
உறுப்பு(Element): <name>Fedora</name> , <official>Tux</official>, என்பனபோன்று < > ஆகிய இரண்டு குறியீடுகளுக்கு இடையிலான தரவுகளானது உறுப்பாக கருதப்படுகிறது.
உள்ளடக்கம்(Content): <name> <name> என்பனபோன்ற இரண்டு குறிச் சொற்களுக்கு (tags) இடையிலான தரவு உள்ளடக்கமாகக் கருதப்படுகிறது.
. எக்ஸ்எம்எல் அமைப்புமுறை(XML schema)
XML ஆவணத்தில் உள்ள குறிச்சொற்களும் குறிச்சொல்களின் பரம்பரையும் அமைப்புமுறை(schema) என அழைக்கப்படுகிறது. நாம் செயல்படுத்திடும்போது சில அமைப்புமுறைகள் உருவாக்கப்படுகின்றன (எடுத்துக்காட்டாக, இந்த கட்டுரையில் உள்ள மாதிரி XML குறிமுறைவரிகள் முற்றிலும் மேம்படுத்தப்பட்டது), மற்றவை தரக் குழுவால் கண்டிப்பாக வரையறுக்கப்படுகின்றன. எடுத்துக்காட்டாக, அளவிடக்கூடிய திசையன் வலைகலை (SVG) அமைப்புமுறையானது W3C ஆல் வரையறுக்கப்படுகிறது, அதே நேரத்தில் DocBookஅமைப்புமுறையாது Norman Walsh ஆல் வரையறுக்கப்படுகிறது. ஒரு அமைப்புமுறை நிலைத்தன்மையை செயல் படுத்துகிறது. பொதுவாக மிக அடிப்படையான அமைப்புமுறைகள் மிகவும் கட்டுப் படுத்தப்பட்டவைகளாகும். இந்த எடுத்துக்காட்டின் XML குறிமுறைவரிகளில், <mascot> முனைமத்திற்குள் ஒரு வெளியீட்டின் பெயரை வைப்பது நன்றாக இருக்காது, ஏனென்றால் ஆவணத்தின் மறைமுகமான அமைப்புமுறை ஒரு சின்னத்தின் ஒரு “child” உறுப்பாக இருக்க வேண்டும் என்பதை தெளிவு படுத்துகிறது.
தரவு பொருள் மாதிரி (Data object model (DOM))
நாம் தொடர்ந்து குறிச் சொற்களையும் நிலைகளையும் விவரிக்க வேண்டும் என்றால் XML பற்றி பேசுவது குழப்பமடையும் ) XML இல் தரவுகளைக் குறிக்க. DOM ஆனது XML தரவை “family tree” அமைப்பாக கட்டமைக்கிறது, இது மூல உறுப்பிலிருந்து தொடங்கி ( மாதிரி எடுத்துகாட்டின் XML, அது OS குறிச்சொல்) , ஒவ்வொரு குறிச்சொல் உட்பட. இதே XML தரவுகளின் கட்டமைப்பை லினக்ஸ் இயக்க முறைமையில் உள்ள கோப்புகள் அல்லது இணையத்தில் இணையப் பக்கங்களின் இருப்பிடம் போன்ற பாதைகளாக வெளிப்படுத்தலாம். உதாரணமாக, <mascot> குறிச்சொல்லுக்கான பாதையை //os/linux/distribution/slackware/mascot என குறிப்பிடலாம். இரண்டு <distribution> குறிச்சொற்களுக்கான பாதையை //os/linux/distribution என குறிப்பிடலாம். ஏனெனில் இரண்டு விநியோக முனைமங்கள் இருப்பதால், ஒரு பாகுபடுத்தி இரண்டு முனைமங்களையும், ஒவ்வொன்றின் உள்ளடக்கங்களையும்) வினவக்கூடிய ஒரு வரிசையில் பதிவேற்றுகின்றது.
கண்டிப்பான எக்ஸ்எம்எல்
XML ஆனது மிகவும் கண்டிப்பாக இருப்பதாக அறியப்படுகிறது. இதன் பொருள் பெரும்பாலான பயன்பாடுகள் XML இல் பிழைகளை எதிர்கொள்ளும்போது வேண்டுமென்றே செயல்படாமல் தோல்வியடையும் வகையில் வடிவமைக்கப் பட்டுள்ளன. இது சிக்கலாகத் தோன்றலாம், ஆனால் மேம்படுத்துநர்கள் XML ஐப் பற்றி மிகவும் பாராட்டும் செய்திகளில் இதுவும் ஒன்றாகும், ஏனெனில் ஒரு பிழையை எவ்வாறு தீர்வுசெய்வது என்று யூகிக்க முயற்சிக்கும் போது கணிக்க முடியாத செயல்கள் நடக்கலாம். எடுத்துக்காட்டாக, HTML நன்கு வரையறுக்கப் படுவதற்கு முன்பு, பெரும்பாலான இணையஉலாவிகளில் “quirks mode” என்பது சேர்க்கப்பட்டுள்ளது, இதனால் மக்கள் மோசமான HTML குறிமுறை வரிகளை பார்க்க முயன்றபோது, இணையஉலாவி பதிப்பாளர் விரும்பியதை பதிவேற்றலாம். முடிவுகள் பெருமளவில் கணிக்க முடியாதவை, குறிப்பாக ஒரு இணைய உலாவி மற்றொன்றை விட வித்தியாசமாக யூகிக்கும்போது. XMLஆனது பிழை இருக்கும்போது வேண்டுமென்றே தோல்வியடைவதன் மூலம் இதை அனுமதிக்காது. இது சரியான XML ஐ உருவாக்கும் வரை பிழைகளை சரிசெய்ய பதிப்பாளரை அனுமதிக்கிறது. XML நன்கு வரையறுக்க ப் பட்டிருப்பதால், பல பயன்பாடுகளுக்கான ஏற்புகை செருகுநிரல்கள், xmllint , xmlstarlet போன்ற முழுமையான கட்டளைகள் பிழைகளை முன்கூட்டியே கண்டறிய உதவுகின்றது.
எக்ஸ்எம்எல்லை மாற்றுதல்
XML பெரும்பாலும் பரிமாற்ற வடிவமாகப் பயன்படுத்தப்படுவதால், XMLஐ வேறு தரவுகளின் வடிவமாக அல்லது வேறு XML அமைப்புமுறையாக மாற்றுவது பொதுவானது. வகைகளின் எடுத்துக்காட்டுகளில் XSLTProc, xmlto , pandoc ஆகியவை அடங்கும், ஆனால் தொழில்நுட்ப ரீதியாக XMLஐ மாற்றுவதற்காக பல்வேறு பயன்பாடுகள் வடிவமைக்கப் பட்டுள்ளன. உண்மையில், LibreOfficeஆனது XML ஐ அதனுடைய சொல் செயலி , விரிதாள் ஆவணங்களை அமைப்பதற்கு பயன் படுத்திகொள்கிறது, எனவே நாம் எப்போது வேண்டுமானாலும் LibreOffice இலிருந்து ஒரு கோப்பை பதிவேற்றும் செய்யும்போதும் அல்லது மாற்றும் போதும், XML ஐ மாற்றுகின்றோம். திறமூல EPUB வடிவத்தில் உள்ள மின்புத்தகங்கள் XML ஐப் பயன்படுத்திகொள்கின்றன, எனவே எந்த நேரத்திலும் நாம் ஒரு ஆவணத்தை EPUBஆகமாற்றலாம் அல்லது EPUB இலிருந்து மாற்றும்போது நாம் XML ஐ மாற்றுகின்றோம். திசையன் அடிப்படை யிலான விளக்கப் பயன் பாடான Inkscape, அதன் கோப்புகளை SVG இல் சேமிக்கிறது, இது வரைகலையால் வடிவமைக்கப் பட்ட XML அமைப்புமுறையாகும். எந்த நேரத்திலும் நாம் Inkscape இலிருந்து ஒரு படத்தை PNG கோப்பாக பதிவேற்றம் செய்தால், நாம் XML ஐ மாற்றுகின்றோம். இந்த பட்டியல் நீண்டு கொண்டே போகலாம். XML என்பது ஒரு தரவுகளின் சேமிப்பக வடிவமைப்பாகும், மேலும் தரவுகள், canvas இன் புள்ளிகள் , கோடுகள், விளக்கப்படத்தில் முனைமங்கள் அல்லது ஒரு ஆவணத்தில் உள்ள சொற்களை எளிதாகவும் துல்லிய மாகவும் பிரித்தெடுக்கலாம், புதுப்பிக்கலாம் , மாற்றலாம் என்பதை உறுதி செய்து வடிவமைக்கப்பட்டுள்ளது.
எக்ஸ்எம் எல்லை கற்றல்
XML இல் எழுதுவது HTML எழுதுவது போன்றதாகும். கட்டண மற்ற , வேடிக்கையான XMLஇன் பயிற்சி புத்தகங்கள் இணையத்தில் கிடைக் கின்றன, அவை XMLஇன் மூலம் வரைகலையை கற்றுக் கொடுக்கின்றன. பொதுவாக, XMLஐ ஆராய்வதற்கு மிகச் சில சிறப்பு கருவிகள் தேவைப்படுகின்றன. HTML , XML க்கு இடையிலான நெருங்கிய உறவு கொண்டிருப்பதால் கற்பது மிகஎளிதாக இருக்கின்றது, நாம் ஒரு இணைய உலாவியைப் பயன்படுத்தி XML ஐப் பார்க்கலாம். கூடுதலாக, QXmlEdit, NetBeans, Kate போன்ற திறமூல உரை பதிப்பான்கள் XML ஐ தட்டச்சு செய்வதையும் வாசிப் பதையும் உதவிகரமான அறிவு றுத்தல்கள், தானாக நிறைவு செய்தல், தொடரியல் சரிபார்ப்பு, ஆகிய பலவற்றை எளிதாக்குகிறது.
எக்ஸ்எம்எல் தேர்வு செய்தல்
XML முதலில் ஏராளமான தரவுகளை போல் தோன்றலாம், ஆனால் இது HTMLஐ விட வித்தியாசமானது அன்று(உண்மையில், HTML வடிவத்திலான XML ஆனது HTML ஆக மீண்டும் செயல் படுத்தப் பட்டது). XML தனித்துவமான நன்மையைக் கொண்டுள்ளது, அதன் கட்டமைப்பை உருவாக்கும் கூறுகள் மீப்பெரும் தரவுகளாக அது என்ன சேமித்து வைக்கிறது என்பது பற்றிய தகவல்களை நமக்கு வழங்குகிறது. நன்கு வடிவமைக்கப்பட்ட XML அமைப்பு முறையானது நம்முடைய தரவுகளை உள்ளடக்கியதுஒரு பயனாளர் அதை ஒரேயொரு பார்வையில் புரிந்துகொண்டு விரைவாக ஆய்வுசெய்திட அனுமதிக்கிறது, மேலும் மேம்படுத்துநர்கள் வசதியான நிரலாக்க நூலகங்களுடன் திறம்பட பாகுபடுத்த உதவுகிறது.