ICT1TD003->XML->tentti

Tietojenkäsittelyn koulutusohjelma
Tieto ja tiedon varastointi

Tentti

 

Tentissä ei saa olla mukana mitään materiaalia. Tentissä jaetaan tämä materiaali.

Tentissä täytyy osata laatia DTD, XML Schema, XSLT sekä tehdä yksinkertaisia XPath hakuja. Lisäksi tentissä on kirjallisia kysymyksiä asioiden soveltamisesta sekä käytöstä.

Tentissä on neljä kysymystä. Kustakin kysymyksestä voi saada maksimissaan 8 pistettä. Tentistä täytyy saada 16 pistettä.

DTD

DTD:n laatiminen XML-dokumentin pohjalta, DTD:n laatiminen XML Scheman pohjalta, XML-dokumentin laatiminen DTD:n pohjalta, DTD:n ja XML:n korjaaminen toisiaan vastaavaksi.

<!ELEMENT elementin_nimi  sisältö>

sisältö voi olla
  alielementtejä,
  alielementtejä sekä jäsennettyä merkkitietoa (#PCDATA | elementti)*
  jäsennettyä merkkitietoa (#PCDATA),
  tyhjä EMPTY
  (A,B,C)   esiintymisjärjestys
  (A, (B | C))  vaihtoehtoinen esiintymisjärjestys

  lukumäärät
  +         1-n
  *         0-n
  ?         0-1

<!ATTLIST elementin_nimi
          attribuutin_nimi tyyppi pakollisuus>
tyyppi voi olla
  CDATA, ID, IDREF, IDREFS, NMTOKEN, NMTOKENS,
  luettelo mahdollista arvoista
pakollisuus voi olla
  #REQUIRED, #IMPLIED, oletusarvo

<!ENTITY % nimi "sisältö">

XML Schema

Yksinkertaisen XML Scheman laatiminen XML-dokumentin pohjalta, XML Scheman laatiminen DTD:n pohjalta, XML-dokumentin laatiminen XML Scheman pohjalta.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Nimi" ref="Elem" type="Tyyppi"
minOccurs="Min. määrä" maxOccurs="Maks. määrä"
default="Oletusarvo" nillable="true/false" />

<xs:attribute name="Nimi" type="Tyyppi" use="Pakollisuus"
default="Oletusarvo" fixed="Vakioarvo" />

<xs:element name="Nimi" minOccurs="Min. määrä"
maxOccurs="Maks. määrä">
  <xs:complexType>
    <xs:sequence>
        <xs:element name="Elementin_nimi… />
    </xs:sequence>
    <xs:attribute … />
  </xs:complexType>
</xs:element>

<xs:element name="Nimi" minOccurs="Min. määrä"
maxOccurs="Maks. määrä">
  <xs:complexType>
    <xs:attribute name="Attribuutin_nimi" … />
  </xs:complexType>
</xs:element>

<xs:element name="Nimi" minOccurs="Min. määrä"
maxOccurs="Maks. määrä">
  <xs:complexType>
     <xs:simpleContent>
            <xs:extension base="Periytettävä_tyyppi">
                <xs:attribute name="Attribuutin_nimi" … />
            </xs:extension>
     </xs:simpleContent>
  </xs:complexType>
</xs:element>

<xs:simpleType name="Tietotyypin_nimi">
    <xs:restriction base="Periytettävä_tietotyyppi">
        <xs:minInclusive value="" />
        <xs:maxInclusive value="" />
        <xs:minExclusive value="" />
        <xs:maxExclusive value="" />
        <xs:minLength value="" />
        <xs:maxLength value="" />
        <xs:enumeration value="" />
        <xs:pattern value="" />
    </xs:restriction>
</xs:simpleType>

</xs:schema>

Valmiit tietotyypit
    string          merkkijono
    boolean         true tai 1, false tai 0
    float           32-bittinen liukuluku
    double          64-bittinen liukuluku
    decimal         min. 18 merkkinen luku
    byte            -128-127
    unsignedByte    0-255
    short           -32768-32767
    unsignedShort   0-65535
    long            -9223372036854775808-9223372036854775807
    unsignedLong    0-1844674407309551615
    int             -2147483648-2147483647
    unsignedInt     0-4294967295
    dateTime        1999-05-31T13:20:00.000-05:00
    date            CCYY-MM-DD Esim. 2003-08-30
    time            hh:mm:ss.sss Esim. 10:15:00.000
    gYear           Vuosi esim. 2005
    anyURI          URI osoite esim. http://www.helia.fi
    ID IDREFS NMTOKEN NMTOKENS ENTITY ENTITIES
                    Vastaa DTD:n attribuuttityyppiä

Säännölliset lausekkeet
    Merkkiryhmät
    \w      Kirjain, numero tai alaviiva
    \W      Muu kuin kirjain, numero tai alaviiva
    \d      Numero
    \D      Muu kuin numero
    \s      Whitespace
    \S      Muu kuin whitespace

    Toisto ja ryhmittely
    *       0-n
    +       1-n
    ?       0-1
    {N}     Tasan N
    {N,}    Vähintään N
    {N,M}   Vähintään N, enintään M
    |       Vaihtoehto
    ( )     Määritysten ryhmittely
    ^       Ei

    Yksittäiset merkkihahmot
    a       Merkki  a
    .       Mikä tahansa merkki paitsi rivinvaihto
    [abc]   Mikä tahansa hakasulkujen välissä oleva yksi merkki
    [a-z0-9]    Merkki väliltä a-z tai 0-9
    [^bd]   Ei merkkejä b tai d
    ([a-z][^bd])  Merkki väliltä a-z , jonka jälkeen mikä tahansa muu
                merkki mutta ei b tai d
    \       merkin erikoismerkityksen poisto

XSLT

XML-dokumentin muuntaminen XHTML:ksi ja toiseen XML-muotoon.

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
encoding="ISO-8859-1"  method="xml" version="1.0"/>

<xsl:param name="" />

<xsl:template match="">
     <xsl:apply-templates select="" />
     <xsl:value-of select="" />
     <xsl:value-of select="document('doku.xml')/hakupolku" />
     <xsl:if test=""> </xsl:if>
     <xsl:choose>
        <xsl:when test=""> </xsl:when>
        <xsl:when test=""> </xsl:when>
        <xsl:otherwise> </xsl:otherwise>
     </xsl:choose>
</xsl:template>

</xsl:stylesheet>

XPath

Osattava tehdä yksinkertaisia XPath-lausekkeita.


Päivitetty: 06.11.2008