XML standardy pokrewne

Podobne dokumenty
Inne standardy zwiazane z XML

Inne standardy zwiazane z XML

XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath 2.0 funkcyjny język programowania

Modele dostępu do dokumentu XML. Implementacja modelu parser. SAX2 pakiet org.xml.sax. Działanie modelu SAX przykład

XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath2.0 funkcyjny język programowania

SAX2 pakiet org.xml.sax

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML w bazach danych, standardy wiążące dokumenty XML

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XML i nowoczesne technologie zarządzania treścią

SAX i DOM wykorzystanie XML-a we własnych aplikacjach. Simple API for XML Parsing Document Object Model

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

XML w bazach danych i bezpieczeństwie

SGML a XML różnice. XML a SGML. Standardy pokrewne. Minimalizacja w SGML-u. Elementy w SGML-u. Atrybuty w SGML-u

Rodzaje przetwarzania XSLT (1) XSLT część 2. Inne standardy związane z XML-em. Rodzaje przetwarzania XSLT (2) Zmienne. Zaawansowane możliwości XSLT

Model semistrukturalny

29. Poprawność składniowa i strukturalna dokumentu XML

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML w bazach danych i bezpieczeństwie

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

76.Struktura oprogramowania rozproszonego.

Podstawy JavaScript ćwiczenia

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

Alicja Marszałek Różne rodzaje baz danych

Procesowanie dokumentów XML

Wprowadzenie do Java Web Start

Programowanie obiektowe zastosowanie języka Java SE

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Przewodnik użytkownika (instrukcja) AutoMagicTest

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wprowadzenie do technologii XML

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Instrukcja do panelu administracyjnego. do zarządzania kontem FTP WebAs.

Środowisko publikacyjne oparte na XML-u. Szymon Zioło 1 maja 2004

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

Rola języka XML narzędziem

Organizacja zajęć BAZY DANYCH II WYKŁAD 1. Plan wykładu. SZBD Oracle

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Java jako język programowania

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Przykładowy dokument XML

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Spis treści. O autorze 13 Przedmowa 15 Wprowadzenie 17

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

System sprzedaŝy rezerwacji

Wykład 8: klasy cz. 4

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

XML w bazach danych, standardy wiaż ace dokumenty XML

252 Bazy danych. Praca z językiem XML

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Podręcznik Użytkownika LSI WRPO

2 Podstawy tworzenia stron internetowych

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Punkt dystrybucji recept

Definiowanie typów dokumentów Część 3. XML Schema

Czym są właściwości. Poprawne projektowanie klas

Bazy danych i strony WWW

Wprowadzenie do projektu QualitySpy

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Zaawansowany kurs języka Python

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Komunikator internetowy w C#

Przewodnik użytkownika (instrukcja) AutoMagicTest

Instrukcja zmian w wersji Vincent Office

Aplikacje Internetowe, Servlety, JSP i JDBC

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

REFERAT O PRACY DYPLOMOWEJ

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

XML we własnych aplikacjach

KURS ACCESS 2003 Wiadomości wstępne

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Standard HL7 (cel, protokoły, zastosowanie) Piotr Dybski Jan Flik

dlibra 3.0 Marcin Heliński

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Program do obsługi ubezpieczeń minifort

Podpisywanie i bezpieczne uruchamianie apletów wg

OfficeObjects e-forms

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Bazy danych 2. Wykład 1

Program do obsługi ubezpieczeń minifort

Zajęcia 4 - Wprowadzenie do Javascript

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

1 Wprowadzenie do J2EE

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wprowadzanie opisu przedmiotu po stronie USOSweb

1 XML w bazach danych

Komunikacja i wymiana danych

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla administratora systemu Warszawa 2007

Transkrypt:

XML standardy pokrewne 1

Standardy wykorzystywane w przetwarzaniu dokumentów XML XPath XML Path Language. XSLT Extensible Styleshheet Language Transformations. Modele dostępu programistycznego do dokumentów XML: SAX Simple API for XML, przetwarzanie strumieniowe (ang. pull parsing), DOM Document Object Model, wiązanie XML-a (ang. XML data binding), np. JAXB. XQuery XML Query Language. XLink uogólnione dowiązania (linki). XForms uogólnione formularze internetowe. XML Signature podpis elektroniczny. XML Encryption szyfrowanie dokumentów XML.... 2006-12-09 XML standardy pokrewne 2 Na slajdzie wymieniono najwaŝniejsze standardy związane z XML-em. XPath język tzw. wyraŝeń ścieŝkowych, pozwalających m. in. na wskazywanie elementów i atrybutów w dokumentach XML, np. /artykuł/rozdział[3]/tytuł. XSLT język opisu przekształceń dokumentów XML. XQuery język zapytań o zawartość dokumentów XML; odpowiednik języka SQL w bazach danych. XML Signature standard podpisywania dokumentów XML (lub ich fragmentów) podpisem elektronicznym. XML Encryption standard szyfrowania dokumentów XML (lub ich fragmentów). 2

Modele dostępu do dokumentu XML Pozwalają programistom na wysokopoziomowy dostęp do zawartości dokumentów XML : korzystamy z abstrakcyjnych obiektów, nie troszczymy się o analizę leksykalną i składniową. SAX Simple API for XML: model zdarzeniowy. DOM Document Object Model: obiektowy model drzewa struktury, zwykle implementowany przy uŝyciu SAX. XML data binding wiązanie XML-a. Pull parsing przetwarzanie strumieniowe. 2006-12-09 XML standardy pokrewne 3 Dzięki standardowym modelom dostępu do dokumentów XML programiści są zwolnieni z obowiązku Ŝmudnego programowania mechanizmów analizy leksykalnej i składniowej. Korzystając z parsera implementującego model dostają bowiem dokumenty przetworzone do postaci wygodnej abstrakcyjnej struktury danych (np. ciągu zdarzeń lub drzewa). Modele dostępu moŝemy podzielić na: wsadowe (dokument jest przeglądany liniowo od początku do końca) SAX i przetwarzanie strumieniowe, pamięciowe (dokument jest w całości ładowany do pamięci) DOM i wiązanie XML-a. 3

Implementacja modelu parser Parser (procesor) XML-a moduł programistyczny analizujący dokument XML i udostępniający jego zawartość w postaci abstrakcyjnego modelu. Funkcjonalność parsera: analiza leksykalna i składniowa, sprawdzenie poprawności strukturalnej (opcjonalnie). Uniwersalność niezaleŝność od konkretnego języka (schematu, typu dokumentu)! Po co abstrakcyjne modele: jednolity sposób programowania, niezaleŝnie od uŝytego parsera, moŝliwość wymiany parsera, moŝliwość porównywania parserów. 2006-12-09 XML standardy pokrewne 4 Parser zwykle implementuje i pozwala na korzystanie z jednego lub kilku modeli dostępu do dokumentu XML. Parsery są uniwersalne, tzn. moŝna przy ich pomocy przetwarzać dowolne dokumenty XML. 4

Działanie modelu SAX przykład <?xml version="1.0"?> <wiersz bialy="nie"> <autor> William Shakespeare </autor> </tytul> </wiersz> Parser setdocumenthandler Aplikacja startdocument() startelement("wiersz", [bialy="nie" ]) ignorablewhitespace(spacje) startelement("autor",[]) characters("william...") endelement("autor") ignorablewhitespace(spacje) throw SAXException 2006-12-09 XML standardy pokrewne 5 Parser SAX przegląda dokument od początku do końca. KaŜdy napotkany znacznik rozpoczynający lub kończący element, kaŝdy tekst oraz ignorowalne białe znaki powodują wygenerowanie zdarzenia, które aplikacja uŝytkownika moŝe przechwycić, aby wykonać odpowiednie operacje. Białe znaki są zgodnie ze rekomendacją ignorowane, gdy zawartością elementu są jedynie podelementy (model elementowy). SłuŜą bowiem wówczas jedynie do ładnego formatowania dokumentu XML. Parser SAX rozpoznaje je jednak jako ignorowalne, pozwalając aplikacji zdecydować, czy naleŝy jakoś obsłuŝyć ich wystąpienie. Dokument pokazany na slajdzie jest niepoprawny. Dowiadujemy się o tym jednak dopiero w momencie napotkania na błędny znacznik końcowy </tytul>, dla którego nie ma odpowiedniego znacznika początkowego. Do momentu napotkania błędnej sytuacji zawartość dokumentu jest normalnie przetwarzana, zaś aplikacja otrzymuje kolejne zdarzenia. Dopiero w momencie wystąpienia błędu parser zgłasza wyjątek. 5

