XML-opetusohjelma aloittelijoille

โšก ร„lykรคs yhteenveto

XML, Extensible Markup Language, jรคsentรครค, tallentaa ja siirtรครค tietoja jรคrjestelmien vรคlillรค kรคyttรคmรคllรค itse mรครคrittelemiรคsi itsekuvailevia tageja. Tรคssรค opetusohjelmassa selitetรครคn XML-syntaksi, mรครคrittelyt, tagit, attribuutit, entiteetit, DTD, DOM, skeemat ja nimiavaruudet sekรค vertaillaan XML:รครค HTML:รครคn ja JSON:iin.

  • ๐Ÿ“„ Mikรค on XML: XML on merkintรคkieli, jota kรคytetรครคn datan siirtรคmiseen, ei sen nรคyttรคmiseen, kรคyttรคen mukautettuja tageja, jotka kuvaavat sisรคltรถรค.
  • ๐Ÿงฑ Tagit ja elementit: Elementti koostuu avaustagista, sisรคllรถstรค ja sulkevasta tagista. Tagit ovat kirjainkokoherkkiรค ja niiden on oltava sisรคkkรคisiรค ja sulkeuduttava oikein.
  • ๐Ÿท๏ธ Mรครคritteet ja entiteetit: Mรครคritteet lisรครคvรคt tietoja aloitustunnisteen sisรครคn, ja entiteetit, kuten <, edustavat varattuja merkkejรค turvallisesti.
  • ๐Ÿ“ DTD ja skeema: DTD- tai XSD-skeema mรครคrittelee sallitun rakenteen, ja XSD lisรครค tietotyypit ja nimiavaruustuen, josta DTD:llรค ei ole tietoa.
  • ๐ŸŒณ DOM ja jรคsentimet: DOM tarkastelee dokumenttia puuna, kun taas jรคsentimet, kuten DOM ja tapahtumapohjainen SAX, lukevat ja validoivat XML:รครค.
  • ๐Ÿ†š XML vs. HTML vs. JSON: XML siirtรครค dataa tiukkojen, laajennettavien tunnisteiden avulla, toisin kuin nรคyttรถรถn keskittyvรค HTML ja kevyempi, taulukkoystรคvรคllinen JSON.
  • ๐Ÿค– AI Assist: Tekoรคlytyรถkalut voivat luoda tai validoida XSD-skeeman ja muuntaa XML:n nopeasti JSON- tai muihin muotoihin.

XML-opetusohjelma

Mikรค on XML?

XML tarkoittaa eXkestรคvรค Markup Lkieli. Se on kieli (ei ohjelmointikieli), joka kรคyttรครค merkintรคkieliรค ja jota voidaan laajentaa. Se on johdettu ... Sstandardimalliset Gyleistetty Markup Lkieli (SGML). XML kรคyttรครค myรถs DTD:itรค (Dammatti TyPE Definitions) mรครคrittรครคksesi XML-dokumentin rakenteen.

XML ei ole tarkoitettu laskennallisten operaatioiden ja algoritmien kรคsittelyyn. XML ei siis ole ohjelmointikieli. Pรครคtavoitteena on siirtรครค dataa ei tietojen nรคyttรคmiseksi. XML muodostaa sillan ihmisen luettavuuden ja koneellisesti luettavuuden vรคlillรค. Toisin kuin HTML-tunnisteet, XML-tunnisteet kuvaavat itseรครคn.

XML on avoin muoto. XML:n tiedostopรครคte on .xml

XML:n historia

XML sai alkunsa jo vuonna 1996 ja julkaistiin ensimmรคisen kerran vuonna 1998. World Wide Web Consortium (W3C) on kehittรคjรค XML, ja siitรค tuli a W3C suositus vuonna 1998.

XML:stรค on kaksi versiota.

  1. XML 1.0
  2. XML 1.1

XML 1.1 on uusin versio. Vielรค, XML 1.0 on eniten kรคytetty versio.

XML-editorit ovat:

  • Tim Bray,
  • Jean Paoli,
  • CM Sperberg,
  • Eve Maler,
  • Franรงois Yergeau.

XML-ominaisuudet

Tรคssรค on joitain tรคrkeitรค XML:n ominaisuuksia:

  • Se on laajennettavissa ja ihmisen luettavissa.
  • Se on alustasta ja kielestรค riippumaton.
  • Se sรคilyttรครค valkoisen tilan.
  • Yleinen yksinkertaisuus.
  • Itsekuvaava luonne.
  • Se erottaa tiedot HTML:stรค.
  • XML-tunnisteita ei ole ennalta mรครคritetty. Sinun on mรครคritettรคvรค mukautetut tunnisteet.
  • XML on suunniteltu kuljettamaan tietoja, ei nรคyttรคmรครคn sitรค.
  • XML:n merkintรคkoodi on ihmisen helppo ymmรคrtรครค.
  • Hyvin jรคsenneltyรค formaattia on helppo lukea ja kirjoittaa ohjelmista.
  • XML on laajennettava merkintรคkieli, kuten HTML.

