"ఎలా జరుగుతోంది?"

"అద్భుతం. ఫిర్యాదు చేయలేను. ఈరోజు బిలాబో నాకు జావాస్క్రిప్ట్ గురించి చెప్పారు. ప్రతిదీ కాదు, కానీ కొంచెం మాత్రమే కాదు. అయితే, నేను ఇప్పటికీ JSలో ఏమీ వ్రాయలేదు, కానీ అది అలా ఉంటుందని నేను అనుకోను. కష్టం."

"మరియు ఎల్లీ నాకు JSON సీరియలైజేషన్ గురించి చెప్పారు. మరియు మీరు జాక్సన్ ఫ్రేమ్‌వర్క్ మరియు ఉల్లేఖనాలను ఉపయోగించి 'పాలిమార్ఫిక్ డీరియలైజేషన్'ని ఎలా సెటప్ చేయాలో వివరించారు."

"కాదు! మీరు ఇప్పుడు తెలివైనవారు, అమిగో! నిజమైన స్టడ్!"

"మరియు అప్పుడు కొన్ని!"

"సరే. పనికి వెళ్దాం. ఈ రోజు మనకు కొత్త, ఆసక్తికరమైన అంశం ఉంది: XML. "

XML, XMLలోకి సీరియలైజేషన్ - 1

"XML అనేది మానవులు సులభంగా చదవగలిగే డేటాను సూచించడానికి ఒక ప్రమాణం-మరియు ప్రోగ్రామ్‌ల ద్వారా మరింత సులభంగా చదవవచ్చు. ఇక్కడ ఒక ఉదాహరణ XML ఫైల్:"

XML
<data>
<owner first="Adam" last="Shelton">
<address>London</address>
</owner>
<cat name="Missy" age="15"/>
</data>

"XML యొక్క పునాది ట్యాగ్‌లు. ట్యాగ్ అనేది యాంగిల్ బ్రాకెట్‌లలోని పదం (చిహ్నాల కంటే ఎక్కువ మరియు అంతకంటే తక్కువ). ఓపెనింగ్ మరియు క్లోజింగ్ ట్యాగ్‌లు ఉన్నాయి. ప్రతి ఓపెనింగ్ ట్యాగ్‌కు సరిగ్గా ఒక సంబంధిత ముగింపు ట్యాగ్ ఉంటుంది. తెరవడం ట్యాగ్‌లు లక్షణాలను కలిగి ఉంటాయి. "

"ట్యాగ్‌లను ట్యాగ్‌లో గూడులో ఉంచవచ్చు, తద్వారా ఎలిమెంట్ ట్రీని సృష్టించవచ్చు. అగ్ర-స్థాయి ట్యాగ్‌ని రూట్ అంటారు: ఇది చైల్డ్ ట్యాగ్‌లను కలిగి ఉంటుంది, ఇది వారి స్వంత చైల్డ్ ట్యాగ్‌లను కలిగి ఉంటుంది."

"ఇవి కొన్ని ఉదాహరణలు:"

ట్యాగ్ చేయండి వివరణ
< డేటా > డేటా ట్యాగ్‌ని తెరుస్తోంది
</ డేటా > డేటా ట్యాగ్‌ను మూసివేస్తోంది
<పిల్లి  పేరు = " మిస్సీ " వయస్సు = " 15 "> లక్షణాలతో కూడిన ట్యాగ్. గుణ విలువలు కోట్‌లలో చుట్టబడి ఉంటాయి
<data>
<యజమాని>
<cat name = "Missy"/>
</owner>
</data>
సమూహ ట్యాగ్‌లు.
< పిల్లి పేరు = "మిస్సీ" వయస్సు = "15"  /> స్వీయ ముగింపు ట్యాగ్.
అలాంటి ట్యాగ్‌లకు క్లోజింగ్ ట్యాగ్‌లు అవసరం లేదు.
మరియు వారు పిల్లల ట్యాగ్‌లను కలిగి ఉండలేరు.
<info>
ఎలాంటి సమాచారం అయినా ఇక్కడకు వెళ్లవచ్చు
</info>
ట్యాగ్ టెక్స్ట్ డేటాను కలిగి ఉంటుంది
<info>
ఏ రకమైన
<data xxx = "yyy">
</data>
సమాచారం
<data 2xxx = "yyy"/>
ఇక్కడకు వెళ్లవచ్చు
</info>
ఒక ట్యాగ్ ఇతర ట్యాగ్‌లతో విభజింపబడిన టెక్స్ట్ డేటాను కలిగి ఉండవచ్చు.

