Mis on XML, XSLT, ja mis on XML-skeem

XML

XML (Extensible Markup Language) – laiendatav märgistuskeel.

XML on tekstivorming struktureeritud andmete salvestamiseks ja vahetamiseks. Selle peamine ülesanne on salvestada teavet puu kujul, kasutades andmete tähendust kirjeldavaid sildid.

Kus kasutatakse:

  • Andmete salvestamine ja edastamine süsteemide vahel (nt veebiteenused).
  • Konfiguratsioonifailid.
  • Dokumentide formaadid (nt DOCX, mis on tegelikult ZIP-fail XML-failidega sees).
  • Andmevahetus erinevates tööstusharudes.
PlussidMiinused
Inimese ja masina poolt loetav.Võtab rohkem ruumi võrreldes binaarsete formaatidega.
Universaalsus ja platvormist sõltumatus.XML-i töötlemine võib olla aeglasem, kuna teksti on vaja parsida.
Sobib hästi keerulise hierarhilise andmestruktuuri jaoks.Lihtsate andmete jaoks on see mõnikord liigne.

Näide koodist

<?xml version="1.0" encoding="utf-8" ?>
<inimene saasta="1957" elukoht="Tallinn">
	<nimi>Natalja Saveljeva</nimi>
	<lapsed>
		<inimene saasta="1982" elukoht="Tallinn">
			<nimi>Tatjana Saveljeva</nimi>
			<lapsed>
				<inimene saasta="2007" elukoht="Tallinn">
					<nimi>Valeria Allik</nimi>
				</inimene>
			</lapsed>

XSLT

XSLT (Extensible Stylesheet Language Transformations) – XML-i teisendamise keel.

XSLT on keel, mida kasutatakse ühe XML-dokumendi teisendamiseks teise formaati: teise XML-i, HTML-i, teksti jne. See on omamoodi mallid või reeglid, mis kirjeldavad, kuidas muuta XML-i struktuuri või sisu.

Kus kasutatakse:

  • HTML-i genereerimine XML-ist.
  • XML-i teisendamine teistesse formaatidesse (nt CSV, JSON).
  • Veebirakendused ja integratsioonisüsteemid.
PlussidMiinused
Võimaldab eraldada andmed esitusest.XSLT süntaks on üsna spetsiifiline ja võib olla algajatele keeruline.
On universaalne, töötab mis tahes XML-iga.Keeruliste teisenduste puhul võib olla raske vead kõrvaldada.
Võib oluliselt lihtsustada dokumentide automaatset töötlemist.

Näide koodist

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
	<xsl:output method="xml" indent="yes"/>

	<xsl:template match="/">
		<html>
			<body>
				<!-- 2. Kõik andmed tabelina koos elukohtade arvuga -->
				<h2>Kõik andmed tabelina</h2>
				<table border="1">
					<tr>
						<th>Vanem</th>
						<th>Laps</th>
						<th>Sünniaasta</th>
						<th>Vanus</th>
						<th>Elukoht</th>
						<th>Inimeste arv elukohas</th>
						<th>Laste arv</th>
					</tr>
					<xsl:for-each select="//inimene">
						<tr>
							<td>
								<xsl:value-of select="../../nimi"/>
							</td>

XML-skeem

XML-skeem (XML Schema, XSD)

XML-skeem on spetsifikatsioon, mis kirjeldab XML-dokumendi struktuuri, reegleid, andmetüüpe, kohustuslikke elemente jne. Seda on vaja XML-i korrektsuse kontrollimiseks.

Kus kasutatakse:

  • XML-failide vastavuse nõuetele valideerimine.
  • Dokumentatsiooni ja koodi automaatne genereerimine.
  • Integreerimisprojektid, kus on oluline kontrollida andmete formaati.
