Theory
Event List 4 जगहों पर रहती है
FestConnect, BCA305-01 में आपने जो fest site बनाई थी, success का एक problem रखती है। Event list home page के HTML में hardcoded है। और schedule page में। और registration page में। और BCA305-02 का Android app अपनी खुद की copy carry करता है।
Fest committee Garba Night का venue बदलती है, और 4 copies edit करनी पड़ती हैं; एक miss कीजिए और students ग़लत ground पर चले जाते हैं।
Data ONCE रहना चाहता है, ऐसे form में जिसे सब कुछ पढ़ सके। इस unit का answer है XML।
Theory
Labelled Dabbas, Printed Plates नहीं
एक HTML page एक printed plate है: food एक table के लिए arranged, presentation included।
एक XML file labelled dabbas का एक tiffin है: हर container बताता है अंदर क्या है (<venue>, <time>), कुछ भी नहीं बताता इसे कैसे serve किया जाए। Website उन्हीं dabbas को एक तरीके से plate करती है, app दूसरे तरीके से, और कल का नया consumer (एक notice-board display?) खुद अपने-आप serve कर लेता है।
XML carry करता है; consumers present करते हैं।
Theory
XML, Formally
XML (eXtensible Markup Language) self-describing text में data store और transport करने के लिए एक markup language है।
Exam जो characteristics list करता है:
- User-Defined Tags:
<event>,<venue>आप invent करते हैं; कुछ भी predefined नहीं (यही eXtensible है) - Self-Describing: tag names data को document करते हैं
- Platform और Language Independent: plain text; कोई भी OS, कोई भी language इसे parse करता है
- Data को Presentation से Separate करता है: कोई fonts नहीं, कोई colours नहीं, सिर्फ़ meaning
- Strict: rules (अगले lessons) जिन्हें parsers bend करने से मना कर देते हैं
Practical
events.xml: Fest का Single Source of Truth
<?xml version="1.0" encoding="UTF-8"?>
<events>
<event id="1">
<name>Garba Night</name>
<venue>Main Ground</venue>
<time>19:30</time>
<seats>350</seats>
</event>
<event id="2">
<name>Coding Contest</name>
<venue>Lab 2</venue>
<time>10:00</time>
<seats>60</seats>
</event>
</events>
At a glance
HTML बनाम XML (Standard Comparison)
| Aspect | HTML | XML |
|---|---|---|
| Purpose | Data DISPLAY करना | Data CARRY और store करना |
| Tags | Predefined (<h1>, <p>) | User-defined (<event>, <venue>) |
| Rules | Forgiving: browsers guess करते हैं | Strict: parsers errors refuse करते हैं |
| Case | Insensitive | Sensitive: <Name>, <name> नहीं है |
| Presentation | Built in | कोई नहीं: consumers decide करते हैं |
Quiz
XML primarily क्या करने के लिए designed है?
- Browser में data को attractively display करना
- Self-describing form में data store और transport करना
- Web pages बनाने के लिए HTML को replace करना
- Faster networks के लिए data compress करना
Show the answer
Self-describing form में data store और transport करना
XML labelled dabba है: यह meaning के साथ data carry करता है और looks के बारे में कुछ नहीं कहता। Option A HTML का job है, और display-vs-carry ही 2 के बीच THE exam distinction है। Option C इनके relationship को misread करता है: वे अलग jobs वाले colleagues हैं, और FestConnect दोनों इस्तेमाल करती है (दिखाने के लिए HTML, store करने के लिए XML)। Option D almost backwards है: self-describing tags XML files को raw data से LARGER बनाते हैं, readability और independence के लिए willingly दी गई एक price।
Think first
आप पूरे Semester XML लिख चुके हैं
Tap करने से पहले: BCA305-02, Android subject में, आप इस unit की theory के बिना कहाँ पहले से XML files लिख रहे थे?
Show the answer
हर जगह: हर layout file (activity_main.xml, LinearLayouts और TextViews) और AndroidManifest.xml XML documents हैं: Google-द्वारा-user-defined tags, एक root element, strict nesting, quotes में attributes। Android ने exactly उन characteristics के लिए XML चुना जो इस lesson ने list किए: self-describing, platform-neutral, data-not-presentation। तो अगले 4 lessons के rules कोई नई discipline नहीं हैं; वे वही grammar हैं जिसे आप पहले से follow कर रहे थे, अब नाम दी गई।
Watch out
पहले Week के दो Misconceptions
"XML advanced HTML है": नहीं। अलग purpose (carry बनाम display), अलग tag origin (आपका बनाम predefined), अलग strictness। Comparison table ही answer scheme है; इसकी rows सीखिए।
"Browser मेरा XML fix कर देगा": browsers रोज़ broken HTML को rescue करते हैं, और उस mercy ने bad habits train कीं। XML parsers ill-formed documents को सीधा REFUSE करते हैं: एक unclosed tag और पूरी file reject हो जाती है। Strictness ही feature है: data exchange करने वाली machines guesses afford नहीं कर सकतीं।
Theory
यह Unit कहाँ जाती है
events.xml अब FestConnect का single source of truth है, और subject का बाकी हिस्सा इसके चारों तरफ़ machinery बनाता है: pages को react कराने के लिए jQuery (Unit 2), same job के लिए XML का leaner modern rival JSON (Unit 3), बिना reload data fetch करने के लिए AJAX (Unit 4), और इसे serve करने के लिए Node.js (Unit 5)। पर पहले, grammar: exactly क्या एक XML file को legal बनाता है, अगले lesson declarations, tags और elements से शुरू होते हुए।
Summary
Key takeaways
- XML self-describing, user-defined tags में data store और transport करता है; यह कभी presentation dictate नहीं करता।
- eXtensible = आप tags invent करते हैं: <event>, <venue>, data को जो भी चाहिए।
- Plain text, platform और language independent: एक file site, app, और आगे जो भी आए उसे feed करती है।
- HTML predefined, forgiving tags से display करता है; XML user-defined, strict tags से carry करता है।
- Uses: data storage, systems के बीच exchange, configuration (Android layouts और manifest), RSS, SVG।
- Parsers ill-formed XML refuse करते हैं: strictness ही machine exchange को trustworthy बनाती है।
- Memory hook: HTML plate है, XML labelled dabba है।