"ఇది తేలికగా ఉంది. ఏ రకమైన ట్యాగ్‌లు ఉన్నాయి?"

"ఏదైనా. రిజర్వ్ చేయబడిన ట్యాగ్‌లు లేవు. XML అనేది ఏదైనా డేటాను వివరించడానికి ఒక భాష. వ్యక్తులు తమ అవసరాలను తీర్చే ట్యాగ్‌లతో ముందుకు వస్తారు మరియు వాటిని ఎలా ఉపయోగించాలో అంగీకరిస్తారు."

"ముఖ్యంగా, XML అనేది కంప్యూటర్ అర్థం చేసుకోగలిగే మూలకం ట్రీగా డేటాను వ్రాయడానికి ఒక మార్గం."

"నాకు ఇప్పుడు అర్థమైందని అనుకుంటున్నాను. మార్గం ద్వారా, నాకు ఒక ప్రశ్న ఉంది."

"JSON బ్రౌజర్ నుండి సర్వర్‌కి డేటాను పంపడానికి ఉపయోగించబడుతుంది, అయితే XML ఎక్కడ ఉపయోగించబడుతుంది?"

"JSON ఉపయోగించిన అదే ప్రదేశాలలో: డేటాను నిల్వ చేయడానికి మరియు పంపడానికి."

"సరే, కంటిన్యూ చేద్దాం."

"ఇరవై మంది వ్యక్తులు వ్రాసే ప్రోగ్రామ్ కోసం డేటాను నిల్వ చేసే ఒక షేర్డ్ XML ఫైల్ మీ వద్ద ఉందని ఊహించుకోండి. వాటిలో ప్రతి ఒక్కరు వారి స్వంత ట్యాగ్‌లతో ముందుకు వస్తారు మరియు వారు త్వరగా పరస్పరం జోక్యం చేసుకోవడం ప్రారంభిస్తారు."

"ట్యాగ్‌లు ప్రత్యేకంగా ఉన్నాయని నిర్ధారించడానికి, ఉపసర్గలు కనుగొనబడ్డాయి. అవి ఈ విధంగా కనిపిస్తాయి:"

టాగ్లు వివరణ
< జంతువు : పిల్లి> జంతు ఉపసర్గతో క్యాట్ ట్యాగ్
< జంతువు : పిల్లి>
</ animal: cat>
< zoo :cat>
</ zoo :cat>
విభిన్న ఉపసర్గలతో రెండు పిల్లి ట్యాగ్‌లు.
< జంతువు : పిల్లి  జూ : పేరు = "MX"> జంతు ఉపసర్గతో క్యాట్ ట్యాగ్ . జూ ఉపసర్గతో ఒక పేరు లక్షణం .

"ప్రిఫిక్స్‌లను నేమ్‌స్పేస్‌లు అని కూడా అంటారు. మనం వాటిని నేమ్‌స్పేస్‌లు అని పిలిస్తే, టేబుల్‌లోని చివరి వివరణ 'జంతువుల నేమ్‌స్పేస్‌తో కూడిన క్యాట్ ట్యాగ్. జూ నేమ్‌స్పేస్‌తో కూడిన పేరు లక్షణం' అవుతుంది."

"అంతేగాక, జావాలో ప్రతి తరగతికి ఒక చిన్న పేరు మరియు పొడవాటి ప్రత్యేక పేరు ఉందని మీకు గుర్తుందా, ప్యాకేజీ పేరును కలిగి ఉంటుంది, ఇది ప్యాకేజీని దిగుమతి చేసేటప్పుడు కూడా పేర్కొనబడుతుంది?"

"అవును."

"సరే, ఉపసర్గలు కూడా ప్రత్యేకమైన పొడవాటి పేరును కలిగి ఉంటాయి మరియు దిగుమతి చేసుకున్నప్పుడు కూడా ఇది పేర్కొనబడుతుంది: "

ఉదాహరణ
< data  xmlns:soap="http://cxf.apache.org/bindings/soap" >
 < soap :item> 
< soap :info/> 
</ soap :item> 
</ data >

"' xml ns :soap' అంటే ' XMLn ame s పేస్ SOAP'"

"మీరు ఉపసర్గ లేని ట్యాగ్‌ల ప్రత్యేక పేరును కూడా సెట్ చేయవచ్చు: "

