Tworząc pliki XML piszemy je tak, aby nie miały płaskiej struktury, ponieważ pisanie ich nie miałoby sensu - można napisać wtedy pliki tekstowe. Często jednak warto napisać dokument złożony z wielu znaczników, z których prawie każdy ma swoją funkcję, opisujący coś innego. Zamiast wszystko zostawić dla przetwarzania dokumentu watro zrobić dokument ze złożona strukturą. Wiele programistów teraz porzuca pliki INI lub podobne składające się z kluczy, z których każdy jest sobie równy na rzecz takich, które są elastyczne i mogą mieć dowolną formę, dowolna może być złożoność. Wyjaśnienie do akapitu w nast. temacie

Kiedy warto użyć XML

edytuj

Zamiast zastanawiać się która dyrektywa jaką ma funkcję, można przecież otrzymać dokument, w którym struktura sama się opisuje.

Zamiast dokumentu:

Dział

edytuj
[dział]
nazwa:sprzedaż odkurzaczy
dyrektor: Maciej woźny
sekretarka-dyrektora: Weronika Maciejska
sekretarka-druga: Maria Woźniacka
pracownik-jakiś1:Maciej Maciejski
pracownik-jakiś2:Patrycjusz Sobierański
...

w którym nie ma żadnej semantyki, lepiej otrzymać taki:

<?xml version="1.0" encoding="UTF-7" ?>
<dział>
<nazwa>Sprzedaż odkurzaczy</nazwa>
<dyrektor>Maciej Woźny</dyrektor>
<pracownicy>
  <sekretarka>Weronika Maciejska</sekretarka>
  <sekretarka>Maria Woźniacka</sekretarka>
  <pracownik>Maciej Maciejski</pracownik>
  <pracownik>Patrycjusz Sobierański</pracownik>
</pracownicy>
</dział>

Opis dokumentu

edytuj

W tym dokumencie mamy opis pewnego działu.

  • Nazwa tego działu to Sprzedaż odkurzaczy;
  • Dyrektor to Maciej Woźny;
  • W tym dziale mamy 4 (wszystkie dzieci elementu pracownicy) pracowników;
  • Sekretarki (te dwa elementy traktujemy jako TABLICĘ) to Weronika Maciejska i Maria Woźniacka;
  • Pierwszy pracownik to Maciej Maciejski, drugi to Patrycjusz Sobierański;

Jak widać, sama struktura pliku XML wskazuje na to, kto ma jaką funkcję w dziale. Można też stworzyć dokument, który mógłby określić strukturę wszystkich pracowników:

<szef dane="Maciej Szul">
   <sekretarka>Julia Woźniacka</sekretarka>
   <manager>Mariusz Włoch</manager>
   <dyrektor działu="Produkcja" dane="Julian Mazur">
      <sekretarka>Julia Woźniacka</sekretarka>
      <pracownik>Maciej Kukulski</pracownik>
   </dyrektor>
</szef>
</code>

Opis dokumentu

edytuj
  • Szef est najważniejszy i zawiera w sobie wszystkich pracowników;
  • Sekretarka jest bezpośrednio pracownikiem Szefa;
  • Manager też, mimo tego, że jest bardziej jako wolny strzelec, szef może go np. zwolnić;
  • Dyrektor zarządza działem Produkcja i zawiera w sobie pracowników.
  • Sekretarka, mimo że ta sama, pełni tu inną funkcję, więc musi być wymieniona jako pracownica dyrektora działu Produkcja .
  • Pracownik jest równy sekretarce;

Jak odczytywać pliki XML

edytuj

W sumie każde procedury i dane należy odczytywać w podany poniżej sposób, zwłaszcza w plikach XML i wywodzących się z SGML.

Jak widać, opisując oba dokumenty użyłem nietypowego języka, to znaczy nie użyłem wyrażeń typu sekretarki nazywają się ... . Napisałem, że szef zawiera w sobie wszystkich pracowników.


Mimo wszystko napisałem opisy i tak ludzkim językiem, ponieważ np. opis drugiego dokumentu powinien tak brzmieć:

  • Szef to element główny, wartość atrybutu dane to Maciej Szul. Element ten zawiera w sobie wszystkie znaczniki.
  • Element sekretarka ma wartość Julia Woźniacka.
  • Element Manager ma wartość Mariusz Włoch.
  • Atrybut działu znacznika dyrektor ma wartość Produkcja; Atrybut dane ma wartość Julian Mazur. Znacznik ten zawiera elementy sekretarka i pracownik.
  • Element pracownikma wartość Maciej Kukulski.
  • Element 'sekretarka ma wartość Julia Woźniacka.
  Pisząc opisy tuż pod kodami chciałem pokazać, abyś zrozumiał, o co chodzi w zapisie tych kodów, 
a sprostowanie pod nimi dopiero pokazało, jak należy czytać dokumenty XML.
Bo jak można byłoby przeczytać dokument, który ma znaczniki np. <a />, <mak />, <dfb7701 /> itp?
Na następnej stronie znajdziesz informacje dotyczące struktury plików XML.

Kiedy nie używać XML-a?

edytuj

Nie zawsze XML jest lekarstwem na problemy z danymi. Jeżeli mamy stworzyć dane o płaskiej strukturze, to należy pisać pliki typu INI lub rozdzielane różnymi znakami np. przecinkami, pionowymi liniami itd.

  1. Jeżeli tworzymy dane od razu tylko i wyłącznie do prezentacji, to napiszmy je w HTML-u lub jeżeli ma miejsce mało ważna transformacja - XHTML-u.
  2. Jeżeli dane mają być także lekko poglądowe to już powinniśmy użyć XML-a, ale skorzystać np. z CSS'.
  3. Jeśli piszemy strony internetowe, a zamiast HTML-a chcemy użyć własnej aplikacji XML, bo z nią mamy lepszy pomysł - tylko wtedy, gdy istnieje ona dla bardzo małej grupy odbiorców np. dla klasy, czy bliskiej rodziny. Jeżeli dla dużej liczby odbiorców: NIE!!!. Wiele osób jest niepełnosprawnych, duża liczba z nich do poruszania się w Internecie potrzebuje specjalnych narzędzi, najczęściej LEKTORA. Dużo osób korzysta z poleceń głosowych - język niebędący standardem nie będzie interpretowany przez wiele programów np. XForms służące do obsługi formularzy jest obsługiwanych, ponieważ jest standardem. Programy z Twoją aplikacją XML nie będą wiedziały co zrobić. Jedynym rozwiązaniem jeśli masz zrobiony serwis w XML - użyć transformacji XSLT. Jeżeli prowadzisz bardzo złożony serwis lub korzystasz z niestandardowych rozwiązań albo twoja witryna już jest nieprzystosowana do obsługi specjalnych narzędzi - to już go użyj.