Theory
તમે આખા એકમમાં XML વાંચ્યું જ છે
FestConnect Mobile માંનું દરેક layout અને manifest એ XML હતું. પણ XML એ Android કરતાં મોટું છે: એ data સંઘરવાની અને ખસેડવાની સામાન્ય રીત છે. હવે કલ્પો કે app માંથી fest ની એક નોંધણી college ના server પર મોકલવી છે. તમને એવું સ્વરૂપ જોઈએ જે બંને બાજુ સમજે, અને જે દરેક ટુકડાને સ્પષ્ટ લેબલ આપે: નામ, event, વર્ષ.
એ જ XML નું ખરું કામ છે. એ HTML જેવું દેખાય છે (ખૂણિયા કૌંસવાળાં tags), પણ એનો હેતુ જુદો છે, અને એ ભેદ જ આ પાઠનું હાર્દ છે.
Theory
લેબલવાળી બરણીઓ, છાપેલું poster નહીં
HTML એ છાપેલું poster છે: એ નક્કી કરે છે કે વસ્તુઓ કેવી દેખાય, મથાળાં મોટાં, નીચે ફકરા. XML એ લેબલવાળી બરણીઓ નો સમૂહ છે: દરેક બરણી પર 'નામ', 'event', 'વર્ષ' લખેલું છે, અંદર મૂલ્ય છે, અને દેખાવ વિશે એ કશું કહેતું નથી. તમે database ને poster વાંચી ન સંભળાવો, અને તમે બરણીઓ દીવાલ પર ન ટાંગો. દેખાવ સામે data માટે જુદાં ઓજાર.
Theory
XML ને XML શું બનાવે છે
XML (eXtensible Markup Language) data ને tags માં રચના આપે છે:
- Extensible: તમે તમારાં પોતાનાં tag નાં નામ ઉપજાવો છો (
<event>), HTML ના નિશ્ચિત સમૂહ (<p>,<h1>) થી વિપરીત. - સ્વ-વર્ણનાત્મક: tag નાં નામ અંદરના data નું વર્ણન કરે છે.
- લખાણ આધારિત અને platform થી સ્વતંત્ર: કોઈ પણ તંત્ર, કોઈ પણ ભાષા એને વાંચી શકે.
- Data ને રજૂઆતથી અલગ કરે છે: એ data વહન કરે છે; એને દેખાડતું નથી.
ઉપયોગ: તંત્રો વચ્ચે data ની આપલે, ગોઠવણ ની files, અને Android માં layouts, manifest, અને strings નાં resources.
Practical
FestConnect ની નોંધણી XML તરીકે
<registration>
<name>Aditi Shah</name>
<year>2</year>
<event>Robotics</event>
<paid>false</paid>
</registration>
<!-- Note: <name>, <year>, <event> are tags WE invented.
XML does not display this; it just structures the data
so any program can read each labelled value. -->This example runs in Gri-Learn on the web, where you can edit it and see the output.
At a glance
XML સામે HTML
| પાસું | XML | HTML |
|---|---|---|
| હેતુ | data ને રચના આપવી | સામગ્રી દેખાડવી |
| Tags | તમે ઉપજાવો છો | નિશ્ચિત સમૂહ |
| નિયમો | કડક (well-formed) | ઉદાર |
| દેખાય છે? | ના, ફક્ત data | હા, browser માં |
Think first
'સ્વ-વર્ણનાત્મક' કેમ મહત્ત્વનું છે
Server ને ઉપરનું XML કોઈ પુસ્તિકા વગર મળે છે. એને કેવી રીતે ખબર પડે કે 'Robotics' એ event છે અને '2' એ વર્ષ? 'સ્વ-વર્ણનાત્મક' હોવાથી શું મળે છે એ સમજાવો.
Show the answer
કારણ કે દરેક મૂલ્ય એવા tag માં વીંટાયેલું છે જે એને નામ આપે છે: <event>Robotics</event>, <year>2</year>. Data પોતાનાં લેબલ સાથે લઈને ફરે છે, એટલે ઝીલનારો program tag વાંચીને જાણી લે છે કે દરેક મૂલ્યનો શું અર્થ છે, અલગ ચાવી વગર. એ જ 'સ્વ-વર્ણનાત્મક' છે. કોરી CSV ની લીટી Aditi,2,Robotics સાથે સરખાવો, જેને કયો સ્તંભ કયો છે એ કહેતી બહારની નોંધ જોઈએ. XML નાં લેબલ data સાથે જ મુસાફરી કરે છે.
Quiz
XML અને HTML વચ્ચેનો ભેદ કયું વિધાન સૌથી સારી રીતે પકડે છે?
- XML પોતાનાં ઉપજાવેલાં tags થી data ને રચના આપે છે; HTML પહેલેથી નક્કી કરેલાં tags થી સામગ્રી દેખાડે છે
- XML અને HTML એક જ ભાષા છે, ફક્ત file નાં નામ જુદાં
- HTML તમને કોઈ પણ tag ઉપજાવવા દે છે; XML ને નિશ્ચિત tag નો સમૂહ છે
- XML પણ HTML ની જેમ browser માં પાનાં દેખાડે છે
Show the answer
XML પોતાનાં ઉપજાવેલાં tags થી data ને રચના આપે છે; HTML પહેલેથી નક્કી કરેલાં tags થી સામગ્રી દેખાડે છે
XML એ તમે વ્યાખ્યાયિત કરેલાં tags વાપરીને data ને રચના આપવા માટે છે, જ્યારે HTML એ નિશ્ચિત, પહેલેથી નક્કી કરેલા tag ના સમૂહથી સામગ્રી દેખાડવા માટે છે (A). એ સંબંધિત છે (બંને markup) પણ એક જ ભાષા નથી (B). Tags ઉપજાવવા દે છે એ XML છે, HTML નહીં (C ઊલટું છે). અને XML જાતે પાનું દેખાડતું નથી, એ ફક્ત data રાખે છે (D). Data સામે દેખાવ, ઉપજાવેલાં સામે નિશ્ચિત, એ જ પરીક્ષાનો જવાબ છે.
Watch out
XML ના ખ્યાલના ફાંદા
1. 'XML data દેખાડે છે': ના. XML data ને સંઘરે/રચના આપે છે; દેખાવ કંઈક બીજું (program, stylesheet) નક્કી કરે છે. દેખાડનારું HTML છે.
2. 'XML માં જડેલાં tags હોય છે': હોતાં નથી. તમે તમારાં પોતાનાં વ્યાખ્યાયિત કરો છો; 'extensible' નો એ જ અર્થ છે.
3. XML ને HTML જેટલું ઢીલું ગણવું: XML કડક છે. Browsers બેદરકાર HTML ને માફ કરે છે, પણ XML well-formed હોવું જ જોઈએ (દરેક tag બંધ, એક જ મૂળ), જે હવે પછીના પાઠો આવરે છે.
Theory
આગળ: એને માન્ય બનાવતા નિયમો
XML ની તાકાત કડક નિયમો સાથે આવે છે. હવે પછીનો પાઠ XML નું સ્વરૂપ આવરે છે, એટલે કે declaration ની લીટી, tags, અને elements, અને 'well-formed' નો શું અર્થ છે: દરેક tag બંધ કરો, દરેક attribute ને અવતરણચિહ્નમાં મૂકો, બરાબર અંદરોઅંદર ગોઠવો. કારણ કે Android એક પણ ખરાબ tag વાળું layout build કરવાની ના પાડે છે, એટલે આ ફક્ત સિદ્ધાંત નહીં, વ્યવહારુ છે.
Summary
Key takeaways
- XML (eXtensible Markup Language) તમે ઉપજાવેલાં સ્વ-વર્ણનાત્મક tags વાપરીને data ને રચના આપે છે અને વહન કરે છે.
- HTML નિશ્ચિત tag ના સમૂહથી સામગ્રી દેખાડે છે; XML data ને રચના આપે છે અને જાતે કશું દેખાડતું નથી.
- XML લખાણ આધારિત છે, platform થી સ્વતંત્ર છે, અને data ને રજૂઆતથી અલગ કરે છે.
- સ્વ-વર્ણનાત્મક એટલે દરેક મૂલ્ય પોતાનું લેબલ (tag) સાથે લઈને ફરે છે, જેથી કોઈ પણ program એને ચાવી વગર વાંચી શકે.
- ઉપયોગ: data ની આપલે, ગોઠવણની files, અને Android નાં layouts/manifest/strings નાં resources.
- Memory hook: લેબલવાળી બરણીઓ (XML નો data) સામે છાપેલું poster (HTML નો દેખાવ).