XML-koodaus

Koodaus tarkoittaa Unicode-merkkien muuntamista niiden binรครคriesitykseen. UTF-koodausta kรคytetรครคn XML-koodaukseen. UTF tarkoittaa UCS (SCU tarkoittaa Uuniversaali Cmerkki Sja) Tmuodonmuutos Format.

Pรครคasiassa on olemassa kahdenlaisia โ€‹โ€‹UTF-koodauksia.

  1. UTF-8 : UTF-8 kรคyttรครค 8 bittiรค edustamaan merkkejรค.
  2. Esimerkiksi:

    <?xml version="1.0" encoding="UTF-8"?>
    
  3. UTF-16

Se kรคyttรครค 16 bittiรค edustamaan merkkejรค.

Esimerkiksi:

<?xml version="1.0" encoding="UTF-16"?>

Voit kรคyttรครค koodausta XML-ilmoituksen sisรคllรค. UTF-8 on XML:n oletuskoodaus.

XML-syntaksi

Alla oleva koodisegmentti nรคyttรครค XML-perussyntaksin.

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

XML-ilmoitus

XML-ilmoitus koostuu XML-versiosta, merkkikoodauksesta ja/tai itsenรคisestรค tilasta. Ilmoitus on valinnainen.

XML-ilmoituksen syntaksi

Alla oleva koodisegmentti nรคyttรครค XML-ilmoituksen syntaksin.

<?xml version="version_number," encoding="character_encoding" standalone="yes_or_no" ?>

XML-ilmoitussรครคnnรถt

Seuraavat ovat XML-ilmoitussรครคnnรถt.

  • Jos XML-ilmoitus on olemassa, sen on oltava ensimmรคinen asia, joka tulee nรคkyviin.
  • XML-ilmoitus on isot ja pienet kirjaimet erotteleva, ja sen on aloitettava pienillรค kirjaimilla <?xml.
  • Siinรค ei ole sulkemistunnistetta.

Esimerkki XML-ilmoituksesta

Seuraava koodisegmentti nรคyttรครค esimerkin XML-ilmoituksesta.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

XML-kommentit

Kommentit ovat valinnaisia. Kommenttien lisรครคminen auttaa ymmรคrtรคmรครคn asiakirjan sisรคltรถรค.

XML-kommenttien syntaksi

Kommentti alkaa sanoilla <!- ja pรครคttyy ->.

Seuraava koodisegmentti nรคyttรครค XML-kommenttien syntaksin.

<!-- Add your comment here -->

XML-tunnisteet ja -elementit

Tunnisteet toimivat pareina lukuun ottamatta ilmoituksia. Jokainen tunnistepari koostuu avausmerkki (tunnetaan myรถs nimellรค aloitustunniste) Ja sulkeva tagi (tunnetaan myรถs nimellรค lopputunniste).

Tunnisteiden nimet ovat mukana <>. Tietyn tunnisteparin aloitus- ja lopputunnisteiden on oltava identtisiรค, paitsi ettรค lopputunniste on / sen jรคlkeen, kun <.

<name>...</name>

Kaikkea avaus- ja sulkemistunnisteiden vรคlissรค olevaa kutsutaan nimellรค pitoisuus.

Aloitustunnistetta, sisรคltรถรค ja sulkevaa tunnistetta kutsutaan yhteensรค an elementti.

Opening tag + content + closing tag = an element

Huomautus: Elementit voivat sisรคltรครค myรถs attribuutteja. Opit ominaisuudet hyvin pian.

Tarkastellaanpa alla olevaa elementtiรค.

<age>20</age>

Yllรค olevassa elementissรค

  • ikรค on elementin nimi.

Huomautus: Tunnisteen nimi kutsutaan myรถs an elementti or elementin nimi.

  • โ€“ avausmerkki
  • 20 - sisรคltรถ
  • โ€“ sulkeva tagi.

Jos tunnisteiden vรคlillรค ei ole sisรคltรถรค, kuten alla nรคytetรครคn, siihen viitataan nimellรค tyhjiรค tunnisteita.

<result></result>

XML-tunnisteen ja elementin sรครคnnรถt

Seuraava luettelo nรคyttรครค XML-tunnisteen ja elementin sรครคnnรถt.

  • Tunnisteet erottelevat isot ja pienet kirjaimet.

Esimerkiksi:

Oikea:

<age>20</age>

Vรครคrรค:

<age>20</Age>

