"Mi újság?"

"Remek. Nem panaszkodhatok. Ma Bilaabo mesélt nekem a JavaScriptről. Persze nem mindent, de többet egy kicsit. Természetesen még mindig nem írtam semmit JS-ben, de nem hiszem, hogy az lenne nehéz."

"És Ellie mesélt nekem a JSON-szerializálásról. Ön pedig elmagyarázta a Jackson-keretrendszert és a "polimorf deserializáció" beállítását annotációk segítségével."

"Dehogyis! Okos vagy, Amigo! Igazi ménes!"

"Majd néhány!"

"Rendben. Kezdjük a munkát. Ma van egy új, érdekes témánk: XML. "

XML, sorozatosítás XML-be - 1

"Az XML az emberek által könnyen olvasható adatok megjelenítésére szolgáló szabvány, a programok pedig még könnyebben olvashatók. Íme egy példa XML-fájlra:

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

"Az XML alapja a címkék. A címke egy szögletes zárójelben lévő szó (nagyobb és kisebb jelek). Vannak nyitó és záró címkék. Minden nyitó címkének pontosan egy megfelelő záró címkéje van. A nyitó címkéknek lehetnek attribútumai. "

"A címkéket be lehet ágyazni egy címkébe, ezáltal egy elemfát hozhatunk létre. A legfelső szintű címkét gyökérnek nevezik: gyermekcímkéi vannak, amelyeknek viszont saját gyermekcímkéi vannak."

"Íme néhány példa:"

Címke Leírás
< adatok > Adatcímke megnyitása
</ data > Adatcímke bezárása
<cat  name = " Missy " age = " 15 "> Egy címke attribútumokkal. Az attribútumok értékei idézőjelek közé vannak foglalva
<data>
<owner>
<cat name = "Missy"/>
</owner>
</data>
Beágyazott címkék.
< macskanév = "Kisasszony" kor = "15"  /> Önzáró címke.
Az ilyen címkéknek nincs szükségük záró címkékre.
És nem lehetnek gyermekcímkéik.
<info> Ide
bármilyen információ elérhető
</info>
A címke szöveges adatokat tartalmazhat
<info>
Bármilyen
<data xxx = "yyy">
</data> <data 2xxx = "yyy"/>
információ eljuthat ide </info>


A címkék szöveges adatokat tartalmazhatnak más címkékkel tarkítva.

"Könnyűnek tűnik. Milyen címkék vannak?"

"Bármilyen. Nincsenek fenntartott címkék. Az XML egy nyelv bármilyen adat leírására. Az emberek olyan címkéket találnak ki, amelyek megfelelnek az igényeiknek, és megegyeznek a használatukban."

"Lényegében az XML az adatok olyan elemfaként történő írásának módja, amelyet a számítógép megérthet."

– Azt hiszem, most már értem. Egyébként lenne egy kérdésem.

"A JSON-t arra használják, hogy adatokat küldjenek a böngészőből a szerverre, de hol használják az XML-t?"

"Ugyanazokon a helyeken, ahol a JSON-t használják: adatok tárolására és küldésére."

– Oké, folytassuk.

"Képzelje el, hogy van egy megosztott XML-fájlja, amely egy húsz ember által írt program adatait tárolja. Mindegyikük saját címkével áll elő, és gyorsan elkezdik zavarni egymást."

"Annak érdekében, hogy a címkék egyediek legyenek, előtagokat találtak ki. Így néznek ki:"

Címkék Leírás
< állat :macska> Egy macskacímke állat előtaggal
< állat :macska>
</ állat: macska>
< állatkert :macska>
</ állatkert :macska>
Két macskacímke különböző előtagokkal.
< állat : macska  állatkert : name = "MX"> Egy macskacímke állat előtaggal . Név attribútum az állatkert előtaggal.

"Az előtagokat névtereknek is nevezik. Ha névtereknek nevezzük őket, akkor a táblázat utolsó leírása a következő lesz: "Macskacímke az állat névterével. Név attribútum az állatkert névterével."

"Egyébként arra emlékszel, hogy a Java-ban minden osztálynak van egy rövid neve és egy hosszú egyedi név, ami tartalmazza a csomag nevét is, amit a csomag importálásakor is megadnak?"

"Igen."

"Nos, az előtagoknak is egyedi hosszú neveik vannak, és ez is megadásra kerül importáláskor: "

Példa
< data  xmlns:soap="http://cxf.apache.org/bindings/soap" >
 < soap :item> 
< soap :info/> 
</ soap :item> 
</ data >

"" xml ns :soap" jelentése " XMLn ame s pace SOAP""

" Az előtag nélküli címkék egyedi nevét is beállíthatja : "

Példa
<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>

Az "'xmlns=…" beállítja az üres előtag névterét. Más szóval, beállítja az előtag nélküli címkék névterét, mint például a fenti példában szereplő adatok."

"Annyi névteret tartalmazhat egy dokumentumban, amennyit csak akar, de mindegyiknek egyedi névvel kell rendelkeznie."

– Értem. Miért van ezeknek a névtereknek ilyen furcsa egyedi neveik?

"Általában olyan URL-t jeleznek, amely a névteret és/vagy annak XML-címkéit leíró dokumentumra mutat."

"Ma sok információt kidobtál rólam. Mi van még?"

– Van még egy kicsi.

"Először is, az XML-nek van egy fejléce. Ez egy speciális sor, amely leírja az XML verziót és a fájl kódolását. "Általában így néz ki:"

"Általában így néz ki:"

Példa
<?xml  version = "1.0"  encoding = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<szappan:cikk>
<szappan:info/>
</soap:item>
</data>

"Az XML-hez megjegyzéseket is hozzáadhat. A megjegyzés elindításához használja a "<!--"-t. A befejezéshez használja a "-->"-t."

Példa
<?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>

– Eddig értem.

"Bizonyos szimbólumoknak (< > " &) különleges jelentése van az XML-ben, ezért máshol nem használhatók. Ezt a korlátozást megkerülhetjük egy escape szekvenciával – olyan karakterkészlettel, amely más karaktereket/szimbólumokat ábrázol. Itt van néhány közülük:"

Menekülési sorrend Szimbólum, amelyet helyettesít
& &
" «
< <
> >
' '

"És itt van egy példa az XML-be ágyazott kódra:"

Java kód Java kód XML-ben
if (a < b)
System.out.println("a is minimum");
<kód>
ha (a  <  b)
 System.out.println( " a minimum " );
</code>

– Ööö... ez nem néz ki jól.

"Emlékszel, hogy a Java-ban bizonyos karaktereket is meg kell szüntetni? Például: "\". És hogy ezt a sorozatot kétszer is meg kell írni, amikor egy karakterláncba írunk? Tehát ez gyakori előfordulás."

"RENDBEN."

– Ennyi van mára.

– Hurrá, végre pihenhetek.