ఉదాహరణ
<data xmlns = "http://www.springframework.org/schema/beans" 
xmlns: soap = "http://cxf.apache.org/bindings/soap" 
xmlns:task = "http://www.springframework .org/schema/task" > 
< soap :item> 
< soap :info/> 
< task :info/> 
</ soap :item> 
</data>

"'xmlns=...' ఖాళీ ఉపసర్గ కోసం నేమ్‌స్పేస్‌ను సెట్ చేస్తుంది. మరో మాటలో చెప్పాలంటే, ఇది పై ఉదాహరణలోని డేటా వంటి ఉపసర్గ లేకుండా ట్యాగ్‌ల కోసం నేమ్‌స్పేస్‌ను సెట్ చేస్తుంది."

"మీరు డాక్యుమెంట్‌లో మీకు కావలసినన్ని నేమ్‌స్పేస్‌లను కలిగి ఉండవచ్చు, కానీ ప్రతి ఒక్కటి ప్రత్యేక పేరును కలిగి ఉండాలి."

"నేను చూస్తున్నాను. ఈ నేమ్‌స్పేస్‌లకు ఇంత విచిత్రమైన ప్రత్యేకమైన పేర్లు ఎందుకు ఉన్నాయి?"

"అవి సాధారణంగా నేమ్‌స్పేస్ మరియు/లేదా దాని XML ట్యాగ్‌లను వివరించే పత్రాన్ని సూచించే URLని సూచిస్తాయి."

"నువ్వు ఈరోజు నా మీద చాలా ఇన్ఫర్మేషన్ ఇచ్చావు. ఇంకా ఏముంది?"

"ఇంకా కొంచెం ఉంది."

"మొదట, XMLకి హెడర్ ఉంది. ఇది XML వెర్షన్ మరియు ఫైల్ ఎన్‌కోడింగ్‌ని వివరించే ప్రత్యేక లైన్. "ఇది సాధారణంగా ఇలా కనిపిస్తుంది:"

"ఇది సాధారణంగా ఇలా కనిపిస్తుంది:"

ఉదాహరణ
<?xml  వెర్షన్ = "1.0"  ఎన్‌కోడింగ్ = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<soap:item>
<soap:info/>
</soap:item>
</data>

"మీరు XMLకి వ్యాఖ్యలను కూడా జోడించవచ్చు. వ్యాఖ్యను ప్రారంభించడానికి, '<!--' ఉపయోగించండి. దాన్ని ముగించడానికి, '-->' ఉపయోగించండి."

ఉదాహరణ
<?xml version = "1.0" encoding = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<soap:item>
<!-- <soap:info/> -->
</soap:item>
<!-- This is also a comment  -->
</data>

"ఇంతవరకూ నాకు అర్థమైంది."

"నిర్దిష్ట చిహ్నాలు (< > " &) XMLలో ప్రత్యేక అర్ధాన్ని కలిగి ఉంటాయి, కాబట్టి వాటిని మరెక్కడా ఉపయోగించలేరు. ఇతర అక్షరాలు/చిహ్నాలను సూచించడానికి ఉపయోగించే ఒక ఎస్కేప్ సీక్వెన్స్‌తో మనం ఈ పరిమితిని అధిగమించవచ్చు. వాటిలో కొన్ని ఇక్కడ ఉన్నాయి:"

ఎస్కేప్ సీక్వెన్స్ అది భర్తీ చేసే చిహ్నం
& &
" «
< <
> >
' '

"మరియు ఇక్కడ XMLలో పొందుపరిచిన కోడ్ యొక్క ఉదాహరణ:"

జావా కోడ్ XMLలో జావా కోడ్
if (a < b)
System.out.println("a is minimum");
<కోడ్>
ఒకవేళ (a  <  b)
 System.out.println( " a కనిష్ట " );
</code>

"అయ్యో... అందంగా కనిపించడం లేదు."

"జావాలో కొన్ని అక్షరాలు కూడా తప్పించుకున్నాయని మీకు గుర్తుందా? ఉదాహరణకు, "\". మరియు స్ట్రింగ్‌కు వ్రాసేటప్పుడు ఈ క్రమాన్ని కూడా రెండుసార్లు వ్రాయాలి? కాబట్టి ఇది సాధారణ సంఘటన."

"అలాగే."

"ఈరోజు నా దగ్గర ఉన్నది అంతే."

"హుర్రే. నేను ఎట్టకేలకు విరామం తీసుకోగలను."