Rozprawa doktorska mgr Dariusza Mikułowskiego, pt. Koncepcja i realizacja rozproszonych ontologii w systemie entish

Wielkość: px
Rozpocząć pokaz od strony:

Download "Rozprawa doktorska mgr Dariusza Mikułowskiego, pt. Koncepcja i realizacja rozproszonych ontologii w systemie entish"

Transkrypt

1 Instytut Podstaw Informatyki Polskiej Akademii Nauk Rozprawa doktorska mgr Dariusza Mikułowskiego, pt. Koncepcja i realizacja rozproszonych ontologii w systemie entish Promotorem rozprawy jest dr hab. Stanisław Ambroszkiewicz Warszawa 2005

2

3 Przedmowa Niniejsza rozprawa dotyczy dziedziny wiedzy i technologii związanych z integracją heterogenicznych rozproszonych aplikacji. Oprócz obszernego wprowadzenia do języka XML oraz przedstawienia i omówienia specyfikacji związanych z Web serwisami a także Semantic Web, autor przedstawia system entish zrealizowany w ramach projektu KBN pt. Semantyczna interoperabilność w przestrzeni agentowej jako środek umożliwiający tworzenie dynamicznych organizacji, przedsiębiorstw i elektronicznych rynków. Indywidualnym wkładem autora jest opracowanie i realizacja rozproszonego słownika w ramach systemu entish. Ten rozproszony słownik służy do definiowania pojęć w sposób zrozumiały dla aplikacji. Słownik taki można by nazwać ontologią. Jednak ponieważ termin ontologia ma już swoje specyficzne znaczenie w literaturze, więc ten sposób opisywania i definiowania pojęć został nazwany usługą słownikową (ang. Dictionary Service). Taka usługa słownikowa jest bardzo pomocna przy automatycznej kompozycji aplikacji. Indywidualnym wkładem autora jest również programistyczna realizacja rozproszonego słownika, XML-owa składnia języka Entish, a także implementacja parsera struktur XML, w których wyrażane są formuły i termy języka Entish. Kluczową rolę w automatycznej kompozycji aplikacji odgrywają, tzw. ontologie. Klasyczna definicja ontologii jest następująca. Ontologia jest to formalna specyfikacja konceptualizacji. Czyli w rozumieniu logiki jest to teoria (zbiór aksjomatów) w pewnym formalnym języku. W DAML+OIL oraz OWL przyjmuje się w zasadzie tę definicję ontologii, jednak sposób jej reprezentacji jest specyficzny, ponieważ bazuje na RDF. W rozumieniu autora ontologia, czyli rozproszony słownik, jest uporządkowanym w pewien sposób zbiorem definicji pojęć. Aplikacja nie musi rozumieć tych definicji, ale musi potrafić je przetwarzać i używać. Definicja każdego pojęcia jest unikalna. Zostało to osiągnięte poprzez wprowadzenie podstawowej struktury dla nazwy każdego pojęcia; jest to tzw. concept name. Nazwa pojęcia składa się z dwóch elementów: short name, która jest lokalną nazwą danego pojęcia używaną w celu łatwiejszego przetwarzania oraz long name, która jest długą, unikalną nazwą tego pojęcia. Długa nazwa jest adresem URI miejsca, w którym znajduje się definicja danego pojęcia. To właśnie dzięki wprowadzeniu długich nazw nazwy pojęć są unikalne. Definicja pojęcia może zawierać odniesienia do innych już zdefiniowanych pojęć. Poprzez takie połączenia definicji tworzone są całe drzewa składające się z nazw pojęć. Na liściach takiego 1

4 2 drzewa znajdują się pojęcia pierwotne, które również są wprowadzane do słownika poprzez definicje, ale oczywiście nie zawierają one już odniesień do innych pojęć. Poprzez zastosowanie tak rozumianego concept name, ontologie mogą być całkowicie rozproszone, ponieważ każda definicja może znajdować się w innym miejscu sieci. Dzięki innemu rozumieniu tego, czym jest ontologia, oraz innej koncepcji języka, przedstawiony przez autora rozproszony słownik stanowi dużo prostszy sposób definiowania pojęć, niż ten proponowany np. w Semantic Web. Jest to możliwe, ponieważ aplikacje nie starają się implementować zrozumienia pojęć, lecz pozostawiają to rozumienie po stronie użytkownika. Muszą one jednak potrafić odszukiwać, używać i przetwarzać definiowane pojęcia. Jest to zasadniczym powodem tego, że rozproszony słownik może mieć mniej skomplikowaną strukturę i być wyrażony w prostszej formie. W projekcie entish możliwe jest automatyczne tworzenie kompozycji Web serwisów. Jest to osiągnięte dzięki możliwości definiowania nowych pojęć w Dictionary Service, językowi opisu usług Entish, oraz specjalnemu protokołowi kompozycji aplikacji.

5 Spis treści 0 Wstęp 5 1 Podstawowe technologie Język XML XML Schema Definition Podsumowanie Bazowy stos technologii realizujący Web serwisy SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language) UDDI (Universal Description Discovery and Integration) Podsumowanie Technologie realizujące Web serwisy oparte na SOAP i WSDL Języki opisujące dodatkowe cechy Web serwisów Web Service Choreography Interface Business Process Execution Language WS-Transaction i WS-Coordination Web Services Composite Aplication Framework Technologie wieloagentowe Podsumowanie Semantic Web Czym są ontologie? Języki do opisu wiedzy Resource Description Framework DAML+OIL oraz DAML-S Ontology Web Language Podsumowanie Koncepcja systemu opartego na języku Entish Ogólna idea Konstrukcja i składnia języka Entish Protokół do automatycznej kompozycji Web serwisów Rozproszony słownik Dictionary Service Przykłady zadań użytkownika Podsumowanie systemu entish

6 4 Spis treści 6 Prototypowa implementacja systemu entish Architektura systemu Parser języka Entish Implementacja rozproszonego słownika Dictionary Service Podsumowanie implementacji Konkluzje 290 Bibliografia 296 A Schematy XML definiujące język Entish 305 A.1 Dokument definitions.xsd A.2 Schemat formula.xsd A.3 Schemat info.xsd A.4 Schemat properentish.xml A.5 Schemat message.xsd A.6 Schemat state.xsd B Schematy XSD dla struktur Dictionary Service 327 B.1 Schemat ontology.xsd B.2 Schemat registrationinfo.xsd C Klasy i interfejsy parsera języka Entish 331 C.1 Interfejs ieformula C.2 Interfejs ieinfo C.3 Interfejs iemessage C.4 Interfejs iestate C.5 Klasa EFormula C.6 Klasa EFormInOut C.7 Klasa EInfo C.8 Klasa EMessage C.9 Klasa EState C.10 Klasa EParser D Klasy i interfejsy Dictionary Service 363 D.1 Klasa Definer D.2 Klasa Ontology D.3 Klasa RegistrationDefiner D.4 Klasa TaskDefiner

7 Rozdział 0 Wstęp W ciągu ostatnich kilkunastu lat, znacznie wzrosła potrzeba używania komputerów w każdej dziedzinie naszego życia. Komputery wraz z różnorodnym oprogramowaniem stały się narzędziem pracy, rozrywki, nauki. Obecnie nie można sobie wyobrazić funkcjonowania jakiejkolwiek instytucji publicznej, urzędu, instytutu naukowego, czy podmiotu gospodarczego, bez działającego w nim systemu informatycznego. Różnorodne technologie informatyczne, a w szczególności te związane z sieciami komputerowymi, pozwalają na integrowanie i współdziałanie firm, które dokonuje się na poziomie ich systemów informatycznych. Nikt już nie wątpi, że integracja wielu aplikacji wewnątrz i pomiędzy przedsiębiorstwami, która ma się odbywać za pośrednictwem Internetu, stała się wyraźną potrzebą. Zapewnienie takiej integracji nie jest jednak łatwe, gdyż wymaga prawidłowego współdziałania wielu programów napisanych w różny sposób, różnie funkcjonujących i umieszczanych na rozmaitych platformach sprzętowo-programowych. Jednym ze sposobów rozwiązania tego problemu jest próba zrealizowania koncepcji tzw. Web serwisów (ang. Web services). Mimo, że intuicyjne zrozumienie pojęcia Web serwis jest mniej więcej jasne, jest ono odmiennie rozumiane przez różnych autorów, dostawców usług i użytkowników. Odpowiedzmy sobie więc na pytanie: Czym są, a raczej czym mają być, te dostępne w Internecie usługi zwane Web serwisami? Web serwisy mają być nową jakością usług internetowych, która pozwoli na utworzenie pomostu łączącego różniące się od siebie aplikacje biznesowe. Web serwisy mają umożliwić bezpieczną ekspozycję logiki biznesowej poza obszar zamkniętych systemów istniejących w firmach. Mają one integrować Web, czyli WWW (ang. World Wide Web) i tradycyjne aplikacje za pomocą całego szeregu komponentów oprogramowania, warstw pośredniczących i protokołów. Taka integracja ma zredukować do minimum koszty wkładane we wdrażanie systemów informatycznych oraz zminimalizować interwencje człowieka. Oprócz możliwości integrowania i porozumiewania się różnych aplikacji, Web serwisy mają pozwolić na bezpieczny przepływ, często bardzo poufnych danych, tworzenie całych procesów biznesowych, realizacje transakcyjnych protokołów takich jak 2PC czy 3PC, a w przyszłości także na negocjacje pomiędzy firmami. Być może najlepszą, a na pewno najbardziej popularną, definicję Web serwisów można znaleźć na portalu IBM (47), (48): Web serwisy są to autonomiczne, samo opisujące się złożone aplikacje, które mogą być opublikowane i umieszczone w sieci. Są one także za jej pomocą udostępniane i uruchamiane. Web serwisy mogą realizować różne operacje, począwszy od prostych odpowiedzi na pytania użytkownika, aż po złożone procesy biznesowe. Po opubliko- 5

8 6 Rozdział 0. Wstęp waniu Web serwisu w sieci inne aplikacje, a także inne usługi, (także Web serwisy) mogą odkryć i uruchomić opublikowany Web serwis. W projekcie DAML+OIL (29) proponowana jest inna, bardziej zwięzła, ale być może łatwiejsza do zrozumienia, definicja: Web serwisy są to dostępne poprzez Internet (WWW) programy (aplikacje). Nie tylko dostarczają one użytkownikowi wielu różnorodnych informacji, ale także przez swoją funkcjonalność dają mu możliwość spowodowania efektu w świecie rzeczywistym. Jeszcze inną definicję proponuje konsorcjum W3C (97), zajmujące się ustalaniem standardów obowiązujących na WWW. To bardzo wpływowe konsorcjum opublikowało szereg istotnych standardów związanych z Web serwisami jak np. SOAP czy WSDL. Proponuje ono następującą definicje Web serwisu: Web serwis jest aplikacją, która może być dostępna w sieci poprzez swój adres internetowy URI (zgodnie z definicją znajdującą się w dokumencie RFC 2396) (96). Jej interfejsy, a także sposób użycia jest zdefiniowany, opisany i odkrywany za pomocą struktur wyrażonych w języku XML. Aplikacja będąca Web serwisem musi być zdolna do nawiązania poprawnej interakcji z innymi usługami poprzez wysyłanie i odbieranie wiadomości wyrażonych w języku XML i przekazywanych zgodnie z protokołami obowiązującymi w Internecie. Zauważmy, że oprócz zwykłej funkcjonalności, jaką posiada każda aplikacja, Web serwis ma jeszcze jedną ciekawą własność. Może być odkryty, uruchomiony i zintegrowany z innymi usługami poprzez Internet, po to, by stworzyć nową funkcjonalność. Z punktu widzenia dostawcy usług, zainstalowanie aplikacji jako Web serwisu będzie oznaczało, z jednej strony, podłączenie jej funkcjonalności do globalnej wspólnoty. Dzięki temu każdy inny Web serwis, czy też klient, z łatwością skorzysta z możliwości dostarczanych przez tę aplikację. Z drugiej zaś strony inne usługi w internetowej wspólnocie mogą wzbogacić zakres stosowania podłączonej aplikacji. Z punktu widzenia klienta pojawienie się nowego Web serwisu będzie oznaczało możliwość wykonywania innych, być może niemożliwych do tej pory, zadań poprzez przysłowiowe kliknięcie. Web serwisy mają realizować tzw., Service-Oriented Architecture (w skrócie SOA) w globalnym środowisku sieciowym. SOA jest uznanym powszechnie modelem programowania, według którego mają być konstruowane architektury realizujące usługi webowe. Definiuje ona ogólny schemat publikowania, wyszukiwania i uruchamiania Web serwisów przez inne aplikacje. SOA ustala trzy główne komponenty środowiska w jakim funkcjonują usługi: dostarczyciel usług (ang. Service Provider), odbiorca usług (ang. Service Requester), rejestr usług (ang. Service Registry). Dostarczyciel usług posiada serwer, na którym zainstalowane są usługi oraz kontroluje dostęp do nich. Jest także odpowiedzialny za opublikowanie opisu usługi w rejestrze usług.

9 Odbiorca usług (klient) jest aplikacją działającą w imieniu użytkownika. Pozwala on użytkownikowi na wykonanie zadania poprzez odszukanie i uruchomienie odpowiednich usług. Rejestr usług jest specjalnego rodzaju centralnym repozytorium, które umożliwia z jednej strony publikacje usługi przez jej dostarczyciela, a z drugiej strony odszukanie i użycie usługi przez klienta. Ta podstawowa architektura Web serwisów jest już implementowana na różne sposoby. Jest ona jednak zbyt ogólna, aby sprostać coraz większym wymaganiom stawianym usługom internetowym przez świat biznesu. Web serwisy mają być nie tylko programami, które można odszukać i użyć przy pomocy WWW, ale mają stać się złożonymi aplikacjami realizującymi często bardzo skomplikowane procesy biznesowe. Powinny także działać zgodnie z mechanizmami transakcyjnymi. Dlatego też bardzo intensywnie pracuje się na całym świecie nad uzupełnieniem podstawowej architektury Web serwisów, tak, aby mogła ona spełnić te wymagania. Prace te są prowadzone obecnie przez najważniejsze firmy i grupy badawcze zajmujące się rozwojem technik informatycznych. Są to firmy takie jak IBM, Microsoft, czy HP oraz konsorcja takie jak DARPA, OASIS czy W3C. Istnieje jeszcze wiele innych definicji Web serwisów, a każda z nich zwraca uwagę na nieco inne ich własności. Niewątpliwie Web serwisy stanowią nowy paradygmat w Internecie, wprowadzają nową jakość dostępu do informacji i ich przetwarzania. Są naturalnym etapem rozwoju technologii internetowych, w którym nie chodzi już tylko o sam dostęp do informacji, ale także o tworzenie całych procesów produkcyjnousługowych. Trzeba podkreślić, że takie procesy biznesowe, nie odbywają się tylko w świecie wirtualnym. Powodują one również widoczne efekty w świecie rzeczywistym. Najbardziej trafne, może nieco frywolne, ale w pełni oddające istotę rzeczy, polskie tłumaczenie terminu Web Services pochodzi od Prof. Mariana Srebrnego; jest to Łebskie Usługi. Niektórzy nazywają je także usługami webowymi. Wszystkie niemal ośrodki akademickie, konsorcja ustalające ogólnoświatowe standardy w dziedzinie Internetu, a także firmy komercyjne zgadzają się z tym, że dobrą podstawą dla budowania architektur realizujących pomysł Web serwisów jest język XML. Ponieważ XML stanowi podstawę proponowanej w tej pracy systemu do kompozycji Web serwisów, dlatego też zostanie on przybliżony w pierwszym rozdziale pracy. W następnych rozdziałach będą przedstawione technologie realizujące podstawową architekturę Web serwisów SOA. Są nimi SOAP+WSDL+UDDI, które zostały zaproponowane przez firmy IBM i Microsoft, a przyjęte przez konsorcjum W3C jako propozycje standartów. Spełnienie wymagań, jakie stawia świat biznesu przed Web serwisami nie jest rzeczą łatwą. Próbują temu sprostać różne grupy badawcze i firmy rozwijające oprogramowanie. Trzeba powiedzieć, że udaje się im to tylko częściowo, mimo, że tworzone przez nie rozwiązania technologiczne są bardzo złożone. W kolejnym rozdziale zostaną przedstawione próby rozwiązań problemu integracji i kompozycji Web serwisów, dla których podstawą są WSDL, SOAP i UDDI. Są nimi inicjatywy takie jak: BPEL4WS, WS-Choreography, WS-Transaction + WS-Coordination, i inne. Wy- 7

10 8 Rozdział 0. Wstęp mienione wyżej rozwiązania dostarczają sposobów na uruchamianie i współdziałanie wielu Web serwisów oraz konstruowanie przy ich pomocy tzw. procesów biznesowych. Nie odbywa się to jednak w sposób automatyczny. Aby zintegrować grupę istniejących usług, programiści muszą zaprojektować i zaimplementować proces biznesowy, który będą one realizowały. Tak więc wymagania dotyczące redukcji kosztów, automatycznego komponowania usług, a także zmniejszenia wysiłku człowieka, nie są jeszcze w dostateczny sposób spełnione. Inną, poważną inicjatywą dotyczącą Web serwisów, jest projekt DAML+OIL (29). Jest on związany z pomysłem tzw. Semantic Web. Został on zaproponowany przez Timothy Berners-Lee (twórcę WWW) i jest rozwijany przez grupę badawczą związaną z amerykańską organizacją DARPA (ang. Defense Advanced Research Projects Agency). Proponowane w tym projekcie rozwiązanie opiera się na pomyśle, aby aplikacja (także Web serwis) potrafiła zrozumieć informacje, które są publikowane na stronach internetowych. To pozwoli jej na lepsze dostosowanie się do wymagań użytkownika oraz zintegrowanie się z innymi aplikacjami w celu stworzenia całego procesu biznesowego. W projekcie tym zaproponowany został sposób opisywania oraz definiowania pojęć, który jest czytelny dla aplikacji. Są nim tzw. Ontologie, czyli specjalnego rodzaju rozproszone słowniki. Ontologie są także używane do opisywania Web serwisów. Pozwalają one również na tworzenie kompozycji Web serwisów, czyli procesów biznesowych. Podobnie, jak wymienione wcześniej technologie jest to rozwiązanie bardzo rozbudowane co wiąże się z trudnościami realnego wprowadzenia go do użytku. Ta inicjatywa zostanie przedstawiona w trzecim rozdziale. Proponowany w następnych rozdziałach system do integracji Web serwisów jest rozwiązaniem dużo prostszym od wyżej wymienionych. Składa się on z języka opisu Web serwisów, protokołu oraz specjalnego, rozproszonego słownika, który pozwala na podłączanie aplikacji jako Web serwisów. W naszym podejściu możliwe jest automatyczne tworzenie kompozycji Web serwisów, które jest zapewnione dzięki ontologiom zdefiniowanym w słowniku pojęć oraz specjalnemu protokołowi. Ponadto proponowany tu słownik jest dużo prostszym opisem pojęć od tego, który jest oferowany w projekcie DAML+OIL. W naszej propozycji słownik zawiera definicje pojęć używanych wyłącznie do realizacji architektury Web serwisów. Może mieć on więc mniej skomplikowaną strukturę i być wyrażony w prostszym języku.

11 9 Podziękowania Niniejsza praca została napisana w ramach projektu KBN nr. 7T11C04020 pt. Semantyczna interoperabilność w przestrzeni agentowej jako środek umożliwiający tworzenie dynamicznych organizacji, przedsiębiorstw i elektronicznych rynków. Projekt ten był realizowany w Instytucie Informatyki Akademii Podlaskiej w Siedlcach oraz Instytucie Podstaw Informatyki PAN w Warszawie. Niniejsza praca jest jednocześnie rozprawą doktorską mgr Dariusza Mikułowskiego napisaną pod kierunkiem dr hab. Stanisława Ambroszkiewicza. Do jej powstania przyczyniło się wiele osób, które uczestniczyły w dyskusjach i przedsięwzięciach realizowanych w ramach projektu oraz udzielały cennych wskazówek dotyczących zawartości samej pracy. W związku z tym autor chciałby podziękować następującym osobom: Prof. Lesławowi Szczerbie: za skierowanie jego zainteresowań w stronę informatyki i nauki w ogóle. dr hab. Stanisławowi Ambroszkiewiczowi: za wiele poświęconego czasu, wspólne dyskusje nad problemami poruszonymi w pracy, a także za wytrwałe wskazywanie merytorycznych i technicznych błędów oraz pomoc przy ich poprawianiu. Prof. Andrzejowi Barczakowi: za popieranie wszelkich działań związanych z realizacją projektu oraz za cenne uwagi dotyczące treści pracy. Leszkowi Rozwadowskiemu, Tomaszowi Nowakowi, Krzysztofowi Miodkowi: za wspólne, długie i burzliwe dyskusje, które pozwoliły na wykrystalizowanie się nowych idei i rozwiązań prezentowanych w tej pracy. Dariuszowi Pawluczukowi, Michałowi Całce, Piotrowi Izdebskiemu: za ich konstruktywną krytykę oraz cenne uwagi, które były bardzo przydatne przy dokonywaniu poprawek rozwiązań proponowanych w tej pracy. Żonie Joannie: za pomoc w dokonywaniu licznych poprawek oraz za cierpliwość okazaną podczas powstawania tej pracy.

12 10 Rozdział 0. Wstęp

13 Rozdział 1 Podstawowe technologie 1.1 Język XML XML Schema Definition Podsumowanie

14 12 Rozdział 1. Podstawowe technologie Powstanie Internetu a później, opartego na pomyśle Timothy Berners-Lee, WWW spowodowało bardzo szybki i dynamiczny rozwój wielu technologii informatycznych. Wśród nich zaczęły powstawać także różne języki hypertekstowe i protokoły służące do publikowania informacji na stronach internetowych. Najważniejszymi technologiami związanymi z WWW stały się: język HTML, jako sposób na publikowanie dokumentów oraz protokół HTTP, używany do ich przesyłania. W miarę rozwoju WWW, HTML stał się niewystarczający. Powstał więc język XML, który jest znacznie bardziej elastyczny. Nadawał się on dużo lepiej niż HTML do różnorodnych zastosowań. Do dzisiaj jest podstawową technologią stosowaną we wszystkich aplikacjach internetowych, a także w rozwijających się właśnie Web serwisach. Ponieważ XML oraz inne rozszerzające go języki, są podstawowymi technologiami, które posłużyły do rozwoju całej idei Web serwisów, w tym rozdziale przedstawimy je nieco bliżej. 1.1 Język XML Extensible Markup Language (w skrócie XML) jest uniwersalnym, hypertekstowym językiem służącym do tworzenia struktur danych. Dzięki dużej elastyczności, a także innym własnościom, jest on łatwiejszy w użyciu i znacznie bardziej uniwersalny niż języki, z których się wywodzi, a mianowicie HTML i SGML (87). XML pozwala na transfer zestrukturalizowanych danych za pomocą powszechnie używanych protokołów sieciowych, takich jak HTTP czy SMTP. Dzięki swojej uniwersalności, a także takim własnościom jak rozszerzalność, czy użycie tzw. przestrzeni nazw (ang. namespaces), stał się już powszechnym standardem będącym podstawą do realizacji wielu internetowych technologii, w tym także idei Web serwisów. Z punktu widzenia jego zastosowania, XML może być widziany jako zbiór reguł służących do definiowania elementów (tagów), które dzielą dokument na części. Tworzą w ten sposób zhierarchizowaną strukturę. Zdefiniowane elementy pozwalają zidentyfikować poszczególne fragmenty dokumentu. XML jest jednak czymś więcej niż tylko językiem do tworzenia dokumentów. Często jest on używany także jako metajęzyk definiujący składnię innych hypertekstowych języków, które są specyficzne dla różnych dziedzin zastosowań. Zasadniczą rzeczą, jaka różni XML od innych tego typu języków, takich jak HTML czy SGML, jest to, że nie definiuje on skończonego zbioru tagów, które opisują skończony zbiór elementów. Dla użytkownika oznacza to możliwość samodzielnego dodawania do języka nowych elementów. W przypadku XML daje to możność definiowania własnych tagów. Własność ta jest nazywana rozszerzalnością (ang. extensibility). Dużym utrudnieniem przy stosowaniu zamkniętego języka takiego jak np. HTML, było to, że jeśli użytkownik nie znalazł w nim potrzebnego dla siebie w danej chwili tagu mógł co najwyżej oczekiwać na kolejną wersję języka, w której być może znajdzie rozwiązanie swojego problemu. Przy stosowaniu XML taka trudność nie występuje, ponieważ opiera się on na idei, która stanowi, że użytkownik sam de-

15 1.1. Język XML 13 finiuje tagi, ich strukturę i atrybuty w zależności od tego, jakie aktualnie ma w tym względzie potrzeby. Specyfikacja XML dostarcza jedynie ogólnych zasad mówiących w jaki sposób takie tagi powinny być umieszczane w dokumencie. Użytkownik ma całkowitą swobodę w określeniu ich znaczenia i uporządkowania. Nie jest on zobligowany do tego by swoje dane umieszczać w ściśle określonych paragrafach, listach, tabelach itp., ale może samodzielnie zaprojektować nazwy tagów oraz ich rozmieszczenie tak, by jak najlepiej odpowiadało to strukturom jego danych. Wprowadzane przez użytkownika tagi mogą być definiowane w specjalnym fragmencie dokumentu, lub w zewnętrznym dokumencie zwanym DTD. DTD (ang. Document Type Definition) jest zbiorem deklaracji, który definiuje to, jakie struktury danych będą umieszczane we właściwym dokumencie XML. Może być on rozumiany jako słownik zawierający nazwy tagów oraz definiujący ich strukturę. Raz stworzony dokument DTD może być używany do tworzenia wielu dokumentów XML. Za jego pomocą można zdefiniować specyficzne języki (rozszerzające XML) takie jak np. MusicML, MathML (60), czy CML (25). Aplikacja, która potrafi zinterpretować dokument DTD definiujący taki język, może używać dokumentów XML stworzonych zgodnie z definicją zawartą w tym DTD. Dowolność w definiowaniu tagów, ich atrybutów i struktury, powoduje, że przeglądarka często nie wie, w jaki sposób wyświetlać dokument XML. Problem ten został rozwiązany poprzez wprowadzenie tzw. arkuszy stylów XSL. Są to specjalne zbiory, dołączane do właściwego dokumentu XML, które zawierają szczegółową instrukcję tego, w jaki sposób przeglądarka powinna wyświetlać zawartość poszczególnych tagów. Mimo że XML nie jest łatwy w czytaniu i pisaniu dla człowieka, może być dobrym sposobem na przesyłanie skomplikowanych struktur danych pomiędzy różnorodnymi aplikacjami. Dzięki temu każda aplikacja potrafiąca posługiwać się XML może bez przeszkód przetwarzać dane pochodzące od innej aplikacji. Użytkownik języka XML może także używać różnych narzędzi do różnych celów np. osobnego narzędzia do przeglądania, a innego do edycji danych. Prosty przykład dokumentu XML zawierającego dane może być następujący: Przykład 1.1 <?xml version="1.0"?> <PERSON ID="p1100" SEX="M"> <NAME> <GIVEN> Jan </GIVEN> <SURNAME> Kowalski </SURNAME> </NAME> <BIRTH> <DATE> 21 Feb 1834 </DATE> <PLACE> Siedlce </PLACE> </BIRTH> <DEATH>

16 14 Rozdział 1. Podstawowe technologie <DATE> 9 Dec 1905 </DATE> <PLACE> Wladywostok </PLACE> </DEATH> </PERSON> Użytkownik, nie zorientowany w XML, który potrafi porozumiewać się w języku angielskim, może bez problemu stwierdzić, że powyższy dokument opisuje mężczyznę o imieniu i nazwisku Jan Kowalski, który urodził się w Siedlcach, 21 lutego 1834 roku, a zmarł we Władywostoku, 9 grudnia Po pewnym czasie użytkownik języka XML może mieć potrzebę użycia tagów, które zostały zdefiniowane przez innego użytkownika. W takim przypadku może napotkać na problem powtarzających się nazw tagów, które dla różnych użytkowników oznaczają co innego. Nazwa <title> może na przykład dla jednego użytkownika oznaczać tytuł książki, natomiast dla innego tytuł naukowy pewnej osoby. Problem ten został rozwiązany w XML poprzez wprowadzenie tzw. przestrzeni nazw (ang. namespaces) (63). Działanie takiej przestrzeni nazw polega na powiązaniu pewnego zbioru nazw tagów (używanego w dokumencie XML) z unikalnym adresem internetowym URI, poprzez dodanie do każdego elementu z tego zbioru odpowiedniego przedrostka. Przedrostek mówi o tym, do którego zbioru (przestrzeni nazw) należy wskazany element. Można więc w jednym dokumencie używać tagów i atrybutów pochodzących z wielu różnych przestrzeni nazw, a mających często identyczne nazwy. Wprowadzenie do dokumentu elementu pochodzącego z nowej, nie używanej dotąd, przestrzeni nazw dokonuje się w dwóch krokach. Pierwszy krok polega na poprzedzeniu nazwy nowego elementu odpowiednim przedrostkiem. Drugim krokiem jest zadeklarowanie tej przestrzeni nazw poprzez dodanie do tego elementu atrybutu xmlns, którego wartością jest adres przestrzeni nazw z jakiej pochodzi użyty element. Od tej chwili wszystkie inne elementy poprzedzone danym przedrostkiem są przypisane do zadeklarowanej przestrzeni nazw. Aby lepiej przedstawić użycie przestrzeni nazw posłużymy się przykładem: Przykład 1.2 <SOAP-ENV:Envelope xmlns:soap-env=" <SOAP-ENV:Body> <m:getendorsingboarder xmlns:m=" <manufacturer>k2</manufacturer> <model>fatbob</model> </m:getendorsingboarder> </SOAP-ENV:Body>

17 1.1. Język XML 15 </SOAP-ENV:Envelope> W powyższym fragmencie dokumentu użyte zostały elementy pochodzące z dwóch przestrzeni nazw, a mianowicie SOAP-ENV oraz m. Każda z nich została zadeklarowana przy okazji pierwszego pojawienia się elementu pochodzącego z tej przestrzeni. Deklaracja takiej przestrzeni nazw polega na wprowadzeniu atrybutu xmlns:soap-env w przypadku elementu pochodzącego z przestrzeni SOAP-ENV oraz atrybutu xmlns:m w przypadku elementu pochodzącego z przestrzeni m. Wartościami tych atrybutów są adresy deklarowanych przestrzeni nazw. Pierwsze użycie elementu <Envelope> pochodzącego z przestrzeni nazw SOAP-ENV ma następującą postać: <SOAP-ENV:Envelope xmlns:soap-env=" W przykładowym dokumencie zostały użyte dwa elementy pochodzące z przestrzeni nazw SOAP-ENV, a mianowicie <Envelope> oraz <Body>, który jest poprzedzony tylko przedrostkiem. Są także trzy elementy pochodzące z przestrzeni nazw m. Są to tagi <GetEndorsingBoarder>, <manufacturer>, oraz <model>. Trzeba tu zauważyć, że elementy <manufacturer> i <model> nie zostały poprzedzone przedrostkami określającymi ich przynależność do przestrzeni nazw. Stało się tak, ponieważ znajdują się one wewnątrz tagu <GetEndorsingBoarder>, który został zadeklarowany jako element należący do przestrzeni nazw m. Elementy znajdujące się w jego wnętrzu należą do tej samej co on przestrzeni nazw i dlatego nie trzeba ich poprzedzać żadnym przedrostkiem. Jak już zostało powiedziane, XML często jest używany do budowania specyficznych języków dla różnych zastosowań. Proces budowania takiego języka jest dosyć prosty. Najpierw tworzone są dokumenty DTD definiujące zbiór używanych tagów, ich atrybuty i wzajemne powiązania. Następnie dokumenty DTD są umieszczane w miejscu dostępnym na WWW. Od tej pory, każdy może użyć tych nowych tagów w swoim dokumencie, pod warunkiem, że zadeklaruje odpowiedni typ dokumentu. Deklaracja typu dokumentu wskazuje na nazwę głównego elementu dokumentu, a także na adres pod jakim dostępne są dokumenty DTD definiujące nowy język. Każdy dokument XML używający nowych tagów, jest poddawany procesowi sprawdzania zgodności (ang. validation) z dokumentem DTD, w którym te tagi zostały zdefiniowane. Jeżeli struktura dokumentu XML odpowiada ograniczeniom zdefiniowanym w DTD, to dokument jest uznawany za poprawny. W przeciwnym przypadku, dokument jest uznawany za błędny. DTD pozwala na zdefiniowanie listy elementów i ich atrybutów, które mają się znajdować we właściwym dokumencie, a także określa pewne bardzo ogólne relacje, jakie mają zachodzić pomiędzy nimi. Jest on zbiorem reguł definiujących strukturę właściwego dokumentu. Mogą być to reguły mówiące na przykład, że główny tag dokumentu o nazwie <KSIAZKA> może mieć w swoim wnętrzu jeden lub więcej tag

18 16 Rozdział 1. Podstawowe technologie <Autor>, dokładnie jeden tag <Tytul>, zero lub więcej tagów <Podtytul> oraz dokładnie jeden tag <ISBN>. Oprócz tego, dokument DTD może zawierać deklaracje atrybutów oraz odniesień, które będą używane w podstawowym dokumencie XML. Prosty dokument DTD, opisujący powyższy przykład, może być następujący: Przykład 1.3 <?xml version="1.0"?> <!DOCTYPE KSIAZKA[ <!ELEMENT KSIAZKA ( Autor+, Tytul, Podtytul*, ISBN )> <!ELEMENT Autor ( #PCDATA )> <!ELEMENT Tytul ( #PCDATA )> <!ELEMENT podtytul ( #PCDATA )> <!ELEMENT ISBN ( #PCDATA )> ]> Pierwsza linia dokumentu jest deklaracją wersji XML. W drugiej linii znajduje się deklaracja <!DOCTYPE>. Jest to deklaracja typu dokumentu. Wskazuje ona na to, że jest to dokument DTD. Atrybutem elementu <!DOCTYPE> jest nazwa typu dokumentu, KSIAZKA, do którego odwołania będą umieszczane we właściwych dokumentach XML. W nawiasach kwadratowych następujących po deklaracji <!DOCTYPE> umieszczane są deklaracje wszystkich elementów, atrybutów i odniesień, jakie mają wystąpić we właściwym dokumencie XML. W tym przypadku, w nawiasach kwadratowych, jako pierwsza została umieszczona deklaracja głównego elementu dokumentu, który ma nazywać się <KSIAZKA>. W nawiasach następujących po nazwie deklarowanego elementu są wymienione wszystkie pod-elementy, jakie mają być w nim umieszczone. Po nazwie pod-elementu umieszcza się znaki takie jak: +, *,? mówiące o ilości jego wystąpień we właściwym dokumencie. I tak po nazwie pod-elementu Autor umieszczony został znak +, mówiący o tym, że książka może mieć jeden lub więcej autorów, a po elemencie Podtytul znak * mówiący o tym, że książka może mieć zero lub więcej podtytułów. W kolejnych liniach dokumentu DTD znajdują się deklaracje wszystkich pod-elementów. Pod-elementy te mają zawierać dane tekstowe, co określa się przy pomocy słowa #PCDATA umieszczanego w nawiasie znajdującym się po nazwie danego elementu. Dokument DTD został zapisany w pliku o nazwie ksiazka.dtd. Właściwy dokument XML, zgodny z taką definicją, będzie miał następującą postać: Przykład 1.4 <?xml version="1.0"?> <!DOCTYPE KSIAZKA SYSTEM "Ksiazka.dtd"> <!-- Dokument XML zawierający informacje o książce --> <KSIAZKA> <Autor>Henryk Sienkiewicz</Autor>

19 1.2. XML Schema Definition 17 <Tytul>Ogniem i Mieczem</Tytul> <ISBN> </ISBN> </KSIAZKA> Pierwsza linia dokumentu jest deklaracją wersji XML. Kolejna zawiera deklarację typu dokumentu, w której wskazywany jest plik, w jakim znajduje się DTD definiujący jego strukturę. Ponieważ wskazanie na nazwę DTD ma charakter lokalny, zostało ono poprzedzone słowem SYSTEM. Zamiast tego, można tam umieścić pełen adres URI. Po deklaracji typu dokumentu umieszczony został komentarz w języku naturalnym, który jest przeznaczony dla człowieka czytającego dokument. Komentarz taki nie będzie interpretowany przez aplikację, która przetwarza dokument. Trzeba tu zauważyć, że komentarz taki jest umieszczony wewnątrz specjalnie przeznaczonego do tego tagu, a mianowicie <!-- -->. Komentarze można umieszczać w dowolnym miejscu, istnieje tylko takie wymaganie, aby nie znajdował się on poza głównym elementem dokumentu. W dalszej kolejności umieszczony jest główny element <KSIAZKA>, którego struktura i zawartość jest zgodna z dokumentem DTD. Jak już wspomnieliśmy, XML jest językiem, który pozwala na wyrażanie w nim różnorodnych struktur danych. Nie zawiera on jednak wbudowanych sposobów na wyświetlanie i wizualne ich przedstawianie. Jest to realizowane poprzez dołączanie do właściwych dokumentów XML specjalnych arkuszy stylów. Takie arkusze stylów, podobnie jak miało to miejsce w HTML, zawierają reguły mówiące o tym, w jaki sposób przeglądarka odczytująca dokument powinna wyświetlić go użytkownikowi. 1.2 XML Schema Definition Sposób definiowania struktur XML, jaki oferował DTD okazał się być niewystarczający do tworzenia bardziej skomplikowanych języków. DTD nie posiada na przykład możliwości definiowania ograniczeń nakładanych na dane, a także własnych typów danych wbudowanych w język. Dlatego powstał nowy język do tworzenia schematów opisujących struktury danych w dokumentach XML. Został on nazwany XML Schema Definition (w skrócie XSD) (121). XSD jest, alternatywnym w stosunku do DTD, sposobem na tworzenie języków rozszerzających XML. Służy on do tworzenia tzw. schematów, które ograniczają i definiują zawartość właściwych dokumentów XML i pozwalają na rozszerzanie umieszczanych w nich informacji. Takie rozszerzanie nie może być całkowicie dowolne. Musi być ono zgodne z pewnymi ustalonymi regułami. Reguły takie są wyznaczane właśnie przez schemat XSD. XSD jest stworzony do budowania schematów dla zestrukturalizowanych danych. Posiada on możliwość tworzenia nowych, bardziej złożonych, typów danych poprzez rozszerzanie lub ograniczanie wcześniej zdefiniowanych. Za jego pomocą można two-

20 18 Rozdział 1. Podstawowe technologie rzyć definicje elementów o unikalnych nazwach oraz definiować elementy zastępowalne czyli mające różne nazwy, ale taką samą strukturę: np. książkę można zastąpić w niektórych przypadkach publikacją. Podobnie jak wszystkie inne rozszerzenia XML, XSD jest wprowadzany do języka poprzez użycie odpowiedniej przestrzeni nazw (63). Schemat XSD definiuje strukturę właściwego dokumentu XML, a więc służy do definiowania tagów, atrybutów oraz ich wzajemnego powiązania. Schemat XSD zawiera dwa rodzaje komponentów. Są to definicje typów oraz deklaracje elementów. Są one używane do określenia struktury, jaką ma posiadać dokument XML, będący instancją tego schematu. XSD pozwala także na nakładanie różnorodnych ograniczeń na wartości atrybutów oraz na tekstową zawartość elementów właściwego dokumentu. Dzięki tej własności można dosyć precyzyjnie określić, jaki format danych ma być umieszczony wewnątrz każdego tagu. Przypuśćmy na przykład, że chcemy zdefiniować prosty element o nazwie protocolversion. Ma on zawierać dwie liczby dziesiętne oddzielone kropką. Pierwsza z nich ma składać się z jednej cyfry, a druga z dwóch. Taki element może być zdefiniowany za pomocą następującego fragmentu schematu XSD: Przykład 1.5 <xsd:element name="protocolversion"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{1}.\d{2}"/> </xsd:restriction> </xsd:simpletype> </xsd:element> Użycie elementu <xsd:restriction> oznacza, że dane, które mają być zawarte w definiowanym elemencie są ciągiem znaków (są typu xsd:string). Następujący po nim element <xsd:pattern> służy do precyzyjnego podania wzorca, jaki mają spełniać dane wprowadzane w definiowanym elemencie. Przykładowy fragment dokumentu XML, będący instancją powyższego schematu może być następujący: Przykład 1.6 <protocolversion>1.01</protocolversion> Struktury danych, zaprojektowane przez użytkownika, można definiować w XSD na dwa sposoby: Poprzez zadeklarowanie elementu (tagu) i tego, jakie elementy mogą wystąpić wewnątrz niego, a także jakie atrybuty musi on posiadać. Aby użyć tego elementu w dalszej części schematu, trzeba podać jego nazwę tak, jak została

Przykładowy dokument XML

Przykładowy dokument XML Przykładowy dokument XML DTD - wady Ograniczona kontrola nad strukturą dokumentów. Zbyt wysokopoziomowe typy danych: liczby, daty są zawsze reprezentowane jako tekst! Bardzo ogólne metody definiowania

Bardziej szczegółowo

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Język Schema Po zrealizowaniu materiału student będzie w stanie Stworzyć formalny opis dokumentu Deklarować elementy i atrybuty Określić strukturę elementów w dokumencie Operować dostępnymi typami danych

Bardziej szczegółowo

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl XML 5 XML Schema Projektowany jako rozszerzenie i uzupełnienie DTD Jest w stanie odwzorować dowolną definicję DTD (ale nie odwrotnie!) Bardzo

Bardziej szczegółowo

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

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW XML Schema Typy proste, wyprowadzanie typów, modularyzacja schematu Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Typy proste i złożone Typy złożone struktura

Bardziej szczegółowo

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu XML Schema DTD a XML Schema DTD jako opis dokumentu XML: - pozwala stworzyć jedynie bardzo ogólny schemat dokumentu - w standardzie DTD dostępne mamy jedynie rozróŝnienie na elementy proste i złoŝone -

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

World Wide Web? rkijanka

World Wide Web? rkijanka World Wide Web? rkijanka World Wide Web? globalny, interaktywny, dynamiczny, wieloplatformowy, rozproszony, graficzny, hipertekstowy - system informacyjny, działający na bazie Internetu. 1.Sieć WWW jest

Bardziej szczegółowo

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych rk Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych pojęć, prawdopodobnie zastanawiasz się, kiedy zaczniesz

Bardziej szczegółowo

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI ul. Wspólna 1/3 00-529 Warszawa ZASADY NAZEWNICTWA DOKUMENTÓW XML Projekt współfinansowany Przez Unię Europejską Europejski Fundusz

Bardziej szczegółowo

Programowanie komponentowe

Programowanie komponentowe Piotr Błaszyński Wydział Informatyki Zachodniopomorskiego Uniwersytetu Technologicznego 25 października 2014 WebService, (usługi sieciowe) - komponenty aplikacji webowych, zawierające logike biznesową.

Bardziej szczegółowo

Zasady Nazewnictwa. Dokumentów XML 2007-11-08. Strona 1 z 9

Zasady Nazewnictwa. Dokumentów XML 2007-11-08. Strona 1 z 9 Zasady Nazewnictwa Dokumentów 2007-11-08 Strona 1 z 9 Spis treści I. Wstęp... 3 II. Znaczenie spójnych zasady nazewnictwa... 3 III. Zasady nazewnictwa wybrane zagadnienia... 3 1. Język oraz forma nazewnictwa...

Bardziej szczegółowo

Rola języka XML narzędziem

Rola języka XML narzędziem Wprowadzenie do XML dr inż. Adam Iwaniak Szkolenie w Luboradzy, ZCPWZ, 12-13.02.2009r. Rola języka XML narzędziem Pierwszą rewolucją internetową było dostarczenie ludziom informacji. Znajdujemy się teraz

Bardziej szczegółowo

Dlaczego GML? Gdańsk r. Karol Stachura

Dlaczego GML? Gdańsk r. Karol Stachura Dlaczego GML? Gdańsk 13.03.2017r. Karol Stachura Zanim o GML najpierw o XML Dlaczego stosuje się pliki XML: Tekstowe Samoopisujące się Elastyczne Łatwe do zmiany bez zaawansowanego oprogramowania Posiadające

Bardziej szczegółowo

XML extensible Markup Language. część 4

XML extensible Markup Language. część 4 XML extensible Markup Language część 4 XML Schema (Podobnie jak DTD) XML Schema to opracowany przez W3C standard służący do definiowania struktury dokumentu XML. (W przeciwieństwie do DTD) XML Schema jest

Bardziej szczegółowo

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1 SGML (Standard Generalized Markup Language) Standardowy uogólniony język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych). Twórcy

Bardziej szczegółowo

Wprowadzenie do technologii XML

Wprowadzenie do technologii XML Katedra Mikroelektroniki i Technik Informatycznych Łódź, 6 października 2005 roku 1 Informacje organizacyjne Omówienie przedmiotu 2 vs HTML Struktura 3 Struktura Informacje o przedmiocie Informacje organizacyjne

Bardziej szczegółowo

Definiowanie typów dokumentów Część 3. XML Schema

Definiowanie typów dokumentów Część 3. XML Schema Definiowanie typów dokumentów Część 3. XML Schema 1 Wbudowane typy proste Źródło: XML Enhancements to Java (XJ). User Manual for Release Version 1.0 http://www.research.ibm. com/xj/doc/xjmanual/ XJmanual.html

Bardziej szczegółowo

Kurs WWW Język XML, część I

Kurs WWW Język XML, część I Język XML, część I Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Zawartość modułu Wprowadzenie do XML Składnia Znaczniki i atrybuty DTD XML Schema Na podstawie kursu ze strony: http://www.w3schools.com/schema/default.asp

Bardziej szczegółowo

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl Plan wykładu Wprowadzenie: historia rozwoju technik znakowania tekstu Motywacje dla prac nad XML-em Podstawowe koncepcje XML-a XML jako metajęzyk

Bardziej szczegółowo

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

29. Poprawność składniowa i strukturalna dokumentu XML 29. i strukturalna dokumentu XML 13 października 2015 1 2 Poprawny składniowo dokument XML powinien być tworzony zgodnie z poniżej przedstawionymi zasadami. Deklaracja XML Powinien zawierać deklarację

Bardziej szczegółowo

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

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema XML Schema Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 19 listopada 2005 roku Wstęp XML Schema służy do definiowania struktury dokumentu XML (pełni podobną funkcję jak DTD).

Bardziej szczegółowo

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty? Globalne i lokalne deklaracje elementów i atrybutów Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Deklaracje lokalne:

Bardziej szczegółowo

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute: Standard Relax NG Schemat strukturalizacji dokumentów Relax NG (relaxing). Opracowany głównie przez Jamesa Clarka i Makoto Muratę. Standard ISO: Information technology Document Schema Definition Language

Bardziej szczegółowo

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

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ EMAIL DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP WERSJA 1 z 15 Spis treści 1. Kanał email dla podmiotów zewnętrznych...

Bardziej szczegółowo

XML extensible Markup Language. Paweł Chodkiewicz

XML extensible Markup Language. Paweł Chodkiewicz XML extensible Markup Language Paweł Chodkiewicz XML - extensible Markup Language Uniwersalny język znaczników przeznaczony do reprezentowania różnych danych w strukturalizowany sposób. Historia GML Projekt

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

Bardziej szczegółowo

The Binder Consulting

The Binder Consulting The Binder Consulting Contents Indywidualne szkolenia specjalistyczne...3 Konsultacje dla tworzenia rozwiazan mobilnych... 3 Dedykowane rozwiazania informatyczne... 3 Konsultacje i wdrożenie mechanizmów

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

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

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI Instrukcja użytkownika Narzędzie do modelowania procesów BPEL Warszawa, lipiec 2009 r. UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ

Bardziej szczegółowo

2 Podstawy tworzenia stron internetowych

2 Podstawy tworzenia stron internetowych 2 Podstawy tworzenia stron internetowych 2.1. HTML5 i struktura dokumentu Podstawą działania wszystkich stron internetowych jest język HTML (Hypertext Markup Language) hipertekstowy język znaczników. Dokument

Bardziej szczegółowo

Schematy XML. Tomasz Traczyk. ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/

Schematy XML. Tomasz Traczyk. ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Schematy XML Tomasz Traczyk ttraczyk@ia.pw.edu.pl http://www.ia.pw.edu.pl/~ttraczyk/ Plan prezentacji Dlaczego schematy? Przykład schematu XML Schema nieco szczegółów Rola schematów XML Problemy z DTD

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

RDF Schema (schematy RDF)

RDF Schema (schematy RDF) RDF Schema (schematy RDF) Schemat RDF nie dostarcza słownictwa dla aplikacji klasy jak np.: Namiot, Książka, lub Osoba; i właściwości, takich jak np.: waga w kg, autor lub jobtitle Schemat RDF zapewnia

Bardziej szczegółowo

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

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT 1. Wstęp XML (Extensible Markup Language Rozszerzalny Język Znaczników) to język formalny przeznaczony do reprezentowania danych

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

DTD - encje ogólne i parametryczne, przestrzenie nazw

DTD - encje ogólne i parametryczne, przestrzenie nazw DTD - encje ogólne i parametryczne, przestrzenie nazw Instytut Informatyki Encje Encja (ang.entity) - uogólnienie pojęcia makrodefinicji Encje to dogodny sposób reprezentacji danych które występują wielokrotnie,

Bardziej szczegółowo

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane. Definiowanie typów dokumentów Część 1. DTD, XML Schema Jak wygląda XML? st. asp. Jan Łapówka dołowice Górne wypadek

Bardziej szczegółowo

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki Instytut Informatyki Literatura http://www.w3c.org/tr/ - Technical Reports K. B. Stall - XML Family of Specifications, Addison-Wesley 2003 P. Kazienko, K. Gwiazda - XML na poważnie, Helion 2002 XML Rozszerzalny

Bardziej szczegółowo

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

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane Extensible Markup Language (XML) Wrocław, 15.03.2019 - Java - technologie zaawansowane Wprowadzenie XML jest językiem znaczników (ang. markup language) używanym do definiowania zbioru zasad rozmieszczenia

Bardziej szczegółowo

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

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 I Wprowadzenie (wersja 0906) Kurs OPC S7 Spis treści Dzień 1 I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami automatyki I-6 Cechy podejścia dedykowanego

Bardziej szczegółowo

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI ul. Wspólna 1/3 00-529 Warszawa URZĘDOWE POŚWIADCZENIA ODBIORU UPP ORAZ UPD Projekt współfinansowany Przez Unię Europejską Europejski

Bardziej szczegółowo

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services Web Services Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 2 grudnia 2005 roku Wstęp Oprogramowanie napisane w różnych językach i uruchomione na różnych platformach może wykorzystać

Bardziej szczegółowo

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017 Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2016-2020 realizacja w roku akademickim 2016/2017 1.1. PODSTAWOWE INFORMACJE O PRZEDMIOCIE/MODULE Nazwa przedmiotu/ modułu

Bardziej szczegółowo

SOA Web Services in Java

SOA Web Services in Java Wydział Informatyki i Zarządzania Wrocław,16 marca 2009 Plan prezentacji SOA 1 SOA 2 Usługi Przykłady Jak zacząć SOA Wycinek rzeczywistości Problemy zintegrowanych serwisów : Wycinek Rzeczywistości Zacznijmy

Bardziej szczegółowo

Web Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania

Web Services. Wojciech Mazur. 17 marca 2009. Politechnika Wrocławska Wydział Informatyki i Zarządzania Standardy w Rodzaje Przykłady Politechnika Wrocławska Wydział Informatyki i Zarządzania 17 marca 2009 Standardy w Rodzaje Przykłady Plan prezentacji 1 Wstęp 2 Standardy w 3 4 Rodzaje 5 Przykłady 6 Standardy

Bardziej szczegółowo

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

Deduplikacja danych. Zarządzanie jakością danych podstawowych Deduplikacja danych Zarządzanie jakością danych podstawowych normalizacja i standaryzacja adresów standaryzacja i walidacja identyfikatorów podstawowa standaryzacja nazw firm deduplikacja danych Deduplication

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane. Definiowanie typów dokumentów Część 1. DTD, XML Schema Jak wygląda XML? st. asp. Jan Łapówka dołowice Górne wypadek

Bardziej szczegółowo

XML i nowoczesne technologie zarządzania treścią

XML i nowoczesne technologie zarządzania treścią 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

Bardziej szczegółowo

Programowanie Komponentowe WebAPI

Programowanie Komponentowe WebAPI Programowanie Komponentowe WebAPI dr inż. Ireneusz Szcześniak jesień 2016 roku WebAPI - interfejs webowy WebAPI to interfejs aplikacji (usługi, komponentu, serwisu) dostępnej najczęściej przez Internet,

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Internet Semantyczny. Schematy RDF i wnioskowanie

Internet Semantyczny. Schematy RDF i wnioskowanie Internet Semantyczny Schematy RDF i wnioskowanie Ewolucja Internetu Internet dzisiaj Internet Semantyczny Jorge Cardoso, The Syntactic and the Semantic Web, in Semantic Web Services: Theory, Tools, and

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW KARTA KURSU Nazwa Nazwa w j. ang. Przetwarzanie dokumentów XML i zaawansowane techniki WWW XML processing and advanced web technologies Kod Punktacja ECTS* 3 Koordynator dr Maria Zając Zespół dydaktyczny:

Bardziej szczegółowo

3 grudnia Sieć Semantyczna

3 grudnia Sieć Semantyczna Akademia Górniczo-Hutnicza http://www.agh.edu.pl/ 1/19 3 grudnia 2005 Sieć Semantyczna Michał Budzowski budzow@grad.org 2/19 Plan prezentacji Krótka historia Problemy z WWW Koncepcja Sieci Semantycznej

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

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

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema Globalne i lokalne deklaracje elementów i atrybutów Deklaracje lokalne:

Bardziej szczegółowo

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86

5.14 JSP - Przykład z obiektami sesji... 83 5.15 Podsumowanie... 84 5.16 Słownik... 85 5.17 Zadanie... 86 Spis treści 1 Wprowadzenie - architektura, protokoły, system WWW... 1 1.1 Wstęp.................................................. 1 1.2 Ważniejsze daty......................................... 2 1.3 Protokoły

Bardziej szczegółowo

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

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone Typy przetwarzania Przetwarzanie zcentralizowane Systemy typu mainfame Przetwarzanie rozproszone Architektura klient serwer Architektura jednowarstwowa Architektura dwuwarstwowa Architektura trójwarstwowa

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

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

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 7 XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML 1. Prosty dokument XML lab7_1.xml

Bardziej szczegółowo

Sieci komputerowe. Wstęp

Sieci komputerowe. Wstęp Sieci komputerowe Wstęp Sieć komputerowa to grupa komputerów lub innych urządzeń połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład: korzystania ze wspólnych urządzeń

Bardziej szczegółowo

Ministerstwo Finansów

Ministerstwo Finansów Ministerstwo Finansów Departament Informatyzacji Specyfikacja Wejścia-Wyjścia Wersja 1.0 Warszawa, 16.02.2017 r. Copyright (c) 2017 Ministerstwo Finansów MINISTERSTWO FINANSÓW, DEPARTAMENT INFORMATYZACJI

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Otwarte protokoły wymiany informacji w systemach ITS

Otwarte protokoły wymiany informacji w systemach ITS Otwarte protokoły wymiany informacji w systemach ITS Grzegorz Kawka PHU TELSAT Sesja nr 4: Interoperacyjność systemów ITS cz. I Podstawą działania systemów ITS jest wymiana informacji pomiędzy poszczególnymi

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

GML w praktyce geodezyjnej

GML w praktyce geodezyjnej GML w praktyce geodezyjnej Adam Iwaniak Kon-Dor s.c. Konferencja GML w praktyce, 12 kwietnia 2013, Warszawa SWING Rok 1995, standard de jure Wymiany danych pomiędzy bazami danych systemów informatycznych

Bardziej szczegółowo

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009 PWSZ w Tarnowie Tarnów, 6 lutego 2009 1 Interpretacja trójek i SWI-Prolog Składnia 2 3 4 Interpretacja trójek i SWI-Prolog Składnia Opis (ang. Resource Description Framework) jest specyfikacją modelu metadanych,

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Część I -ebxml Po zrealizowaniu materiału student będzie w stanie omówić potrzeby rynku B2B w zakresie przeprowadzania transakcji przez Internet zaprezentować architekturę ebxml wskazać na wady i zalety

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Model sieci OSI, protokoły sieciowe, adresy IP

Model sieci OSI, protokoły sieciowe, adresy IP Model sieci OSI, protokoły sieciowe, adresy IP Podstawę działania internetu stanowi zestaw protokołów komunikacyjnych TCP/IP. Wiele z używanych obecnie protokołów zostało opartych na czterowarstwowym modelu

Bardziej szczegółowo

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

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML Plan dzisiejszego wykładu Narzędzia informatyczne w językoznawstwie Perl - Wprowadzenie do XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 16. kwietnia

Bardziej szczegółowo

Wprowadzenie do XML schema

Wprowadzenie do XML schema Spis treści Tomasz Przechlewski 1. Podstawowe pojęcia. 1 2. Typy proste.. 3 3. Wzorzec regułowy 4 4. Typy złożone 5 5. Modele o prostej zawartości 5 6. Modele o złożonej zawartości. 6 7. Rozszerzanie modelu

Bardziej szczegółowo

Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski

Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski Dodatkowe możliwości RDF Seminarium magisterskie Paweł Chrząszczewski Inne możliwości RDF RDF posiada szereg dodatkowych funkcji, takich jak wbudowane typy i właściwości reprezentujące grupy zasobów i

Bardziej szczegółowo

Wszystko na temat wzoru dokumentu elektronicznego

Wszystko na temat wzoru dokumentu elektronicznego Stowarzyszenie PEMI Wszystko na temat wzoru dokumentu elektronicznego Czym jest, kto go tworzy, kto publikuje, kto może z niego skorzystać? Mirosław Januszewski, Tomasz Rakoczy, Andrzej Matejko 2007-07-25

Bardziej szczegółowo

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania Michał Socha, Wojciech Górka Integracja danych Prosty export/import Integracja 1:1 łączenie baz danych

Bardziej szczegółowo

Tom 6 Opis oprogramowania

Tom 6 Opis oprogramowania Część 4 Narzędzie do wyliczania wielkości oraz wartości parametrów stanu Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 30 maja 2012 Historia dokumentu Nazwa

Bardziej szczegółowo

Wyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość).

Wyrażenie wewnątrz nawiasów jest atomem (rozpatrujemy je jako całość). Wyrażenia regularne pełnią istotną rolę w PHP. Umożliwiają one opisywanie i przetwarzanie długich ciągów znaków. Dzieje się to na zasadzie porównania danego ciągu znaków z określonym wzorem, ułożonym przez

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

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

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) Spis treści Dzień 1 I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501) I-3 O czym będziemy mówić? I-4 Typowe sytuacje I-5 Klasyczne podejście do komunikacji z urządzeniami

Bardziej szczegółowo

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Internet Semantyczny i Logika II

Internet Semantyczny i Logika II Internet Semantyczny i Logika II Ontologie Definicja Grubera: Ontologia to formalna specyfikacja konceptualizacji pewnego obszaru wiedzy czy opisu elementów rzeczywistości. W Internecie Semantycznym językiem

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Systemy ekspertowe System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Autorzy: 1 Wstęp Wybór zestawu komputerowego, ze względu na istnienie wielu

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd. Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd. Andrzej Natuniewicz, Andrzej Perkowski Departament Geodezji i Kartografii Urząd Marszałkowski Województwa

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Budowa aplikacji sieciowych. Usługi WWW dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Usługi WWW W3C Working Group, Web Services Architecture,

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo