1 / 32

CLT132

CLT132. Lyhyt johdanto XML:ään + vihjeitä asioiden jatko-opiskeluun (viikko 12). Clt132-kurssin sisältö ja XML. Nämä asiat eivät kuulu kurssin sisältöön, eikä niitä oleteta hallittavan kurssin päätteeksi

Download Presentation

CLT132

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. CLT132 Lyhyt johdanto XML:ään + vihjeitä asioiden jatko-opiskeluun (viikko 12)

  2. Clt132-kurssin sisältö ja XML • Nämä asiat eivät kuulu kurssin sisältöön, eikä niitä oleteta hallittavan kurssin päätteeksi • Asiat ovat kuitenkin hyvää pohjatietoa niille (tod.näk. useille) opiskelijoille, jotka jatkavat rakenteisten dokumenttien parissa XML-kurssilla • Pätevää tietoa myös “tietoteknisen yleissivistyksen” näkökulmasta CLT132 – kevät 2008 Sauli Nurmi

  3. XML • XML = eXtensible Markup Language • XML on SGML-johdannainen, samoin kuin esim. HTML, mutta paljon laajempi • Perusperiaate on sama kuin kaikissa markup-kielissä, käytännön tason toiminta luonnollisesti hieman toisenlainen CLT132 – kevät 2008 Sauli Nurmi

  4. XML, jatkoa • XML:ää ei käytetä suoraan esityskielenä, kuten (X)HTML:ää • Perusperiaate on tiedon rakenteinen tallentaminen, josta voidaan tietenkin johtaa tiedon rakenteinen esittäminen • XML -> HTML –konversiot yms. CLT132 – kevät 2008 Sauli Nurmi

  5. Lisätietoa XML:stä • Maailma on XML-tietoa tulvillaan • Seuraava materiaali on (…ollut, ehkä on myös tulevaisuudessa…) käytössä Yleisen kielitieteen laitoksen XML-kurssilla: http://www.ling.helsinki.fi/kit/2003s/ctl230/xml/xmlintro/ CLT132 – kevät 2008 Sauli Nurmi

  6. What is XML? • “XML, or Extensible Markup Language, is a markup language that you can use to create your own tags. It was created by the World Wide Web Consortium (W3C) to overcome the limitations of HTML, the Hypertext Markup Language that is the basis for all Web pages. Like HTML, XML is based on SGML -- Standard Generalized Markup Language. Although SGML has been used in the publishing industry for decades, its perceived complexity intimidated many people that otherwise might have used it (SGML also stands for "Sounds great, maybe later"). XML was designed with the Web in mind.” http://www.ling.helsinki.fi/kit/2003s/ctl230/xml/xmlintro/xmlintro-2-1.html CLT132 – kevät 2008 Sauli Nurmi

  7. Käsitteitä: XML • Extesible Markup Language • Kuten edellä kuvattu... • Lisäksi on mainittava XML:n muotovaatimukset, eli XML:n olisi oltava aina virheetöntä • XML-tekniikoita käytetään nykyään laajalti tiedon tallentamisessa • Vrt. esim. *.doc –tiedostot Office 97-2003:ssa, ja *.docx –tiedostot Office 2007:ssä CLT132 – kevät 2008 Sauli Nurmi

  8. Käsitteitä: DTD • Document Type Definition • Tämä onkin vanha tuttu jo HTML/XHTML:n puolelta • Erona on nyt se, että siinä missä HTML:n kanssa joku on määritellyt nämä puolestamme, nyt määrittelemme nämä itse! • Mitä hyötyä? • Voidaan luoda dokumenteista sellaisia kuin niiden tarvitsee olla, käyttää mallia formaattina useille dokumenteille (esim. XML-tietokanta) CLT132 – kevät 2008 Sauli Nurmi

  9. Käsitteitä: XSD • XML Schema Definition • Määrittelee minkälaisia elementtejä määritellyt elementit ovat • Toisin sanoen, toisaalla on määritelty elementti, ja XSD:ssä voidaan kertoa, että elementin sisällöksi hyväksytään esim. vain integer-muotoisia numeraaleja • Jos siitä on apua, voi ajatella tämän olevan jollain tapaa analoginen esim. tietokantojen input-maskin kanssa... CLT132 – kevät 2008 Sauli Nurmi

  10. Käsitteitä: XSLT • Extensible Stylesheet Language Transformations • XSL = Extensible Stylesheet Language • Tämä tarkoittaa muutosta tiedostosta tai tiedostotyypistä toiseen • Tämä EI ole verrattavissa esim. CSS-tyylitiedostotekniikkaan suoraan, sillä nyt ei välttämättä muotoilla näkyvää ulkoasua • Idea silti sama: erotetaan data ja sen muotoilu CLT132 – kevät 2008 Sauli Nurmi

  11. Koodin kirjoittaminen/toiminta • Toisin kuin tällä kurssilla käsitellyissä kielissä, XML:ssä ei (pääsääntöisesti/lähtökohtaisesti) ole vakiintunutta elementtien joukkoa • Elementit luodaan siis mielivaltaisesti (mutta toivon mukaan systemaattisesti/ konsistenttisesti) kuhunkin käyttötarpeeseen • Samat säännöt pätevät kuin XHTML:ssä: avonaiset elementit suljettava, oikeassa järjestyksessä CLT132 – kevät 2008 Sauli Nurmi

  12. Mallikoodi <?xml version="1.0" ?> <clt132> <hyvaksytyt> <opiskelija>Matti Mainio</opiskelija> <opiskelija>Jussi Juonio</opiskelija> </hyvaksytyt> <hylatyt> <opiskelija>Aku Ankka</opiskelija> <opiskelija>Pelle Peloton</opiskelija> </hylatyt> </clt132> CLT132 – kevät 2008 Sauli Nurmi

  13. Edellisen selitys • Tähän mennessä opitun perusteella edellisen esimerkin lukeminen ei liene liian vaikeaa • Sisäkkäiset elementit • Alku- ja lopputagit • Varsinainen tieto sitä ohjaavien tagien sisällä • Uutta on sen sijaan se, että olemme mielivaltaisesti luoneet kurssia varten elementit • HTML:ssä tämä ei olisi ikinä mahdollista, tuntemattomat elementit jätettäisiin tulkitsematta, niiden välinen tieto näytettäisiin selaimen (tai tyylimäärityksen) oletusulkoasulla CLT132 – kevät 2008 Sauli Nurmi

  14. Edellisen selitys, jatkoa XML:ssä tämä on kuitenkin sallittua, oletettua, suositeltavaa ja oikeastaan ainoa mahdollinen tapa järkevästi hyödyntää kielen toimintaa Esimerkki voisi hyvinkin olla ristiriidassa tietyssä järjestelmässä käytetyn XML:n DTD:n tai muun määrittelevän tekijän kanssa, mutta määrittelemällä järjestelmän kaikki osat soveltuviksi, esimerkki on täysin mahdollinen Negaationa siis: ei ole mitään universaalia määritelmää, jota esitetty esimerkki rikkoisi CLT132 – kevät 2008 Sauli Nurmi

  15. Mallikoodi, variaatio <?xml version="1.0" ?> <clt132> <hyvaksytyt> <opiskelija> <etunimi>Matti</etunimi> <sukunimi>Mainio</sukunimi> </opiskelija> </hyvaksytyt> <hylatyt> <opiskelija> <etunimi>Pelle</etunimi> <sukunimi>Peloton</sukunimi> </opiskelija> </hylatyt> </clt132> CLT132 – kevät 2008 Sauli Nurmi

  16. Variaation selitys • Luonnollisesti voimme määritellä dokumentin rakenteen kuten haluamme • Variaatio on siis yksityiskohtaisempi esitys samasta aiheesta • Molemmat versiot voisivat kuitenkin olla yhtä oikein – ja jopa täyttää saman XSD:n muotovaatimukset, tapauskohtaisesti (liki identtiset, siis) CLT132 – kevät 2008 Sauli Nurmi

  17. Mallikoodi, DTD <!ELEMENT clt132 (hyvaksytyt|hylatyt)* > <!ELEMENT hyvaksytyt (opiskelija)* > <!ELEMENT hylatyt (opiskelija)* > <!ELEMENT opiskelija (etunimi|sukunimi)* > <!ELEMENT etunimi (#PCDATA) > <!ELEMENT sukunimi (#PCDATA) > CLT132 – kevät 2008 Sauli Nurmi

  18. DTD:n selitys • DTD lienee pitkälti itsensä selittävä... • Määritellään elementit ja niiden sisältö • Esimerkiksi elementissä, joka saa sisälleen muita elementtejä, on kerrottu ensin mitkä elementit se saa sisälleen • Nämä elementit on sittemmin kuvattu itsenäisesti • * = 0-n ilmentymää • #PCDATA = Parced Character Data CLT132 – kevät 2008 Sauli Nurmi

  19. Mallikoodi, XML Schema 1/2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="clt132"> <xsd:complexType> <xsd:sequence> <xsd:element name="hyvaksytyt" minOccurs = "0" maxOccurs="unbounded" type="opiskelija"/> </xsd:sequence> <xsd:sequence> <xsd:element name="hylatyt" minOccurs = "0" maxOccurs="unbounded" type="opiskelija"/> </xsd:sequence> </xsd:complexType> </xsd:element> CLT132 – kevät 2008 Sauli Nurmi

  20. Mallikoodi, XML Schema 2/2 <xsd:complexType name="opiskelija"> <xsd:sequence> <xsd:element name="etunimi" type="xsd:string" /> <xsd:element name="sukunimi" type="xsd:string" /> </xsd:sequence> </xsd:complexType> CLT132 – kevät 2008 Sauli Nurmi

  21. XML Scheman selitys • Määritellään rakenteinen dokumentti rakenteisessa dokumentissa • (Tämä paremmin tätä ei varmaan voi ilmaista...) • Määritellään siis elementit, niiden tyypit, rakenteiset koosteet/konstruktiot, esiintymiskerrat jne. CLT132 – kevät 2008 Sauli Nurmi

  22. DTD vs. XSD • XML Schema is an XML-based alternative to DTDs. • An XML Schema describes the structure of an XML document. http://www.w3schools.com/schema/default.asp CLT132 – kevät 2008 Sauli Nurmi

  23. Mallikoodi, XML->XHTML 1/2 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="html"/> <xsl:template match="/clt132"> <html> <head> <title>Kurssin opiskelijat</title> </head> <body> <h1>Nimilista</h1> <ul> <xsl:apply-templates select="opiskelija"> <xsl:sort select="sukunimi" /> </xsl:apply-templates> </ul> </body> </html> </xsl:template> CLT132 – kevät 2008 Sauli Nurmi

  24. Mallikoodi, XML->XHTML 2/2 <xsl:template match="opiskelija"> <li> <xsl:value-of select="sukunimi"/><xsl:text>, </xsl:text> <xsl:value-of select="etunimi"/> </li> </xsl:template> </xsl:stylesheet> CLT132 – kevät 2008 Sauli Nurmi

  25. Muunnos, selitys • Muunnoskoodissa on kahdenlaisia elementtejä: • XHTML-elementtejä, jotka kopioidaan sellaisenaan osaksi uutta dokumenttia (“tutut elementit”) • XSD-elementit, joita ei kopioida itsessään, mutta joiden viittaama tieto kopioituu XHTML-elementtien sisälle • Ks. esim. listan toteutus esimerkissä, joka osoittaa toimintaperiaatteen CLT132 – kevät 2008 Sauli Nurmi

  26. Clt236: XML • Näitä (ja paljon muuta) pääsee askartelemaan Clt236-kurssilla, joka ainakin aiempina vuosina on lähtenyt HTML/XHTML-perusasiasta ja edennyt XML:ään, tranformaatioihin ja muihin vastaaviin asioihin • Kurssi on luonnollisesti paljon haastavampi kuin Clt132, mutta ehkä tämän takia myös kiinnostavampi (ainakin mikäli alan asiat kiinnostavat...) • Clt132-perustiedoilla pääsee kuitenkin kurssilla pitkälle (ainakin ekoista laskareista) CLT132 – kevät 2008 Sauli Nurmi

  27. Clt236: XML, kurssisisältö 2007 • HTML, XHTML and CSS • Introduction to XML • DTDs and XML Schemas • Introduction to XSLT • XPath and XSLT • Apache Ant • Introduction to XSL-FO • Using XSL-FO • Scalable Vector Graphics • Introduction to Linguistic Annotation • Linguistic Annotation Tools • Statistical Annotation Tools CLT132 – kevät 2008 Sauli Nurmi

  28. 581290 Rakenteisten dokumenttien käsittely • TKTL:n puolella tarjolla on syventävien opintojen kurssi otsikossa olevalla koodilla ja nimellä • “VAROITUS”: kuten yleensä, TKTL:n puolella asioiden käsittelytapa on täysin erilainen kuin esim. kieliteknologian tapa • Parhaiten tämä tulee esille esim. siinä, että mainitulla kurssilla on koe, joka tehdään paperille (materiaali sallittu koetilanteessa) • Harjoituksilla ei siis pääse läpi, vaikka niistä voi rutkasti lisäpisteitä saadakin CLT132 – kevät 2008 Sauli Nurmi

  29. Rak.dok.käs., kurssisisältö 2007 • Introduction • XML Schema • XML Information Set, PSVI, Canonical XML • XSLT+XPath: Review + basic structures • XSLT+XPath: Variables, template calls with parameters • XSLT+XPath: Programming with XSLT • XQuery • Binary XML, XPointer, XLink, XInclude CLT132 – kevät 2008 Sauli Nurmi

  30. Muita • Varmaan muutakin tarjontaa on, mutta siitä tämän kurssin “ope” on tyystin tietämätön • Etsivä löytää, kuten sanonta kuuluu • Toinen mahdollisuus on opiskella esim. Flash-ohjelmointia ja muita web-kikkoja, mutta ne menevät rakenteisten dokumenttien aihepiirin ulkopuolelle (vaikka ovatkin luonteva jatko clt132:lle) CLT132 – kevät 2008 Sauli Nurmi

  31. Lisää aiheesta • clt236: XML - syksy 2007 http://www.ling.helsinki.fi/kit/2007s/clt236/ • 581290 Rakenteisten dokumenttien käsittely http://www.cs.helsinki.fi/kurssit/syventavat/581290-5/ • Introduction to XML by Doug Tidwell (IBM) http://www.ling.helsinki.fi/kit/2003s/ctl230/xml/xmlintro/ • XML Tutorial http://www.w3schools.com/xml/default.asp • DTD Tutorial http://www.w3schools.com/dtd/default.asp CLT132 – kevät 2008 Sauli Nurmi

  32. Viikon oleellisin asia • Kurssin luennot ohi!!! • Lintsin kesäkausi auki!!! • Molemmat samana päivänä! • (“Ope” ei kyllä keksi mitään tämän kurssin kannalta oleellista... Jos joku menee XML-kurssille, niin silloin kaikki tämä tulee tietysti ajankohtaiseksi) CLT132 – kevät 2008 Sauli Nurmi

More Related