Pora na bezpłatny XML

Projekt Apache XML jest próbą opracowania zestawu narzędzi do tworzenia aplikacji XML.

Projekt Apache XML jest próbą opracowania zestawu narzędzi do tworzenia aplikacji XML.

Dotychczasowe projekty open source oparte na technologii XML stanowiły rozwiązania fragmentaryczne, nieprzydatne w środowiskach produkcyjnych. Projektem, który ma szansę zmienić tę sytuację, jest Apache XML zainicjowany jeszcze w 1999 r. przez Apache Software Foundation (jej głównym produktem jest popularny serwer WWW o tej samej nazwie). Mimo zbieżnej nazwy, Apache XML nie korzysta z kodu serwera Apache i ma z nim niewiele wspólnego.

Po ponad roku pracy osiągnięcia zespołu są imponujące, a opracowane oprogramowanie jest już stosowane przez programistów tworzących aplikacje WWW. Apache XML jest wart zainteresowania również z tego powodu, że jest rozwiązaniem niezależnym od platformy systemowej. Większość narzędzi opracowano w języku Java. Działają one jako aplikacje Java lub servlety. Apache XML to 6 niezależnych projektów, z których każdy skupia się na innym aspekcie XML. W przyszłości wszystkie projekty mają zostać połączone, aby stworzyć spójne i silne środowisko przetwarzania dokumentów XML.

XERCES to kluczowy element Apache XML, będący zestawem analizatorów składni (parserów) XML, które jednocześnie służą do sprawdzania poprawności formalnej (walidacji) dokumentów XML. To zestaw parserów "na każdą okazję", napisanych w Javie i C++, obsługujących standardy W3C XML i DOM Level 1 i 2 (niestety, obsługa XML Schema na razie znajduje się w stadium początkowym). Wszystkie parsery mają budowę modułową i można je dostosować do indywidualnych potrzeb projektu. Ciekawostką jest wrapper (moduł "opakowujący") udostępniający wszystkie mechanizmy Xercesa z poziomu skryptów Perla. Druga przydatna funkcja to interfejs do COM, który pozwala na włączenie trybu kompatybilności z Microsoft MSXML.

XALAN jest procesorem stylów XSLT, dokonującym transformacji XML do HTML, pliku tekstowego lub innych dokumentów XML, używając do tego celu stylów XSL. Może działać jako aplet, servlet lub tradycyjny moduł aplikacji (nawet z linii poleceń jako podręczny konwerter). Do analizowania składni XML korzysta standardowo z Xercesa, ale może także współpracować z dowolnym parserem zgodnym z DOM Level 2.

COCOON to motor publikacji dokumentów XML, tworzący (statycznie lub dynamicznie) na podstawie tych samych danych różnego rodzaju dokumenty przekazywane klientom - poczynając od HTML, przez WML (urządzenia WAP), aż po dokumenty PDF generowane "na żądanie". Można też zwracać czysty XML, jeśli jest taka potrzeba. Zasada działania Cocoona jest w pewnym stopniu podobna do JSP (Java Server Pages). Znacznie ułatwia on pracę nad zawartością serwisów opartych na XML, ponieważ pozwala także na rozdzielenie zawartości i logiki na różne dokumenty XML, które następnie będą łączone (przy użyciu transformacji XSL) i przetwarzane przez Cocoon.

FOP to oryginalny formatter wydruku sterowany przez obiekty XSL, czyli po prostu aplet Java. Przetwarza drzewo obiektu XML w dokument PDF. Jakość tworzonych PDF-ów na razie zaspokaja tylko potrzeby w zakresie prostych dokumentów. Pojawia się problem z uzyskaniem polskich znaków diakrytycznych, a dodanie każdej kolejnej czcionki do zestawu wykorzystywanego przez generator wymaga rekompilacji pakietu.

XANG jest servletem Javy, którego zadaniem jest integracja dostępu do różnych źródeł danych.

To podstawowe narzędzie do przygotowywania dynamicznych dokumentów tworzonych po stronie serwera. Jego zaletą jest łatwość stosowania. Wystarczy przygotować plik (.XAP) zawierający definicje wszystkich źródeł danych, mapowanie zapytań (query) do konkretnych metod i logikę metod. Wszystkie elementy opisane za pomocą Xang są łatwo dostępne, ponieważ są adresowalnymi elementami URL.

Xang ma na celu separowanie danych, warstwy logicznej i prezentacyjnej. Językiem opisu plików .XAP jest ECMAScript (podzbiór Java Script).

SOAP (Simple Object Access Protocol) to kolejny, istotny element projektu. Jest to implementacja znajdującego się w fazie projektowej protokołu W3C SOAP. Projekt wykorzystuje udostępnione nieodpłatnie oprogramowanie IBM SOAP4J. SOAP ma być "lekkim" protokołem (analogia do LDAP), służącym do wymiany informacji w architekturze rozproszonej. Oparto go na XML. Ma na celu zdefiniowanie środowiska do przekazywania komunikatów i zdalnego wywoływania procedur (przy użyciu tradycyjnego RPC przenoszonego przez protokoły HTTP i SMTP) w aplikacjach XML.

Ostatnie, mniej istotne narzędzie to SVG Batik Toolkit. Jest napisanym w Javie pakietem aplikacji do manipulowania grafiką SVG (Scalable Vector Graphics). SVG to opracowywane przez W3C definicje gramatyczne XML do pełnego opisu wektorowej grafiki 2D wraz z takimi szczegółami, jak przezroczystość, różne efekty specjalne (np. cienie), animacja itp.

Apache XML to na razie jedynie zestaw luźno powiązanych ze sobą narzędzi. Nie jest gotowym rozwiązaniem, takim jak serwer Microsoft BizTalk. Największym problemem Apache XML jest żmudne konfigurowanie go (brak centralnego zarządzania i monitorowania poszczególnych elementów) i fakt, że między poszczególnymi komponentami występuje wiele drobnych niezgodności ze względu na różny poziom ich rozwoju. Niemniej, podobnie jak w przypadku innych rozwiązań open source, narzędzia te umożliwiają dostosowanie ich do własnych potrzeb. Jest to znakomite rozwiązanie dla programistów, którzy chcą poznać tajniki przetwarzania XML. Wszystkie opisane komponenty wraz z kodem źródłowym można bezpłatnie pobrać z serwerahttp://xml.apache.org. Znajduje się na nim wyczerpujący zestaw dokumentacji projektowej i użytkowej wraz z wieloma przykładami konkretnego zastosowania.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200