XML i Java 1. XML Budowa dokumentu XML. Projektowanie systemów informatycznych

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

Download "XML i Java 1. XML. 1.1. Budowa dokumentu XML. Projektowanie systemów informatycznych"

Transkrypt

1 1. XML 1.1. Budowa dokumentu XML XML i Java XML (ang. Extensible Markup Language) rozszerzalny język znaczników. Jest to standard mający bardzo szeroki zakres zastosowań. Dokument XML składa się z następujących części: prologu zawiera wersje dokumentu, komentarze, metadane o treści dokumentu ciała dokumentu zawiera element pierwotny (korzeń) i elementy podrzędne epilogu zawiera on komentarze i instrukcje dotyczące obsługi Prolog Prolog znajduje się na samym początku dokumentu. Rekomendacja W3C zaleca umieszczenie w nim wersji języka XML oraz standardu kodowania znaków. Do ich zadeklarowania służą instrukcje przetwarzania. Są one otoczone parą znaczników <?...?>. Po pierwszym znaku zapytania występuje słowo kluczowe, które interpretuje aplikacja przetwarzająca dokument. Treść instrukcji przetwarzania znajduję się pomiędzy tym słowem a znacznikiem?>. Przykład. <?xml version= 1.0 encoding= windows-1250?> Parametr version powyższej instrukcji przetwarzania informuje aplikację przetwarzającą o wersji języka XML, z którą zgodny jest dany dokument. Parametr encoding jest opcjonalny i określa standard kodowania znaków. Jego wartością domyślną jest UTF-8. Komentarze Komentarze muszą występować na zewnątrz wszystkich znaczników. Można je umieszczać w dowolnym miejscu dokumentu poniżej jego deklaracji XML. Zawierają zwykle objaśnienia i są ignorowane przez parser. Komentarze rozpoczynamy od <--! i kończymy -->, na przykład <!-- Tu wpisujemy treść komentarza -->. Elementy Element składa się ze znacznika początkowego, końcowego oraz treści między nimi zwanej jego zawartością. Nazwy elementów możemy tworzyć ze znaków postaci 0...9, a...z, A...Z, _, -, :. Muszą one jednak zaczynać się od litery, podkreślenia lub dwukropka. Elementy mogą zawierać : inne elementy (typ elementowy) inne elementy i tekst (typ mieszany) Zawartością elementu może być również wartość pusta. Możemy wtedy zapisać taki element w krótszej postaci, to znaczy piszemy <element_pusty/> zamiast <element_pusty><element_pusty/>

2 Element główny Prawidłowo sformułowany dokument XML musi posiadać jeden element, który zawiera wszystkie inne elementy. Jest to tak zwany element główny, jego zawartość łącznie z nim stanowi ciało dokumentu XML. Atrybuty Atrybut to para złożona z nazwy i wartości. Najpierw podajemy jego nazwę (zakres dopuszczalnych znaków jest taki jak w przypadku elementów), następnie znak równości i ujętą w cudzysłowie jego wartość. Atrybuty umieszczamy w znacznikach początkowych, na przykład: <zamówienie id= 1 data_wysłania= >... </zamówienie>. Element zamówienie ma dwa atrybuty o nazwach id, data_wysłania oraz wartościach odpowiednia 1, Znacznik początkowy może mieć oczywiście zero lub więcej atrybutów. Encje Encja to część dokumentu XML, która może zawierać tekst lub dane binarne. Istnieją dwie kategorie encji : parsowane (dane tekstowe) nieparsowane ( dane tekstowe nie zawierające kodu XML, dane binarne) Encja może włączać do dokumentu XML inne encje, poprzez zastosowanie odwołań do nich. Jeżeli encja odwołuje się do encji parsowanej w celu umieszczenia jej danych w dokumencie, to muszą one być poprawnie sformatowane. Każdy procesor XML powinien rozpoznawać encje predefiniowane, które odpowiadają znakom. Do zbioru tego należą: Znak Sekwencja < &lt > &gt & &amp &apos &quot Po stworzeniu dokumentu XML (encji), należy dokonać deklaracji encji w innym dokumencie, aby wykorzystać wcześniej zdefiniowane dane. W celu odwołania się do encji należy poprzedzić znakiem & jej zdefiniowaną wcześniej nazwę. Przykład przedstawia definicje encji o nazwie encja_1 i odwołanie do niej: <?xml version = 1.0?> <!ENTITY encja_1 SYSTEM "dane/dane.xml"> &encja_1

3 Sekcje CDATA Użycie takiej sekcji informuje procesor XML, że zawarty w niej tekst ma przekazać bez zmian aplikacji przetwarzającej dane z dokumentu XML. Są one zatem silnym mechanizmem, gdyż umożliwiają wstawianie do dokumentów XML danych nie podlegających interpretacji. Sekcje CDATA rozpoczynamy pisząc <![CDATA a kończymy ]]> Przestrzenie nazw XML Umożliwiają one uniknięcia konfliktów między poszczególnymi zbiorami znaczników, powstałych przez połączenie kilku dokumentów XML w jedną całość. Mechanizm ten polega na poprzedzeniu nazwy elementu, identyfikatorem odpowiedniej przestrzeni nazw z dwukropkiem. Powstała w ten sposób nazwa jest określana mianem nazwy kwalifikowanej. Specyfikacja przestrzeni nazw zaleca używanie adresów URI jako identyfikatorów. Adresy URI mogą zawierać znaki niedopuszczalne w nazwach elementów XML i być dość długie. W związku z tym identyfikator jest wiązany z prefiksem (nazwą zawierającą tylko znaki dopuszczalne oprócz dwukropka w elementach XML), nazwy kwalifikowane powstają zaś przez złożenie prefiksu, dwukropka i lokalnej nazwy elementu. W celu zdefiniowania przestrzeni nazw używa się atrybutu xmlns:prefiks, gdzie prefiks zostanie wykorzystany do identyfikacji naszej przestrzeni. Wartością atrybutu xmlns:prefiks będzie zaś jakiś adres URI. Przykład dokumentu XML (kursy.xml) z domyślną i jawną przestrzenią nazw: <?xml version="1.0" encoding="iso "?> <tabela_kursow xmlns= xmlns:kursy= > <data_notowania> </data_notowania> <kursy:pozycja> <kursy:nazwa_waluty>euro</kursy:nazwa_waluty> <kursy:przelicznik>1</kursy:przelicznik> <kursy:kod_waluty>eur</kursy:kod_waluty> <kursy:kurs_kupna>3,9072</kursy:kurs_kupna> <kursy:kurs_sprzedazy>3,9862</kursy:kurs_sprzedazy> </kursy:pozycja> <kursy:pozycja> <kursy:nazwa_waluty>jen japoński</kursy:nazwa_waluty> <kursy:przelicznik>100</kursy:przelicznik> <kursy:kod_waluty>jpy</kursy:kod_waluty> <kursy:kurs_kupna>2,7996</kursy:kurs_kupna> <kursy:kurs_sprzedazy>2,8562</kursy:kurs_sprzedazy> </kursy:pozycja> </tabela_kursow>

4 W przykładzie tym elementy, których nazwa rozpoczyna się od prefiksu kursy pochodzą z przestrzeni nazw o identyfikatorze Dodanie prefiksu do każdego elementu zwiększa rozmiar i obniża czytelność dokumentu. Specyfikacja przestrzeni nazw umożliwia jednak zastosowanie domyślnej przestrzeni. Elementy do niej należące nie wymagają prefiksu. W powyższym dokumencie identyfikatorem domyślnej przestrzeni nazw jest Należą do niej elementy o nazwach tabela_kursow i data_notowania Definicja typu dokumentu Definicja typu dokumentu (ang. DTD, Document Type Definition) określa reguły składniowe, za pomocą których są tworzone dokumenty XML. Reguły te określają między innymi: nazwę elementu głównego dokumentu elementy, które mogą wchodzić w skład innych elementów porządek (kolejność elementów) krotność występowania elementów atrybuty mogące pojawić się w elemencie typy danych stanowiące zawartość elementu Przykład pliku DTD dla powyższego dokumentu XML o nazwie kursy.xml <!ELEMENT tabela_kursow (data_notowania,pozycja*)> <ATTLIST tabela_kursow xmlns CDATA> <ATTLIST tabela_kursow xmlns:kursy CDATA> <!ELEMENT data_notowania (#PCDATA)> <!ELEMENT pozycja (nazwa_waluty,przelicznik,kod_waluty, kurs_kupna, kurs_sprzedazy)> <!ELEMENT nazwa_waluty (#PCDATA)> <!ELEMENT przelicznik (#PCDATA)> <!ELEMENT kod_waluty (#PCDATA)> <!ELEMENT kurs_kupna(#pcdata)> <!ELEMENT kurs_sprzedazy (#PCDATA)> Pierwszy wiersz definiuje element główny tabela_kursow. Definicja elementu w DTD rozpoczyna się prefiksem <!ELEMENT. Nawiasy występujące w definicji, zawierają listę oddzielonych przecinkami elementów podrzędnych danego elementu. Znak gwiazdki po elemencie pozycja oznacza, że liczba jego wystąpień może być równa zero lub więcej (znak plusa oznacza, co najmniej jedno wystąpienie). Element data_notowania musi występować jeden raz, opcjonalność oznaczamy symbolem?. Następne dwa wiersze definiują atrybuty elementu głównego i określają ich typ jako CDATA. Czwarty wiersz definiuje element data_notowania. Jego typ zostaje określony jako PCDATA. Typy CDATA (ang. character data) i PCDATA (ang. parsed character data) dotyczą danych znakowych lub tekstu. Pozostała część pliku definiuje element pozycja, który zawiera kolejno elementy: nazwa_waluty, przelicznik, kod_waluty, kurs_kupna, kurs_sprzedazy. Krotność występowania każdego z nich jest równa jeden i są one

5 wszystkie typu tekstowego (PCDATA) XML Schema Metajęzyk XML Schema bazuje na składni XML i jest o wiele bogatszy od DTD. Służy do definiowania struktury dokumentów XML i pozwala na definiowanie typów danych. XML Schema zaprojektowano pod kątem współpracy z mechanizmem przestrzeni nazw. W schemacie (dokumencie XML Schema) wszystkie elementy definiujące strukturę dokumentu noszą nazwy o prefiksie xsd (ang. XML Schema Definition). Prefiks jest odwzorowywany na identyfikator przestrzeni nazw postaci : Adres ten wskazuje lokalizację specyfikacji XML Schema rekomendowaną przez organizację W3C. Elementem głównym schematu jest xsd:schema. Wewnątrz niego mogą występować inne elementy, atrybuty i typy danych. Jeżeli dokument XML posiada zdefiniowane przestrzenie nazw, to należy je określić w schemacie za pomocą atrybutów elementu głównego. Dzięki temu możemy odróżnić elementy XML wchodzące w skład dokumentu XML, od elementów zawartych w specyfikacji schematu. Atrybut targetnamespace definiuje przestrzeń nazw dla dokumentów zgodnych z regułami danego schematu. Specyfikacja XML Schema w przeciwieństwie do DTD zawiera duży zbiór predefiniowanych typów podstawowych (np. daty, dodatnie liczby całkowite). Istnieje również mechanizm definiowania własnych typów, które można wykorzystać do określenia typu wartości danego elementu lub atrybutu. Nowy typ musi wywodzić się z bazowego (predefiniowanego lub innego wcześniej utworzonego typu prostego), który jest ograniczony przez pewne kryteria. Nie możemy oczywiście zastosować do wszystkich typów każdego kryterium. Pojęcie liczby cyfr dziesiętnych po przecinku nie ma sensu na przykład dla dat, napisów. Kryteria charakteryzują typy danych i posiadają następujące cechy: minlength, maxlength, length minimalna, maksymalna i dokładna liczba znaków w zapisie wartości enumeration lista wszystkich możliwych wartości pattern wzorzec wyrażenia regularnego dla wartości minexclusive, mininclusive, maxinclusive, maxexclusive dopuszczalny zakres wartości liczbowych totaldigits ilość cyfr dziesiętnych w zapisie wartości liczbowych fractiondigits ilość cyfr dziesiętnych po przecinku whitespace sposób interpretacji białych znaków w zapisie wartości Przykłady definicji typów prostych: <xsd:simpletype name= typ_kod_pocztowy > <xsd:restriction base= xsd:string > <xsd:pattern value= \d2 \d3 /> </ xsd:restriction> <xsd:simpletype> Fragment powyższego schematu definiuje typ prosty dla elementu kod_pocztowy. Nazwą typu jest typ_kod_pocztowy. Bazuje on na typie napisowym (string) i jest ograniczony przez wzorzec dwóch cyfr, myślnika i trzech cyfr.

6 <xsd:simpletype name= typ_plec > <xsd:restriction base= xsd:string > <xsd:enumeration value= K /> <xsd:enumeration value= M /> </ xsd:restriction> <xsd:simpletype> Powyższy typ prosty o nazwie typ_plec bazuje również na typie napisowym. Lista jego wszystkich możliwych wartości składa się z dwóch elementów (K lub M). Typy złożone w standardzie XML Schema definiują w przeciwieństwie do prostych złożone modele zawartości (np. dla elementów, które zawierają elementy potomne, atrybuty). Typy złożone obejmują liczność i sekwencjonowanie elementów potomnych, nazwy atrybutów oraz to, czy ich występowanie jest wymagane. Składnia definiowania typów podstawowych jest postaci: <xsd:complextype name= nazwa_typu> <xsd:model_zawartości> <!--ograniczenia na liczność i sekwencjonowanie elementów potomnych określane za pomocą xsd:element--> </xsd:model_zawartości> <!--deklaracje atrybutów określane za pomocą xsd:attribute--> </xsd:complextype> Element xsd:complextype zawiera definicję typu złożonego. Najczęściej wykorzystywanymi modelami zawartości są elementy : xsd:sequence sekwencja elementów xsd:choice wybór jednego spośród kilku elementów xsd:all pozwala dokonać wyboru pewnego zbioru elementów i umieścić je w dowolnej kolejności xsd:group odwołuje się do modelu zawartości umieszczonego w innym miejscu Wewnątrz modelu zawartości elementy potomne są definiowane za pomocą xsd:element. Po wypełnieniu jego specyfikacji występują definicje atrybutów, określone za pomocą xsd:attribute. Wiązanie dokumentu XML ze schematem jest dokonywane za pomocą atrybutu xsi:schemalocation jego elementu głównego. Atrybut ten zawiera parę wartości. Pierwszą z nich jest identyfikator przestrzeni nazw związanej z dokumentem XML, na którego lokalizacje wskazuje druga wartość atrybutu. W przypadku występowania w dokumencie XML kilku przestrzeni nazw, należy atrybutowi xsi:schemalocation przypisać wiele par wartości. Używanie prefiksu xsi (ang. XML Schema Instance) w nazwie atrybutu jest ogólnie przyjętą konwencją.

7 Przykład dokumentu XML (waluty.xml) i jego schematu (waluty.xsd). waluty.xml. <?xml version="1.0" encoding="iso "?> <waluty xmlns= xmlns:xsi=" xsi:schemalocation=" C:\praca_magisterska\waluty\waluty.xsd" data_notowania=" "> <pozycja> <kraj>australia</kraj> <przelicznik>1</przelicznik> <kod_waluty>aud</kod_waluty> <sym_waluty>781</sym_waluty> <kurs_sredni>2.4439</kurs_sredni> <zmiana>+0.5</zmiana> </pozycja> <pozycja> <kraj>cypr</kraj> <przelicznik>1</przelicznik> <kod_waluty>cyp</kod_waluty> <sym_waluty>615</sym_waluty> <kurs_sredni>7.0060</kurs_sredni> <zmiana>+0.08</zmiana> </pozycja> </waluty> waluty.xsd <?xml version="1.0"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns=" <xsd:element name="waluty" type="typ_waluty"/> <xsd:complextype name="typ_waluty"> <xsd:sequence> <xsd:element name="pozycja" type="typ_pozycja"/> </xsd:sequence> <xsd:attribute name="data_notowania" type="xsd:date" use="required"/> </xsd:complextype> <xsd:simpletype name="typ_symb_waluty"> <xsd:restriction base="xsd:string"> <xsd:pattern value"\d3"/>

8 </xsd:restriction> </xsd:simpletype> <xsd:complextype name="typ_pozycja"> <xsd:sequence> <xsd:element name="kraj" type="xsd:string"/> <xsd:element name="przelicznik" type="xsd:positiveinteger"/> <xsd:element name="kod_waluty" type="xsd:string"/> <xsd:element name="symb_waluty" type="typ_symb_waluty"/> <xsd:element name="kurs_sredni" type="xsd:decimal"/> </xsd:sequence> </xsd:complextype> </xsd:schema> 2. JAXP (Java API for XML Processing) 2.1. Wprowadzenie JAXP jest API (Application Programming Interface) Javy do przetwarzania danych XML. Umożliwia wybór sposobu przetwarzanych dokumentów XML, gdyż zawiera standardowe parsery SAX i DOM. Kontrolę nad sposobem prezentacji danych, JAXP pozwala sprawować za pomocą XSLT. Obsługa dokumentów definiujących strukturę danych XML (DTD, XML Schema) jest również wspierana przez standard JAXP. SAX, DOM i XSLT zostały zdefiniowane przez organizacje XML-DEV i W3C. Głównymi pakietami są : javax.xml.parsers definiuje klasy pozwalające przetwarzać dokumenty XML org.xml.sax dostarcza klas i interfejsów dla SAX org.w3c.dom dostarcza interfejsów dla DOM javax.xml.transform definiuje klasy, interfejsy do przetwarzania instrukcji transformacji i wykonywania transformacji ze źródła do celu Komunikacja między aplikacjami klienckimi odbywa się zwykle za pomocą dokumentów XML. JAXP umożliwia przetwarzanie właśnie takich dokumentów SAX (Simple API for XML) Analizator składniowy SAX jest oparty na modelu zdarzeń. Parser SAX przebiega kolejno elementy dokumentu XML od początku do końca. W momencie napotkania danego elementu generuje odpowiednie powiadomienie, które przechwytuje program obsługi (ang. handler). Rodzajem najprostszej akcji podejmowanej przez program obsługi, jest na przykład wypisanie tekstu między znacznikiem początkowym a końcowym danego elementu. Oczywiście po napotkaniu pewnych elementów przez parser i zgłoszeniu ich wystąpienia nie musi zostać podjęta żadna akcja.

9 Rysunek 2. Model SAX Kiedy SAX rozpoczyna parsowanie (wywołuje metodę parse) urządzenie czytające (ang. reader) wywołuje jedną lub kilka metod zdefiniowanych w interfejsach ContentHandler, ErrorHandler, DTDHandler, EntityResolver. Obiekt SAXParserFactory otrzymujemy wywołując statyczną metodę newinstance() tejże klasy. Możemy go skonfigurować za pomocą następujących metod : setfeature ustawia poszczególne cechy przez podanie ich nazwy i wartości setnamespaceaware wyszczególnia, że parser dostarczy wsparcia dla mechanizmu przestrzeni nazw setvalidating wyszczególnia, że parsowane dokumenty zostaną poddane walidacji Argumentem wszystkich powyższych metod z wyjątkiem setfeature jest tylko typ logiczny. Obiekt SAXParser otrzymujemy przez wywołanie metody newsaxparser() na rzecz SAXParserFactory. Instancja klasy SAXParser definiuje kilka różnych metod parse. Przetwarzane dane XML mogą pochodzić z wielu źródeł wejściowych. Przykładami takich obiektów są InputStream, File, URL. Zawartość XML jest parsowana za pomocą metod zdefiniowanych w HandlerBase lub DefaultHandler. Obiekt ContentHandler jest głównym interfejsem, którego implementuje większość aplikacji korzystających z SAX, gdyż dostarcza informacji o podstawowych zdarzeniach. Metody takie jak startdocument, enddocument, startelement, endelement są wywoływane kiedy rozpoznawany jest znacznik XML (odpowiednio rozpoczynający, kończący dokument, rozpoczynający, kończący element). Interfejs definiuje również metody characters i processinginstruction, które są wywoływane gdy parser napotka odpowiednio element XML zawierający tekst, włączone do dokumentu instrukcje przetwarzania. Interfejs ErrorHandler jest przeznaczony do obsługi błędów parsera. Jego metody error, fatalerror, warning są wywoływane w odpowiedzi na różne błędy parsowania. Domyślny obiekt obsługujący błędy zwraca wyjątki tylko dla błędów krytycznych, a wszystkie inne ignoruje. Jeżeli zachodzi konieczność obsługi wszystkich błędów, to należy dostarczyć parserowi

10 implementacje interfejsu ErrorHandler. Interfejs DTDHandler jest implementowany gdy aplikacja SAX potrzebuje informacji o notacjach i nieparsowanych encjach. Wystąpienie deklaracji tych elementów zgłaszają metody instancji DTDHandler notationdecl, unparsedentitydecl. EntityResolver to prosty interfejs do analizowania encji. Posiada tylko jedną metodę resolveentity, która jest wywoływana gdy parser musi zidentyfikować dane, identyfikowane za pomocą URI. W większości przypadków URI jest prostym adresem URL, który określa położenie dokumentu. Solidne aplikacje implementują metody interfejsu ContentHandler i ErrorHandler. Interfejsy ContentHandler, ErrorHandler, DTDHandler, EntityResolver implementuje klasa DefaultHandler z pakietu org.xml.sax.helpers. Przykład. Program dokonuje analizy dokumentu XML (komunikatu SOAP), który zawiera treść zamówienia. Szkielet programu order_sax.java: 1. Import pakietów Javy java.io.*, java.util.* - podstawowe pakiety java.awt.*, javax.swing.*, javax.swing.table* - pakiety pozwalające stworzyć graficzny interfejs użytkownika javax.xml.parsers.*, org.xml.sax.helpers.*, org.xml.sax.* - pakiety umożliwiające parsowanie dokumentu za pomocą parsera SAX 2. Główne fragmenty programu klasa reprezentująca pojedynczy element zamówienia, posiada metody get, set dla odpowiednich pól class element int id; String nazwa; int ilosc; klasa reprezentująca zamówienie, którego elementy przechowuje obiekt typu ArrayList class elements ArrayList elements_list = new ArrayList(); konstruktor public elements() f-cja dodaje element public void add_element(element e) elements_list.add(e); f-cja zwraca element o odpowiednim indeksie

11 public element get_element(int index) if(index>=elements_list.size()) return null; return (element)elements_list.get(index); f-cja zwraca ostatni element public element get_last_element() return get_element(elements_list.size()-1); f-cja zwraca liczbę elementów zamówienia public int get_size() return elements_list.size(); klasa rozszerzająca DefaultHandler class elements_sax_d_h extends DefaultHandler elements elementy; metody startdocument(), enddocument() zostaną wywołane odpowiednio w momencie rozpoczęcia i zakończenia procesu parsowania public void startdocument() throws SAXException System.out.println("START..."); public void enddocument() throws SAXException System.out.println("STOP"); metody startelement, endelement zostaną wywołane w momencie napotkania przez parser znacznika początkowego, końcowego elementu (odpowiednio), namespaceuri URI przestrzeni nazw, sname nazwa prosta elementu, qname nazwa kwalifikowna elementu, attrs obiekt zawierający atrybuty danego elementu public void startelement(string namespaceuri, String sname, String qname, Attributes attrs) throws SAXException public void startelement(string namespaceuri, String sname, String qname, Attributes attrs) throws SAXException

12 metoda characters jest wywoływana w momencie napotkania zawartości tekstowej elementu, buf[] tablica zawierająca treść dokumentu XML, offset numer pozycji początkowej (wyrazu stanowiącego zawartość elementu) w tablicy buf, len długość wyrazu public void characters(char buf[], int offset, int len) throws SAXException klasa tworzy tabelę zawierającą elementy zamówienia, dokonuje również procesu parsowania class table_elements extends AbstractTableModel elements_handler jest klasą dziedziczącą z DefaultHandler elements_handler = new elements_sax_d_h(); SAXParserFactory factory = SAXParserFactory.newInstance(); ustawienie walidacji factory.setvalidating(true); try SAXParser saxparser = factory.newsaxparser(); argumentami metody parse są nazwa pliku (plik) i obiekt rozszerzający DefaultHandler (elements_handler) saxparser.parse(plik,elements_handler); 2.3. DOM (Document Object Model) Obiektowy model dokumentu DOM tworzy reprezentację dokumentu XML w postaci drzewa. DOM dostarcza interfejsy umożliwiające dostęp do danych i manipulowanie nimi. Zawiera nawet funkcje raportujące i przeszukujące.

13 Rysunek 3. Model DOM Obiekt DocumentBuilderFactory uzyskujemy przez wywołanie statycznej metody newinstance(). Instancja tej klasy podobnie jak SAXParserFactory zawiera metody służące do konfiguracji. Obiekt DocumentBuilderFactory oprócz funkcji setnamespaceaware, setvalidating posiada dodatkowo metody: setattribute pozwala ustawić konkretne atrybuty przez podanie ich nazwy i wartości setcoalescing specyfikuje, że parser dokona przekształcenia węzłów CDATA na węzły tekstowe setexpandentityreference specyfikuje, że parser weźmie pod uwagę odwołania do encji setignoringcomments komentarze w trakcie parsowania zostaną zignorowane setignoringelementcontentwhitespace parser usunie białe znaki występujące w zawartości elementu Argumentem wszystkich powyższych metod z wyjątkiem setattribute jest tylko typ logiczny. Obiekt DocumentBuilder otrzymujemy przez wywołanie metody newdocumentbuilder() na rzecz DocumentBuilderFactory. Klasa DocumentBuilder pozwala uzyskać z danych XML instancje obiektu Document, reprezentującą dokument XML w postaci drzewa. Podobnie jak klasa SAXParser tak i DocumentBuilder zawiera kilka metod parse. Interfejs Document przedstawia całkowity dokument XML. Zawiera szereg metod umożliwiających dostęp do danych XML, umieszczonych w hierarchicznej strukturze drzewa. Można tworzyć również puste obiekty Document i wypełniać ich zawartość. Interfejs Document posiada metody pozwalające konstruować nowe elementy, atrybuty, tekstowe węzły, encje, instrukcje przetwarzania, komentarze.

14 Przykład. Program pozwala wyświetlić zawartość dowolnego pliku w formacie XML w postaci drzewa. Szkielet programu dom_tree.java: 1. Import pakietów Javy java.io.*, java.util.* - podstawowe pakiety java.awt.*,java.awt.event.*, javax.swing.*, javax.swing.event.*, javax.swing.tree.* - pakiety pozwalające stworzyć graficzny interfejs użytkownika javax.xml.parsers.*, org.xml.sax.*, org.w3c.dom.* - pakiety umożliwiające parsowanie dokumentu za pomocą parsera DOM 2. Główne fragmenty programu utworzenie instancji DocumentBuilderFactory DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); białe znaki (spacje, tabulatory) zostaną zignorowane przez parser factory.setignoringelementcontentwhitespace(true); utworzenie obiektu DocumentBuilder builder = factory.newdocumentbuilder(); w przypadku wystąpienia błędów zostaną one obsłużone przez metody klasy dom_error (implementuje ona interfejs ErrorHandler) builder.seterrorhandler(new dom_error()); metoda parse zwraca reprezentację dokumentu XML w postaci drzewa, które jest reprezentowane przez obiekt Document Document doc=builder.parse(f); klasa dom_tree_model implementuje interfejs TreeModel, którego metody po odpowiednim ich nadpisaniu pozwolą utworzyć drzewo class dom_tree_model implements TreeModel Document document; konstruktor public dom_tree_model(document doc) document=doc; metoda zwraca korzeń drzewa public Object getroot() return document.getdocumentelement(); metoda zwraca liczbę dzieci danego rodzica public int getchildcount(object parent)

15 Node node_parent=(node)parent; NodeList list=node_parent.getchildnodes(); return list.getlength(); metoda zwraca wezeł podrzędny (dziecko) o danym numerze public Object getchild(object parent,int i) Node node_parent=(node)parent; NodeList list=node_parent.getchildnodes(); return list.item(i); metoda zwraca numer węzła podrzędnego danego węzła public int getindexofchild(object parent,object child) Node node_parent=(node)parent; NodeList list=node_parent.getchildnodes(); for(int i=0;i<list.getlength();i++) if(getchild(node_parent,i)==child) return i; return -1; metoda zwraca true gdy badany węzeł jest liściem public boolean isleaf(object node) return getchildcount(node)==0; klasa odpowiedzialna za obsługę błędów, błędów fatalnych i ostrzeżeń class dom_error implements ErrorHandler public void error(saxparseexception exception) System.out.println("\n** Parsing error" + ", line " + exception.getlinenumber() + ", uri " + exception.getsystemid()); System.out.println(" " + exception.getmessage()); public void fatalerror(saxparseexception exception) System.out.println("\n** Parsing error" + ", line " + exception.getlinenumber() + ", uri " + exception.getsystemid()); System.out.println(" " + exception.getmessage()); public void warning(saxparseexception exception)

16 System.out.println("\n** Parsing error" + ", line " + exception.getlinenumber() + ", uri " + exception.getsystemid()); System.out.println(" " + exception.getmessage()); 2.4. XSLT (XML Style Sheet Language for Transformations) XSLT to język arkuszy stylów do transformacji XML. Służy do przekształcania dokumentów XML do dowolnej innej postaci. Najczęściej XSLT jest stosowany do transformacji XML-a na HTML-a. Oczywiście można otrzymać dokumenty w innym formacie (np. xml, pdf) z danych XML za pomocą XSLT. Obsługa w JAXP standardu XSLT odbywa się za pomocą pakietu javax.xml.transform. Kod Javy umożliwiający zastosowanie szablonu stylów do dokumentu XML (w celu transformacji) nie jest zbyt skomplikowany. Dużo więcej pracy zajmuje stworzenie samego szablonu. Rysunek 4. Model XSLT Obiekt TransformerFactory otrzymujemy przez wywołanie metody newinstance() na rzecz instancji tej klasy. Zawiera on następujące metody konfiguracyjne: setattribute pozwala ustawić konkretne atrybuty przez podanie ich nazwy i wartości seterrorlistener umożliwia raportowanie błędów i ostrzeżeń, jej argumentem jest ErrorListener, który nasłuchuje i przechwytuje błędy seturiresolver ustawia obiekt URIResolver, który jest domyślnie używany podczas transformacji do analizowania adresów URI występujących w xsl:include lub

17 xsl:import. Instancje klasy Transformer można uzyskać za pomocą metody newtransformer() obiektu TransformerFactory. Transformacji dokonuje metoda transform klasy Transformer. Jej argumentami są oczywiście Source i Result. Klasami implementującymi interfejs Source są DOMSource, SAXSource, StreamSource. Interfejs Result implementują zaś klasy DOMResult, SAXResult, StreamResult. Obiekt Transformer możemy utworzyć z kilkoma instrukcjami transformacji. W tym przypadku wyszczególnione transformacje zostaną oczywiście wykonane. Jeśli Transformer nie posiada instrukcji, to zwyczajnie kopiuje źródło do wyniku. Przykład. Program dokonuje przekształcenia zamówienia (komunikatu SOAP) do postaci pliku html. Szkielet programu order_xslt: 1. Import pakietów Javy java.io.* - podstawowy pakiet javax.xml.parsers.*,org.xml.sax.*,org.w3c.dom.*, javax.xml.transform.*, javax.xml.transform.stream.*, javax.xml.transform.dom.* - pakiety umożliwiające przetwarzanie dokumentu XML na postać HTML 2. Główne fragmenty programu public class order_xslt static Document document; ; f-cja main public static void main (String argv []) if (argv.length!= 2) System.err.println ("Files not found"); System.exit (1); utworzenie obiektu DocumentBuilderFactory i skonfigurowanie go tak, aby wspierał mechanizm przestrzeni nazw DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() factory.setnamespaceaware(true); try utworzenie obiektu reprezentującego arkusz stylów File stylesheet = new File(argv[0]); obiekt datafile reprezentuje plik xml File datafile = new File(argv[1]); DocumentBuilder builder = factory.newdocumentbuilder();

18 obiekt document zawiera drzewo reprezentujące dane XML document = builder.parse(datafile); utworzenie egzemplarza TransformerFactory TransformerFactory tfactory = TransformerFactory.newInstance(); obiekt stylesource implementuje interfejs Source StreamSource stylesource = new StreamSource(stylesheet); utworzenie obiektu Transformer z instrukcjami transformacji zawartymi w obiekcie stylesource Transformer transformer = tfactory.newtransformer(stylesource); DOMSource source = new DOMSource(document); obiekt result implementuje interfejs Result i reprezentuje wynik transformacji obiektu typu DOMSource StreamResult result = new StreamResult(new File("order_result.html")); metoda transform przekształca obiekt source na obiekt result, zgodnie z instrukcjami transformacji zawartymi w obiekcie stylesource transformer.transform(source, result);

Podstawy XML-a. Zaawansowane techniki programowania

Podstawy XML-a. Zaawansowane techniki programowania Podstawy XML-a Zaawansowane techniki programowania Dokumenty XML XML = ang. Extensible Markup Language rozszerzalny język znaczników

Bardziej szczegółowo

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

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

Procesowanie dokumentów XML

Procesowanie dokumentów XML Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Procesowanie dokumentów XML Programowanie w Javie 2 mgr inż. Michał Misiak Cechy XML Sformalizowany zapis informacji restrykcyjne

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

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Wykorzystywanie parsera DOM w programach Java i PL/SQL Wykorzystywanie parsera DOM w programach Java i PL/SQL Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Parser DOM Aplikacja DOM API Parser DOM Dokument XML Drzewo DOM Parser

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

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

Plan prezentacji. Przetwarzanie dokumentów XML JAXP SAX JAXP SAX DOM STAX XSLT. Przedmiot: XML i jego zastosowania. Dr inż. Stanisław Polak JAXB

Plan prezentacji. Przetwarzanie dokumentów XML JAXP SAX JAXP SAX DOM STAX XSLT. Przedmiot: XML i jego zastosowania. Dr inż. Stanisław Polak JAXB Plan prezentacji Przedmiot: XML i jego zastosowania Dr inż. Stanisław Polak JAXP SAX DOM STAX XSLT Akademia Górniczo - Hutnicza w Krakowie, Katedra Informatyki http://www.icsr.agh.edu.pl/~polak/ JAXB Inne

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

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

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

JAVA I XML ZAGADNIENIA: DOM, SAX, JAXB, XMLDecoder i XMLEncoder, ANT.

JAVA I XML ZAGADNIENIA: DOM, SAX, JAXB, XMLDecoder i XMLEncoder, ANT. JAVA I XML ZAGADNIENIA: DOM, SAX, JAXB, XMLDecoder i XMLEncoder, ANT. MATERIAŁY: http://www.mkyong.com/tutorials/java-xml-tutorials/ http://ant.apache.org http://th-www.if.uj.edu.pl/zfs/ciesla/ JĘZYK JAVA,

Bardziej szczegółowo

SAX i DOM wykorzystanie XML-a we własnych aplikacjach. Simple API for XML Parsing Document Object Model

SAX i DOM wykorzystanie XML-a we własnych aplikacjach. Simple API for XML Parsing Document Object Model SAX i DOM wykorzystanie XML-a we własnych aplikacjach Simple API for XML Parsing Document Object Model 1 SAX - wstęp Definicja: standardowy interfejs do parsowania plików XML oparty na modelu zdarzeniowym

Bardziej szczegółowo

XML DTD XML Schema CSS

XML DTD XML Schema CSS XML XML czyli Extensible Markup Language (rozszerzalny język znaczników) można traktować jak stosunkowo prosty i elastyczny format tekstowy wywodzący się z SGML. Pierwotnie został zaprojektowany aby umożliwiać

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

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

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

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

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

- 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

XML i Java. Technologie zarządzania treścią. dr inż. Robert Perliński rperlinski@icis.pcz.pl

XML i Java. Technologie zarządzania treścią. dr inż. Robert Perliński rperlinski@icis.pcz.pl XML i Java Technologie zarządzania treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej XML i Java 2/57 SAX vs. DOM Dwa podstawowe

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

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 06

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 06 Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 06 T. Romańczukiewicz Jagiellonian University 2009/2010 Plan Plan 1 SAX 2 Podsumowanie Plan SAX Podsumowanie Przypomnienie Wstęp Obsługa

Bardziej szczegółowo

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Podstawy języka XML Cel zajęć Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej)

Bardziej szczegółowo

Klasy cd. Struktury Interfejsy Wyjątki

Klasy cd. Struktury Interfejsy Wyjątki Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

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

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

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

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

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

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

XML we własnych aplikacjach

XML we własnych aplikacjach XML we własnych aplikacjach Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarządzania treścią 2008/09 Wykorzystanie XML we własnych aplikacjach Odczyt zawartości dokumentów XML. Modyfikacja

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

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

Dziedziczenie. Tomasz Borzyszkowski

Dziedziczenie. Tomasz Borzyszkowski Dziedziczenie Tomasz Borzyszkowski Podstawy Zobacz: Dziedzictwo1.java Dziedzictwo2.java Dziedziczenie jest jedną z podstawowych cech OOP ponieważ umożliwia łatwe implementowanie klasyfikacji hierarchicznych.

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ] JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA Marcin Lewandowski [ mlew@ippt.gov.pl ] XML 2 XML XML jest formatem tekstowym Zjadliwy dla ludzi Zawiera treść (dane) oraz znaczniki (markup) Znaczniki i zależności

Bardziej szczegółowo

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML Perl a XML Narzędzia informatyczne w językoznawstwie Perl - Przetwarzanie XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 31 modułów w CPAN zawiera w

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty

Bardziej szczegółowo

Modele dostępu do dokumentu XML. Implementacja modelu parser. SAX2 pakiet org.xml.sax. Działanie modelu SAX przykład

Modele dostępu do dokumentu XML. Implementacja modelu parser. SAX2 pakiet org.xml.sax. Działanie modelu SAX przykład Modele dostępu do dokumentu XML Wykorzystanie XML-a we własnych aplikacjach Pozwalają programistom na wysokopoziomowy dostęp do zawartości dokumentów XML : korzystamy z abstrakcyjnych obiektów, nie troszczymy

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................

Bardziej szczegółowo

libxml2 parser DOM dla C++ czwartek, 8 grudnia 11

libxml2 parser DOM dla C++ czwartek, 8 grudnia 11 libxml2 parser DOM dla C++ 1 SAX vs. DOM Dwa podstawowe typy API do przetwarzania dokumentów XML: Oparte na drzewach (ang. Tree-based API) - mapują strukturę dokumentu do drzewa i pozwalają użytkownikowi

Bardziej szczegółowo

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

XML i nowoczesne technologie zarządzania treścią 2007/08 Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

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

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

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi: DTD Document Type Definition Dokument poprawnie sformułowany (well-formed) Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi: 1. KaŜdy znacznik musi posiadać zamknięcie (wyjątek

Bardziej szczegółowo

Technologie zarządzania treścią

Technologie zarządzania treścią Technologie zarządzania treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej Technologie zarządzania treścią 2/43 Technologie

Bardziej szczegółowo

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

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0 Słowem wstępu Część rodziny języków XSL Standard: W3C XSLT 1.0-1999 razem XPath 1.0 XSLT 2.0-2007 Trwają prace nad XSLT 3.0 Problem Zakładane przez XML usunięcie danych dotyczących prezentacji pociąga

Bardziej szczegółowo

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019 Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości

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

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle. XML i SOAP 1. XML (extensive Markup Language). wprowadzenie, zastosowania, przykłady, specyfikacje DTD (Document Type Definition). 2. SOAP (Simple Object Access Protocol) struktura wiadomości, zdalne wywołanie

Bardziej szczegółowo

Podstawy i języki programowania

Podstawy i języki programowania Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i

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

Wykład 2: Podstawy Języka

Wykład 2: Podstawy Języka Wykład 2: Podstawy Języka 1.wprowadzenie 2.podstawy języka 3.sterowanie 4.inicjacja i sprzątanie 5.kontrola dostępu 6.dziedziczenie 7.polimorfizm 8.obsługa błędów 9.kolekcje obiektów 10.wejście i wyjście

Bardziej szczegółowo

Pakiety i interfejsy. Tomasz Borzyszkowski

Pakiety i interfejsy. Tomasz Borzyszkowski Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji

Bardziej szczegółowo

Programowanie Obiektowe Ćwiczenie 4

Programowanie Obiektowe Ćwiczenie 4 Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5 Marcin Młotkowski 23 marca 2017 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 50 Historia Początkowe założenia Projekt OAK Sterowanie urządzeniami

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

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? 1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz Po zrealizowaniu materiału student będzie w stanie Prawidłowo zidentyfikować składowe dokumentu XML Utworzyć dokument XML Dokonać sprawdzenia poprawności składniowej (syntaktycznej) dokumentu 2 1 WWW Consortium,

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Definicje klas i obiektów. Tomasz Borzyszkowski

Definicje klas i obiektów. Tomasz Borzyszkowski Definicje klas i obiektów Tomasz Borzyszkowski Podstawy Do tej pory używaliśmy klas jedynie po to, by zdefiniować metodę main(). Klasy mają znacznie szersze zastosowanie w Java. W OOP (także w Java) klasy

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Środowisko XML (Extensible Markup Language).

Środowisko XML (Extensible Markup Language). Środowisko XML (Extensible Markup Language). W skrócie Idea: XML standard opisu informacji Uniwersalne, proste, samoopisujące się dokumenty Źródła: Geneza SGML Specyfikacja www.w3.org Składania: XML to

Bardziej szczegółowo

Aplikacje internetowe laboratorium XML, DTD, XSL

Aplikacje internetowe laboratorium XML, DTD, XSL Aplikacje internetowe laboratorium XML, DTD, XSL Celem ćwiczenia jest stworzenie dokumentu XML, wyposażenie dokumentu w specyfikację struktury (przy użyciu DTD), oraz transformacja dokumentu XML do postaci

Bardziej szczegółowo

XML in own applications

XML in own applications XML in own applications Patryk Czarnik Institute of Informatics University of Warsaw XML and Modern Techniques of Content Management 2010/11 Introduction XML in own applications Models Generyczne drzewo

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

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML Wyrażenia regularne c:\> dir *.exe $ rm *.tmp Wyrażenia regularne 'alamakota' '(hop!)*' { '',

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

Przykładowy dokument XML

Przykładowy dokument XML Język XML XML (extensible Markup Language, czyli rozszerzalny język znaczników) to specyfikacja dotycząca przechowywania informacji. Jest to również specyfikacja opisujaca strukturę tych informacji. XML

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 1 Globalne i lokalne deklaracje elementów i atrybutów Deklaracje lokalne:

Bardziej szczegółowo

Schema Schemat_JPK_PKPIR_v1-0.xsd

Schema Schemat_JPK_PKPIR_v1-0.xsd Schema Schemat_JPK_PKPIR_v1-0.xsd schema location: attributeformdefault: elementformdefault: targetnamespace: unqualified qualified http://jpk.mf.gov.pl/wzor/2016/03/09/03096/ Elements Complex types Simple

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes) XPath XML Path Language XPath. XSLT część 1. Problem: jednoznaczne adresowanie fragmentów struktury dokumentu XML. Rozwiązanie: drzewiasty model struktury dokumentu, normalizacja zawartości dokumentu (ten

Bardziej szczegółowo

Dawid Gierszewski Adam Hanasko

Dawid Gierszewski Adam Hanasko Dawid Gierszewski Adam Hanasko Chcemy stworzyć klasę w której możemy przechowywać dwie zmienne dowolnych typów Tworzymy tyle różnych klas ile potrzeba: Class ParaInt{ int pierwszy; Int drugi; Class ParaButow{

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

.NET Klasy, obiekty. ciąg dalszy

.NET Klasy, obiekty. ciąg dalszy .NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,

Bardziej szczegółowo

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania. Reformuje on znane zasady języka HTML 4 w taki sposób, aby były zgodne z XML (HTML przetłumaczony na XML).

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

XML extensible Markup Language. część 1

XML extensible Markup Language. część 1 XML extensible Markup Language część 1 Historia Czym jest język XML? Język XML to uniwersalny język formalny przeznaczony do reprezentowania różnych danych w ustrukturalizowany sposób. XML jest metajęzykiem

Bardziej szczegółowo

c TP: anything: 13 listopada 2004 roku 1

c TP: anything: 13 listopada 2004 roku 1 SGML/XML SGML: International Standard (ISO 8879). Information Processing Text and Office Systems Standardized Generalized Markup Language. Znakowanie powinno opisywać strukturę dokumentu (...) a nie określać

Bardziej szczegółowo

Polimorfizm. dr Jarosław Skaruz

Polimorfizm. dr Jarosław Skaruz Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody

Bardziej szczegółowo