Drzewo DOM przykład <?xml version="1.0"?> <wiersz> <autor>william Shakespeare </autor> <tytul>sonet 102</tytul> <zwrotka> <wers>...</wers>... </zwrotka> </wiersz> <wiersz> <autor> <tytul> <zwrotka> William Shakespeare Sonet 102 <wers> 2006-12-09 XML standardy pokrewne 6 W modelu DOM na podstawie dokumentu w pamięci tworzone jest drzewo obiektów reprezentujące zawartość dokumentu. Kod programu moŝe nawigować po tym drzewie, pobierać z niego informacje oraz je modyfikować. 6

SAX DOM Przetwarzanie wsadowe. Oszczędny czasowo i pamięciowo. Dobry do wyławiania z dokumentu wybranych elementów. Dokument tylko do odczytu Całe drzewo dokumentu ładowane do pamięci. Kosztowny czasowo i pamięciowo. Pozwala wędrować po drzewie dokumentu. Pozwala tworzyć i modyfikować dokumenty. 2006-12-09 XML standardy pokrewne 7 7

Przetwarzanie strumieniowe (pull parsing) Alternatywa dla modelu SAX: aplikacja wyciąga kolejne zdarzenia z parsera, przetwarzanie kontrolowane przez aplikację, a nie parser, parser działa podobnie jak iterator, kursor lub strumień danych, zachowane cechy modelu SAX: duŝa wydajność, moŝliwość przetwarzania dowolnie duŝych dokumentów. NajwaŜniejsze zalety: moŝliwość przerwania przetwarzania przed końcem pliku, moŝliwość przetwarzania kilku plików na raz, bardziej proceduralny styl programowania. Standaryzacja: Java Community Process, JSR 173: Streaming API for XML, Common API for XML Pull Parsing. 2006-12-09 XML standardy pokrewne 8 Przetwarzanie strumieniowe, podobnie jak SAX, jest modelem wsadowym. RóŜnica polega na tym, Ŝe w modelu SAX parser bombarduje aplikację zdarzeniami, zaś w modelu strumieniowym to aplikacja pobiera z parsera kolejne zdarzenia wtedy, gdy ich potrzebuje. 8

SAX a przetwarzanie strumieniowe SAX: Pull parsing: aplikacja mycontenthandler parser aplikacja parser parse() next() next() next() next() 2006-12-09 XML standardy pokrewne 9 W modelu SAX aplikacja na czas przetwarzania oddaje pełną kontrolę parserowi. Parser jedynie wywołuje metodę aplikacji odpowiedzialną za obsłuŝenie zdarzenia. Natomiast w modelu strumieniowym sterowanie pozostaje pod kontrolą aplikacji, która wtedy gdy potrzebuje kolejnych informacji z dokumentu pobiera je z parsera wywołując metodęnext(). 9

SAX czy pull parsing co wybrać? Kiedy uŝywać modelu wsadowego: potencjalnie duŝe dokumenty, stosunkowo proste, lokalne operacje, waŝna jest efektywność. Pull parsing sprawdza się, gdy: kończymy przetwarzanie po wystąpieniu poszukiwanych danych, przetwarzanie zdarzenia zaleŝy od kontekstu (np. od tego, czy jesteśmy wewnątrz pewnego elementu), przetwarzamy równolegle więcej niŝ jeden plik (np. porównujemy pliki). SAX sprawdza się, gdy: chcemy odfiltrować dokument interesują nas tylko wybrane elementy za jednym przebiegiem dokonujemy kilka niezaleŝnych rodzajów przetwarzania. 2006-12-09 XML standardy pokrewne 10 W wielu sytuacjach znacznie łatwiej programuje się aplikacje korzystając z modelu strumieniowego. MoŜna wtedy bowiem łatwo wykorzystać kontekst wystąpienia elementów oraz stosować rózne techniki programistyczne, np. rekursję. W metodzie SAX jest to niemoŝliwe, poniewaŝ kaŝde wywołanie metody obsługującej zdarzenie jest niezaleŝne od pozostałych wywołań i nie moŝna go wprost związać z innymi zdarzeniami. Model SAX sprawdza się jednak w niektórych prostych zastosowaniach. 10

