XML i nowoczesne technologie zarządzania treścią

Podobne dokumenty
XML i nowoczesne technologie zarządzania treścią

XML i nowoczesne technologie zarządzania treścią

XML i nowoczesne technologie zarządzania treścią

XML i nowoczesne technologie zarządzania treścią

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

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

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

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

XML i nowoczesne metody zarządzania treścią

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

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

XML i nowoczesne technologie zarządzania treścią 2007/08

Wybrane działy Informatyki Stosowanej

dlibra 3.0 Marcin Heliński

XML w bazach danych i bezpieczeństwie

Dlaczego GML? Gdańsk r. Karol Stachura

Przykładowy dokument XML

Podstawy technologii WWW

Rola języka XML narzędziem

Instrukcja do programu DoUPS 1.0

Baza danych sql. 1. Wprowadzenie

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

System DiLO. Opis interfejsu dostępowego v. 2.0

Zdalna edycja i przeglądanie dokumentacji medycznej.

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Programowanie obiektowe

Instrukcja do programu Do7ki 1.0

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

XML w bazach danych i bezpieczeństwie

Przykładowy dokument XML

XML extensible Markup Language. część 4

76.Struktura oprogramowania rozproszonego.

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

Instrukcja do programu DoDHL 1.5

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

DTD - encje ogólne i parametryczne, przestrzenie nazw

Tworzenie i wykorzystanie usług sieciowych

Metody dostępu do danych

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

Wprowadzenie do XML schema

Tom 6 Opis oprogramowania

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Programowanie Komponentowe WebAPI

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

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Instrukcja obsługi DHL KONWERTER 1.6

SAS Institute TECHNICAL SUPPORT )

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

METADANE GEOINFORMACYJNE PODLASIA

Obsługa gotówki. Instrukcja użytkownika systemu bankowości internetowej dla firm. BOŚBank24 iboss

Szczegółowy opis zamówienia:

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

JDBC w LoXiMie. Interfejs Java Database Connectivity dla systemu LoXiM. Adam Michalik 2008

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

The Binder Consulting

Spis treści. Przedmowa

Instrukcja obsługi Multiconverter 2.0

Analizy na podstawie danych sprawozdawczych - Moduł analiz z obsługą broszur

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

JAX-RS czyli REST w Javie. Adam Kędziora

Laboratorium 7 Blog: dodawanie i edycja wpisów

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

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

Doładowania telefonów

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

Zaawansowany kurs języka Python

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

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

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

GML w praktyce geodezyjnej

Analizy na podstawie danych sprawozdawczych - Moduł Analiz dla Banków Spółdzielczych

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Mechanizmy pracy równoległej. Jarosław Kuchta

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Propozycja standaryzacji usługi lokalizacji adresu

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Kurier DPD dla Subiekt GT


Rys.2.1. Drzewo modelu DOM [1]

Kurs walut. Specyfikacja projektu. Marek Zając

Strumienie, pliki. Sortowanie. Wyjątki.

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Liczba godzin. N (nauczyciel) studia niestacjonarne

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Extensible Markup Language III

Instrukcja użytkownika. Aplikacja dla WF-Mag

Instrukcja do programu DoGLS 1.0

Moduł mapowania danych

Transkrypt:

