XML

XML (Extensible Markup Language - rozszerzalny język znaczników) jest językiem do przechowywania i przekazywania informacji w sieci WWW.

Chociaż HTML( Hypertext Markup Language - hipertekstowy język znaczników) jest w tej chwili najpopularniejszym językiem wykorzystywanym do tworzenia stron WWW, to jego pojemnoœć przechowywania danych jest ograniczona. Natomiast XML ma elastycznš składnię, dzięki której można opisać praktycznie wszystkie rodzaje informacji - od prostego przepisu do złożonej bazy danych (stšd okreœlenie - rozszerzalny). Dzięki swojej strukturze informacje w dokumentach XML dokładnie oznakowane. Można je w prosty sposób odnaleŸć, pobrać, posortować, przefiltrować, uporzšdkować i dalej przetwarzać. XML stanowi dobry sposób obsługiwania szybko zwiększajšcej się liczby złożonych informacji. Pozwala oddzielić dane od interfejsu użytkownika. Dzięki temu można je łatwo zmieniać,  nie ingerujšc w strukturę strony WWW.

Struktura dokumentu XML

Dokument XML jest zwykłym tekstem. Można więc redagować go używajšc tych samych narzędzi co w przypadku HTML (np. Notatnika).

Dokument XML składa się z dwóch podstawowych częœci: prologu i elementu głównego.

Przykładowy prolog:

<?xml version="1.0" ?>
<!-- Nazwa pliku: Ksišżki -->

Pierwszy wiersz, to deklaracja XML i podanie wersji dokumentu XML.

Następny wiersz jest komentarzem (tak samo jak w kodzie HTML).

Prolog może zawierać jeszcze inne składniki.

Drugš zasadniczš częœć dokumentu XML stanowi element zwany głównym. Przypomina on element <BODY> z HTML. W nim mogš zostać zagnieżdżone kolejne elementy.

Typowy element składa się ze znacznika poczštkowego, zawartoœci elementu i znacznika końcowego. Zawartoœciš elementu mogš być dane znakowe, inne (zagnieżdżone) elementy lub ich kombinacja.

Przykładowy element główny:

<SPIS>
  <KSIAZKA>
    <TYTUL>Pan tadeusz</TYTUL>
    <AUTOR>Adam Mickiewicz</AUTOR>
    <OPRAWA>twarda oprawa</OPRAWA>
    <STRONY>345</STRONY>
    <CENA>30zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Potop</TYTUL>
    <AUTOR>Henryk Sienkiewicz</AUTOR>
    <OPRAWA>miękka oprawa</OPRAWA>
    <STRONY>534</STRONY>
    <CENA>45zł</CENA>
  </KSIAZKA>
</SPIS>

Podstawowe zasady XML-a:

ˇ         Dokument musi posiadać dokładnie jeden element najwyższego poziomu (element główny).

ˇ         Elementy muszš być poprawnie zagnieżdżone.

ˇ         Każdy element musi mieć znacznik poczštkowy i końcowy.

ˇ         Nazwa typu elementu w znaczniku poczštkowym musi być dokładnie taka sama jak w odpowiadajšcym mu  znaczniku końcowym

ˇ         W nazwach typów elementów istotna jest wielkoœć liter.

ˇ         W zawartoœci znaczników (w danych), a także w samych znacznikach można stosować polskie znaki, jednakże wczeœniej należy poinformować o tym przeglšdarkę w prologu:

    <?xml version="1.0" encoding="iso8859-2" standalone="yes"?>

   

 

 

Wyœwietlanie dokumentu XML

Dokumenty XML można bezpoœrednio otwierać w przeglšdarce  internetowej lub zagnieżdżać w kodzie HTML.

W pierwszym przypadku przeglšdarka wyœwietli dokładnie dokument XML wraz ze znacznikami.