Huomautus: IKร„, Ikรค, ja ikรค ovat kolme eri nimeรค XML:ssรค.

  • Kaikissa XML-dokumenteissa on oltava yksi juurielementti.
  • Kaikilla elementeillรค on oltava pรครคttรคvรค tagi (paitsi ilmoitukset).
  • Tunnisteen nimen tulee alkaa kirjaimella tai alaviivalla, eikรค se voi alkaa kirjaimella xml.
  • Tunnisteen nimi voi sisรคltรครค kirjaimia, numeroita, yhdysmerkkejรค, alaviivoja ja pisteitรค. Vรคliviivat alaviivat ja pisteet ovat ainoat sallittuja vรคlimerkit.
  • Tunnisteen nimi ei voi sisรคltรครค vรคlilyรถntejรค.
  • Kaikkien elementtien on oltava kunnolla sisรคkkรคisiรค.

Esimerkiksi:

Oikea:

<b><u>This text is bold and italic</u></b>

Vรครคrรค:

<b><u>This text is bold and italic.</b></u>

XML-attribuutit

Elementin attribuutti sijoitetaan alkutunnisteen tagin nimen jรคlkeen. Voit lisรคtรค useamman kuin yhden mรครคritteen yhdelle elementille eri attribuuttien nimillรค.

Tarkastellaan alla olevaa XML-dokumenttia.

<company name="ABC Holdings" location="London">
<chairman>Mr. John</chairman>
<gm>Mr. Wood</gm>
</company>

Siinรค on kaksi attribuuttia yritys elementti, ts nimi ja sijainti.

Tutkitaanpa nimi attribuutti,

  • nimi = "ABC Holdings" โ€“ attribuutti
  • nimi - ominaisuuden nimi
  • ABC Holdings โ€“ attribuutin arvo

Huomautuksia: An ominaisuuden nimi tunnetaan myรถs nimellรค an ominaisuus.

Huomaa myรถs, ettรค yllรค olevassa esimerkissรค yritys on juuri elementti.

XML-mรครคritesรครคnnรถt

Alla oleva luettelo nรคyttรครค XML-mรครคritesรครคnnรถt.

  • Attribuuttien arvojen on oltava lainausmerkkien sisรคllรค.
  • Elementti ei voi sisรคltรครค useita samalla nimellรค olevia mรครคritteitรค.

Attribuutti vs. elementti

Oletko edelleen hรคmmentynyt attribuutin ja elementin erosta? Tรคssรค on toinen esimerkki.

Tarkastellaan alla olevia asiakirjoja A ja B.

Asiakirja A:

<teacher subject="English">
<name>Mr. John</name>.
<qualification>Graduate</qualification>
</teacher>

Asiakirja B:

<teacher>
<subject>English</subject>
<name>Mr. John</name>
<qualification>Graduate</qualification>
</teacher>

Asiakirjassa A aihe On mรครคrite.

Asiakirjassa B aihe On elementti.

XML-entiteetit

Mitรค ovat XML-entiteetit?

Yksinkertaisesti sanottuna entiteetit ovat tapa esittรครค erikoismerkkejรค. Entiteetit tunnetaan myรถs nimellรค kokonaisuus viittaukset.

Miksi tarvitset XML-kokonaisuuksia?