PlussidMiinused
Kirjeldab selgelt andmete struktuuri.Võivad olla keerulised kirjutada väga suurte või paindlike skeemide puhul.
Võimaldab vältida vigu varases etapis.Mõned skeemid võivad olla liigsed, kui andmete struktuur muutub sageli.
Aitab formaliseerida andmete liideseid.

Kuidas luua XML-skeem (XSD):

  1. Käsitsi
  • Kirjutage XML-fail laiendiga .xsd.
  • Määrake elemendid (<xs:element>), nende tüübid (xs:string, xs:integer jne), struktuur (järjekord, pesastamine).
  • Määrake, millised elemendid on kohustuslikud ja millised valikulised.
  1. Automaatselt XML-ist
  • Kasutage redaktoreid või veebiteenuseid, mis genereerivad skeemi valmis XML-failist.
  • See on mugav, kui teil on dokumendi näidis ja vaja on kiiresti saada XSD
  1. Graafilised tööriistad
  • Redaktorid nagu Oxygen XML, Visual Studio, XMLSpy võimaldavad struktuuri visuaalselt luua.
  • Need tööriistad genereerivad XSD, lihtsustades tööd

Kuidas luua XML-skeem Visual Studios:

  • Avage XML-fail Visual Studio’s.
  • Valige menüüribalt XML>Loo skeem.

Näide koodist

  <xsl:template match="/">
	<html>
		<body>
			<!-- 2. Kõik andmed tabelina koos elukohtade arvuga -->
			<h2>Kõik andmed tabelina</h2>
			<table border="1">
				<tr>
					<th>Vanem</th>
					<th>Laps</th>
					<th>Sünniaasta</th>
					<th>Vanus</th>
					<th>Elukoht</th>
					<th>Inimeste arv elukohas</th>
					<th>Laste arv</th>
				</tr>
				<xsl:for-each select="//inimene">
					<tr>
						<td>
							<xsl:value-of select="../../nimi"/>
						</td>
						<td>
							<xsl:choose>
								<!-- Värvi nimed mis sisaldavad 'i' tähte punasena -->
								<xsl:when test="contains(nimi, 'i')">
									<span style="color: red;">
										<xsl:value-of select="nimi"/>
									</span>
								</xsl:when>
								<xsl:otherwise>
									<xsl:value-of select="nimi"/>
								</xsl:otherwise>
							</xsl:choose>
						</td>
						<td>
							<xsl:value-of select="@saasta"/>
						</td>
						<td>

Rohkem infot

XML

  • Formaat struktureeritud andmete salvestamiseks ja vahetamiseks siltide ja pesade abil.
  • Laialdaselt kasutatav andmete edastamiseks süsteemide, konfiguratsioonide ja dokumentide vahel.
  • Oluline on mõista struktuuri: silte, atribuute, hierarhiat.

XSLT

  • Keel XML-i teisendamiseks teistesse formaatidesse (HTML, teine XML, tekst).
  • Kasutatakse aruannete, veebilehtede genereerimiseks ja andmete teisendamiseks.
  • Võimaldab eraldada andmed esitusest.

XML-skeem (XSD)

  • Määrab XML-dokumendi struktuuri ja reeglid (kohustuslikud elemendid, andmetüübid).
  • Kasutatakse XML-i korrektsuse kontrollimiseks.
  • Tagab standardiseerimise ja ennetab vigu.

Alustamiseks vajalikud põhioskused

  • Mõista XML-dokumendi struktuuri.
  • Oskus valideerida XML skeemi abil.
  • Tunda XSLT põhiprintsiipe teisenduste tegemiseks.

Minu projekt

Kui nimes, laste veerus on täht ‚i‘, siis kuvatakse see nimi punase värviga sildis.

Värvi kõik nimed, kellel on vähemalt kaks last kollasena.

Minu oma ülesanne: Leia kõige noorem inimene.
Näitan noorima inimese nime, sünniaasta ja vanuse, lahutades tema sünniaasta käesolevast aastast.