XML – informacje o zaliczeniu

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.

Przykładowe tematy

Czekamy przede wszystkim na Państwa pomysły, np. związane z zainteresowaniami. W przeszłości pojawiały się m.in. tematy związane z sieciami neuronowymi, eksploracją jaskiń, muzyką. Ale w razie braku pomysłów, poniżej wymieniamy kilka standardowych tematów.

  1. Struktura aktów prawnych obejmująca polskie prawodawstwo (zob. Rozporządzenie w sprawie Zasad techniki prawodawczej i dostępne przykłady ustaw i rozporządzeń). XSL do wizualizacji, program do wykonywania automatycznej nowelizacji (uzyskiwania tekstu ujednoliconego). Ewentualnie nowelizacje także w XSLT, a aplikacja jako opakowanie całości, np. Webowy interfejs użytkownika.
  2. Sklep, stany magazynowe, dostawy, zamówienia, ...
  3. Sklep (/ wypożyczalnia / wyszukiwarka ofert / ...) z towarami z konkretnej branży, np. komputerami, aparatami foto, książkami, muzyką – aby można było szczegółowo opisywać cechy towarów i porównywać / wyszukiwać.
  4. CMS lub system obiegu dokumentów z własną strukturą dokumentów i metadanych.

Zadanie 1 – 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.

Zadanie 2 – 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 wyniku 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 (niekoniecznie wszystkie rzeczy na raz) w celu unikania duplikacji kodu (i logiki),
  3. efektywność, na ile te technologie pozwalają,
  4. struktura i czytelność rozwiązania.

Zadanie 3 – 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. logika aplikacji korzystająca z modelu uzyskanego jako tłumaczenie schematu zgodne z JAXB,
  3. udostępnienie logiki opracowanej w zadaniu 2 przez WebService.

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