Jotkut hahmot (esim ", & <ja niin edelleen) on varattu XML-muodossa. Niitรค kutsutaan nimellรค erikoismerkit eikรค niitรค voi kรคyttรครค suoraan muihin tarkoituksiin.

Esimerkiksi < ja > symboleja kรคytetรครคn tunnisteetEt voi kirjoittaa suoraan vรคhemmรคn kuin ja suurempi kuin nรคppรคimistรถn merkkejรค sisรคllรถn hakemiseksi. Sen sijaan sinun on kรคytettรคvรค entiteettejรค.

Seuraava taulukko nรคyttรครค joitain suosittuja XML-kokonaisuuksia.

Merkki Tuotetiedot Kokonaisuuden nimi Kรคyttรถ
" Lainausmerkki (kaksoislainaus) quot "
& et-merkki amp &
" Apostrofi (yksi lainaus) jรคlkeen '
< Less kuin merkki lt <
> Suurempi kuin merkki gt >

Esimerkiksi:

<friend>
<name>My friends are Alice & Jane.</name>
</friend>

HTML vs. XML

Samankaltaisuudet HTML:n ja XML:n vรคlillรค

Seuraava luettelo nรคyttรครค yhtรคlรคisyydet HTML:n ja XML:n vรคlillรค.

  • Molemmat ovat avoimia formaatteja.
  • Molemmat ovat sivunkuvauskieliรค.
  • Molemmat kรคyttรคvรคt tageja ja attribuutteja kuvaamaan sisรคltรถรค.

HTML:n ja XML:n erot

Vaikka XML on kuin HTML, XML ei korvaa HTML:รครค. HTML:n ja XML:n vรคlillรค on myรถs joitain merkittรคviรค eroja.

Seuraava taulukko nรคyttรครค HTML:n ja XML:n vertailun.

HTML XML
Telineet Hypertekstin merkintรคkieli Laajennettava merkintรคkieli
Kielen tyyppi Ennalta mรครคritetty merkintรคkieli. Viitekehys merkintรคkielten mรครคrittรคmiseen.
Rakenteelliset yksityiskohdat Ei sisรคlly. Edellyttรคen.
Tarkoitus Kรคytetรครคn tietojen nรคyttรคmiseen. Kรคytetรครคn tiedon siirtรคmiseen
Ohjaama Formaattiohjattu. Sisรคltรถlรคhtรถinen.
luonto Sillรค on staattinen luonne. Sillรค on dynaaminen luonne.
Tunnisteen tyyppi Ennalta mรครคritetyt tunnisteet. Kรคyttรคjรคn mรครคrittรคmรคt tunnisteet.
Tunnisteen raja Tunnisteita on saatavilla rajoitettu mรครคrรค. Tunnisteet ovat laajennettavissa.
Sulkevat tagit Ei ole vรคlttรคmรคtรถntรค kรคyttรครค sulkevia tunnisteita (mutta on suositeltavaa kรคyttรครค sulkevia tunnisteita). Sulkevat tagit ovat pakollisia.
Nimitilan tuki Ei tueta. Tuettu.
Case-herkkyys Tunnisteet eivรคt erota kirjainkoolla. Tunnisteet erottelevat kirjainkoolla.
Valkoinen tila Valkoinen tila ei voi sรคilyttรครค (voi jรคttรครค vรคlilyรถnnin huomioimatta). Valkoinen vรคli sรคilyy (valkotilaa ei voida jรคttรครค huomiotta).
Jรคsennetรครคn sisรครคn JavaKรคsikirjoitus Ei tarvinnut lisรคsovelluksia. Tarvitaan DOM-toteutus.
Code pesintรค Ei vรคlttรคmรคttรค tarvita. Tarvittu.
virheet Voi jรคttรครค huomiotta pienet virheet. Virheet eivรคt ole sallittuja.
Tiedostonimen laajennus . Html or . Htm . Xml
Koko Suhteellisen suuri. Suhteellisen pieni.
Lainausmerkit Lainausmerkkejรค ei vaadita mรครคritteiden arvoissa. Pakollinen XML-attribuuttiarvoille.
Objektin tuki Tarjoaa alkuperรคisen objektituen. Objektit on ilmaistava sopimuksilla.
Tyhjรค tuki Tunnistaa natiiviarvon nolla-arvon. Elementeille on kรคytettรคvรค xsi:nil-komentoa.
Pรครคtรถsten muotoilu Tarjoaa suoran kartanping sovellustietoja varten. Vaatii suurempia ponnistuksia.
Oppimiskรคyrรค Less jyrkkรค oppimiskรคyrรค verrattuna XML:รครคn. Jyrkkรค oppimiskรคyrรค.
Verkkosivu https://html.spec.whatwg.org/ https://www.w3.org/TR/xml11/

HTML-perussyntaksi

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>

</body>
</html>

XML-perussyntaksi

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
<child>
<subchild>.....</subchild>
</child>
</root>

Sama esimerkki HTML:n ja XML:n kanssa

HTML:n kanssa

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>Book</p>
<p>Name: Anna Karenina</p>
<p>Author: Leo Tolstoy</p>
<p>Publisher: The Russian Messenger</p>
</body>
</html>

XML:n kanssa

<?xml version = "1.0" encoding = "UTF-8" ?>
<book>
<name>Anna Karenina</name>
<author>Leo Tolstoy</author>
<publisher>The Russian Messenger</publisher>
</book>

JSON vs. XML

JSONin ja XML:n yhtรคlรคisyydet

Alla oleva luettelo nรคyttรครค yhtรคlรคisyydet JSON:n ja XML:n vรคlillรค.

  • Molemmat ovat avoimia formaatteja.
  • Molemmat kuvaavat itseรครคn.
  • Molemmilla on hierarkkinen rakenne.
  • Molemmat voidaan jรคsentรครค ja kรคyttรครค useilla ohjelmointikielillรค.

Erot JSONin ja XML:n vรคlillรค

XML:n ja JSONin vรคlillรค on myรถs useita eroja.

Alla oleva taulukko nรคyttรครค JSON:n ja XML:n vertailun.

JSON XML
Telineet JavaScript Object Notation Laajennettava merkintรคkieli
Laajennettu alkaen JavaKรคsikirjoitus SGML
Tietovarasto Tiedot tallennetaan avain-arvo-pareina. Tiedot tallennetaan puurakenteena.
Nimiavaruuksia Nimiavaruuksia ei tueta. Tukee nimiavaruuksia.
Kommentit Kommenttien lisรครคmistรค ei tueta. Saa lisรคtรค kommentteja.
Tietojen saatavuus Helposti kรคytettรคvissรค JSON-objekteina. Tiedot on jรคsennettรคvรค.
Metadata Metatietojen lisรครคmistรค ei tueta. Osaa kirjoittaa metatietoja.
Tyypit JSON-tyypit: merkkijono, numero, taulukko, looginen. Kaikkien XML-tietojen tulee olla jouset.
Tuen tietotyypit Tukee teksti ja numero vain tietotyypit. Tukee monia tietotyyppejรค (teksti, numerot, kuvat jne.)
Arrayn tuki Enemmรคn tukea taulukoille XML:รครคn verrattuna. Ei tai vรคhemmรคn tukea taulukoille.
Objektin tuki Alkuperรคinen tuki objektille. Objekti on ilmaistava kรคytรคntรถjen avulla.
AJAX-tyรถkalusarjan tuki Tuettu. Ei tรคysin tuettu.
Haetaan arvoja Helppo. Vaikea.
Sarjoittaminen / sarjoittaminen Tรคysin automatisoitu. Kehittรคjien on kirjoitettava JavaKรคsikirjoituskoodi.
Selaimen tuki Useimmat selaimet tukevat. Selainten vรคlinen XML-jรคsennys voi olla hankalaa.
koodaus Tukee vain UTF-8-koodausta. Se tukee erilaisia โ€‹โ€‹koodauksia.
Nรคyttรถominaisuudet Ei nรคyttรถominaisuuksia. Tarjoa nรคyttรถominaisuuksia.
Asiakirjan koko Pienempi kuin XML. Suurempi kuin JSON.
Tiedostonimen laajennus .json . Xml
Turvallisuus Less kiinnitetty. Turvallisempi kuin JSON.
Helppo lukea Suhteellisen helppoa. Suhteellisen vaikeaa.
Oppimiskรคyrรค Helppo oppia. Jyrkkรค oppimiskรคyrรค.
Verkkosivu https://www.json.org/json-en.html https://www.w3.org/TR/xml11/

JSON-perussyntaksi

{string:value, .......}

Sama esimerkki JSON:n ja XML:n kanssa

JSONin kanssa

{"books":[
{"name":"Anna Karenina", "author":"Leo Tolstoy"},
{"name":"One Hundred Years of Solitude", "author":"Gabriel Garcia Marquez"},
{"name":"The Great Gatsby", "author":"Scott Fitzgerald"},
{"name":"Invisible Man", "author":"Ralph Ellison"}
]}

XML:n kanssa

<?xml version = "1.0" encoding = "UTF-8" ?>
<books>
<book>
<name>Anna Karenina</name>
<author>Leo Tolstoy</author>
</book>
<book>
<name>One Hundred Years of Solitude</name>
<author>Gabriel Garcia Marquez</author>
</book>
<book>
<name>The Great Gatsby</name>
<author>Scott Fitzgerald</author>
</book>
<book>
<name>Invisible Man</name>
<author>Ralph Ellison</author>
</book>
</books>

XML DTD

Mikรค on DTD?

DTD tarkoittaa Dammatti TyPE Dmรครคritelmรค. Se mรครคrittelee XML-dokumentin rakenteen kรคyttรคmรคllรค joitain juridisia elementtejรค. XML DTD on valinnainen.

DTD sรครคnnรถt

Seuraava luettelo nรคyttรครค DTD-sรครคnnรถt.

  • Jos DTD on olemassa, sen on oltava asiakirjan alussa (vain XML-ilmoitus voi nรคkyรค DTD:n ylรคpuolella).
  • Elementtiilmoituksen on aloitettava an ! merkki.
  • Juurielementin DTD-nimen ja elementtityypin on oltava samat.

Esimerkkejรค DTD:stรค

Esimerkki sisรคisestรค DTD:stรค:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE student [
<!ELEMENT student (firstname,lastname,school)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT school (#PCDATA)>
]>
<student>
<firstname>Mark</firstname>
<lastname>Wood</lastname>
<school>Hills College</school>
</student>

Yllรค olevassa esimerkissรค

  • !DOCTYPE opiskelija osoittaa DTD-ilmoituksen alun. Ja opiskelija on XML-dokumentin juurielementti.
  • !ELEMENT opiskelija osoittaa opiskelija elementin tulee sisรคltรครค etunimi Sukunimi ja koulu elementtejรค.
  • !ELEMENT etunimi osoittaa etunimi elementti on tyyppiรค #PCDATA (Parsed Cmerkki Pรคivรคys).
  • !ELEMENT sukunimi osoittaa sukunimi elementti on tyyppiรค #PCDATA.
  • !ELEMENT koulu osoittaa koulu elementti on tyyppiรค #PCDATA.

Esimerkki ulkoisesta DTD:stรค:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE student SYSTEM "student.dtd">
<student>
<firstname>Mark</firstname>
<lastname>Wood</lastname>
<school>Hills College</school>
</student>

DTD-tiedoston sisรคltรถ (student.dtd) seuraavasti.

<!ELEMENT student (firstname,lastname,school)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT school (#PCDATA)>

XML DOM

Mikรค on DOM?

DOM tarkoittaa Dammatti Oesine Model. Se mรครคrittelee standardin tavan kรคyttรครค ja kรคsitellรค XML-asiakirjoja. DOM:lla on (hierarkkinen) puurakenne.

Esimerkki DOM:sta

Tarkastellaan alla olevaa XML-dokumenttia.

<?xml version="1.0" encoding="UTF-8" ?>
<school>
<student>
<name>
<first_name>Alex</first_name>
<last_name>Clarke</last_name>
</name>
<age>14</age>
<address>No. 35, Flower Road, Leeds</address>
</student>
</school>

Yllรค olevan XML-tiedoston puurakenne nรคyttรคisi seuraavalta kuvalta.

XML DOM
XML DOM -esimerkki

XML-vahvistus

Mitรค ovat hyvin muodostetut XML-asiakirjat?

Hyvin muotoiltu XML-dokumentit ovat XML-dokumentteja, joissa on oikea syntaksi.

Mitรค ovat kelvolliset XML-asiakirjat?

Pรคtevรค XML-dokumentit ovat hyvin muotoiltuja ja myรถs DTD-sรครคntรถjen mukaisia.

XML-nimiavaruudet

Miksi nimiavaruudet?

Nimiavaruudet auttavat vรคlttรคmรครคn elementin nimiristiriidat.

Nimiavaruuden ilmoitus

Seuraavassa nรคkyy nimiavaruuden mรครคrityksen syntaksi.

<element xmlns:name="URL">

Yllรค olevassa julistuksessa

  • xmlns avainsana osoittaa nimiavaruuden alun.
  • nimi on nimiavaruuden etuliite.
  • URL on nimitilan tunniste.

Esimerkkejรค nimiavaruuksista

Seuraava koodisegmentti nรคyttรครค esimerkin nimiavaruuksista.

<?xml version="1.0" encoding="UTF-8" ?>
<abt:about xmlns:abt="https://www.guru99.com/about-us.html">
<abt:founder>Krishna</abt:founder>
<abt:vision>Fun and Free Education for ALL</abt:vision>
</abt:about>

XML-editorit

Saatavilla on useita XML-editoriohjelmia. Mitรค tahansa tekstieditoria (kuten Muistio jne.) voidaan kรคyttรครค XML-editorina.

Seuraavassa luettelossa on joitakin suosittuja XML-editoriohjelmia.

1) XML-muistio

XML Notepad on avoimen lรคhdekoodin XML-editori. Siinรค on puunรคkymรค ja XSL-tuloste vasemmassa ruudussa ja solmuteksti oikeassa ruudussa. Sen alareunassa on virheidenkorjausikkuna.

Tรคrkeimmรคt tilastot:

  • Tyyppi โ€“ XML-editori
  • Kehittรคjรค - Microsoft
  • Tuettu kรคyttรถjรคrjestelmรค - Microsoft Windows.
  • Hinta - Ilmainen

Linkki: http://microsoft.github.io/XmlNotepad/


2) Stylus Studio

Stylus Studio on sisรครคn kirjoitettu IDE C++ Extensible Markup Languagelle (XML). Sen avulla kรคyttรคjรค voi muokata ja muuntaa XML-dokumentteja ja -tietoja, kuten sรคhkรถistรค tiedonvaihtoa (EDI), CSV-tiedostoja ja relaatiotietoja.

Tรคrkeimmรคt tilastot:

  • Tyyppi โ€“ Integroitu kehitysympรคristรถ (IDE) XML:lle
  • Kehittรคjรค โ€“ Progress Software Corporation
  • Tuettu kรคyttรถjรคrjestelmรค - Microsoft Windows.
  • Hinta โ€“ Maksullinen (katso uusin hinta alla olevalta verkkosivustolta), ilmainen kokeilu saatavilla.

Linkki: http://www.stylusstudio.com/


3) Altova XMLSpy

