LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Wprowadzenie do XML-a

W ciągu ostatnich kilku lat format XML na stałe zagościł w świecie oprogramowania. Jego obecność szczególnie daje się zauważyć w Internecie. Stał się on tak popularny, gdyż rozwiązuje wiele trudności, na które dawniej napotykali twórcy i użytkownicy oprogramowania w dziedzinie reprezentacji i wymiany danych. W niniejszym artykule zostaną omówione główne cechy formatu XML i wymienione w punktach zasady tworzenia dokumentów XML.

15.9.2004 15:00 | Tomasz Nikiel | czytane 24949×

KOMENTARZE   

Wprowadzenie do XML-a


Spis treści

Wstęp
Podstawowe cechy
Składnia
Znaki specjalne
Odsyłacze

Wstęp

W ciągu ostatnich kilku lat format XML na stałe zagościł w świecie oprogramowania. Jego obecność szczególnie daje się zauważyć w Internecie. Stał się on tak popularny, gdyż rozwiązuje wiele trudności, na które dawniej napotykali twórcy i użytkownicy oprogramowania w dziedzinie reprezentacji i wymiany danych. W niniejszym artykule zostaną omówione główne cechy formatu XML i wymienione w punktach zasady tworzenia dokumentów XML.

Podstawowe cechy

XML (eXtensible Markup Language) jest tekstowym formatem służącym do opisywania informacji (danych) w sposób strukturalny. Często mylnie (i na wyrost) nazywany jest „językiem”. Nie jest to język, a jedynie format przy pomocy którego nadajemy znaczenie poszczególnym fragmentom informacji.

Jego główne zalety:

  • Jest formatem ogólnym. Nie jest ukierunkowany na jedno, konkretne zastosowanie, lecz definiuje ogólną składnię opisu danych. XML Nie dochodzi do poziomu semantyki, a jedynie ogranicza się do definicji uniwersalnego sposobu wyodrębniania elementów struktury danych.

  • Jest bardzo elastyczny i uniwersalny. Dzięki zastosowanym rozwiązaniom XML nadaje się do opisu bardzo zróżnicowanych struktur. Równie dobrze sprawdza się przy opisie regularnych danych tabelarycznych, jak i hierarchicznych, czy nawet danych o nieregularnej i nieokreślonej z góry strukturze (np. tekst formatowany).

  • Jest to format tekstowy, a więc czytelny dla człowieka. To ogromna zaleta w porównaniu z formatami binarnymi, które do obsługi wymagają narzędzi specjalnie stworzonych z myślą o prezentacji tych formatów. Dysponując jedynie edytorem tekstowym człowiek jest w stanie łatwo i szybko przejrzeć informację XML i zorientować się w jej treści.

  • Jest bardzo rozpowszechniony. Istnieje duża ilość dojrzałych i efektywnych narzędzi do jego przetwarzania. W praktyce oznacza to, że w każdej sytuacji, kiedy programista potrzebuje opisać jakąś strukturę danych, nie musi wymyślać nowej składni opisu i tworzyć oprogramowania, które interpretowałoby tę składnię. Może on zastosować XML wykorzystując istniejące narzędzia, które wyręczają programistę szczególnie w dwóch dziedzinach: rozbioru gramatycznego (tzw. parsery, które automatycznie zamieniają format tekstowy na model danych w pamięci i kontrolują poprawność składni) oraz modyfikacji i przetwarzania do innych formatów (pokrewne technologie, np. XSLT).

Oto przykład czytelności XML-a. W edytorze tekstowym stworzyliśmy krótki dokument:

Jedno ze słów jest pogrubione, drugie podkreślone, a trzecie pochylone. Zapisujemy go do formatu binarnego (DOC):

Można rozpoznać litery wchodzące w skład napisu, ale trudno powiedzieć coś więcej. Natomiast po zapisaniu do formatu SXW, który oparty jest na XML-u, można (po rozpakowaniu) na pierwszy rzut oka zobaczyć słowa „jest”, „napis” i „testowy” otoczone znacznikami określającymi ich styl, a ponad nimi definicje tych stylów.

Oto inne porównanie. Poniżej widzimy początek pliku graficznego z programu Corel DRAW (binarny format CDR)

oraz fragment pliku graficznego w XML-owym formacie SVG. Widać trzy spośród elementów rysunku: prostokąt (rect), okrąg (path z atrybutem o wartości arc) i krzywą.

Składnia

Zastosowanie XML-a nie powinno sprawić problemu osobom znającym HTML, gdyż XML jest do niego podobny. Tak jak i w przypadku HTML-a:

  • Dokument XML składa się z tekstu, w którym znajdują się elementy określające strukturę, oznaczone przy pomocy znaczników (tags).

  • Istnieją 2 rodzaje znaczników: otwierające i zamykające. Znacznik otwierający oznaczony jest przez słowo (nazwę znacznika) zamknięte w parze nawiasów < i > (np. <title>). Znacznik zamykający dodatkowo posiada znak / umieszczony przed nazwą (np. </address>). Para znaczników: otwierającego i zamykającego o tej samej nazwie wyznacza granicę elementu struktury (np. <title>To jest tytuł</title>).

  • Znaczniki mogą się zagnieżdżać, czyli jedne mogą występować w obszarze otoczonym przez drugie.

Tak wygląda prawidłowy plik XML (jest to jeden z plików konfiguracyjnych serwera aplikacyjnego J2EE JBoss):

<?xml version="1.0" encoding="UTF-8"?>
<StateManager>
  <Users>
    <User>
      <Name>john</Name>
      <Password>needle</Password>
      <Id>DurableSubscriberExample</Id>
    </User>
    <User>
      <Name>guest</Name>
      <Password>guest</Password>
    </User>
    <User>
      <Name>nobody</Name>
      <Password>nobody</Password>
    </User>
    <User>
      <Name>dynsub</Name>
      <Password>dynsub</Password>
    </User>
  </Users>
  <Roles>
    <Role name="guest">
      <UserName>guest</UserName>
      <UserName>john</UserName>
    </Role>
    <Role name="subscriber">
      <UserName>john</UserName>
    </Role>
    <Role name="publisher">
      <UserName>john</UserName>
      <UserName>dynsub</UserName>
    </Role>
    <Role name="durpublisher">
      <UserName>john</UserName>
      <UserName>dynsub</UserName>
    </Role>
    <Role name="noacc">
      <UserName>nobody</UserName>
    </Role>
  </Roles>
  <DurableSubscriptions/>
</StateManager>

Należy jedynie pamiętać, że inaczej niż w HTML-u:

  • Dokument XML musi w całości zawierać się w pojedynczej parze znaczników (otwierającym i zamykającym):

    <doc>
      To jest <red>czerwone</red>
    </doc>
    

    ale nie:

    <part1>
      To jest <red>czerwone</red>
    </part1>
    <part2>
      To jest <green>zielone</green>
    </part2>
    
  • Dokument musi zaczynać się od tzw. instrukcji przetwarzania (processing instruction):

    <?xml version="1.0"?>
    

    Można umieszczać dodatkowe atrybuty, np:

    <?xml version="1.0" encoding="iso-8859-2"?>
    

    Atrybut encoding powinien zawierać odpowiednie dla dokumentu kodowanie znaków. Jeśli go nie ma, wtedy obowiązuje zestaw ASCII.

  • Każdy otwarty znacznik musi być zamknięty. Popularne w HTML-u pojedyncze, niezamykane znaczniki, jak <br> czy <img>, w XML-owej odmianie HTML-a, zwanej XHTML muszą być zamykane: <br></br>. Taki pusty znacznik można (i jest to zalecane) zapisać w formie skróconej: <br/>.

  • Zasięgi różnych znaczników nie mogą się krzyżować - muszą zachowywać ścisłą hierarchię. Dlatego niedopuszczalna jest sytuacja: <b>grube<i>i pochyłe</b>tylko pochyłe</i>.

  • XML jest wrażliwy na wielkość liter. Dlatego fragment: <address>ul. Północna 17</Address> jest nieprawidłowy, ponieważ otwierający <address> nie znajduje odpowiadającego mu znacznika zamykającego.

  • Wartości atrybutów znaczników muszą być zawarte w cudzysłowie. Nie można zapisać: <person name=Mike>. Musi być <person name="Mike"> lub <person name='Mike'>.

Znaki specjalne

Ponieważ niektóre znaki są używane do oznaczania elementów XML-a, istnieje konieczność ich zakodowania. Dlatego znaki: <  >  & zapisuje się w postaci tzw. entities, czyli: &lt;  &gt;  &amp;.

Gdybyśmy chcieli literalnie zacytować fragment XML-a:

<person>
  <first-name>Andrzej</first-name>
  <last-name>Nowak</last-name>
  <age>25</age>
</person>

wewnątrz innego pliku XML-owego, napisalibyśmy:

<example>
  <title>Przykład pliku XML</title>
  <content>
&lt;person&gt;
  &lt;first-name&gt;Andrzej&lt;/first-name&gt;
  &lt;last-name&gt;Nowak&lt;/last-name&gt;
  &lt;age&gt;25&lt;/age&gt;
&lt;/person&gt;
  </content>
</example>

Widać, że jest to niewygodne. Jeśli tekstu jest więcej, lepiej posłużyć się sekcją CDATA. Umieszczone w tej sekcji (czyli pomiędzy sekwencją <![CDATA[ , a ]]>) znaki nie są interpretowane jako XML, więc nie ma potrzeby używać entities. Nasz przykład wyglądałby wtedy tak:

<example>
  <title>Przykład pliku XML</title>
  <content><![CDATA[
<person>
  <first-name>Andrzej</first-name>
  <last-name>Nowak</last-name>
  <age>25</age>
</person>
  ]]></content>
</example>

Teraz element <person> wraz z podelementami nie jest częścią struktury znacznika <example>. Jest on traktowany jak nic nie znaczący tekst.

Odsyłacze

Standardem XML zajmuje się organizacja W3C (WWW Consortium), która rozwija większość standardów związanych z siecią WWW: http://www.w3c.org/XML.

Autor: Tomasz Nikiel, 14-09-2004.


KOMENTARZE

Nie ma komentarzy dla tej pozycji.

Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4875x
2. FreeBSD
Download: 9064x
3. PCLinuxOS-2010
Download: 8561x
4. alcolix
Download: 10944x
5. Onebase Linux
Download: 9660x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6241x

1. xinetd
Download: 2412x
2. RDGS
Download: 937x
3. spkg
Download: 4756x
4. LinPacker
Download: 9962x
5. VFU File Manager
Download: 3197x
6. LeftHand Mała Księgowość
Download: 7202x
7. MISU pyFotoResize
Download: 2807x
8. Lefthand CRM
Download: 3561x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3119x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz