1. Serwis internetowy.

Zrealizuj serwis internetowy używając w nim technlogii XML-owych.
Wyjściowy HTML powinien być generowany z danych w postaci XML za pomocą arkuszy XSLT (oczywiście część statyczna to może być po prostu HTML). Dla danych XML, dla których można określić strukturę, należy to zrobić za pomocą DTD lub XMLSchema (co najmniej dla "artykułów" w modelu dwuwarstwowym, dla pośredniej reprezentacji w modelu trójwarstwowym).

wersja 1 (model dwuwarstwowy):
Na serwerze można umieszczać dokumenty o określonej strukturze (np. artykuły), w dokumentach są zapisane oprócz treści także różne meta-dane (dla artykułu np. autor, data utworzenia, modyfikacji, tematyka, słowa kluczowe). Serwis powinien umożliwiać wyszukiwanie tylko wybranych dokumentów, wyświetlać ogólne informacje o nich na liście i każdy dokument z osobna.

wersja 2 (model trójwarstwowy):
Dane znajdują się w bazie danych i/lub różnych plikach, na ich podstawie jest generowany dokument XML opisujący semantycznie odczytane dane i on jest za pomocą XSLT konwertowany do wyjściowego HTML. Mile widziane sparametryzowanie ostatniej transformacji (np. różne style lub szczegółowość).
Generowanie XML i transformacja do HTML powinny się odbywać bez zapiwywania na dysku (strumieniowo albo operując na reprezentacji DOM).

Zalecane sposoby implementacji (ale inne też niewykluczone):

Tematyka serwisu dowolna. Przykładowe propozycje:

2. Wyrażenia algebraiczne.

Zaprojektuj i zapisz jako DTD lub XMLSchema strukturę dokumentu XML pozwalającą na zapisywanie w nim wyrażeń algebraicznych z liczbami, zmiennymi, działaniami '+', '-', '*', '/', pewnymi dodatkowymi funkcjami (trygonometryczne, logarytm naturalny, funkcja wykładnicza itp...).

Zaprogramuj obliczanie wartości wyrażenia dla zadanych wartości zmiennych oraz różniczkowanie symboliczne po zadanej zmiennej.
Można to zrobić za pomocą arkusza XSLT lub programując w modelu DOM, na wyjściu powinna być liczba, a w drugim przypadku wyrażenie zapisane w takiej samej strukturze XML.
Aby w XSLT obliczać funkcje jak np. sinus, można użyć FXSL.

Zapisz XSLT wizualizujące wyrażenie (jako HTML, plain text lub MathML).

3. Backup bazy danych w XML.

Zapisz schemat lub DTD dokumentu określającego strukturę relacyjnej bazy danych (tabele, kolumny i ich typy, klucze, referencje). Powiedzmy, że przykładowy taki dokument zapiszemy w struktura1.xml.

Zapisz XSLT tworzące na podstawie struktury bazy danych (struktura1.xml) DTD lub XMLSchema dokumentów mogących zawierać zawartość takiej bazy danych. Nazwijmy go zawartosc1.dtd.

Zapisz XSLT tworzące na podstawie struktury (struktura1.xml) polecenia SQL tworzące taką bazę danych.

Napisz program, który wczytuje schemat bazy danych (schemat1.xml), odczytuje zawartość określonej bazy danych i zapisuje plik XML zgodny z zawartosc1.dtd, zawierający zawartość bazy danych.

Napisz program, który odczytuje strukturę bazy danych (struktura1.xml), plik XML z zawartością bazy danych i zapisuje te dane do bazy danych (zarówno tworząc nową bazę, jak i uaktualniając istnejącą).

Wystarczy obsługiwać jedną implementację SQL, ale programy powinny być dość łatwo rozszerzalne.