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 | přečteno 23028×

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:

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:

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:

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.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=411