XMLSpyรค markkinoidaan pรครคasiassa JSON- ja XML-editorina. Siinรค on sisรครคnrakennettu skeemasuunnittelija ja -editori. Se sisรคltรครค Visual Studion ja Eclipse yhdentymistรค.

Tรคrkeimmรคt tilastot:

  • Tyyppi โ€“ XML-editori
  • Kehittรคjรค - Altova
  • Tuettu kรคyttรถjรคrjestelmรค - Microsoft Windows.
  • Hinta โ€“ Maksullinen (katso uusin hinta alla olevalta verkkosivustolta), ilmainen kokeilu saatavilla.

Linkki: https://www.altova.com/xmlspy-xml-editor


4) Oxygen XML -editori

Oxygen XML on monialustainen editori, joka on kehitetty vuonna Java. Se auttaa vahvistamaan skeemoja, kuten DTD-, W3C XML Schema-, RELAX NG-, Schematron-, NRL- ja NVDL-skeemoja.

Tรคrkeimmรคt tilastot:

  • Tyyppi โ€“ XML-editori
  • Kehittรคjรค - SyncRO Soft Ltd
  • Tuettu kรคyttรถjรคrjestelmรค - Windows, Linux ja Mac OS X
  • Hinta โ€“ Maksettu (katso uusin hinta alla olevalta verkkosivustolta)

Linkki: https://www.oxygenxml.com/


5) Yksinkertaista

Xmplify XML Editor tarjoaa tรคysin XML-tietoisen muokkausympรคristรถn, jossa on DTD- ja XML-skeemapohjainen automaattinen tรคydennys, automaattinen dokumenttien validointi ja paljon muuta.

Tรคrkeimmรคt tilastot:

  • Tyyppi โ€“ XML-editori
  • Kehittรคjรค โ€“ MOSO Corporation
  • Tuettu kรคyttรถjรคrjestelmรค โ€“ Mac OS.
  • Hinta โ€“ Maksettu (katso uusin hinta alla olevalta verkkosivustolta)

Linkki: http://xmplifyapp.com/

XML-jรคsennykset

XML-jรคsennin on ohjelmistokirjasto, joka tarjoaa kรคyttรถliittymรคn XML-dokumenttien kรคsittelyyn. Se tarkistaa, onko XML-dokumentin muoto oikea. Jotkut jรคsentimet voivat myรถs vahvistaa XML-asiakirjat. Nykyaikaisissa selaimissa on XML-jรคsentimiรค.

SAX

SAX tarkoittaa Stรคytรคntรถรถn API for XML. Se on aS OVELLUSALAT program ikรคyttรถliittymรค (API) XML-dokumenttien jรคsentรคmiseen. Se toimii samalla tavalla kuin tapahtumankรคsittelijรคt Java.