Wiązanie XML-a (XML data binding) Dokumenty XML a obiekty Javy: DTD/schemat odpowiada definicji klasy, dokument XML (instancja schematu) odpowiada obiektowi (instancji klasy). Pomysł: automatyczne generowanie klas z DTD/schematów. RóŜnice w stosunku do modelu uniwersalnego (np. DOM): zestaw typów/klas i funkcji/metod zaleŝy od typu dokumentu, struktura mniej kosztowna pamięciowo, intuicyjny interfejs dostępu do zawartości, modyfikacja struktury i wartości tylko w ramach tego samego typu dokumentu. 2006-12-09 XML standardy pokrewne 11 Pomysł wiązania XML-a jest podobnie jak model DOM modelem pamięciowym, w którym dokument jest reprezentowany w postaci obiektów w pamięci. O ile jednak w modelu DOM są to obiekty uniwersalne element, atrybut, węzeł tekstowy, o tyle w wiązaniu XML-a są to obiekty specyficzne dla konkretnego zastosowania, odpowiadające elementom i atrybutom zadeklarowanym w schemacie (np. zamawiający, pozycja zamówienia, towar). Klasy implementujące te obiekty są generowane na podstawie schematu lub DTD. 11

DOM czy data binding co wybrać? Kiedy uŝywać modelu pamięciowego: nieduŝe dokumenty (muszą mieścić się w pamięci), operacje wymagające jednoczesnego dostępu do wielu węzłów, tworzenie, edycja i zapisywanie dokumentów w kodzie. DOM sprawdza się, gdy: struktura dokumentów jest nieznana, niedoprecyzowana lub zmienna, dopuszczalna jest niŝsza efektywność. Data binding sprawdza się, gdy: struktura dokumentu jest ustalona i znana (XML Schema/DTD), obiekty w aplikacji są czytanie z dokumentów XMLi zapisywane do dokumentów XML (np. w zastosowaniach związanych z wymianą danych). 2006-12-09 XML standardy pokrewne 12 12

XML i Java Ideologia: Java umoŝliwia uruchamianie raz napisanych programów na wielu platformach sprzętowych/systemowych, XML stanowi uniwersalny nośnik danych, przenośny pomiędzy platformami sprzętowymi i systemami operacyjnymi. Praktyka: wsparcie dla Unicode i róŝnych standardów kodowania, wsparcie dla XML juŝ w bibliotece standardowej (JAXP), wiele narzędzi wspierających i uŝywających XML w Javie: JAXB, SJSXP, JAXR (rejestry w XML), XML Signature (podpis elektroniczny), JAX-RPC, SOAP (programowanie rozproszone). 2006-12-09 XML standardy pokrewne 13 XML i Java są technologiami, któe się lubią ze względu na oferowaną przez nie przenośność pomiędzy platformami sprzętowymi i systemami operacyjnymi. Nie przypadkiem więc najwięcej narzędzi programistycznych wspierających wykorzystanie dokumentów XML napisano w języku Java. 13

JAXP Java API for XML Processing: definicja interfejsów, za pomocą których programiści mogą przetwarzać dokumenty XML we własnych aplikacjach, wzorcowa implementacja, moŝliwość podmiany implementacji wybranego modułu (np. parsera). Wersja 1.3 zawarta w J2SE 5.0: parsery (DOM Level 3 i SAX 2), procesor XSLT 1.0, ewaluator XPath 1.0, procesor XML Schema i DTD. W kolejnych wersjach zapewne: XQuery, przetwarzanie strumieniowe (?). 2006-12-09 XML standardy pokrewne 14 Interfejs JAXP pozwalający na wykorzystanie narzędzi XML-owych (w tym parserów) oraz zawierający ich wzorcowe implementacje został nawet umieszczony jako element standardowych bibliotek Javy. 14

XLink dowiązania w XML-u Linki jakie znamy (HTML): łączą dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujący link (A, IMG). XLink rozszerzona koncepcja dowiązań: dowolne elementy przechowują informacje o linkach, informacja o linkach poza połączonymi dokumentami, więcej niŝ dwa końce linku. Status: rekomendacja W3C z 27 czerwca 2001, korzenie historyczne: HyTime. 2006-12-09 XML standardy pokrewne 15 Tradycyjne hiperlinki HTML-owe są dość ograniczone. XLink znosi te ograniczenia, pozwalając na wiązanie linkiem więcej niŝ dwóch zasobów oraz na zapisywanie informacji o liknku w dowolnym miejscu, takŝe poza zasobami połączonymi linkiem. Dobrym przykładem linku łączącego wiele zasobów jest połączenie dokumentów opisujących cztery osoby: męŝa, Ŝonę, syna i córkę. Taki link moŝe nosić nazwę rodzina. 15

