1 / 30

T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 1

T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 1. Heikki Hietala HAAGA-HELIA Ammattikorkeakoulu Syyslukukausi 2009. Mitä on XML?. XML on W3C:n määrittelemä SGML:n alijoukko eli Structured Generalized Markup Language –kielen määrittelyjen mukainen merkintäkieli

etta
Download Presentation

T3MM65 RAKENTEISET DOKUMENTIT Pläjäys 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. T3MM65RAKENTEISET DOKUMENTITPläjäys 1 Heikki Hietala HAAGA-HELIA Ammattikorkeakoulu Syyslukukausi 2009

  2. Mitä on XML? • XML on W3C:n määrittelemä SGML:n alijoukko • eli Structured Generalized Markup Language –kielen määrittelyjen mukainen merkintäkieli • sukua HTML:lle, mutta ei ole sivun-, vaan datankuvauskieli • menetelmä rakenteisen informaation esittämiseksi

  3. Mitä on XML 2 • Itse asiassa XML on kieli, jolla voi määritellä dokumenttien määrittelykieliä • XML-sovellus on dokumenttien määrittelydokumentti ja määrittelyn mukaisten dokumenttien joukko • XML-prosessori on dokumenttia käsittelevä ohjelma, esim. selaimen XML-parseri

  4. Mitä on XML 3 • XML ei ole • ohjelmointikieli • tietokantasovellus • web-suunnittelun osa • yleispätevä ratkaisu kaikkiin ihmiskunnan ongelmiin

  5. Pakollinen historiakatsaus • Määrittelyjen pohjaksi vuonna 1996 annettiin seuraavaa: • XML pitää olla suoraan ja helposti käytettävissä Internetissä • XML:ää voivat hyödyntää monenlaiset sovellukset • XML:n pitää olla yhteensopiva SGML:n kanssa • pitää olla helppo kirjoittaa sovelluksia, jotka käsittelevät XML-dokumentteja • XML:ssä on oltava mahdollisimman vähän valinnaisia lisäpiirteitä • XML-dokumenttien pitää olla luettavassa muodossa ja selkeitä • XML:n määritysten suunnittelu pitää tapahtua nopeasti • XML:n määritysten pitää olla formaalisia ja tarkkoja • XML-dokumentteja pitää olla helppo luoda • XML-tunnisteiden nimet saavat olla pitkiä

  6. Sisällön määrittelemisestä • Sisältö voidaan katsoa pelkäksi informaatioksi: kirja sisältää tietoa tai taidetta. • Sisältö voidaan kuitenkin katsoa myös rakenteiseksi informaatioksi • Kirjalla on kirjoittaja, nimi, ISBN • Se sisältää lukuja, kappaleita, kuvia • Se voidaan luokitella kirjastojen tapaan sisällön mukaan

  7. Sisällöstä 2 • Esim. ihmisen nimi voi olla vain merkkijono, tai sitten • reservin vänrikki HH, virallinen kääntäjä HH, ent. projektipäällikkö HH, lehtori HH sen mukaan, kenen sisältömäärittelyistä on kyse • Kyse on kontekstin antamisesta ja sitä HTML ei tee millään tavalla. • Tietokone ei tiedä mitään näistä määrittelyistä vaikka ne ovat itsestään selviä niissä konteksteissa joissa ne on luotu.

  8. Sisällöstä 3 • Konteksti on luotava yksikäsitteisesti tietokonetta varten • Tätä on XML: rakenteista dataa, joka kantaa mukanaan tietoa rakenteesta. • Esim: <lehtori> <nimi>Heikki Hietala</nimi> <ala>digitaalinen media</ala> <virkaikä>7 v 6 kk</virkaikä> </lehtori> • Tässä rakenne ja data ovat yhdessä • Toisessa kontekstissa olisi esim. <upseeri> <nimi>Heikki Hietala</nimi> <arvo>vänrikki</arvo> <koulutus>tulenjohtopäällikkö</koulutus> </upseeri> • Sama ihminen, eri konteksti, eri XML

  9. Määritelmiä • Element • XML:n perusosa. Kaikki XML-dokumentin sisältö on elementeissä, ja niistä yksi on juurielementti. Juuria on vain yksi. • Attribute • lisätietoa antava osa XML-tagissa • Child • XML-elementin sisällä oleva elementti • Parent • elementti, jolla on lapsi. Ihan luontevaa, eiks?

  10. Määritelmiä 2 • Nesting • XML-elementtien sisäkkäisyys • nesting on oltava aitoa: abba, ei abab • DTD • Document Type Definition • määrittelee XML-dokumentin sisällön • ei saa sotkea Document Type Declarationiin • Namespace • Määrittelee käytetyt elementtien nimet • ”lautanen” on eri asia Arabialle ja Canal +:lle • Siksi niiden XML:ssä on luotava nimiavaruudet joihin XML sitten viittaa.

  11. Valid & well-formed • XML-dokumentin on oltava molempia • Validi asiakirja sisältää viittauksen asiakirjaan, jossa sen rakenne on kuvattu joko DTD (document type definition) –menetelmällä tai rakenneskeemalla (schema) • Validi asiakirja ei poikkea DTD:stään • Well-formed –asiakirja on rakenteellisesti puhdas: tagit suljettu, nesting aitoa jne.

  12. XML:n rakenne 1 2 3 <?xml version=”1.0” standalone=”yes” encoding=”utf-8”?> <mnu:menu xmlns:mnu=”http://www.pikaburger.com/2005/menu”> <mnu:alkupala id=”1”>Sipulinamirenkaat</mnu:alkupala> <mnu:alkupala id=”2”>Kanankoivet</mnu:alkupala> </mnu:menu> 4 5 6 7 8 • XML declaration • Start tag • Namespace declaration • Namespace prefix • Element name • Attribute (name-value pair) • Element content • Close tag

  13. XML declaration <?xml version=”1.0” standalone=”yes” encoding=”utf-8”?> • Pakollinen ensimmäinen rivi validissa ja hyvinmuodostuneessa XML-tiedostossa. • Kertoo tiedoston olevan XML:ää, sen olevan versio 1.0 –määritysten mukainen ja että merkistön koodaus on UTF-8 • UTF-8 on hyvä yleensä, mutta suomenkielisiä merkejä sisältävä XML on hyvä koodata ISO-8859-1 • Ilman tätä riviä XML-sovellukset (selaimet, parserit eli jäsentäjät) eivät tunnista dataa XML:ksi ja pulmia tulee. • Standalone sanoo, että tiedosto sisältää itsessään myös rakennekuvauksen (DTD)

  14. Start tag & namespace declaration <mnu:menu • Kertoo, että elementin nimi on menu • mnu-alku tulee käytetystä nimiavaruudesta xmlns:mnu=”http://www.pikaburger.com/2005/menu”> • URI viittaa tiedostoon tai hakemistoon, jossa DTD on, ja josta saa siis myös käytettyjen nimien kuvaukset

  15. Namespace prefix & element & attribute • <mnu:alkupala id=”1”> • mnu: kertoo että kyse on mnu-namespacesta • Alkupala on elementin nimi • id=”1”on attribuutti: järjestyksessä elementti on ensimmäinen • Attribuutteja voisi olla useita • On valittava, laittaako dataa attribuutiksi vai elementin child-elementeiksi

  16. Elementin sisältö ja close tag Sipulinamirenkaat</mnu:alkupala> • Sipulinamirenkaat on se varsinainen data • Close tag on siis vastaava kuin alkutag, huomatkaa namespace prefix ja elementin nimi.

  17. Puukuvaukset • XML:ää luodessa kannattaa ajatella asiaa puurakenteena. • Joulukortti esimerkiksi olisi seuraavanlainen:

  18. Puukuvaukset 2 • Nopeasti päästään monimutkaisempiin rakenteisiin, esimerkiksi lentolippu:

  19. <juoma tyyppi=”Cola”> <koko>Pieni</koko> <koko>Keski</koko> <koko>Iso</koko> <arvo>6&lt;7</arvo> <erikoista /> </juoma> <juoma tyyppi=Cola> <koko>Pieni</koko> <koko>Keski</koko> <koko>Iso</koko> <arvo>6<7</arvo> <erikoista> </Juoma> Hyvinmuodostunut XML Pulmat: lainausmerkit, < -merkki ei sallittu Tyhjää elementtiä ei terminoida Iso merkki lopputagissa

  20. Hyvinmuodostustumisen tarkistuslista • □ Vain yksi juurielementti • □ Case huomioitu koko alueella • □ Kaikilla ei-tyhjillä elementeillä on lopputag • □ Kaikilla tyhjillä elementeillä on loppuvinoviiva • □ elementit ovat aidosti sisäkkäisiä • □ attribuutit ovat lainausmerkeissä • □ erikoismerkkien paikalla on entiteettejä

  21. Laaditaanpa hyvinmuodostunut XML-dokumentti • Tutki datan rakenne • Taulukointi tai puukuvaus on hyvä ajatus • Etsi elementti, joka käy juureksi • Ruokalistassa kaikki data on ruokia, joten esimerkiksi <menu></menu> • Etsi 2. tason elementit • Etsi lapsielementit ja mahdolliset attribuutit

  22. Vaihe 1b • Koostetaan väliaikainen data: <menu> <alkupala id=””> <nimi></nimi> <ainekset></ainekset> <rasvaa></rasvaa> <kuvaus></kuvaus> </alkupala> </menu>

  23. Vaihe 2: Julistus • Laaditaan ”XML document declaration”: <?xml version=”1.0” encoding=”ISO-8859-1”?> • Tämän pitää olla ihan ylin rivi tiedostossa • Encoding voi toki olla muukin, mutta ISO-8859-1 on hyvin tunnustettu merkistö

  24. Vaiheet 3 & 4 • Vaihe 3: lisää root element • Vaihe 4: täytä tiedosto datalla <?xml version=”1.0” encoding=”ISO-8859-1” standalone=”yes”?> <menu> <alkupala id=”1”> <nimi>Sipulinamirenkaat</nimi> <ainekset>sipuli, rasva, leivite </ainekset> <rasvaa>30</rasvaa> <kuvaus>Sipulirenkaat parasta A-ryhmää</kuvaus> </alkupala> ... </menu>

  25. Vaihe 5: Ihastele lopputulosta selaimessa

  26. XML-koodin kommentoiminen • Add the first part of the comment tag <!-- • Write whatever comment you would like - just make sure you don't nest comments within other comments (see tips for more details). • Close the comment tag -->

  27. Harjoitus 1 • Laadi puukuvaus kirjasta • Laadi puukuvaus junalipusta • Laadi puukuvaus auton rekisteriotteesta (kotitehtävä)

  28. Harjoitus 2 • Laadi puukuvauksiasi vastaavat XML-tiedostot • Kirjasta, junalipusta ja rekisteriotteesta • niin että kirjassa on 20 lukua, uutispalstassa 2 uutista ja junalipusta riittää yksikin lippu. Rekisteriotteen tiedot riittävät auton osalta, eli mitkä tiedot tunnistavat auton yksikäsitteisesti? • Muista well-formed-säännöt ja käytä muistilistaa

More Related