Zwykle nie chcemy wyœwietlać znaczników (struktury) dokumentu. Musimy wtedy poinformować przeglšdarkę o sposobie formatowania danych, dołšczajšc plik tzw. arkusza stylów i informację o tym w prologu. 

<?xml - stylesheet type="text/css" href=Spis.css"?>

Przykładowy arkusz stylów:

/* Nazwa pliku: Spis.css */
 
KSIAZKA 
{display:block;
margin-top:12pt;
font-size:10pt}
 
TYTUL 
{display:block;
font-size:12pt;
font-weight:bold;
font-style:italic}
 
AUTOR 
{display:block;
margin-left:15pt;
font-weight:bold}
 
OPRAWA 
{display:block;
margin-left:15pt}
 
STRONY 
{display:none}
 
CENA 
{display:block;
margin-left:15pt}
 

Przykładowy dokument XML z odsyłaczem do arkusza stylów:

<!-- Nazwa pliku: Spis.xml -->
 
<?xml-stylesheet type="text/css" href="Spis.css" version="1.0" encoding="iso8859-2" standalone="yes"?>
 
<SPIS>
  <KSIAZKA>
    <TYTUL>Przygody Hucka</TYTUL>
    <AUTOR>Mark Twain</AUTOR>
    <OPRAWA>okładka papierowa</OPRAWA>
    <STRONY>298</STRONY>
    <CENA>32zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>dŸbła trawy</TYTUL>
    <AUTOR>Walt Whitman</AUTOR>
    <OPRAWA>twarda oprawa</OPRAWA>
    <STRONY>462</STRONY>
    <CENA>36zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Legenda o Sennej Dolinie</TYTUL>
    <AUTOR>Washington Irving</AUTOR>
    <OPRAWA>okładka papierowa</OPRAWA>
    <STRONY>98</STRONY>
    <CENA>15zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Marmurowy faun</TYTUL>
    <AUTOR>Nathaniel Hawthorne</AUTOR>
    <OPRAWA>oprawa tekturowa</OPRAWA>
    <STRONY>473</STRONY>
    <CENA>42zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Moby Dick</TYTUL>
    <AUTOR>Herman Melville</AUTOR>
    <OPRAWA>twarda oprawa</OPRAWA>
    <STRONY>724</STRONY>
    <CENA>29zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Portret damy</TYTUL>
    <AUTOR>Henry James</AUTOR>
    <OPRAWA>okładka papierowa</OPRAWA>
    <STRONY>256</STRONY>
    <CENA>24zł</CENA>
  </KSIAZKA>
  <KSIAZKA>
    <TYTUL>Szkarłatna litera</TYTUL>
    <AUTOR>Nathaniel Hawthorne</AUTOR>
    <OPRAWA>oprawa tekturowa</OPRAWA>
    <STRONY>253</STRONY>
    <CENA>26zł</CENA>
  </KSIAZKA>
</SPIS>

Zagnieżdżanie dokumentu XML w HTML

 

Umieszczenie dokumentu XML w kodzie HTML wykonujemy w dwóch etapach:

ˇ         Łšczymy dokument XML ze stronš HTML

ˇ         Wišżemy elementy HTML z elementami XML

 

Połšczenie dokumentu XML ze stronš HTML

Można to zrobić na dwa sposoby:

    Przykład:

<HTML>
 
  <HEAD>
    <TITLE>Opis ksišżki</TITLE>
  </HEAD>
 
  <BODY>
 
    <XML ID="dsoKsiazka">
      <?xml version="1.0" encoding="iso8859-2"?>
        <KSIAZKA>
        <TYTUL>Przygody Hucka</TYTUL>
        <AUTOR>Mark Twain</AUTOR>
        <OPRAWA>okładka papierowa</OPRAWA>
        <STRONY>298</STRONY>
        <CENA>72zł</CENA>
      </KSIAZKA>
    </XML>
    <!-- inne elementy HTML  -->
  </BODY>
</HTML>
 
 

    Przykład:

