XML-XSLT-ASP.NET

1. Mis on XML?

XML (eXtensible Markup Language) on universaalne andmete kirjeldamise keel, mida kasutatakse info salvestamiseks ja edastamiseks.
Erinevalt HTML-ist ei kirjelda XML välimust, vaid ainult andmete struktuuri ja väärtusi.

Näide minu failist (davidmSuguPuu.xml):

<inimene aasta="1961">
    <nimi>Vanaema Natallia</nimi>
    <br/>
    <elukoht>Eestonia Tallinn</elukoht>
    <br/>
    <telefonModel>Samsung A50</telefonModel>
    <br/>
</inimene>

Siin:

  • <inimene> – põhiline element.
  • saasta="1961" – atribuut, mis näitab sünniaastat.
  • Alam-sildid (nimi, elukoht, Telefon-model) kirjeldavad inimese omadusi.
  • Elemendid võivad sisaldada ka alam-elemente <lapsed>, mis moodustavad sugupuu.

2. Mis on XSLT?

XSLT (eXtensible Stylesheet Language Transformations) on transformatsioonikeel, millega saab XML-andmeid teisendada erinevatesse formaatidesse: HTML, XML, TXT, tabelid jne.

Minu failis (davidm2paring.xslt) teisendatakse XML sugupuu andmed HTML-tabeliks, kus iga inimese kohta kuvatakse nimi, elukoht, sünniaasta, vanus ja telefonimudel.

Näide koodist:

<xsl:for-each select="//inimene">
    <br/>
    <tr>
        <td><xsl:value-of select="nimi"/></td>
        <br/>
        <td><xsl:value-of select="@aasta"/></td>
        <br/>
        <td><xsl:value-of select="2025 - number(@aasta)"/></td>
        <br/>
    </tr>
    <br/>
</xsl:for-each>

See teeb järgmist:

  • Võtab kõik <inimene> elemendid XML-ist.
  • Loob igaühe kohta tabelirea.
  • Kuvab nime, sünniaasta ja arvutab vanuse (2025 – sünniaasta).

Lisaks on kasutatud tingimuslikke vorminguid: kui inimesel on vähemalt kaks last, värvitakse tema rida kollaseks. Samuti muudetakse nime värv punaseks, kui see sisaldab tähe „m/M“.

3. Kuidas luua XML-skeemi

  1. Ava korraks oma XML-fail.
  2. Faili keskel on XML-plokk.
  1. Klõpsa sellel ja loo sinna skeem.

Näide skeemi loomisest:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 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="lapsed">
					<xs:complexType>
						<xs:sequence>
							<xs:element maxOccurs="unbounded" name="inimene">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="nimi" type="xs:string" />
										<xs:element minOccurs="0" name="lapsed">
											<xs:complexType>
												<xs:sequence>
													<xs:element maxOccurs="unbounded" name="inimene">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="nimi" type="xs:string" />
															</xs:sequence>
															<xs:attribute name="saasta" type="xs:unsignedShort" use="required" />
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="saasta" type="xs:unsignedShort" use="required" />
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="saasta" type="xs:unsignedShort" use="required" />
		</xs:complexType>
	</xs:element>
</xs:schema>

See tähendab:

  • Põhielement: <inimene>
  • Kohustuslikud alam-elementid: nimi, elukoht, Telefon-model
  • lapsed võib sisaldada piiramatu arvu <inimene> elemente
  • Atribuut saasta on kohustuslik ja peab olema aastaarv (xs:gYear)

Kokkuvõte

  • XML – andmete salvestamiseks sugupuu struktuuris.
  • XSLT – XML andmete kuvamine tabeli kujul ja tingimuslik vormindamine.
  • XSD – määrab XML-faili reeglid ja aitab tagada andmete korrektsuse.

Github ling: https://github.com/DavidMyrseth/xmlDavidm