Avame SQL Server Management Studio 20

Meie peame vaatama meie server name ja authentication:Windows
Server name: (localdb)\MSSQLLocalDB

Tegime new query ja loome uus database
CREATE DATABASE "Teie database name";
USE "Teie database name";

Loome uus tabel nimega “Reis”
CREATE TABLE reisid (
id INT PRIMARY KEY IDENTITY(1,1),
full_name VARCHAR(50),
sihtkoht VARCHAR(100) NOT NULL,
lennujaam VARCHAR(100),
hind VARCHAR(100),
kestus INT,
keel VARCHAR(50),
kontakt_email VARCHAR(100),
transport VARCHAR(50)
);
Kõik andmeid me oleme genererimee mockaroo.com

Pärast me pututame nuppu “preview” ja pärast kopeerime kõik andmeid mis on genereritud:

insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Hagan Swaden', 'Colombia', 'Al Ahsa Airport', 'Zloty', 13, 'Latin', 'hswaden0@xing.com', 'takso');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Silvana Allsopp', 'France', 'Kiwai Airport', 'Franc', 3, 'Tamil', 'sallsopp1@ihg.com', 'laev');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Anabelle Braemer', 'France', 'Tsewi Airport', 'Rupiah', 3, 'Japanese', 'abraemer2@cbslocal.com', 'jalgratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Ricard Addionisio', 'USA', 'San Juan Aposento Airport', 'Pound', 1.5, 'Latin', 'raddionisio3@php.net', 'buss');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Pearce Glanders', 'Germany', 'Telida Airport', 'Zloty', 3, 'Maltese', 'pglanders4@usgs.gov', 'auto');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Corette Hayzer', 'France', 'Harrison County Airport', 'Zloty', 3, 'Welsh', 'chayzer5@cargocollective.com', 'takso');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Karel Downham', 'Australia', 'Aasiaat Airport', 'Peso', 1.5, 'Cree', 'kdownham6@cbsnews.com', 'mootorratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Bordy Walisiak', 'Germany', 'La Aurora Airport', 'Quetzal', 3, 'Tajik', 'bwalisiak7@stumbleupon.com', 'buss');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Keefe Addicott', 'China', 'Victoria Harbour Seaplane Base', 'Rupiah', 4, 'Tsonga', 'kaddicott8@booking.com', 'jalgratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Arly Fielding', 'Austria', 'Yari Airport', 'Yuan Renminbi', 3, 'Inupiaq', 'afielding9@npr.org', 'buss');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Cosmo Shipston', 'China', 'Myitkyina Airport', 'Franc', 5, 'Bokmål, Norwegian', 'cshipstona@barnesandnoble.com', 'jalgratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Ermin Lendrem', 'USA', 'Aviano Air Base', 'Peso', 1.5, 'Abkhazian', 'elendremb@so-net.ne.jp', 'rong');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Suzy O''Deoran', 'Ethiopia', 'Ouvéa Airport', 'Real', 3, 'Sardinian', 'sodeoranc@ucsd.edu', 'takso');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Wilden Eslie', 'USA', 'Weerawila Airport', 'Euro', 3, 'Tsonga', 'weslied@fda.gov', 'rong');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Dacia Ponten', 'Japan', 'Arturo Michelena International Airport', 'Peso', 3, 'Sinhala', 'dpontene@princeton.edu', 'jalgratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Adelind Ianne', 'USA', 'Kryvyi Rih International Airport', 'Krona', 3, 'Dzongkha', 'aiannef@zdnet.com', 'takso');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Weider Tallow', 'Chile', 'Omsk Central Airport', 'Shekel', 12, 'German', 'wtallowg@sun.com', 'lennuk');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Roby Thunnercliffe', 'Switzerland', 'Erigavo Airport', 'Yuan Renminbi', 4, 'Zhuang', 'rthunnercliffeh@github.com', 'rong');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Sibella Caldwell', 'France', 'Fort Dodge Regional Airport', 'Ruble', 3, 'Kashmiri', 'scaldwelli@toplist.cz', 'tramm');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Lavena Soares', 'USA', 'Natadola Airport', 'Zloty', 1.5, 'Thai', 'lsoaresj@tinypic.com', 'metroo');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Keenan Hanaby', 'USA', 'Glacier Park International Airport', 'Baht', 3, 'Tatar', 'khanabyk@cam.ac.uk', 'tramm');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Bekki Gosland', 'France', 'Basankusu Airport', 'Sol', 3, 'Tatar', 'bgoslandl@livejournal.com', 'laev');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Hussein Geipel', 'Japan', 'Talagi Airport', 'Ringgit', 3, 'Guarani', 'hgeipelm@theglobeandmail.com', 'auto');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Helaine Tutchell', 'Kenya', 'Jerusalem Airport', 'Franc', 15, 'Uighur', 'htutchelln@cargocollective.com', 'metroo');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Willem Horder', 'South Africa', 'Whitsunday Island Airport', 'Euro', 3, 'Igbo', 'whordero@tuttocitta.it', 'buss');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Oby Roser', 'USA', 'Liège Airport', 'Rupiah', 3, 'Arabic', 'oroserp@sun.com', 'tramm');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Alex Ovell', 'Singapore', 'Ambunti Airport', 'Krone', 3, 'Nepali', 'aovellq@redcross.org', 'mootorratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Truman Quinnelly', 'Germany', 'Andøya Airport', 'Dinar', 4, 'Bashkir', 'tquinnellyr@weibo.com', 'mootorratas');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Judah Carsberg', 'France', 'Earlton (Timiskaming Regional) Airport', 'Krona', 3, 'Kanuri', 'jcarsbergs@wired.com', 'lennuk');
insert into reisid (full_name, sihtkoht, lennujaam, hind, kestus, keel, kontakt_email, transport) values ('Cullan Braunthal', 'South Africa', 'Flughafen München-Riem', 'Euro', 3, 'Uighur', 'cbraunthalt@themeforest.net', 'auto');
kontrolime mis me loodame:

Alustame SQL -> XML 3 tasemeline ja kasutakse vähemalt 1 atribuut:
SELECT
id AS '@id',
sihtkoht AS '@sihtkoht',
transport AS '@transport',
full_name,
lennujaam,
hind,
kestus,
keel,
kontakt_email
FROM reisid
FOR XML PATH('Reis'), ROOT('Reisid');

- lennuk ja regiooni_kood on atribuutid
- 3 taset:
- Esimene tase Reisid
- Teine tase Reis
- Kolmas tase kõik järgmised
Tulemuseks saame:

Mille peale peame klikkime ja saame XML koodi:

Komponendid võivad sisaldada allkomponente
SELECT
id AS '@id',
sihtkoht AS '@sihtkoht',
transport AS '@transport',
(
SELECT
full_name AS 'Nimi',
keel AS 'Keel',
kontakt_email AS 'Email'
FOR XML PATH('Kontakt'), TYPE
),
(
SELECT
lennujaam AS 'Lennujaam',
hind AS 'Hind',
kestus AS 'Kestus'
FOR XML PATH('Lennuinfo'), TYPE
)
FROM reisid
FOR XML PATH('Reis'), ROOT('Reisid');
Tulemuseks saame:


Kuva andmed XSLT abil järgmisel kujul: “Selline ülisanne peab veel teha”
- Kuvada iga reisi sihtkoht pealkirjana, kasutades
<h1>. - Komponendid peavad olema kuvatud täpploeteluna (
<ul>). - Kolmanda taseme struktuuri andmed tuleb kuvada kollasel taustal.
- Lisa oma tingimus (nt reisi hind või eriline soovitus peab olema esile tõstetud teatud tingimustel).
- Kuva iga reisi kogumaksumuse, liites transport, majutuse, ekskursioonide ja muude kulude hinnad kokku.
- Filtreeri ja kuva ainult need reisid, mille transport sisaldab lennureisi.
- Sorteeri kõik reisid vastavalt hinnangule (nt kliendihinnang, kui selline väli on olemas XML-is, kui ei ole kasuta teine numbriline väli).
- Kuva kõik xml andmed tabelina, kus read on üle rea erineva värviga.
MinuReis.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Reisid>
<Reis id="1" sihtkoht="Colombia" transport="takso">
<Kontakt>
<Nimi>Hagan Swaden</Nimi>
<Keel>Latin</Keel>
<Email>hswaden0@xing.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Al Ahsa Airport</Lennujaam>
<Hind>Zloty</Hind>
<Kestus>13</Kestus>
</Lennuinfo>
</Reis>
<Reis id="2" sihtkoht="France" transport="laev">
<Kontakt>
<Nimi>Silvana Allsopp</Nimi>
<Keel>Tamil</Keel>
<Email>sallsopp1@ihg.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Kiwai Airport</Lennujaam>
<Hind>Franc</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="3" sihtkoht="France" transport="jalgratas">
<Kontakt>
<Nimi>Anabelle Braemer</Nimi>
<Keel>Japanese</Keel>
<Email>abraemer2@cbslocal.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Tsewi Airport</Lennujaam>
<Hind>Rupiah</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="4" sihtkoht="USA" transport="buss">
<Kontakt>
<Nimi>Ricard Addionisio</Nimi>
<Keel>Latin</Keel>
<Email>raddionisio3@php.net</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>San Juan Aposento Airport</Lennujaam>
<Hind>Pound</Hind>
<Kestus>1</Kestus>
</Lennuinfo>
</Reis>
<Reis id="5" sihtkoht="Germany" transport="auto">
<Kontakt>
<Nimi>Pearce Glanders</Nimi>
<Keel>Maltese</Keel>
<Email>pglanders4@usgs.gov</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Telida Airport</Lennujaam>
<Hind>Zloty</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="6" sihtkoht="France" transport="takso">
<Kontakt>
<Nimi>Corette Hayzer</Nimi>
<Keel>Welsh</Keel>
<Email>chayzer5@cargocollective.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Harrison County Airport</Lennujaam>
<Hind>Zloty</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="7" sihtkoht="Australia" transport="mootorratas">
<Kontakt>
<Nimi>Karel Downham</Nimi>
<Keel>Cree</Keel>
<Email>kdownham6@cbsnews.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Aasiaat Airport</Lennujaam>
<Hind>Peso</Hind>
<Kestus>1</Kestus>
</Lennuinfo>
</Reis>
<Reis id="8" sihtkoht="Germany" transport="buss">
<Kontakt>
<Nimi>Bordy Walisiak</Nimi>
<Keel>Tajik</Keel>
<Email>bwalisiak7@stumbleupon.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>La Aurora Airport</Lennujaam>
<Hind>Quetzal</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="9" sihtkoht="China" transport="jalgratas">
<Kontakt>
<Nimi>Keefe Addicott</Nimi>
<Keel>Tsonga</Keel>
<Email>kaddicott8@booking.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Victoria Harbour Seaplane Base</Lennujaam>
<Hind>Rupiah</Hind>
<Kestus>4</Kestus>
</Lennuinfo>
</Reis>
<Reis id="10" sihtkoht="Austria" transport="buss">
<Kontakt>
<Nimi>Arly Fielding</Nimi>
<Keel>Inupiaq</Keel>
<Email>afielding9@npr.org</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Yari Airport</Lennujaam>
<Hind>Yuan Renminbi</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="11" sihtkoht="China" transport="jalgratas">
<Kontakt>
<Nimi>Cosmo Shipston</Nimi>
<Keel>Bokmål, Norwegian</Keel>
<Email>cshipstona@barnesandnoble.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Myitkyina Airport</Lennujaam>
<Hind>Franc</Hind>
<Kestus>5</Kestus>
</Lennuinfo>
</Reis>
<Reis id="12" sihtkoht="USA" transport="rong">
<Kontakt>
<Nimi>Ermin Lendrem</Nimi>
<Keel>Abkhazian</Keel>
<Email>elendremb@so-net.ne.jp</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Aviano Air Base</Lennujaam>
<Hind>Peso</Hind>
<Kestus>1</Kestus>
</Lennuinfo>
</Reis>
<Reis id="13" sihtkoht="Ethiopia" transport="takso">
<Kontakt>
<Nimi>Suzy O'Deoran</Nimi>
<Keel>Sardinian</Keel>
<Email>sodeoranc@ucsd.edu</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Ouvéa Airport</Lennujaam>
<Hind>Real</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="14" sihtkoht="USA" transport="rong">
<Kontakt>
<Nimi>Wilden Eslie</Nimi>
<Keel>Tsonga</Keel>
<Email>weslied@fda.gov</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Weerawila Airport</Lennujaam>
<Hind>Euro</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="15" sihtkoht="Japan" transport="jalgratas">
<Kontakt>
<Nimi>Dacia Ponten</Nimi>
<Keel>Sinhala</Keel>
<Email>dpontene@princeton.edu</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Arturo Michelena International Airport</Lennujaam>
<Hind>Peso</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="16" sihtkoht="USA" transport="takso">
<Kontakt>
<Nimi>Adelind Ianne</Nimi>
<Keel>Dzongkha</Keel>
<Email>aiannef@zdnet.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Kryvyi Rih International Airport</Lennujaam>
<Hind>Krona</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="17" sihtkoht="Chile" transport="lennuk">
<Kontakt>
<Nimi>Weider Tallow</Nimi>
<Keel>German</Keel>
<Email>wtallowg@sun.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Omsk Central Airport</Lennujaam>
<Hind>Shekel</Hind>
<Kestus>12</Kestus>
</Lennuinfo>
</Reis>
<Reis id="18" sihtkoht="Switzerland" transport="rong">
<Kontakt>
<Nimi>Roby Thunnercliffe</Nimi>
<Keel>Zhuang</Keel>
<Email>rthunnercliffeh@github.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Erigavo Airport</Lennujaam>
<Hind>Yuan Renminbi</Hind>
<Kestus>4</Kestus>
</Lennuinfo>
</Reis>
<Reis id="19" sihtkoht="France" transport="tramm">
<Kontakt>
<Nimi>Sibella Caldwell</Nimi>
<Keel>Kashmiri</Keel>
<Email>scaldwelli@toplist.cz</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Fort Dodge Regional Airport</Lennujaam>
<Hind>Ruble</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="20" sihtkoht="USA" transport="metroo">
<Kontakt>
<Nimi>Lavena Soares</Nimi>
<Keel>Thai</Keel>
<Email>lsoaresj@tinypic.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Natadola Airport</Lennujaam>
<Hind>Zloty</Hind>
<Kestus>1</Kestus>
</Lennuinfo>
</Reis>
<Reis id="21" sihtkoht="USA" transport="tramm">
<Kontakt>
<Nimi>Keenan Hanaby</Nimi>
<Keel>Tatar</Keel>
<Email>khanabyk@cam.ac.uk</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Glacier Park International Airport</Lennujaam>
<Hind>Baht</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="22" sihtkoht="France" transport="laev">
<Kontakt>
<Nimi>Bekki Gosland</Nimi>
<Keel>Tatar</Keel>
<Email>bgoslandl@livejournal.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Basankusu Airport</Lennujaam>
<Hind>Sol</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="23" sihtkoht="Japan" transport="auto">
<Kontakt>
<Nimi>Hussein Geipel</Nimi>
<Keel>Guarani</Keel>
<Email>hgeipelm@theglobeandmail.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Talagi Airport</Lennujaam>
<Hind>Ringgit</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="24" sihtkoht="Kenya" transport="metroo">
<Kontakt>
<Nimi>Helaine Tutchell</Nimi>
<Keel>Uighur</Keel>
<Email>htutchelln@cargocollective.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Jerusalem Airport</Lennujaam>
<Hind>Franc</Hind>
<Kestus>15</Kestus>
</Lennuinfo>
</Reis>
<Reis id="25" sihtkoht="South Africa" transport="buss">
<Kontakt>
<Nimi>Willem Horder</Nimi>
<Keel>Igbo</Keel>
<Email>whordero@tuttocitta.it</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Whitsunday Island Airport</Lennujaam>
<Hind>Euro</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="26" sihtkoht="USA" transport="tramm">
<Kontakt>
<Nimi>Oby Roser</Nimi>
<Keel>Arabic</Keel>
<Email>oroserp@sun.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Liège Airport</Lennujaam>
<Hind>Rupiah</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="27" sihtkoht="Singapore" transport="mootorratas">
<Kontakt>
<Nimi>Alex Ovell</Nimi>
<Keel>Nepali</Keel>
<Email>aovellq@redcross.org</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Ambunti Airport</Lennujaam>
<Hind>Krone</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="28" sihtkoht="Germany" transport="mootorratas">
<Kontakt>
<Nimi>Truman Quinnelly</Nimi>
<Keel>Bashkir</Keel>
<Email>tquinnellyr@weibo.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Andøya Airport</Lennujaam>
<Hind>Dinar</Hind>
<Kestus>4</Kestus>
</Lennuinfo>
</Reis>
<Reis id="29" sihtkoht="France" transport="lennuk">
<Kontakt>
<Nimi>Judah Carsberg</Nimi>
<Keel>Kanuri</Keel>
<Email>jcarsbergs@wired.com</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Earlton (Timiskaming Regional) Airport</Lennujaam>
<Hind>Krona</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
<Reis id="30" sihtkoht="South Africa" transport="auto">
<Kontakt>
<Nimi>Cullan Braunthal</Nimi>
<Keel>Uighur</Keel>
<Email>cbraunthalt@themeforest.net</Email>
</Kontakt>
<Lennuinfo>
<Lennujaam>Flughafen München-Riem</Lennujaam>
<Hind>Euro</Hind>
<Kestus>3</Kestus>
</Lennuinfo>
</Reis>
</Reisid>
6. Kuva andmed XSLT abil järgmisel kujul:
- Kuvada iga reisi sihtkoht pealkirjana, kasutades
<h1>. - Komponendid peavad olema kuvatud täpploeteluna (
<ul>). - Kolmanda taseme struktuuri andmed tuleb kuvada kollasel taustal.
- Lisa oma tingimus (nt reisi hind või eriline soovitus peab olema esile tõstetud teatud tingimustel).
- Kuva iga reisi kogumaksumuse, liites transport, majutuse, ekskursioonide ja muude kulude hinnad kokku.
- Filtreeri ja kuva ainult need reisid, mille transport sisaldab lennureisi.
- Sorteeri kõik reisid vastavalt hinnangule (nt kliendihinnang, kui selline väli on olemas XML-is, kui ei ole kasuta teine numbriline väli).
- Kuva kõik xml andmed tabelina, kus read on üle rea erineva värviga.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="UTF-8" />
<xsl:template match="/Reisid">
<html>
<head>
<title>Reisid</title>
<style>
table {
border-collapse: collapse;
width: 100%;
font-family: Arial, sans-serif;
}
th, td {
border: 1px solid #333;
padding: 8px;
text-align: left;
}
th {
background-color: #666;
color: white;
}
tr:nth-child(odd) {
background-color: #f9f9f9;
}
tr:nth-child(even) {
background-color: #e9e9e9;
}
.highlight {
background-color: yellow;
}
</style>
</head>
<body>
<h2>Reiside nimekiri</h2>
<table>
<thead>
<tr>
<th>Sihtkoht</th>
<th>Transport</th>
<th>Reisi info</th>
<th>Kontakt</th>
<th>Kogumaksumus</th>
</tr>
</thead>
<tbody>
<xsl:for-each select="Reis">
<xsl:sort select="number(Lennuinfo/Kestus)" data-type="number" order="ascending" />
<tr>
<td>
<xsl:value-of select="@sihtkoht" />
</td>
<td>
<xsl:value-of select="@transport" />
</td>
<td>
<ul style="margin:0; padding-left: 18px;">
<li>
Lennujaam: <xsl:value-of select="Lennuinfo/Lennujaam" />
</li>
<li>
Hind:
<xsl:choose>
<xsl:when test="number(Lennuinfo/Kestus) > 3">
<span class="highlight">
<xsl:value-of select="Lennuinfo/Hind" />
</span>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="Lennuinfo/Hind" />
</xsl:otherwise>
</xsl:choose>
</li>
<li>
Kestus: <xsl:value-of select="Lennuinfo/Kestus" />
</li>
</ul>
</td>
<td>
<ul style="margin:0; padding-left: 18px; background-color: yellow; padding: 5px;">
<li>
Nimi: <xsl:value-of select="Kontakt/Nimi" />
</li>
<li>
Keel: <xsl:value-of select="Kontakt/Keel" />
</li>
<li>
Email: <xsl:value-of select="Kontakt/Email" />
</li>
</ul>
</td>
<td>
<xsl:variable name="hindVal" select="number(Lennuinfo/Kestus) * 10" />
<xsl:variable name="transportVal" select="100" />
<xsl:variable name="majutusVal" select="50" />
<xsl:variable name="ekskursioonidVal" select="30" />
<xsl:variable name="muudKuludVal" select="20" />
<xsl:value-of select="$hindVal + $transportVal + $majutusVal + $ekskursioonidVal + $muudKuludVal" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Kuidas välja näeb:

XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/reisid"
xmlns="http://www.example.com/reisid"
elementFormDefault="qualified">
<xs:element name="Reisid">
<xs:complexType>
<xs:sequence>
<xs:element name="Reis" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Lennuinfo">
<xs:complexType>
<xs:sequence>
<xs:element name="Lennujaam" type="xs:string"/>
<xs:element name="Hind" type="xs:string"/>
<xs:element name="Kestus" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Kontakt">
<xs:complexType>
<xs:sequence>
<xs:element name="Nimi" type="xs:string"/>
<xs:element name="Keel" type="xs:string"/>
<xs:element name="Email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="sihtkoht" type="xs:string" use="required"/>
<xs:attribute name="transport" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML Sisse lisame:
<Reisid xmlns="http://www.example.com/reisid"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="reisid.xsd">