Theory
એક ખોટું tag, build નહીં
જો એક પણ tag ખરાબ હોય તો Android FestConnect નું layout build કરશે નહીં: ખૂટતું બંધ થવું, quote વગરનું value, ઓળંગાયેલી ગોઠવણ. XML જાણી જોઈને કડક છે, અને નિયમો થોડા જ છે.
આ પાઠ ભાગોનાં નામ આપે છે, એટલે કે declaration, tags, અને elements, અને એ મુઠ્ઠીભર નિયમો જે XML ને well-formed બનાવે છે. આ પાકાં કરો અને તમે તમારા project ની કે પરીક્ષાની કોઈ પણ XML ની file વાંચી અને સુધારી શકશો.
Theory
ગણિતમાં મળતા કૌંસ
ગણિતમાં દરેક ખૂલતા કૌંસને બંધ થતો કૌંસ જોઈએ, અને એ ઓળંગાવા ન જોઈએ: (a + [b]) બરાબર છે, (a + [b)] ખોટું છે. XML નાં tags એવાં જ છે. <a><b></b></a> સ્વચ્છ રીતે અંદરોઅંદર ગોઠવાય છે; <a><b></a></b> ઓળંગે છે અને invalid છે. જો તમે કૌંસ સંતુલિત કરી શકો, તો તમે XML નાં tags પણ ગોઠવી શકો, એ ખોલો પછી સાચા ક્રમમાં બંધ કરો ની એ જ શિસ્ત છે.
Theory
Declaration, tags, elements
- Declaration: પહેલી line,
<?xml version="1.0" encoding="UTF-8"?>(વિગત હવે પછીના પાઠમાં). - Tag: markup પોતે, એટલે શરૂ થતું tag
<year>અને બંધ થતું tag</year>. ખાલી element સ્વયં બંધ થઈ શકે છે:<line/>. - Element: શરૂ થતું tag, એની સામગ્રી, અને એનું બંધ થતું tag, બધું ભેગું:
<year>2</year>. Elements અંદરોઅંદર ગોઠવાઈ શકે છે. - Attribute: શરૂ થતા tag ની અંદરની
name="value"ની જોડ; value હંમેશા quote માં.
Well-formed એટલે: દરેક tag બંધ થાય, ગોઠવણ ઓળંગાય નહીં, અને attributes quote માં હોય.
Practical
Elements, attributes, સ્વયં બંધ થવું
<?xml version="1.0" encoding="UTF-8"?>
<registration id="F-108"> <!-- id is an ATTRIBUTE (quoted) -->
<name>Aditi Shah</name> <!-- element: start + content + end -->
<year>2</year>
<events>
<event>Robotics</event> <!-- nested elements -->
<event>Dance</event>
</events>
<confirmed/> <!-- empty, self-closing element -->
</registration>Think first
એને well-formed શું બનાવે છે એ ઓળખો
આ ટુકડામાં એક element, એક attribute, અને એક સ્વયં બંધ થતું (ખાલી) element ચીંધો. પછી કહો કે એકલું <name>Aditi Shah file ને કેમ તોડી નાખત.
Show the answer
એક element: <year>2</year> (શરૂ થતું tag, સામગ્રી 2, બંધ થતું tag). એક attribute: <registration> ના શરૂ થતા tag ની અંદરનું id="F-108", જેનું value quote માં છે. એક સ્વયં બંધ થતું element: <confirmed/>. એકલું <name>Aditi Shah file ને તોડે છે કારણ કે એને બંધ થતું </name> નથી; XML ને દરેક element બંધ થયેલું જોઈએ, એટલે બંધ ન થયેલું tag document ને well-formed રહેવા દેતું નથી અને Android એને build કરવાની ના પાડે છે.
Quiz
કઈ line well-formed XML **નથી**?
- <event name=Robotics> (attribute નું value quote માં નથી)
- <event name="Robotics"></event>
- <confirmed/>
- <year>2</year>
Show the answer
<event name=Robotics> (attribute નું value quote માં નથી)
XML ને attribute નાં values quote માં જોઈએ, એટલે quote વગરનું name=Robotics એ well-formed નથી (A). Quote વાળી આવૃત્તિ (B) સાચી છે. સ્વયં બંધ થતું ખાલી element <confirmed/> માન્ય છે (C), અને સામગ્રીવાળું સામાન્ય element <year>2</year> માન્ય છે (D). Quote વગરનાં attributes, બંધ ન થયેલાં tags, અને ઓળંગાયેલી ગોઠવણ, એ ત્રણ રીતે XML સૌથી વધુ વાર well-formed રહેતું નથી.
Watch out
સ્વરૂપના ફાંદા
1. Quote વગરનાં attribute નાં values: width=match_parent નિષ્ફળ જાય છે; XML ને width="match_parent" જોઈએ.
2. બંધ ન થયેલાં tags: દરેક element ને બંધ થતું tag જોઈએ, કે એણે સ્વયં બંધ થવું જોઈએ (<confirmed/>). HTML <br> ને માફ કરે છે; XML નહીં.
3. ઓળંગાયેલી ગોઠવણ: <a><b></a></b> invalid છે; મળતા કૌંસની જેમ, બહારના પહેલાં અંદરનું element બંધ કરો.
Theory
બે નિયમો પોતાના પાઠ માંગે છે
Well-formed હોવાના બે નિયમો એટલા મોટા છે કે એમને એકલા ભણવા પડે. હવે પછીનો પાઠ એક જ મૂળ element (XML ના document માં બરાબર એક જ સૌથી બહારનું element હોવું જોઈએ) અને case sensitivity (<Name> અને <name> જુદાં tags છે, અને એમનું ખૂલવું તથા બંધ થવું મળતું હોવું જોઈએ) આવરે છે. બંને ખાતરીબદ્ધ પરીક્ષાના મુદ્દા છે અને 'એ build કેમ થતું નથી' ની અનેક ક્ષણોનું કારણ છે.
Summary
Key takeaways
- XML declaration થી શરૂ થઈ શકે છે: <?xml version="1.0" encoding="UTF-8"?>.
- Tag એ markup છે (શરૂ થતું <year> અને બંધ થતું </year>); ખાલી element સ્વયં બંધ થાય છે: <confirmed/>.
- Element એ શરૂ થતું tag વત્તા સામગ્રી વત્તા બંધ થતું tag છે, દા.ત. <year>2</year>; elements અંદરોઅંદર ગોઠવાઈ શકે છે.
- Attributes એ શરૂ થતા tag માંની name="value" ની જોડ છે, અને values quote માં હોવાં જ જોઈએ.
- Well-formed એટલે દરેક tag બંધ થાય, ગોઠવણ ઓળંગાય નહીં, અને attributes quote માં હોય.
- Memory hook: XML નાં tags ગણિતના કૌંસની જેમ સંતુલિત થાય છે.