XML, XSLT ja XML skeemid – Genealoogiaprojekt

1. Sissejuhatus

Eesmärk: Tutvuda XML-i, XSLT ja XML skeemidega ning rakendada neid genealoogilise puu näitel.

Miks kasutada XML-i? Struktureeritud andmete lihtne esitus ja jagamine.

2. Mis on XML?

XML (Extensible Markup Language) on andmete struktureeritud esituse formaat, mis kasutab tähiseid ja atribuute.

Andmed organiseeritakse puustruktuuri kujul, mis võimaldab hierarhilisi seoseid (nt. sugupuu).

Näide genealoogiapuust:

<inimene saasta="1960">
  <nimi>Faina</nimi>
  <elukoht>Venemaa, Staraya Russa</elukoht>
  <lapsed>
    <inimene saasta="1980">
      <nimi>Nelli</nimi>
    </inimene>
  </lapsed>
</inimene>
      

3. Mis on XSLT?

XSLT (Extensible Stylesheet Language Transformations) võimaldab XML-andmeid teisendada näiteks HTML-iks või teiseks XML-iks.

Peamised vahendid: mallid, tsüklid, tingimused.

Lihtne näide:

<xsl:for-each select="//inimene">
  <li>
    <xsl:value-of select="nimi"/> (sündinud <xsl:value-of select="@saasta"/>)
  </li>
</xsl:for-each>
    

4. Mis on XML skeem (XSD)?

XML skeem (XSD) kirjeldab XML-faili struktuuri, andmetüüpe ja reegleid, et tagada andmete korrektsus.

Peamised komponendid: elemendid, atribuudid, andmetüübid, korduvus.

Näide genealoogiapuu elemendi skeemist:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="inimene">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nimi" type="xs:string"/>
        <xs:element name="elukoht" type="xs:string" minOccurs="0"/>
        <xs:element name="lapsed" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="inimene" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="saasta" type="xs:integer" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
    

5. Kuidas luua XML skeemi?

6. Näited genealoogiaprojektist

Siin on näide XML-failist, mis kirjeldab genealoogilist puud:

<inimene saasta="1960">
  <nimi>Faina</nimi>
  <elukoht>Venemaa, Staraya Russa</elukoht>
  <lapsed>
    <inimene saasta="1980">
      <nimi>Nelli</nimi>
      <lapsed>
        <inimene saasta="2007"><nimi>Bogdan</nimi></inimene>
      </lapsed>
    </inimene>
  </lapsed>
</inimene>
    

Ja näide XSLT-st, mis teisendab selle HTML tabeliks, kuvades nime, sünniaasta ja laste nimed.

7. Kokkuvõte

XML ja XSLT võimaldavad mugavalt esitada ning töödelda hierarhilisi andmeid nagu genealoogiapuud.

XML skeemid aitavad tagada andmete õigsust ning lihtsustavad andmete haldamist.

8. Küsimused ja arutelu

Olen valmis vastama teie küsimustele ja arutama teemal edasi!