Toisin kuin DOM, SAX on esimerkki tapahtumapohjaisesta XML-jรคsentimestรค.

Tรคssรค on joitakin tรคrkeitรค eroja SAX:n ja DOM:n vรคlillรค.

SAX DOM
Telineet Yksinkertainen API XML:lle Asiakirjaobjektimalli
Jรคsentimen tyyppi Tapahtumapohjainen Objektipohjainen
Lue ja kirjoita XML Vain luku Sekรค lukea ettรค kirjoittaa
Lisรครค/pรคivitรค/poista solmut Solmuja ei voi lisรคtรค/pรคivittรครค/poistaa Voi lisรคtรค/pรคivittรครค/poistaa solmuja
Muistin tehokkuus Hyvรค muistin tehokkuus Vaihtelee
Nopeus Hitaampi kuin DOM Parser Nopeampi kuin SAX Parser
Sopii Pienet tiedostot Suuret tiedostot

XML-tietojen sidonta

XML-tiedonsidonta on XML-dokumentin tietojen esittรคminen liiketoimintaobjektina tietokoneen muistissa.

XML-tietojen sitomiseen on kolme lรคhestymistapaa.

  • XML-skeemaan perustuva datasidonta: Vastaavat XML-luokat luodaan skeeman perusteella.
  • Luokkapohjainen datasidonta: Vastaava XML-skeema luodaan luokkien perusteella.
  • karttaping-pohjainen datan sidonta: Se kuvaa, kuinka olemassa oleva XML-skeema kartoitetaan luokkiin (ja pรคinvastoin).

On myรถs XML-tiedonsidontakehystรค.

Esimerkkejรค:

XML-tietojen sidonta on helppoa kehyksillรค. Tiedonsidontakehys luo sinulle suuren mรครคrรคn koodia. Sinun on syรถtettรคvรค DTD- tai XML-skeema.

XML-skeemat

XML malli (Tunnetaan myรถs XML-skeeman mรครคritelmรค or XSD) kรคytetรครคn kuvaamaan XML-dokumentin rakennetta. Se on vaihtoehto DTD:lle.

Miksi kaavio on tรคrkeรค?

