
Informationsansvarig: Marie-Louise Gustafsson, webmaster@itn.liu.se
Sidan uppdaterades senast: 2006-05-16
LiU > ITNUtbildning
Utbildningsområden
Förbered dig genom att läsa föreläsningsanteckningar om Namespaces och XML Schemas, samt motsvarande kapitel i boken. Dessa är kapitel 4(namespaces) och 17 (xml schemas). Ha även kapitel 22 till hands som referens. Du kommer dock förmodligen mest flitigt konsultera XML Schema primer som är utmärkt!
I denna laboration ska du lära dig skriva XML Schemas, mot vilka XML-dokument kan valideras på liknande sätt som i DTD-laboraionen.
Laborationen är frivillig och ger 5 poäng.
Skapa en katalog under mappen "TNM065" i din webbkatalog, och döp den nya katalogen till "lab-xmlschemas".
Gör sedan en fil, party2.xml, som du sparar i den katalogen och vars innehåll är så här
<party xmlns="http://www.student.itn.liu.se/~ditt-användarnamn/TNM065/lab-xmlschemas/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.student.itn.liu.se/~ditt-användarnamn/TNM065/lab-xmlschemas/
http://www.student.itn.liu.se/~ditt-användarnamn/TNM065/lab-xmlschemas/party.xsd">
<title>
Amphiox Gasque
</title>
</party>
Byt givetvis ut ditt-användarnamn/ mot just ditt användarnamn
Gör sedan en fil, party.xsd som du sparar i samma katalog, och vars innehåll är
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:party="http://www.student.itn.liu.se/~ditt-användarnamn/TNM065/lab-xmlschemas/"
elementFormDefault="qualified"
targetNamespace="http://www.student.itn.liu.se/~ditt-användarnamn/TNM065/lab-xmlschemas/">
<element name="party" type="party:PartyType"/>
<element name="title" type="string"/>
<complexType name="PartyType">
<sequence>
<element ref="party:title"/>
</sequence>
</complexType>
</schema>
Byt även här ut ditt-användarnamn/ mot ditt användarnamn
Validera dokumentet party2.xml på http://www.w3.org/2001/03/webdata/xsv . Glöm inte att klicka i vilken browsertyp du använder.OBS!!! Ibland verkar valideraren ha en otäck cache-funktion som gör att ändringar inte registreras. Använd då uploadfunktionen istället.
Nu ska du börja modifiera schemat party.xsd så att det till slut kan validera
filen party.xml från DTD-laborationen (förutsatt att alla namespacedeklarationer
i elemetet party från dokumentet party2.xml stoppats in).
Ett tips är att deklarera något/några element i taget, testa att sätta in motsvarande element i instansdokumentet och därefter validera. Annars blir man lätt förvirrad av många felmeddelanden. Observera också att validatorn hittar fel både i schemat och i instansdokumentet.
Två "simpleTypes", phone och email, kräver att du definiera egna datatyper. Dessa ska definieras med hjälp av regular expressions (se appendix D i XML Schema primer).
Elementen contact, host, toastmaster och guest ska alla "ärva" sin content-model från ett datatyp som ska heta "person". Datatypen person ska innehålla ett firstname-element följt av ett lastname-element.
I övrigt ska schemat vara minst lika restriktivt som DTDn. Entiteter för märkliga tecken deklareras med ett internt DTD-subset i instansdokumentet (se appendix C i XML Schema Primer).
När allt är klart ska det gå att validera party2.xml som ska se ut exakt som party.xml fråntaget namespacedeklarationerna och det interna DTD-subsetet.
Lämna in en länk till dokumenten i It's learning