XML – informacje

Zadania zaliczeniowe

W celu zaliczenia laboratorium należy zrealizować własny projekt, w którym w istotny sposób wkorzystywany jest XML i poznawane na przedmiocie technologie. Formalnie do zrealizowania w określonych terminach są trzy zadania. Terminy na stronie głównej wykładu.

Schemat

Schemat określający strukturę dokumentów używanych w projekcie. Struktura dokumentu powinna uwzględniać (umożliwiać / ułatwiać) operacje, które będziemy wykonywać na dokumentach w ramach dalszych dwóch zadań.

Wspólne wymagania:

  1. XML Schema (lub po uzgodnieniu z ćwiczeniowcem inny format, DTD tylko w uzasadnionych przypadkach),
  2. przykład poprawnego dokumentu, ilustrujący postać typowego dokumentu oraz ciekawe możliwości struktury,
  3. nowe zastosowanie XML ma być zdefiniowane w osobnej przestrzeni nazw (poza wyjątkowymi sytuacjami gdy wymagana jest kompatybilność z istniejącymi standardami),
  4. można odwoływać się do istniejących zastosowań, gdy jest to sensowne, ale w rozwiązaniu ma być istotny wkład własny,
  5. precyzyjnie i sensownie zdefiniowane typy proste,
  6. wykorzystać importowanie fragmentów schematu, typy nazwane, rozszerzanie / zawężanie typów, grupy i grupy atrybutów, ewentualnie (gdy to zasadne) globalne elementy / atrybuty w celu uniknięcia duplikacji definicji; należy do tego podejść z rozsądkiem - istotna nie jest fizyczna duplikacja kodu, ale logiczne powiązanie różnych obiektów; należy pomyśleć także o przyszłej pielęgnacji i zmianach schematu,
  7. klucze i referencje,
  8. dokumentacja kluczowych decyzji analitycznych/projektowych.

Transformacja

Zastosowanie standardów XPath, XSLT, XQuery, CSS, XSL-FO (niekoniecznie wszystkich na raz) do przekształcania i/lub wizualizacji dokumentów.

Przykłady:

  1. nietrywialne wyszukiwanie / przetwarzanie danych przy użyciu XSLT 1.0, XSLT 2.0 lub XQuery i zapisywanie wyniku "dla człowieka" jako (X)HTML+CSS,
  2. nietrywialne przetwarzanie dokumentów j.w. i zapisywanie wyników jako XML; np. aktualizacja dokumentu na podstawie innego dokumentu – nowelizacja aktów prawnych, realizacja dostawy do magazynu itp.,
  3. wizualizacja dokumentów z elementami przetwarzania (rozwiązywanie odwołań, podsumowania ze zagregowanymi danymi...) za pomocą XSLT i zapisanie wymiku jako (X)HTML+CSS,
  4. nieco prostsza wizualizacja w XSLT, ale za to do PDF za pośrednitwem XSL-FO; wykorzystanie możliwości layoutowych (szablony stron z nagłówkiem/stopką, odnośniki...),
  5. zestaw zaawansowanych zapytań XPath do użycia we własnym programie w zadaniu 3; wskazane byłoby umieszczenie w arkuszu XSLT choðby w celu uruchomienia.

Wspólne wymagania:

  1. poprawna obsługa przestrzeni nazw,
  2. zastosowanie szablonów, szablonów nazwanych, własnych funkcji (XQuery/XSLT 2.0), parametrów arkusza i szablonów w celu unikania duplikacji kodu :),
  3. efektywność, na ile te standardy pozwalają,
  4. struktura i czytelność rozwiązania.

Program

Program spinający wszystko w całość i realizujący dodatkowe operacje w miarę potrzeb dla wybranej "bajki". Ilość "logiki" można w pewnym stopniu rozłożyć pomiędzy zadanie 2 i 3, uzgadniając to z ćwiczeniowcem.

Przykłady:

  1. aktualizacja dużych dokumentów XML w sposób strumieniowy (bez wczytywania w całości do pamięci), w oparciu i filtry SAX lub Reader i Writer StAX,
  2. logikia aplikacji korzystająca z modelu uzyskanego jako tłumaczenie schematu zgodne z JAXB,
  3. udostępnienie logiki opracowanej w zadaniu 2 przez WebSerwis.

Wspólne wymagania:

  • obsługa przestrzeni nazw,
  • walidacja,
  • poprawny dobór interfejsu programistycznego do problemu (przetwarzanie węzeł po węźle vs wczytywanie do pamięci),
  • estetyczny kod (w tym brak duplikacji itd.).
Valid XHTML 1.1Valid CSS