"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. "

"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:
<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: "
< data xmlns:soap="http://cxf.apache.org/bindings/soap" > < soap :item> < soap :info/> </ soap :item> </ data >
"" xml ns :soap" jelentése " XML — n ame s pace SOAP""
" Az előtag nélküli címkék egyedi nevét is beállíthatja : "
<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:"
<?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."
<?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 |
---|---|
|
<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.
GO TO FULL VERSION