XML i nowoczesne technologie zarządzania treścią Egzamin, 7 lutego 2014 r. Imię i nazwisko: Czas: 90 minut. Maksymalna suma punktów: 50. Pytania testowe są wielokrotnego wyboru, można przyjąć że co najmniej jedna odpowiedź jest poprawna. Możliwe są oceny częściowe, choć niekoniecznie wprost proporcjonalne do liczby poprawnych podpunktów. Prefiksy xsd i xsl zgodnie z konwencjami wskazują na przestrzenie nazw, odpowiednio, XML Schema i XSLT. W rozwiązaniach można ich używać bez deklarowania. 1. (1 pt) Aby w XML Schema zdefiniować typ zawartości z wartościami rozdzielonymi białymi znakami, np. <a>1 2 5 4 3</a>, należy użyć a) xs:sequence b) xs:list c) xs:union d) xs:group 2. (3 pt) W XML Schema zapisz definicję elementu osoba i jego typu, tak aby: zawartością był {pojedynczy element nick} lub {opisany poniżej ciąg imion i (obowiązkowe w tej sytuacji) nazwisko}, ciąg imion składał się z elementów imię1, imię2, imię3, imię-dodatkowe, przy czym imię1 jest obowiązkowe, imię2 jest opcjonalne, imię3 może wystąpić tylko, jeśli wystąpiło imię2, a imion dodatkowych jest dowolnie wiele, ale mogą wystąpić tylko, jeśli wystąpiło imię3, obowiązkowym atrybutem była płeć, będąca wyborem z pewnego zbioru wartości. <xs:element name="osoba"> <xs:complextype> <xs:choice> <xs:element name="nick" type="xs:string"/> <xs:sequence> <xs:element name="imię1" type="xs:string"/> <xs:sequence minoccurs="0"> <xs:element name="imię2" type="xs:string"/> <xs:sequence minoccurs="0"> <xs:element name="imię3" type="xs:string"/> <xs:element name="imię-dodatkowe" type="xs:string" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:sequence> </xs:sequence> </xs:choice> <xs:attribute name="płeć"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="k"/><xs:enumeration value="m"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> </xs:element>

3. (2 pt) W przykładowym dokumencie pozostawiono luki oznaczone ➀, ➁ i ➂ na wpisanie identyfikatorów przestrzeni nazw. <doc xmlns:p1=" ➀ " xmlns=" ➁ "> <a xmlns=" ➂ " p1:x="a" x="b"/> <p1:a p1:x="a" x="b"/> </doc> Dla których z poniższych zestawów po wpisaniu w luki podanych identyfikatorów otrzymamy poprawny z punktu widzenia przestrzeni nazw dokument XML? a) ➀= urn:n1 ➁= urn:n1 ➂= urn:n1 b) ➀= urn:n1 ➁= urn:n1 ➂= urn:n2 c) ➀= urn:n1 ➁= urn:n2 ➂= urn:n1 d) ➀= urn:n1 ➁= urn:n2 ➂= urn:n2 4. (2 pt) DTD pozwala zdefiniować: a) element jako jeden z podanych napisów-"tokenów" zwierających tylko litery, cyfry i kilka dopuszczalnych znaków, b) atrybut jako pojedynczą cyfrę z przedziału 0-9, c) element posiadający atrybut x lub podelement x, ale nie oba na raz, d) element posiadający dwa podelementy x lub cztery podelementy x, ale nie np. trzy. 5. (3 pt) Masz zdecydować czy w danym projekcie IT należy użyć rozwiązania opartego o XML i usługi sieciowe (web services). Jakie są zalety, a jakie wady takiego rozwiązania i samego formatu XML? W przypadku jakich projektów byłoby ono bardziej wskazane, a w przypadku jakich projektów mniej? Różne zastosowania XML mają te same wspólne podstawy, dzięki czemu można korzystać z istniejących bibliotek, parserów itp. i nie tworzyć takiego wsparcia od podstaw. Gotowe wysokopoziomowe technologie jak XML Schema, XSLT, XQuery, XML Signature,... Format XML oraz standardy WebSerwisów niezależne od platformy, wsparcie dostępne na różnych platformach. Format dający się przeczytać przez człowieka i samoopisujący się - choć to w dużym stopniu zależy od konkretnego zastosowania. Warto używać dla projektów rozproszonych, zróżnicowanych technologicznie, do udostępniania usługi dla zewnętrznych partnerów; także gdy system i tak ma obsługiwać dane w formacie XML. Rozmiar dokumentów / komunikatów zwykle większy niż mógłby być w formacie binarnym i zoptymalizowanym pod kątem konkretnego zastosowania. Przetwarzanie bardziej kosztowne obliczeniowo, szczególnie gdy dane są tłumaczone wewnętrznie na postać binarną (liczby, data i czas, obrazki i inne dane binarne). Standardy WebSerwisów oraz biblioteki je implementujące "ciężkie". Nie ma potrzeby stosować dla projektów scentralizowanych lub wewnętrznych, nie udostępnianych zewnętrznym partnerom, jednorodnych technologicznie, gdy przetwarzane są dane binarne, a ważnym czynnikiem jest wydajność.

6. (2 pt) Czym w WSDL i terminologii związanej z usługami sieciowymi różni się typ portu (porttype) od portu (port)? Typ portu definiuje zbiór operacji wraz z ich komunikatami wejściowymi i wyjściowymi. Odpowiada interfejsowi w takim sensie jak interfejsy w Javie. Port to instancja typu portu, dostępna pod podanym adresem zgodnie z protokołem określonym we wiązaniu (binding). Też odpowiada pojęciu interfejs, ale w innym znaczeniu punkt dostępowy do usługi, punkt styku systemów. 7. (3 pt) Jakie są najważniejsze możliwości technologii JAX-WS (Java API for XML Web Services)? Jakie korzyści, a jakie zagrożenia i ograniczenia wynikają z jej stosowania w porównaniu z implementacją za pomocą podstawowych mechanizmów takich jak (w Javie) serwlet i DOM/SAX/StAX? Zautomatyzowane tłumaczenie między WSDL (światem WebSerwisów) a klasami Javy (światem implementacji), które można wykonywać w dwóch kierunkach: tzw. top-down i bottom-up. Szczególnie wygodna jest możliwość przezroczystego z punktu widzenia programisty zdalnego wywoływania metod: po stronie klienta na wygenerowanym obiekcie proxy (albo port) można wywołać metodę, która w efekcie zostanie wykonana na naszej metodzie z implementacją po stronie serwera. Wiele rzeczy jest dostępnych "za darmo" (wystarczy odpowiednia adnotacja). Główna zaleta (szczególnie w scenariuszu bottom-up) możliwość stworzenia usługi bez znajomości standardów WSDL itp. - może stać się też wadą jeśli automatycznie wygenerowana usługa będzie miała przypadkowy, niewygodny lub nieefektywny interfejs. Trudniej też przy takim podejściu zrealizować niestandardowe zachowania (np. klienta który musi poradzić sobie z nie do końca poprawnym serwerem) bądź dopracować niektóre niskopoziomowe szczegóły komunikacji (np. ze względu na efektywność). 8. (2 pt) Kiedy szczególnie warto używać strumieniowego przetwarzania dokumentów XML (rozumiemy przez to takie technologie jak w Javie SAX i StAX)? Dla dokumentów nie mieszczących się w pamięci oraz zawsze wtedy, gdy zależy nam na efektywności (szczególnie oszczędności pamięci), a operacje do wykonania są stosunkowo proste i nie wymagają jednoczesnego dostępu do wielu węzłów w dokumencie. 9. (2 pt) W trakcie działania aplikacji, gdy za pomocą mechanizmu JAXB odczytuje ona z XML obiekty Javy (unmarshalling), co decyduje o formacie, jakiego oczekuje aplikacja (nazwy elementów itp.)? a) domyślne zasady konwersji określone w specyfikacji JAXB mogłem dopisać jeszcze "oraz nazwy klas, pól itp. w Javie" b) adnotacje Java w klasach, których obiekty są wczytywane c) adnotacje XML umieszczone w elementach annotation/appinfo schematu XSD d) adnotacje XML umieszczone w dodatkowym pliku "bindings"