Terminologia Zasób (resource) dowolna adresowalna jednostka informacji lub usługa. Dowiązanie (link) jawnie wyraŝona (przy pomocy elementu wiąŝącego (linking element)) relacja pomiędzy zasobami. te zasoby uczestniczą (participate) w dowiązaniu. Przejście (traversal) uŝycie pary zasobów połączonej dowiązaniem. Łuk (arc) informacja o przejściu między dwoma zasobami (kierunek, zachowanie aplikacji, itp.): wychodzący (outbound), wchodzący (inbound), niezaleŝny (third party). 2006-12-09 XML standardy pokrewne 16 Jeśli link łączy wiele zasobów, to istotne staje się, jak będzie moŝna pomiędzy nimi nawigować. Określają to przejścia pomiędzy zasobami. Domyślnie przejścia są tworzone dla kaŝdej pary zasobów uczestniczących w linku, ale moŝna to ograniczyć tylko do wybranych przejść. Przejścia są zapisane w postaci łuków, określających m. in. kierunek przejścia, sposób zachowania aplikacji w momencie wykonania przejścia (np. otwarcie nowego okna lub zastąpienie treści w bieŝącym oknie), itp. 16

Dowiązania XLink Extended link: wiąŝe dowolną liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiąŝącym). łuki opisujące sposoby przechodzenia pomiędzy zasobami, role zasobów uczestniczących w linku, role łuków. Simple link: link wychodzący, wiąŝe dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, jeden łuk z zasobu lokalnego do zewnętrznego. 2006-12-09 XML standardy pokrewne 17 Linki proste odpowiadają modelowi znanemu z HTML-a. Ciekawsze są linki rozszerzone, któe mogą łączyć wiele zasobów. 17

Simple link przykład <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="torun.xml">toruniu</geogr>.</biogram> </osoba> 2006-12-09 XML standardy pokrewne 18 Link jest zapisany w elemencie geogr. Parser rozpoznaje link nie po nazwie elementu (jak w HTML-u), lecz po wystąpieniu specjalnego atrybutu xlink:type. Dzięki temu linki moŝna umieszczać w elementach o dowolnych nazwach (zgodnie z duchem XML-a, który nie ogranicza repertuaru nazw elementów). 18

Extended link - przykład <fikcja xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <wypowiedz xlink:type="resource">kopernik była kobietą!</wypowiedz> <film xlink:type="locator" xlink:href="seksmisja.xml" xlink:title="seksmisja"/> <osoba xlink:type="locator" xlink:href="kopernik.xml" xlink:title="kopernik, Mikołaj"/> <pojecie xlink:type="locator" xlink:href="kobieta.xml" xlink:title="kobieta"/> </fikcja> 2006-12-09 XML standardy pokrewne 19 Pokazany na slajdzie link rozszerzony łączy cztery zasoby: jeden lokalny (zapisany w elemencie wypowiedz) oraz trzy zewnętrzne, znajdujące się w osobnych dokumentach. 19

Przyszłość XLink Zastosowania: organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu, dostarczanie wartości dodanej zbiorów linków. Zasięg: lokalny: serwery linków operujące na bazie linków, Internet? Problemy: wizualizacja extended links, synchronizacja zasobów i linków (Internet). 2006-12-09 XML standardy pokrewne 20 XLink nie jest powszechnie wykorzystywany. Spotyka się wprawdzie serwery linków, które przechowują linki poza dokumentami, w bazie danych, i nanoszą je na dokumenty wtedy, gdy chcemy je wyświetlić. Są to jednak póki co prace badawcze. Zastosowanie XLink w Internecie moŝe napotkać zasadnicze problemy infrastrukturalne: skąd moja przeglądarka internetowa ma wiedzieć, Ŝe dokument, któy chcę wyświetlić na mojej prywatnej stronie uczestniczy w linku stworzonym przez kogoś na drugim końcu świata? Nawet kwestia sensownego wyświetlania linkó łączących więcej niŝ dwa zasoby nie jest problemem trywialnym. MoŜna sobie jednak wyobrazić nowy model biznesowy działania przyszłych wydawnictw, które zamiast sprzedawać treść (np. czasopisma, encyklopedie), mogłyby sprzedawać bazy linków porządkujące treść dostępną w Internecie, mimo Ŝe nie mają prawa modyfikowania tej treści. Taka baza linków choć nie obejmująca samej treści mogłaby sama w sobie posiadać wartość poznawczą i ekonomiczną. 20

XForms zaawansowane formularze Odpowiedź na ograniczenia formularzy w HTML-u: kontrola dziedziny wprowadzanych danych po stronie klienta, specyfikowanie pól obowiązkowych i opcjonalnych, zaleŝności między polami, np.: wartość pola jest funkcją wartości innych pól, pole jest widoczne tylko przy określonej zawartości innych pól; wyzwalacze aktywowane zdarzeniami interfejsu uŝytkownika, bogaty zasób kontrolek, np.: powtórzenia, grupy, wielopoziomowe wybory, suwaki do wyboru wartości z zakresu, kontrolki wyboru plików. Status: rekomendacja W3C z 14 października 2003 r., moŝliwość zanurzania w XHTML-u. 2006-12-09 XML standardy pokrewne 21 Formularze internetowe dostępne w HTML-u mają bardzo ograniczone moŝliwości: nie pozwalają (bez uŝycia dodatkowych skomplikowanych mechanizmów) na kontrolę poprawności wpisywanych wartości, nie umoŝliwiają sterowania widocznością pewnych pól w zaleŝności od wartości innych pól (np. pole Nr karty kredytowej widoczne tylko wtedy, gdy jako formę płatności wybrano kartę), itp. Te niedogodności rozwiązuje standard XForms. Nie jest on powszechnie uŝywany aby korzystać z formularzy XForms w popularnych przeglądarkach internetowych, trzeba instalować dodatkowe wtyczki. Przygotowywana właśnie wersja 2.0 rekomendacji XHTML będzie jednak zawierała XForms jako swą integralną część, co daje szanse na szersze wykorzystanie XForms. 21

XForms prosty formularz <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <xf:model id="model1"> <xf:instance> <dane xmlns=""><imię/><nazwisko/></dane> </xf:instance> <xf:submission id="submit" method="post" action="http://xformstest.org/test"/> </xf:model> </head> <body> <h1>wpisz swoje dane</h1> <xf:input model="model1" ref="imię"> <xf:label>imię</xf:label> </xf:input> <xf:input model="model1" ref="nazwisko"> <xf:label>nazwisko</xf:label> </xf:input> <xf:submit submission="submit"> <xf:label>save</xf:label> </xf:submit> </body> </html> 2006-12-09 XML standardy pokrewne 22 W definicji formularza XForms osobno definiuje się model danych (fragment dokuemntu XML, w którym zostaną zapisane wartości wprowadzone na formularzu), a osobno wizualizację formularza. Wizualizacja, oprócz samych pól, moŝe zawierać elementy interaktywne oraz definiować zaleŝności pomiędzy polami. 22

XForms przykład (program X-Smiles) Źródło: Kazienko, P., Co tam panie w XML-u?, Software 2.0, 6/2003 2006-12-09 XML standardy pokrewne 23 23

Gdzie szukać dalej: programowanie SAX Home Page: www.saxproject.org Document Object Model (DOM): www.w3.org/dom xml.coverpages.org/dom.html Common API for XML Pull Parsing www.xmlpull.org IBM alphaworks: www.alphaworks.ibm.com Free XML tools and software Lars Marius Garshol: www.garshol.priv.no/download/xmltools/ XML w Javie: java.sun.com/xml 2006-12-09 XML standardy pokrewne 24 24

Gdzie szukać dalej: programowanie Gajda, P., SAX i DOM, czyli XML w naszych aplikacjach Software 2.0, nr 6/2001, Wydawnictwo Software Brauncajs, T., JAXB i Castor wiązanie XML-a w Javie Software 2.0, nr 6/2002, Wydawnictwo Software Plechawski, M., Nie pozwól się popychać Software 2.0, nr 6/2003, Wydawnictwo Software Czarnik, P., Alternatywne źródła zdarzeń SAX Software 2.0, nr 6/2004, Wydawnictwo Software 2006-12-09 XML standardy pokrewne 25 25

Gdzie szukać dalej Arciniegas, A. F., What is XLink? www.xml.com/pub/a/2000/09/xlink Carr, L., Initial Experiences of an XLink Implementation journals.ecs.soton.ac.uk/xml4j/xlinkexperience.html XForms Institute. Interactive XForms School xformsinstitute.com Dubinko, M., What Are XForms? www.xml.com/pub/a/2001/09/05/xforms.html Dubinko, M., Ten Favorite XForms Engines www.xml.com/pub/a/2005/02/09/xforms.html Kazienko, P., Co tam panie w XML-u? Software 2.0, nr 6/2003, Wydawnictwo Software 2006-12-09 XML standardy pokrewne 26 26