ICT1TD003 -> XML -> Tuntitehtävät 2
Tulkitse seuraavat DTD-määrittelyrivit:
<!ELEMENT tilaukset (tilaus+)><!ELEMENT tilaus (asiakas, tuote+)><!ELEMENT tilaus (asiakas, tuote)+><!ELEMENT asiakas(nimi , osoite , puhelin+)><!ELEMENT tuote (numero, nimi+, hinta?)><!ATTLIST tilaus
nro CDATA #REQUIRED
toimitustapa CDATA "posti"><!ATTLIST asiakas
email CDATA #IMPLIED
status (tavallinen | hopea | kulta) #REQUIRED
kieli CDATA "Suomi">Tee XML-dokumentti, joka noudattaa ulkoisen tilaus.dtd-tiedoston määrittelemää rakennetta.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT tilaus (asiakas, tuote+)>
<!ATTLIST tilaus
nro CDATA #REQUIRED
toimitustapa CDATA "posti">
<!ELEMENT asiakas (nimi, osoite, puhelin+)>
<!ATTLIST asiakas
email CDATA #IMPLIED
status (tavallinen | hopea | kulta) #REQUIRED
kieli CDATA "Suomi">
<!ELEMENT nimi (#PCDATA)>
<!ELEMENT osoite (katuosoite, postitoimipaikka)>
<!ELEMENT katuosoite (#PCDATA)>
<!ELEMENT postitoimipaikka (#PCDATA)>
<!ELEMENT puhelin (#PCDATA)>
<!ELEMENT tuote (numero, nimi+, hinta?)>
<!ATTLIST tuote
nro CDATA #REQUIRED>
<!ELEMENT numero (#PCDATA)>
<!ELEMENT hinta (#PCDATA)>
Ratkaisu: tilaus.xml
Tee seuraaville elementeille DTD määrittely:
Jos henkilölle ei anneta sukupuoli attribuuttia, oletuksena on mies.
Attribuuttia ei tarvitse antaa.
Elementit voidaan antaa joko suomalaisessa (paiva, kuukausi ja vuosi) tai ameriikkalaisessa (kuukausi, paiva ja vuosi) järjestyksessä.
Ratkaisu: henkilot.xml henkilot.dtd
Tee tuotteet.xml-dokumentille DTD.
Ratkaisu: tuotteet2.xml tuotteet2.dtd
Määrittele tuotteet-elementille kokoaja-attribuutti, joka voi saadaa arvot Salminen, Lahtinen, Virtanen. Toteuta attribuutti käyttäen parametrientiteettejä.
Ratkaisut: tuotteet3.xml tuotteet3.dtd
Tee edellisellä kertaa laatimallesi Panun Kuppilan XML-dokumentille DTD.
Tee edellisellä kerralla laaditulle saa.xml-dokumentille DTD. Voit käyttää pohjana myös omaa XML-dokumenttiasi.
Ratkaisu: saadtd.xml saadtd.dtd
Kirjoita allaoleviin DTD - määrityksiin vastaavat XML - elementit. Tee jokaiseen kaksi vaihtoehtoa.
<!ELEMENT kurssi (numero, (yliopettaja | opettaja+), (arvosana |
hyvaksytty))><!ELEMENT muistilappu (paiva | henkilo)*><!ELEMENT muistilappu (#PCDATA | paiva | henkilo)*><!ATTLIST henkilo
tunnus ID #REQUIRED
titteli (tuntiopettaja | lehtori | koulutusohjelmavastaava) "lehtori"
aloitusvuosi NMTOKEN #IMPLIED
osaamisalueet CDATA #REQUIRED>Päivitetty: 09.03.2009