Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 28: Line 28:
*** EMPTY - elemendil ei ole väärtust
*** EMPTY - elemendil ei ole väärtust
* <!ATTLIST elemendi_nimi attribuudi_nimi andmetüüp nõutavus>
* <!ATTLIST elemendi_nimi attribuudi_nimi andmetüüp nõutavus>
** Andmetüübid:
** Andmetüübid: [http://www.w3schools.com/dtd/dtd_attributes.asp W3Schools]
*** CDATA - Tekstväärtus
*** CDATA - Tekstväärtus
*** (en1|en2|..) - Üks võimalik väärtus enumereeritud loetelust
*** (en1|en2|..) - Üks võimalik väärtus enumereeritud loetelust
Line 40: Line 40:
*** NOTATION - Väärtus on märke nimi.
*** NOTATION - Väärtus on märke nimi.
*** xml: - Väärtus on eelnevalt määratud XMLi väärtus
*** xml: - Väärtus on eelnevalt määratud XMLi väärtus
** Nõutavus:
** Nõutavus: [http://www.w3schools.com/dtd/dtd_attributes.asp W3Schools]
*** väärtus - Vaikimisi attribuudi väärtus
*** väärtus - Vaikimisi attribuudi väärtus
*** #REQUIRED - Väärtus on vajalik.
*** #REQUIRED - Väärtus on vajalik.
*** #IMPLIED - Väärtus on valikuline
*** #IMPLIED - Väärtus on valikuline
*** #FIXED väärtus - fikseeritud väärtus
*** #FIXED väärtus - fikseeritud väärtus

Revision as of 23:38, 21 February 2012

XML on standardiseeritud märgendikeel. Selle eesmärgiks on struktureeritud info hoidmine enamasti transpordi eesmärgil. Kuna XML on laiendatav, siis baseeruvad sellel keelel väga paljud standardiseeritud struktuurid - XHTML, RSS, SOAP, SVG jne.

Selleks, et XML-i edukalt tarnida ühest süsteemist teise on vaja kontrollida selle valiidsust. See on vajalik selleks, et ühest süsteemist teise viies ei esineks vigu. Mõlemad süsteemid kusjuures peavad kasutama sama valideerimismeetodit.

XML-i puhul on valideerimisvõimalusteks Dokument Type Definition (DTD) ja XML Schema (XSD).

  • DTD meetodiga määratakse ära lubatud struktuurelemendid, nende attribuudid ning nende väärtustüübid.
  • XSD meetod on võimalusterohkem, kui DTD, ning sellega on võimalik kirjeldada palju keerulisemaid struktuure valideerimiseks.

Aga milleks me ikkagi valideerime XML-e?

XML on enamikel juhtudel elulise tähtsusega rakenduse toimimisel. Kui me valideerime XML-i ja leiame enne selle kasutamist, et see ei ole soovitud formaati, siis sellega saame me hoida ära paljud ebameeldivad üllatused, mis võivad tekkida. Siiski see ei välista nende tekkimist.

Document Type Definition - DTD

DTD puhul on tegemist XMList eraldi seisva keelega. Sellega on võimalik ära määrata elementide ja nende attribuutide esinemist. Elementide ja attribuutide väärtuste tüüpi on võimalik määrata väga kesiselt.

DTD struktuurikirjeldust saab määrata XML-i jaoks kahte moodi:

  • Inline - ehk siis sama XML'i sees kirjeldatakse ära selle juurelemendi alamelementide ja -attribuutide puu.
  • External - ehk XML-i struktuur kirjeldatakse ära XML-ist eraldi failina.

Esimest varianti tasub kasutada vaid juhul, kui tegu on väga väikese struktuuiga XML-iga. Ehk siis enamasti õppimise ja testimise raames. Teine variant on mõeldud kasutamiseks juba väheke keerukamate XML struktuuride kirjeldamise puhuks.

Selle XML-i struktuuri kirjeldamise peamisteks märgenditeks on:

  • <!ELEMENT elemendi_nimi (alam_element1, alam_element2)> või <!ELEMENT elemendi_nimi (elemendi_andmetüüp)>
    • Elemendi tüüpideks on: W3Schools
      • #PCDATA - kontrollitakse väärtust, et temas ei oleks < ja & sümboleid.
      • #CDATA - väärtust ei kontrolita, et temas ei oleks < ja & sümboleid.
      • EMPTY - elemendil ei ole väärtust
  • <!ATTLIST elemendi_nimi attribuudi_nimi andmetüüp nõutavus>
    • Andmetüübid: W3Schools
      • CDATA - Tekstväärtus
      • (en1|en2|..) - Üks võimalik väärtus enumereeritud loetelust
      • ID - Väärtus on unikaalne id
      • IDREF - Väärtus on mõne teise elemendi ID
      • IDREFS - Väärtus on loetelu teiste elemendide ID-dest
      • NMTOKEN - Väärtus on valiidne XML-i nimi
      • NMTOKENS - Väärtuseks on valiidsed XML-i nimed
      • ENTITY - Väärtus on üksuse nimi
      • ENTITIES - Väärtus on üksuste loetelu
      • NOTATION - Väärtus on märke nimi.
      • xml: - Väärtus on eelnevalt määratud XMLi väärtus
    • Nõutavus: W3Schools
      • väärtus - Vaikimisi attribuudi väärtus
      • #REQUIRED - Väärtus on vajalik.
      • #IMPLIED - Väärtus on valikuline
      • #FIXED väärtus - fikseeritud väärtus