<HTML>
 
  <HEAD>
    <TITLE>Opis ksišżki</TITLE>
  </HEAD>
 
  <BODY>
 
    <XML ID="dsoKsiazka" SRC="Ksiazka.xml"></XML>
    <!-- inne elementy HTML  -->
  </BODY>
</HTML>

Wišzanie elementów HTML z elementami XML

Dwa sposoby wišzania:

    Przykład:

<HTML>
 
  <HEAD>
    <TITLE>Spis ksišżek</TITLE>
  </HEAD>
 
  <BODY>
 
    <XML ID="dsoSpis" SRC="Spis.xml"></XML>
 
    <H2>Opis ksišżki</H2>
 
    <SPAN STYLE="font-style:italic">Tytuł: </SPAN>
    <SPAN DATASRC="#dsoSpis"DATAFLD="TYTUL"
      STYLE="font-weight:bold"></SPAN> 
    <BR>
    <SPAN STYLE="font-style:italic">Autor: </SPAN>
    <SPAN DATASRC="#dsoSpis" DATAFLD="AUTOR"></SPAN> 
    <BR>
    <SPAN STYLE="font-style:italic">Rodzaj oprawy: </SPAN>
    <SPAN DATASRC="#dsoSpis" DATAFLD="OPRAWA"></SPAN> 
    <BR>
    <SPAN STYLE="font-style:italic">Liczba stron: </SPAN>
    <SPAN DATASRC="#dsoSpis" DATAFLD="STRONY"></SPAN> 
    <BR>
    <SPAN STYLE="font-style:italic">Cena: </SPAN>
    <SPAN DATASRC="#dsoSpis" DATAFLD="CENA"></SPAN> 
 
    <HR>
 
    <BUTTON ONCLICK="dsoSpis.recordset.movefirst()">|&lt; Poczštek</BUTTON>
    <BUTTON ONCLICK="dsoSpis.recordset.moveprevious();
      if (dsoSpis.recordset.BOF)
      dsoSpis.recordset.movenext()">&lt; Do tyłu</BUTTON>
    <BUTTON ONCLICK="dsoSpis.recordset.movenext();
      if (dsoSpis.recordset.EOF) 
      dsoSpis.recordset.moveprevious()">Do przodu &gt;</BUTTON>
    <BUTTON ONCLICK="dsoSpis.recordset.movelast()">Koniec &gt;|</BUTTON>
 
  </BODY>
 
</HTML>
 
 

ˇ         Wišzanie przez tabelę.

    Przykład:

<HTML>
 
  <HEAD>
    <TITLE>Spis ksišżek</TITLE>
  </HEAD>
 
  <BODY>
 
    <XML ID="dsoSpis" SRC="Spis.xml"></XML>
 
    <H2>Spis ksišżek</H2>
 
    <TABLE DATASRC="#dsoSpis" BORDER="1" CELLPADDING="5">
      <THEAD>
        <TH>Tytuł</TH>
        <TH>Autor</TH>
        <TH>Oprawa</TH>
        <TH>Strony</TH>
          <TH>Cena</TH>
      </THEAD> 
      <TR ALIGN="center">
        <TD><SPAN DATAFLD="TYTUL" 
          STYLE="font-style:italic"></SPAN></TD>
        <TD><SPAN DATAFLD="AUTOR"></SPAN></TD>
        <TD><SPAN DATAFLD="OPRAWA"></SPAN></TD>
          <TD><SPAN DATAFLD="STRONY"></SPAN></TD>
          <TD><SPAN DATAFLD="CENA"></SPAN></TD>
      </TR>
    </TABLE>
 
  </BODY>
 
</HTML>

Zadanie

Uzupełnić swojš stronę z ramkami podstronš HTML, uruchamianš z menu, zawierajšcš dowišzany dokument XML. Dokument ten przedstawiać będzie spis oprogramowania komputerowego Szkolnego Centrum Multimedialnego.

Struktura spisu powinna zawierać: