Haaga-Helia>
ICT03D -> XML -> Viikkoharjoitukset 1

Tietojenkäsittelyn koulutusohjelma
Tieto ja tiedon varastointi

XML.1

 

Keskeinen asia

Tehtävä 1.1 (1 piste)

Tee projektin kokouskutsusta XML-dokumentti, joka on rakenteeltaan alla olevan puurakenteen mukainen. Hae XML-dokumenttiin sisältö kokouskutsu.html-tiedostosta.

Kokouskutsu rakennepuuna

Lisämateriaalia 1. viikkotehtävien tekoon: Rakennepuu

Tehtävä 1.2 (2 pistettä)

Laadi tehtävän 1.2 kokouskutsun rakennepuuta vastaava DTD-tiedosto. Liitä DTD-tiedosto myös tehtävässä 1.1 laatimaasi XML-dokumenttiin.

Tehtävä 1.3 (2 pistettä)

Korjaa tuote.xml-dokumentti siten, että XML-dokumentti ja DTD ovat kelvollisia ja vastaavat toisiaan.

<?xml  encoding="ISO-8859-15"?>
<!DOCTYPE tuote [
<!ELEMENT tuotteet (tuote, tilaus)>
<!ELEMENT tuote (nimi, pakkaus, kuva)>
<!ATTLIST tuote tuoteryhma CDATA #REQUIRED>
<!ELEMENT nimi (#PCDATA)>
<!ATTLIST nimi 
          tyyppi (kuusenkoriste | ovikoriste) #REQUIRED 
          vari CDATA #REQUIRED>
<!ELEMENT pakkaus (kappale, hinta)>
<!ATTLIST pakkaus materiaali NMTOKEN>
<!ELEMENT kappale (#PCDATA)>
<!ELEMENT hinta CDATA>
<!ELEMENT kuva EMPTY>
<!ELEMENT kuva src NMTOKEN #REQUIRED>
<!ELEMENT tilaus (myyja)>
<!ELEMENT myyja (#PCDATA)>
<!ATTLIST tun ID #REQUIRED>
]>

<tuotteet tuoteryhma=joulukoristeet>
    <tuote>
        <nimi tyyppi="kuusenkoriste" vari="punainen">Pallo</Nimi>
        <pakkaus materiaali="muovi">
            <kappale>10</kappale>
            <hinta>10 €</hinta>
        </pakkaus>
        <kuva src="punainen pallo.jpg"/>
    </tuote>
    <tuote>
        <nimi>Havukranssi</nimi>
        <pakkaus>
            <kappale>1</kappale>
            <hinta>8 €
        </pakkaus>
    </tuote>
    <tuote>
        <nimi tyyppi="pöytäkoriste" vari=valkoinen>Kynttilä</nimi>
        <pakkaus>
            <kappale>6</kappale>
        </pakkaus>
        <hinta>12 €</hinta>
        <kuva src="valkoiset kynttilät.jpg">
    </tuote>
    <tilaus tun="A10"/>
    <myyja tun="A10">Ville Virtanen</myyja>
</tuotteet>

Tehtävä 1.4 (2 pistettä)

Laadi tilaus.xml-dokumentille DTD.

<?xml version="1.0" encoding="ISO-8859-15"?>
<!-- numero on pakollinen, yksilöi tilauksen
paivays on pakollinen-->
<tilaus numero="t001" paivays="23.9.2009">
    <tilaaja>
        <!-- Y-tunnus yksilöi yrityksen, on pakollinen -->
        <yritys Y-tunnus="Y 123456-7">Eläinkauppa Virtanen</yritys>
        <nimi>
            <sukunimi>Virtanen</sukunimi>
            <etunimi>Veikko</etunimi>
        </nimi>
        <!-- Puhelin ei ole pakollinen, voi olla max. 1 puhelin -->
        <puhelin>+358401234567</puhelin>
        <!-- Voi olla joko kaynti- tai postiosoite -->
        <postiosoite>
            <!-- Määrittele postiosoitteen rakenne DTD:hen parametrientiteettinä -->
            <lahiosoite>Jermunkuja 1</lahiosoite>
            <postinumero>41160</postinumero>
            <postitoimipaikka>Tikkakoski</postitoimipaikka>
        </postiosoite>
    </tilaaja>
    <toimittaja>
        <yritys Y-tunnus="Y 123456-2">Ruokatukku eläimille</yritys>
        <nimi>
            <sukunimi>Majava</sukunimi>
            <etunimi>Maija</etunimi>
        </nimi>
        <puhelin/>
        <!-- Voi olla joko kaynti- tai postiosoite -->
        <kayntiosoite>
            <!-- Määrittele kayntiosoitteen rakenne DTD:hen parametrientiteettinä -->
            <lahiosoite>Rautatieläisenkatu 5</lahiosoite>
            <postinumero>00500</postinumero>
            <postitoimipaikka>Helsinki</postitoimipaikka>
        </kayntiosoite>
    </toimittaja>
    <tilausrivit>
        <tilausrivi>
            <!-- koodi on yksilöllinen avain -->
            <nimeke koodi="k12345">Menu-Vital</nimeke>
            <maara>100</maara>
            <!-- kappalehinnalla on alennusprosentti-attribuutti, minkä oletusarvo on 0
                 alennusprosentti voi saada arvot 0, 3, 5 tai 10 -->
            <kappalehinta>1.70</kappalehinta>
        </tilausrivi>
        <tilausrivi>
            <nimeke koodi="k4321">Puruja</nimeke>
            <maara>10</maara>
            <kappalehinta alennusprosentti="3">5</kappalehinta>
        </tilausrivi>
    </tilausrivit>
    <!-- toimitusaikaa ei ole pakollinen -->
    <!-- toimitusviikko on pakollinen, toimituskuluja ei tarvitse olla -->
    <toimitusaika toimitusviikko="52" toimituskulut="5.80"/>
</tilaus>

Tehtävä 1.5 (4 pistettä)

Tutustu Tietojenkäsittelyn ko, Helsinki - ops 2009.

Laadi XML-dokumentti, missä on vähintää kahden kurssin tiedot.

  1. Tee kurssikuvauksista rakennepuu.
  2. Tee rakennepuun mukainen DTD-kuvaus.
  3. Tee XML-dokumentti, joka noudattaa DTD-kuvausta. Lisää XML-dokumenttiin kahden kurssin tiedot.
  4. Validoi.

Päivitetty: 26.10.2009