" w dokumencie XML nie oznacza to, że w
tym miejscu znajduje się paragraf, jak to ma miejsce w HTML.
W zależności od kontekstu taki tag może oznaczać parametr,
pisarza, poetę, powiat, p... (i wcale nie jest powiedziane, że
musi zaczynać się na "p").
4
2
3. XML jest tekstem...
%
XML jest tekstem, ale nie należy go czytać
Często się zdarza, że programy korzystające z formularzy,
książek adresowych i innych sformatowanych danych
przechowują swoje dane na dysku, zapisując je zarówno
w postaci binarnej, jak i tekstowej. Dużą zaletą postaci
tekstowej jest to, że użytkownik, jeśli to tylko konieczne, może
przeglądać dane bez potrzeby korzystania z dodatkowych
aplikacji; ostatecznie można odczytać dane korzystając
z edytora tekstu. Postać tekstowa pozwala również
wykonawcy na łatwiejsze lokalizowanie i usuwanie błędów w
aplikacjach. Podobnie jak HTML, pliki XML są tekstowe
i, choć nie powinny być przeglądane przez osoby postronne,
mogą być gdy zajdzie taka potrzeba.
5
2
Jednak w przeciwieństwie do HTML, reguły dotyczące
plików XML są ścisłe i nienaruszalne. yle napisany tag,
zgubiony nawias czy atrybut nie ujęty w cudzysłów czyni plik
XML bezużytecznym, podczas gdy w HTML taka praktyka
jest tolerowana, a często nawet jawnie dozwolona. Oficjalna
specyfikacja języka XML zabrania aplikacjom domyślać się co
ma znaczyć dany fragment uszkodzonego plik XML; jeśli w
pliku jest błąd, program powinien wstrzymać
wykonywanie i zgłosić błąd.
6
2
4. XML jest nadmiarowy
%
XML jest nadmiarowy
Z powodu zastosowania postaci tekstowej i używania tagów
do rozgraniczenia danych, pliki XML są znacząco większe
niż pliki binarne z takimi samymi danymi. To świadoma
decyzja projektantów języka XML. Korzyści płynące z postaci
tekstowej są znaczące (patrz punkt 3. XML jest tekstem...),
a wady takiego rozwiązania mogą być łatwo skompensowane.
Miejsce na dysku twardym jest znacznie tańsze niż dawniej, a
programy do kompresji takie jak zip czy gzip pakują pliki
szybko i skutecznie. Dodatkowo protokoły komunikacyjne
służące np. do transmisji modemowej czy HTTP/1.1, będący
podstawą Sieci, kompresują pliki w locie, zachowując
przepustowość łącza.
7
2
5. XML to rodzina technologii
%
XML to rodzina technologii
XML 1.0 jest specyfikacją, która definiuje czym są "tagi" i
"atrybuty". Oprócz XML 1.0 na "rodzinę XML" składa się stale
rosnący zestaw modułów, które oferują usługi przydatne do
wypełnienia ważnych i częstych zadań. Xlink Opisuje
standardowy sposób dodawania odnośników do plików XML,
XPointer i XFragments to sposoby na wskazywanie na daną
część dokumentu XML. XPointer przypomina trochę odnośnik
URL, jednak zamniast wskazywać na dokument w sieci,
wskazuje na dane zawarte w pliku XML. CSS, język opisu
stylu strony, można stosować w odniesieniu do XML w taki
sam sposób jak do HTML.
8
2
XSL jest zaawansowanym językiem do określania stylu
strony. bazuje na XSLT, języku transformacji, służącym do
dodawania, usuwania oraz modyfikowania tagów i atrybutów.
DOM jest zestawem standardowych funkcji służących do
manipulowania plikami XML (i HTML) z poziomu języka
programowania. XML Schemas 1 i 2 pomagają programistom
precyzyjnie określać strukturę tworzonych formatów na bazie
XML. Wiele innych modułów i narzędzi jest już dostępnych,
lub znajdują się jeszcze w fazie produkcji. Informacje można
odnalezć na stronie technicznych raportów organizacji W3C
(http://www.w3.org/TR/).
9
2
6. XML to nowość, ale bez przesady
%
XML to nowość, ale bez przesady
Początek XML to rok 1996, a do roku 1998 był tzw.
rekomendacją W3C, co może sprawić wrażenie, że nie jest to
najświeższa technologia. Rzeczywiście, technologia nie jest
nowa. Zanim powstał XML, był jeszcze SGML stworzony już
na początku lat 80-tych, w roku 1986 został standardem ISO,
powszechnie używany do tworzenia dokumentacji dużych
projektów. Rozwój HTML to rok 1990. Projektanci XML po
prostu zostawili najlepsze części specyfikacji SGML
i mając na uwadze doświadczenia z językiem HTML,
stworzyli rzecz nie gorszą od oryginału, a znacznie bardziej
prostą i przejrzystą.
0
3
Jednakże niektóre ewolucje trudno odróżnić od rewolucji...
I trzeba przyznać, że podczas gdy SGML jest przeważnie
używany do technicznej dokumentacji, pomijając wszelkie
inne dane, z XML jest dokładnie odwrotnie.
1
3
7. XML prowadzi HTML do XHTML
%
XML prowadzi HTML do XHTML
Jest jedna ważna aplikacja XML, to XHTML, następca HTML.
XHTML ma wiele wspólnych elementów z HTML. Składnia
została lekko zmieniona, by dostosować ją do wymogów
XML. Dokument, który "bazuje na XML" dziedziczy składnie
i zasady XML w pewien określony sposób (np. XHTML
dopuszcza "
", ale nie " " oznacza zawsze " oznacza "paragraf", a w innym "pisarza").
ustalonym tagom (w XHTML "
"paragraf", a nie "pisarza", "powiat" czy cokolwiek innego).
2
3
8. XML jest modularny
%
XML jest modularny
XML pozwala na zdefiniowanie nowego formatu poprzez
łączenie lub korzystanie z innego. Ponieważ różne formaty
są tworzone zupełnie niezależnie, mogą mieć tagi lub
atrybuty o takiej samej nazwie, co powoduje
dwuznaczność przy łączeniu takich dokumentów (np. w
jednym "
W celu wyeliminowania takiej dwuznaczności w XML
wprowadzona mechanizm przestrzeni nazw. Dobrymi
przykładami dokumentów korzystających z przestrzeni nazw
są XSL i RDF. XML Schema został zaprojektowany, by
odzwierciedlać to wsparcie dla modularności na poziomie
definiowania struktury dokumentu XML, ułatwiając połączenie
dwóch schematów w celu stworzenia trzeciego, który
obejmuje strukturę połączonych dokumentów.
3
3
9. XML jest podstawą ...
%
XML jest podstawą RDF i Semantic Web Znaczeniowej
Sieci
Resource Description Framework (RDF szkielet do opisu
zasobów) to dokument XML, który wspomaga opis
zasobów i metadanych aplikacji, takich jak lista piosenek,
kolekcja fotografii i bibliografie. Na przykład RDF może
pozwolić użytkownikowi na rozpoznanie osób na fotografii
w internecie używając informacji z książki adresowej;
następnie klient pocztowy wyśle informacje do tych osób, że
ich zdjęcie pokazało się w sieci. Tak jak HTML łączy
dokumenty, menu i formę aplikacji, co tworzy oryginalny,
znany nam internet, tak RDF integruje szereg aplikacji
w jedną Znaczeniową Sieć.
4
3
Tak jak ludzie potrzebują uzgodnić znaczenie słów jakimi się
posługują przy rozmowie, tak komputery potrzebują
mechanizmu ustalającego znaczenie terminów używanych we
wzajemnej komunikacji. Opisy formalne takich terminów
w określonych obszarach (np. sprzedaż lub produkcja)
nazwane są ontologiami i są niezbędnym elementem
Znaczeniowej Sieci. RDF, ontologie i reprezentacja treści
tak, aby komputery mogły lepiej wspomagać ludzi to tematy
poruszane w Znaczeniowej Sieci.
5
3
10. XML nie jest licencjonowany...
%
XML nie jest licencjonowany, jest niezależny od platformy
i ma duże zaplecze
Wybierając XML jako podstawę projektu, uzyskuje się dostęp
do olbrzymiej i ciągle rosnącej bazy narzędzi (a być może
jedno z nich już robi to czego potrzebujesz) oraz
profesjonalistów doświadczonych w tej technologii.
Wybór XML to coś jakby wybór SQL do baz danych; wciąż
potrzeba zrobić własną bazę danych i aplikację z procedurami
operującymi na niej, ale jest całe zaplecze narzędzi i ludzi
mogących udzielić pomocy. Ponieważ XML jest wolny od
opłat licencyjnych, tworzenie własnej aplikacji nie wymaga
dodatkowych kosztów. Olbrzymie zaplecze, które wciąż się
powiększa, oznacza, że producent oprogramowania nie jest
już związany z jednym dostawcą rozwiązań.
6
3
XML nie zawsze musi być najlepszym rozwiązaniem, ale
zawsze trzeba je rozpatrzyć.
7
3
Przykład dokumentu XML
Nie zapomnij o jutrzejszym
wieczorze!
8
3
Lista HTML ...
9
3
... zgodna z XML
0
4
Obiekt SimpleXML
$kanal =<<<_XML_
http://menu.przyklad.com/
wyboru posiłki na wieczór.
_XML_;
$xml = simplexml_load_string($kanal);
1
4
Dostęp do struktury
print "Kanał $xml->title jest dostępny pod
adresem $xml->link. ";
print "Jego opis to: \"$xml->description\"";
2
4
Przykład 1
$menu=<<<_XML_
http://menu.przyklad.com/
posiłki na wieczór.
http://menu.przyklad.com/potrawy.php?
potrawa=ryba
pokrzepi.
3
4
http://menu.przyklad.com/potrawy.php?
potrawa=podroby
parzona z solą i przyprawami.
http://menu.przyklad.com/potrawy.php?
potrawa=uchowiec
przyjemności płynącej z konsumpcji ucha
morskiego.
_XML_;
4
4
$xml = simplexml_load_string($menu);
print "Kanał {$xml->channel->title} jest dostępny pod
adresem {$xml->channel->link}. ";
print "Jego opis to: \"{$xml->channel->description}\"";
5
4
Wynik działania skryptu
Kanał Co jest na obiad? jest dostępny pod adresem
http://menu.przyklad.com/.
Jego opis to: "Poniżej znajdują się możliwe do
wyboru posiłki na wieczór."
6
4
Dostęp do atrybutów
print 'Ten RSS jest w wersji ' .
$xml['version'];
7
4
Elementy o identycznych nazwach
print "Tytuł: " . $xml->channel->item[0]->title . "\n";
print "Tytuł: " . $xml->channel->item[1]->title . "\n";
print "Tytuł: " . $xml->channel->item[2]->title . "\n";
8
4
Wykorzystanie foreach
foreach ($xml->channel->item as $element) {
print "Tytuł: " . $element->title . "\n";
}
9
4
...
foreach ($xml->channel->item[0] as
$nazwa_elementu => $zawartosc) {
print "$nazwa_elementu to $zawartosc\n";
}
0
5
Modyfikacja elementów i atrybutów
$xml['version'] = '6.3';
$xml->channel->title = strtoupper($xml->channel->title);
for ($i = 0; $i < 3; $i++) {
$xml->channel->item[$i]->link =
str_replace('menu.przyklad.com',
'obiad.przyklad.org', $xml->channel->item[$i]-
>link);
}
1
5
Przykład 2
$menu=<<<_XML_
http://menu.przyklad.com/
posiłki na wieczór.
http://menu.przyklad.com/potrawy.php?
potrawa=ryba
pokrzepi.
2
5
http://menu.przyklad.com/potrawy.php?
potrawa=podroby
parzona z solą i przyprawami.
http://menu.przyklad.com/potrawy.php?
potrawa=uchowiec
przyjemności płynącej z konsumpcji ucha
morskiego.
_XML_;
3
5
// Tworzenie obiektu SimpleXML.
$xml = simplexml_load_string($menu);
// Modyfikacja obiektu SimpleXML.
$xml['version'] = '6.3';
$xml->channel->title = strtoupper($xml->channel->title);
for ($i = 0; $i < 3; $i++) {
$xml->channel->item[$i]->link =
str_replace('menu.przyklad.com','obiad.przyklad.org',
$xml->channel->item[$i]->link);
}
// Wyślij dokument XML do klienta WWW.
header('Content-Type: text/xml');
print $xml->asXML();
?>
4
5
Wynik działania skryptu
http://menu.przyklad.com/
http://obiad.przyklad.org/potrawy.php?potrawa=ryba
http://obiad.przyklad.org/potrawy.php?potrawa=podroby
przyprawami.
http://obiad.przyklad.org/potrawy.php?potrawa=uchowiec
morskiego.
5
5
Zdalny element XML
$xml =
simplexml_load_file('http://rss.news.yahoo.com/r
ss/oddlyenough');
print "\n";
";
foreach ($xml->channel->item as $element) {
print "
}
print "
6
5
Zapisanie do pliku
$xml =
simplexml_load_file('http://rss.news.ya
hoo.com/rss/oddlyenough');
$xml->asXML('odd.xml');
7
5
Generowanie dokumentu XML
$channel = array('title' => "Co jest na
obiad?",
'link' =>
'http://menu.przyklad.com/',
'description' => 'Poniżej
znajdują się możliwe do wyboru posiłki na
wieczór.');
print "
foreach ($channel as $element => $zawartosc)
{
print " <$element>";
print htmlentities($zawartosc);
print "$element>\n";
}
print "
8
5
Wynik działania skryptu
http://menu.przyklad.com/
wyboru posiłki na wieczór.
9
5
Wyszukiwarka
Podobne podstrony:
Podstawy programowania II 2
Podstawy programowania II 3
Podstawy programowania II 5
Podstawy programowania II 6
Podstawy programowania II 1
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Podstawy Programowania Wersja Rozszerzona
Visual C 6 0 Podstawy programowania
matlab podstawy programowania
JP SS 2 algorytmy i podstawy programowania
podstawy programowania 5
Podstawy programowania 11 2013
podstawa programowa
podstawa programowa
ciurla,Podstawy Zarządzania II, Zarządzanie zasobami ludzkimi
Podstawy Programowania
Delphi podstawy programowania rejestr systemowy
wychowanie fizyczne w nowej podstawie programowej
więcej podobnych podstron