
ICT1TD003->XML->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: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ö">
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
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>
Osattava tehdä yksinkertaisia XPath-lausekkeita.
Päivitetty: 06.11.2008