10. (2 pt) Poniższy fragment XQuery zwraca w wyniku <!-- Ha Ha --> for $i in (1,2,3) return element {concat("elem-", string($i))} { "Ho Ho Ho" } a) drzewo w sensie modelu XPath b) przy serializacji xml dokument XML c) przy serializacji xml encję ogólną przetwarzaną (general parsed entity) d) przy serializacji text tekst zawierający Ha Ha 11. (2 pt) Czym różnią się linki proste (simple links) standardu XLink od odnośników HTML? Sposobem zapisania: w HTML linki zapisuje się w elemencie o określonej nazwie; w XLink odnośnik można zapisać w dowolnym elemencie, a o jego znaczeniu decydują atrybuty z przestrzeni nazw XLink (xlink:type="simple" xlink:href="...") 12. (2 pt) Podaj kilka ograniczeń selektorów CSS, których nie ma język XPath: Wybranie elementów, które zawierają określony podelement albo określoną wartość. Odwołania w warunkach do całego dokumentu Wygodne składanie warunków logicznych Porównania mniejsze / większe itp. Operacje arytmetyczne (to bardziej przy wypisywaniu, no ale do selekcji też może się przydać... np. modulo) 13. (2 pt) Jaką rolę pełni Element Definition Document w komercyjnym narzędziu Adobe FrameMaker? a) Definiuje elementy i ich strukturę (jak DTD). b) Definiuje formatki do wprowadzania danych rekord po rekordzie. c) Definiuje styl elementów. d) Definiuje układ strony i elementy tła. 14. (2 pt) Wymień trzy różne możliwości XQuery niedostępne w XPath 2.0. Tworzenie węzłów nie występujących w dokumencie wejściowym. Tworzenie elementów i atrybutów o wyliczanych nazwach (tak, mieści się w powyższym...). Wyrażenie FLWOR, które daje sortowanie (niedostępne w XPath) i filtrowanie (dostępne wprawdzie za pomocą predykatów lub if-a). Definiowanie własnych funkcji, podział zapytania na pliki. Dostęp do wielu dokumentów na raz. Deklarowanie przestrzeni nazw. Komentarze.

15. (4 pt) Dla dokumentu <towary> <towar id="t1"><nazwa>żelazko</nazwa><cena>200</cena></towar> <towar id="t2"><nazwa>pralka</nazwa><cena>1200</cena></towar> <towar id="t3"><nazwa>odkurzacz</nazwa><cena>300</cena></towar> <towar id="t4"><nazwa>mikrofalówka</nazwa><cena>200</cena></towar> </towary> wypisanie czego (przy metodzie serializacji xml) spowoduje umieszczona w szablonie głównym (template match="/") instrukcja: (Zakładamy, że arkusz nie posiada innych szablonów.) a) <xsl:value-of select="/towary/towar[cena>preceding::cena]"/> (w XSLT 1.0) pralka1200 b) <xsl:value-of select="/towary/towar[cena>preceding::cena]"/> (w XSLT 2.0) pralka1200 odkurzacz300 c) <xsl:copy-of select="/towary/towar[cena>preceding::cena]"/> <towar id="t2"><nazwa>pralka</nazwa><cena>1200</cena></towar> <towar id="t3"><nazwa>odkurzacz</nazwa><cena>300</cena></towar> d) <xsl:apply-templates select="/towary/towar[cena>preceding::cena]"/> pralka1200odkurzacz300 Przyjąłem porównania liczbowe. Specyfikacja jest tu dość niejasna, a implementacje działają różnie (!) i może się zdarzyć, że zostaną zastosowane leksykograficzne porównania napisów. Jedno takie rozwiązanie uwzględniłem. 16. (2 pt) Dla dokumentu o takiej samej strukturze, ale zawierającego być może więcej towarów, napisz ścieżkę XPath 1.0, która wybierze nazwę najdroższego towaru. (Dowolnego z nich, gdyby było klika towarów o takiej samej maksymalnej cenie). //towar[not(cena < //towar/cena)][1]/nazwa 17. (2 pt) Dla dokumentu o takiej samej strukturze, ale zawierającego być może więcej towarów, napisz ścieżkę XPath 2.0 lub XQuery, która wybierze nazwę trzeciego pod względem ceny towaru. Dla rozwiania wątpliwości w tym zadaniu można przyjąć, że wszystkie ceny są różne. for $t1 in //towar[not(cena < //towar/cena)][1] return for $t2 in //towar[not(cena < (//towar except $t1)/cena)][1] return for $t3 in //towar[not(cena < (//towar except ($t1, $t2))/cena)][1] return $t3/nazwa (for $t in //towar order by $t/cena return $t)[3] 18. (2 pt) Dla dokładnie tego samego dokumentu z zadania 15 (przyjmijmy, że jest w pliku przyklad.xml) napisz ścieżkę XPointer w dowolnym schemacie, która wskaże nazwę towaru pralka. Nie możemy nic zakładać o DTD ani XSD tego dokumentu. przyklad.xml#xpointer(//towar[nazwa="pralka")/nazwa :) przyklad.xml#xpointer(/towary/towar[2]/nazwa) przyklad.xml#element(/1/2/1) przyklad.xml#/1/2/1 ale niepoprawne są: przyklad.xml#t2, przyklad.xml#t2/1, bo nie wiemy czy atrybut id ma w DTD podany typ ID.

19. (2 pt) Podaj przykładowe funkcjonalności, które relacyjna baza danych może dawać jako wsparcie dla XML. Import i eksport danych w formacie XML. Zwracanie wyników zapytania jako XML. Przekształcenia XSLT dla wyników zapytań. Pola typu "XML" z dodatkowym wsparciem dla walidacji, zapytań XPath/XQuery itp. Zapytania XPath i XQuery na różne inne sposoby przekładane na bazę danych... 20. (2 pt) Czym "XML-owa baza danych" różni się od zbioru plików XML na dysku? Wsparcie dla współbieżnego dostępu, sesji, transakcji. Kontrola dostępu (użytkownicy, role). Różne kanały dostępu, m.in. API programistyczne (np. XML:DB), interfejs sieciowy (np. HTTP/REST), gotowe nakładki WWW itp. Indeksowanie, cache'owanie i inne zabiegi w celu zwiększenia wydajności. Fizyczna reprezentacja danych na dysku nie musi być tekstowym zapisem XML. 21. (3 pt) Jakie są dwie zasadnicze kategorie systemów zarządzania dokumentami? W czym są podobne, a czym się różnią? System zorientowany na treść / zasoby / dokumenty: System głównie jako repozytorium treści / dokumentów. Uprawnienia do zasobów niezmienne przez cały czas ich życia (no chyba, że ktoś ręcznie zmieni). Użytkownicy przeglądają katalogi i wybierają zasoby do czytania lub edycji. System zorientowany na procesy: Zdefiniowany jest model procesu, zgodnie z którym przetwarzane są dokumenty. W zależności od stanu (statusu przetwarzania) dokumentu, różni użytkownicy (role) są wyznaczani do wykonywania zadań na dokumentach. Użytkownicy zwykle rozpoczynają pracę od listy zada, które przydziela im system na podstawie stanu dokumentów i definicji procesu. 22. (3 pt) W czym wyszukiwanie w ograniczonym systemie zarządzania treścią/dokumentami różni się od wyszukiwania w internecie? Mniejsza liczba dokumentów do zindeksowania. Większa dostępność dokumentów. Często dostępna lista wszystkich dokumentów (niepotrzebne pająki). Często dostępne metadane, uprawnienia. Często dokumenty są zgodne z konkretną strukturą można ją uwzględnić w wyszukiwaniu. Większa wiarygodność danych i linków, brak dokumentów "śmieciowych", walki o pozycjonowanie itp. Niepotrzebny albo nie tak ważny ranking wyników. Potrzeba uwzględnienia uprawnień użytkownika - żeby nie wyświetlić mu za dużo.