DTD ei ole yhtรค tehokas kuin schema, koska se ei ole tarpeeksi laajennettavissa ja joustava. Siksi se ei vรคlttรคmรคttรค sovellu kaikkiin tilanteisiin. Tรคllaisessa tilanteessa schema on tรคrkeรค. XML-skeeman pรครคtarkoitus on mรครคritellรค XML-dokumentin elementit ja attribuutit.

Miten XML-skeema eroaa DTD:stรค?

Seuraava vertailu osoittaa, kuinka XSD (XML Schema) eroaa DTD:stรค.

DTD XSD
Telineet Asiakirjan tyypin mรครคritelmรค XML-skeeman mรครคritelmรค
laajennettavuus Ei laajennettavissa laajennettavissa
XML-rakenteen hallinta Less ohjaus Lisรครค hallintaa
Tuen tietotyypit Ei tuettu Tuetut
Nimitilan tuki Ei tuettu Tuetut

Seuraava koodisegmentti nรคyttรครค esimerkin XML-skeemasta.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name = "employee">
<xs:complexType>
<xs:sequence>
<xs:element name = "firstname" type = "xs:string" />
<xs:element name = "lastname" type = "xs:string" />
<xs:element name = "phone" type = "xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

XML:n edut

Tรคssรค ovat XML:n hyvรคt/hyรถdyt:

  • Se helpottaa tiedon siirtรคmistรค ja jakamista.
  • XML parantaa tiedonvaihtoa eri alustojen vรคlillรค.
  • Se on merkintรคkieli, joka on joukko merkkejรค ja/tai symboleja, jotka on sijoitettu tekstidokumenttiin.
  • XML ilmaisee, miltรค XML-dokumentin tulee nรคyttรครค sen nรคyttรคmisen jรคlkeen.
  • Se yksinkertaistaa alustan vaihtoprosessia.
  • Se parantaa tiedon saatavuutta.
  • Se tukee monikielisiรค asiakirjoja ja Unicodea.
  • Se on suhteellisen helppo oppia ja koodata.
  • Se suorittaa validoinnin kรคyttรคmรคllรค DTD:tรค ja Schemaa.
  • Se tekee dokumenteista siirrettรคviรค jรคrjestelmien ja sovellusten vรคlillรค. XML:n avulla voit vaihtaa tietoja nopeasti eri alustojen vรคlillรค.
  • XML erottaa tiedot HTML:stรค.

XML:n haitat

Tรคssรค ovat XML:n kรคytรถn haitat/haitat:

  • XML vaatii kรคsittelysovelluksen.
  • XML-syntaksi on samanlainen kuin muissa vaihtoehtoisissa tekstipohjaisissa tiedonsiirtomuodoissa, mikรค on joskus hรคmmentรคvรครค.
  • Ei sisรคistรค tietotyyppitukea.
  • XML-syntaksi on redundantti.
  • Ei salli kรคyttรคjรคn luoda omia tunnisteita.

UKK

Kyllรค. Vaikka JSON hallitsee web-rajapintoja, XML:รครค kรคytetรครคn edelleen laajalti konfiguraatiotiedostoissa, dokumenttimuodoissa, kuten DOCX ja SVG, SOAP-verkkopalveluissa, RSS-syรถtteissรค ja yritysten tiedonvaihdossa, joissa skeemoilla ja validoinnilla on merkitystรค.

XSLT (Extensible Stylesheet Language Transformations) muuntaa XML-dokumentin toiseen muotoon, kuten HTML:ksi, pelkkรคksi tekstiksi tai eri tavalla jรคsenneltyyn XML:รครคn. Se kรคyttรครค mallisรครคntรถjรค solmujen valitsemiseen ja muokkaamiseen nรคyttรถรค tai vaihtoa varten.

Kyllรค. Useimmat selaimet nรคyttรคvรคt XML-tiedoston kokoontaitettavana puuna, joka nรคyttรครค sen elementit ja rakenteen. Voit myรถs avata sen millรค tahansa tekstieditorilla tai XML-editorilla muokkausta ja validointia varten.

Kyllรค. Anna tekoรคlylle esimerkki XML-dokumentista, niin se voi tuottaa XSD-dokumentin, joka kuvaa elementit, attribuutit ja tietotyypit, tai tarkistaa olemassa olevan skeeman ja selittรครค, miksi dokumentin validointi epรคonnistuu. Revkatso rajoitukset.

Kyllรค. Tekoรคly voi luoda koodia tai muuntaa XML:n suoraan JSON-, CSV- tai tietorakenteeksi ja merkitรค osia, jotka eivรคt vastaa selkeรคsti, kuten attribuutteja tai toistuvia elementtejรค. Tarkista tuloste dataasi vasten.

Tiivistรค tรคmรค viesti seuraavasti: