XML in own applications

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

Download "XML in own applications"

Transkrypt

1 XML in own applications Patryk Czarnik Institute of Informatics University of Warsaw XML and Modern Techniques of Content Management 2010/11 Patryk Czarnik 10 Programming XML 2010/11 1 / 43

2 1 Introduction XML in own applications 2 Models Generyczne drzewo dokumentu (DOM) XML binding (JAXB) Model zdarzeniowy (SAX) Model strumieniowy (StAX) Porównanie 3 Obsługa standardów około-xml-owych Walidacja Transformacje

3 1 Introduction XML in own applications 2 Models Generyczne drzewo dokumentu (DOM) XML binding (JAXB) Model zdarzeniowy (SAX) Model strumieniowy (StAX) Porównanie 3 Obsługa standardów około-xml-owych Walidacja Transformacje

4 Introduction XML in own applications XML in own applications what for? To access data in XML format To use XML as data carrier (storage and transmission) To support XML applications (Web, content management,... ) To make use of XML-related standards (XML Schema, XInclude, XSLT, XQuery,... ) To make use of XML-based software technology (Web Services etc.) Patryk Czarnik 10 Programming XML 2010/11 4 / 43

5 Introduction XML in own applications how? XML in own applications Bad way Treat XML as plain text files and write low-level XML support from scratch Better approach Use existing libraries and tools Even better Use standardised interfaces independent from particular suppliers Patryk Czarnik 10 Programming XML 2010/11 5 / 43

6 Introduction XML in own applications XML in Java Java motivation for us One of the most popular programming languages Very good XML support Standards Both included in Java Standard Edition from 6.0 Java API for XML Processing (JAXP) many interfaces and few classes, "factories" and pluggability layer support for XML parsing and serialisation (DOM, SAX, StAX) support for XInclude, XML Schema, XPath, XSLT Java API for XML Binding (JAXB) binding between Java objects and XML documents Patryk Czarnik 10 Programming XML 2010/11 6 / 43

7 Introduction XML in own applications XML in Java Java motivation for us One of the most popular programming languages Very good XML support Standards Both included in Java Standard Edition from 6.0 Java API for XML Processing (JAXP) many interfaces and few classes, "factories" and pluggability layer support for XML parsing and serialisation (DOM, SAX, StAX) support for XInclude, XML Schema, XPath, XSLT Java API for XML Binding (JAXB) binding between Java objects and XML documents Patryk Czarnik 10 Programming XML 2010/11 6 / 43

8 1 Introduction XML in own applications 2 Models Generyczne drzewo dokumentu (DOM) XML binding (JAXB) Model zdarzeniowy (SAX) Model strumieniowy (StAX) Porównanie 3 Obsługa standardów około-xml-owych Walidacja Transformacje

9 Classification of XML access models Document read into memory generic interface example: DOM interface depending on document type (schema) example: JAXB Document processed node by node event model (push parsing) example: SAX streaming model (pull parsing) example: StAX Patryk Czarnik 10 Programming XML 2010/11 8 / 43

10 Classification of XML access models Document read into memory generic interface example: DOM interface depending on document type (schema) example: JAXB Document processed node by node event model (push parsing) example: SAX streaming model (pull parsing) example: StAX Patryk Czarnik 10 Programming XML 2010/11 8 / 43

11 Classification of XML access models Document read into memory generic interface example: DOM interface depending on document type (schema) example: JAXB Document processed node by node event model (push parsing) example: SAX streaming model (pull parsing) example: StAX Patryk Czarnik 10 Programming XML 2010/11 8 / 43

12 Drzewo dokumentu (DOM) Document object model Whole document in memory, as tree of objects W3C Recommendations DOM Level DOM Level Many (specification) modules Dom Core the most important DOM module for XML Patryk Czarnik 10 Programming XML 2010/11 9 / 43

13 DOM important interfaces Node NodeList NamedNodeMap Element Attr Entity Document Processing Instruction CharacterData Entity Reference DocumentFragment Comment Text DocumentType CDATASection

14 Interfejs Node wybrane metody Drzewo dokumentu (DOM) Content access Content modification getattributes() appendchild(node) getchildnodes() insertbefore(node, Node) getfirstchild() removechild(node) getlastchild() replacechild(node, Node) getnextsibling() setnodevalue(string) getprevioussibling() setnodename(string) getnodename() Copying getnodevalue() clonenode(boolean) getnodetype() getownerdocument() Patryk Czarnik 10 Programming XML 2010/11 11 / 43

15 Interfejs Node wybrane metody Drzewo dokumentu (DOM) Content access Content modification getattributes() appendchild(node) getchildnodes() insertbefore(node, Node) getfirstchild() removechild(node) getlastchild() replacechild(node, Node) getnextsibling() setnodevalue(string) getprevioussibling() setnodename(string) getnodename() Copying getnodevalue() clonenode(boolean) getnodetype() getownerdocument() Patryk Czarnik 10 Programming XML 2010/11 11 / 43

16 Interfejs Node wybrane metody Drzewo dokumentu (DOM) Content access Content modification getattributes() appendchild(node) getchildnodes() insertbefore(node, Node) getfirstchild() removechild(node) getlastchild() replacechild(node, Node) getnextsibling() setnodevalue(string) getprevioussibling() setnodename(string) getnodename() Copying getnodevalue() clonenode(boolean) getnodetype() getownerdocument() Patryk Czarnik 10 Programming XML 2010/11 11 / 43

17 Drzewo dokumentu (DOM) Example introduction Example document <?xml version="1.0"?> <numbers> <group important="yes"> <l>52 </l><s>25</s> </group> <group important="no"> <l>5</l><l>21</l> </group> <group important="yes"> <s>9</s><l>12 </l> </group> </numbers> Problem Count sum of element l values from important groups. Patryk Czarnik 10 Programming XML 2010/11 12 / 43

18 Drzewo dokumentu (DOM) Example introduction Example document <?xml version="1.0"?> <numbers> <group important="yes"> <l>52 </l><s>25</s> </group> <group important="no"> <l>5</l><l>21</l> </group> <group important="yes"> <s>9</s><l>12 </l> </group> </numbers> Problem Count sum of element l values from important groups. Patryk Czarnik 10 Programming XML 2010/11 12 / 43

19 Drzewo dokumentu (DOM) Example introduction Example document <?xml version="1.0"?> <numbers> <group important="yes"> <l>52 </l><s>25</s> </group> <group important="no"> <l>5</l><l>21</l> </group> <group important="yes"> <s>9</s><l>12 </l> </group> </numbers> Problem Count sum of element l values from important groups. Patryk Czarnik 10 Programming XML 2010/11 12 / 43

20 DOM example (1) Models Drzewo dokumentu (DOM) Program i n t r e s u l t = 0; DocumentBuilderFactory f a c t o r y = DocumentBuilderFactory. newinstance ( ) ; f a c t o r y. s e t V a l i d a t i n g ( true ) ; DocumentBuilder b u i l d e r = f a c t o r y. newdocumentbuilder ( ) ; Document doc = b u i l d e r. parse ( args [ 0 ] ) ; Node cur = doc. g e t F i r s t C h i l d ( ) ; while ( cur. getnodetype ( )! = Node.ELEMENT_NODE) { cur = cur. g e t N e x t S i b l i n g ( ) ; } cur = cur. g e t F i r s t C h i l d ( ) ; while ( cur!= null ) { i f ( cur. getnodetype ( ) == Node.ELEMENT_NODE) { S t r i n g a t t V a l = cur. g e t A t t r i b u t e s ( ). getnameditem ( " important " ). getnodevalue ( ) ; i f ( " yes ". equals ( a t t V a l ) { r e s u l t += processgroup ( cur ) ; } } cur = cur. g e t N e x t S i b l i n g ( ) ; } Patryk Czarnik 10 Programming XML 2010/11 13 / 43

21 DOM example (2) Models Drzewo dokumentu (DOM) Method processgroup private s t a t i c i n t processgroup ( Node group ) { i n t r e s u l t = 0; } Node cur = group. g e t F i r s t C h i l d ( ) ; while ( cur!= null ) { i f ( cur. getnodetype ( ) == Node.ELEMENT_NODE && cur. getnodename ( ). equals ( " l " ) ) { S t r i n g B u f f e r buf = new S t r i n g B u f f e r ( ) ; Node c h i l d = cur. g e t F i r s t C h i l d ( ) ; while ( c h i l d!= null ) { i f ( c h i l d. getnodetype ( ) == Node.TEXT_NODE) buf. append ( c h i l d. getnodevalue ( ) ) ; c h i l d = c h i l d. g e t N e x t S i b l i n g ( ) ; } r e s u l t += I n t e g e r. p a r s e I n t ( buf. t o S t r i n g ( ) ) ; ; } cur = cur. g e t N e x t S i b l i n g ( ) ; } return r e s u l t ; Patryk Czarnik 10 Programming XML 2010/11 14 / 43

22 XML binding idea Models XML binding (JAXB) XML documents and objects (e.g. Java): schema (type) corresponds to class, document/node corresponds to object. Implementations: JAXB (Sun), Castor (Exolab), Dynamic XML (Object Space). Patryk Czarnik 10 Programming XML 2010/11 15 / 43

23 XML binding idea Models XML binding (JAXB) XML documents and objects (e.g. Java): schema (type) corresponds to class, document/node corresponds to object. Implementations: JAXB (Sun), Castor (Exolab), Dynamic XML (Object Space). Patryk Czarnik 10 Programming XML 2010/11 15 / 43

24 XML binding (JAXB) Java API for XML Binding (JAXB) Inspired by Sun, supported by java.net Current version: 2.0 Motivated by Web Services Components generic API fragment two-way translation specification customisation and annotations Patryk Czarnik 10 Programming XML 2010/11 16 / 43

25 JAXB usage scenarios XML binding (JAXB) Schema to Java 1 Schema preparation 2 Schema to Java compilation (XJC) result: annotated classes basing on schema types transalation customisable 3 Developing application making use of generic part of JAXB API generated classes Java to Schema 1 Model classes preparation 2 Adding annotations classes 3 Making use of generic JAXB API to perform marchalling, unmarchalling etc. 4 (Optional) Generating schema basing on classes Patryk Czarnik 10 Programming XML 2010/11 17 / 43

26 XML binding (JAXB) JAXB example(1) Schema and generated classes Schema <xs:element name="numbers"> <xs:complextype> <xs:sequence> <xs:element ref="group" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="l" type="xs:integer"/> Generated classes Numbers List<Group> getgroup() Corresponding classes JAXBElement<BigInteger> QName getname() BigInteger getvalue() void setvalue(biginteger)... <xs:element name="s" type="xs:integer"/> Patryk Czarnik 10 Programming XML 2010/11 18 / 43

27 XML binding (JAXB) JAXB example(1) Schema and generated classes Schema <xs:element name="numbers"> <xs:complextype> <xs:sequence> <xs:element ref="group" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="l" type="xs:integer"/> Generated classes Numbers List<Group> getgroup() Corresponding classes JAXBElement<BigInteger> QName getname() BigInteger getvalue() void setvalue(biginteger)... <xs:element name="s" type="xs:integer"/> Patryk Czarnik 10 Programming XML 2010/11 18 / 43

28 XML binding (JAXB) JAXB example (2) Schema and generated classes Schema <xs:element name="group"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element ref="l"/> <xs:element ref="s"/> </xs:choice> <xs:attribute name="important"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="yes"/> <xs:enumeration value="no"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> </xs:element> Generated classes Group List<JAXBElement <BigInteger> > getlors() String getimportant() void setimportant(string) Patryk Czarnik 10 Programming XML 2010/11 19 / 43

29 XML binding (JAXB) JAXB example (2) Schema and generated classes Schema <xs:element name="group"> <xs:complextype> <xs:choice minoccurs="0" maxoccurs="unbounded"> <xs:element ref="l"/> <xs:element ref="s"/> </xs:choice> <xs:attribute name="important"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="yes"/> <xs:enumeration value="no"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> </xs:element> Generated classes Group List<JAXBElement <BigInteger> > getlors() String getimportant() void setimportant(string) Patryk Czarnik 10 Programming XML 2010/11 19 / 43

30 JAXB example(3) Models XML binding (JAXB) Program i n t r e s u l t = 0; JAXBContext j c = JAXBContext. newinstance ( " jaxb_generated " ) ; Unmarshaller u = j c. createunmarshaller ( ) ; Liczby doc = ( Liczby ) u. unmarshal (new FileInputStream ( args [ 0 ] ) ) ; L i s t <Group> groups = doc. getgroup ( ) ; for ( Group group : groups ) { i f ( " tak ". equals ( grupa. getimportant ( ) ) ) { r e s u l t += processgroup ( group ) ; } } Patryk Czarnik 10 Programming XML 2010/11 20 / 43

31 JAXB example (4) Models XML binding (JAXB) Method processgroup private s t a t i c i n t processgroup ( Group group ) { i n t r e s u l t = 0; } L i s t <JAXBElement< BigInteger >> elems = group. getlors ( ) ; for ( JAXBElement< BigInteger > elem : elems ) { i f ( " l ". equals ( elem. getname ( ). getlocalpart ( ) ) ) { B i g I n t e g e r v a l = elem. getvalue ( ) ; r e s u l t += v a l. i n t V a l u e ( ) ; } } return r e s u l t ; Patryk Czarnik 10 Programming XML 2010/11 21 / 43

32 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

33 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

34 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

35 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

36 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

37 Model zdarzeniowy idea Model zdarzeniowy (SAX) Umożliwienie programiście podania dowolnego kodu, wykonywanego podczas czytania dokumentu: dokument XML jako ciag zdarzeń (np. poczatek elementu, węzeł tekstowy, koniec dokumentu,... ), procedury podane przez programistę wykonywane w odpowiedzi na zdarzenia różnego typu, treść dokumentu przekazywana w parametrach. Po stronie parsera: analiza leksykalna, kontrola poprawności składniowej, opcjonalnie walidacja. Możliwe realizacje w zależności od języka programowania: obiekt ( handler ) zawierajacy zestaw metod wykonywanych przy okazji różnych zdarzeń (języki obiektowe), funkcje (języki funkcyjne), wskaźniki do funkcji (C). Patryk Czarnik 10 Programming XML 2010/11 22 / 43

38 Simple API for XML (SAX) Model zdarzeniowy (SAX) Standard odpowiedni dla języków obiektowych. wzorcowe interfejsy zapisane w Javie Patryk Czarnik 10 Programming XML 2010/11 23 / 43

39 SAX jak używać? (1) Models Model zdarzeniowy (SAX) Kroki implementacji 1 Klasa implementujaca interfejs ContentHandler. 2 Opcjonalnie klasa implementujaca interfejsy ErrorHandler, DTDHandler, EntityResolver. jedna klasa może implementować wszystkie te interfejsy, możemy w tym celu rozszerzyć klasę DefaultHandler, która zawiera puste implementacje wszystkich wymaganych metod. Patryk Czarnik 10 Programming XML 2010/11 24 / 43

40 SAX jak używać? (2) Models Model zdarzeniowy (SAX) Schemat typowej aplikacji 1 Pobranie obiektu XMLReader z fabryki. 2 Stworzenie obiektu "handlera". 3 Rejestracja handlera w parserze (XMLReader) metodami setcontenthandler, seterrorhandler itp. 4 Wywołanie metody parse. 5 Wykonanie (przez parser) naszego kodu z handlera. 6 Wykorzystanie danych zebranych przez handler. Patryk Czarnik 10 Programming XML 2010/11 25 / 43

41 SAX przykład (1) Models Model zdarzeniowy (SAX) Implementacja ContentHandler-a private s t a t i c class NumbersHandler extends DefaultHandler { enum State {OUT, GROUP, L } ; private i n t r e s u l t = 0; private State s t a t e = State.OUT; private S t r i n g B u f f e r buf ; public i n t getresult ( ) { return r e s u l t ; } public void startelement ( S t r i n g u r i, S t r i n g localname, S t r i n g qname, A t t r i b u t e s a t t r i b u t e s ) throws SAXException { i f ( " group ". equals (qname ) ) { S t r i n g a t t r V a l = a t t r i b u t e s. getvalue ( " important " ) ; i f ( " yes ". equals ( a t t r V a l ) ) s t a t e = State.GROUP; } else i f ( " l ". equals (qname ) ) { i f ( stan == State.GROUP) { s t a t e = Stan. L ; buf = new S t r i n g B u f f e r ( ) ; } } } Patryk Czarnik 10 Programming XML 2010/11 26 / 43

42 SAX przykład (2) Models Model zdarzeniowy (SAX) Ciag dalszy LiczbyHandler public void characters ( char [ ] ch, i n t s t a r t, i n t l e n g t h ) throws SAXException { i f ( stan == Stan. L ) buf. append ( ch, s t a r t, l e n g t h ) ; } public void endelement ( S t r i n g u r i, S t r i n g localname, S t r i n g qname) throws SAXException { i f ( " group ". equals (qname ) ) { i f ( s t a t e == State.GRUPA) { s t a t e = State.ZEWN; } } else i f ( " l ". equals (qname ) ) { i f ( s t a t e == State. LICZBA ) { s t a t e = State.GRUPA; r e s u l t += I n t e g e r. p a r s e I n t ( buf. t o S t r i n g ( ) ) ; } } } } / NumbersHandler / Patryk Czarnik 10 Programming XML 2010/11 27 / 43

43 SAX przykład (3) Models Model zdarzeniowy (SAX) Program SAXParserFactory f a c t o r y = SAXParserFactory. newinstance ( ) ; f a c t o r y. s e t V a l i d a t i n g ( true ) ; SAXParser parser = f a c t o r y. newsaxparser ( ) ; LiczbyHandler handler = new NumbersHandler ( ) ; parser. parse ( args [ 0 ], handler ) ; System. out. p r i n t l n ( "Sum: " +handler. getresult ( ) ) ; Patryk Czarnik 10 Programming XML 2010/11 28 / 43

44 Filtry SAX Models Model zdarzeniowy (SAX) Implementuja interfejs XMLFilter, a także (pośrednio) XMLReader zachowuja się jak parser, ale ich źródłem danych jest inny XMLReader (parser lub filtr). można je łaczyć w łańcuchy. Domyślna implementacja: XMLFilterImpl: przepuszcza wszystkie zdarzenia, implementuje interfejsy ContentHandler, ErrorHandler itp. Filtry pozwalaja na: filtrowanie zdarzeń, zmianę danych (a nawet struktury) dokumentu przed wysłaniem zdarzenia dalej, przetwarzanie dokumentu przez wiele modułów podczas jednego parsowania. Patryk Czarnik 10 Programming XML 2010/11 29 / 43

45 Filtry SAX Models Model zdarzeniowy (SAX) Implementuja interfejs XMLFilter, a także (pośrednio) XMLReader zachowuja się jak parser, ale ich źródłem danych jest inny XMLReader (parser lub filtr). można je łaczyć w łańcuchy. Domyślna implementacja: XMLFilterImpl: przepuszcza wszystkie zdarzenia, implementuje interfejsy ContentHandler, ErrorHandler itp. Filtry pozwalaja na: filtrowanie zdarzeń, zmianę danych (a nawet struktury) dokumentu przed wysłaniem zdarzenia dalej, przetwarzanie dokumentu przez wiele modułów podczas jednego parsowania. Patryk Czarnik 10 Programming XML 2010/11 29 / 43

46 Filtry SAX Models Model zdarzeniowy (SAX) Implementuja interfejs XMLFilter, a także (pośrednio) XMLReader zachowuja się jak parser, ale ich źródłem danych jest inny XMLReader (parser lub filtr). można je łaczyć w łańcuchy. Domyślna implementacja: XMLFilterImpl: przepuszcza wszystkie zdarzenia, implementuje interfejsy ContentHandler, ErrorHandler itp. Filtry pozwalaja na: filtrowanie zdarzeń, zmianę danych (a nawet struktury) dokumentu przed wysłaniem zdarzenia dalej, przetwarzanie dokumentu przez wiele modułów podczas jednego parsowania. Patryk Czarnik 10 Programming XML 2010/11 29 / 43

47 Filtr SAX przykład public class L i c z b y F i l t r extends XMLFilterImpl { private boolean czyprzepuszczac = true ; public void characters ( char [ ] ach, i n t astart, i n t alength ) throws SAXException { i f ( czyprzepuszczac ) super. characters ( ach, astart, alength ) ; } public void endelement ( S t r i n g auri, S t r i n g alocalname, S t r i n g aname) throws SAXException { i f ( czyprzepuszczac ) super. endelement ( auri, alocalname, aname ) ; i f ( " grupa ". equals (aname ) ) czyprzepuszczac = true ; } public void startelement ( S t r i n g auri, S t r i n g alocalname, S t r i n g aname, A t t r i b u t e s a t t s ) throws SAXException { i f ( " grupa ". equals (aname) && " nie ". equals ( a t t s. getvalue ( " wazne " ) ) ) czyprzepuszczac = false ; i f ( czyprzepuszczac ) super. startelement ( auri, alocalname, aname, a t t s ) ; } }

48 Model strumieniowy (pull parsing) Model strumieniowy (StAX) Alternatywa dla modelu zdarzeniowego: aplikacja "wyciaga" kolejne zdarzenia z parsera, przetwarzanie kontrolowane przez aplikację, a nie parser, parser działa podobnie jak iterator, kursor lub strumień danych, Zachowane cechy modelu SAX: duża wydajność, możliwość przetwarzania dowolnie dużych dokumentów. Standaryzacja: Common XmlPull API, Java Community Process, JSR 173: Streaming API for XML. Patryk Czarnik 10 Programming XML 2010/11 31 / 43

49 Model strumieniowy (pull parsing) Model strumieniowy (StAX) Alternatywa dla modelu zdarzeniowego: aplikacja "wyciaga" kolejne zdarzenia z parsera, przetwarzanie kontrolowane przez aplikację, a nie parser, parser działa podobnie jak iterator, kursor lub strumień danych, Zachowane cechy modelu SAX: duża wydajność, możliwość przetwarzania dowolnie dużych dokumentów. Standaryzacja: Common XmlPull API, Java Community Process, JSR 173: Streaming API for XML. Patryk Czarnik 10 Programming XML 2010/11 31 / 43

50 Model strumieniowy (pull parsing) Model strumieniowy (StAX) Alternatywa dla modelu zdarzeniowego: aplikacja "wyciaga" kolejne zdarzenia z parsera, przetwarzanie kontrolowane przez aplikację, a nie parser, parser działa podobnie jak iterator, kursor lub strumień danych, Zachowane cechy modelu SAX: duża wydajność, możliwość przetwarzania dowolnie dużych dokumentów. Standaryzacja: Common XmlPull API, Java Community Process, JSR 173: Streaming API for XML. Patryk Czarnik 10 Programming XML 2010/11 31 / 43

51 Model strumieniowy (StAX) Pull parsing korzyści Jeszcze większa wydajność niż w (i tak już wydajnym) modelu SAX, dzięki: możliwości przerwania przetwarzania przed końcem pliku, gdy potrzebujemy z niego tylko część danych, możliwości zmniejszenia liczby kopiowań obiektów typu String, szybszemu filtrowaniu zdarzeń. Możliwość prostej obróbki wielu dokumentów jednocześnie. Bardziej proceduralny styl programowania, co daje: mniej stanów do pamiętania, możliwość użycia rekursji, zwiększone powtórne użycie kodu. Źródło: M. Plechawski, "Nie pozwól się popychać", Software 2.0, 6/2003 Patryk Czarnik 10 Programming XML 2010/11 32 / 43

52 Model strumieniowy (StAX) Pull parsing korzyści Jeszcze większa wydajność niż w (i tak już wydajnym) modelu SAX, dzięki: możliwości przerwania przetwarzania przed końcem pliku, gdy potrzebujemy z niego tylko część danych, możliwości zmniejszenia liczby kopiowań obiektów typu String, szybszemu filtrowaniu zdarzeń. Możliwość prostej obróbki wielu dokumentów jednocześnie. Bardziej proceduralny styl programowania, co daje: mniej stanów do pamiętania, możliwość użycia rekursji, zwiększone powtórne użycie kodu. Źródło: M. Plechawski, "Nie pozwól się popychać", Software 2.0, 6/2003 Patryk Czarnik 10 Programming XML 2010/11 32 / 43

53 Model strumieniowy (StAX) Pull parsing korzyści Jeszcze większa wydajność niż w (i tak już wydajnym) modelu SAX, dzięki: możliwości przerwania przetwarzania przed końcem pliku, gdy potrzebujemy z niego tylko część danych, możliwości zmniejszenia liczby kopiowań obiektów typu String, szybszemu filtrowaniu zdarzeń. Możliwość prostej obróbki wielu dokumentów jednocześnie. Bardziej proceduralny styl programowania, co daje: mniej stanów do pamiętania, możliwość użycia rekursji, zwiększone powtórne użycie kodu. Źródło: M. Plechawski, "Nie pozwól się popychać", Software 2.0, 6/2003 Patryk Czarnik 10 Programming XML 2010/11 32 / 43

54 Model strumieniowy (StAX) StAX (dawniej Sun Java Streaming XML Parser) Standard parserów strumieniowych dla Javy (Sun). Realizacja założeń dokumentu JSR 173, zawarty w JSE 6.0. Najważniejsze interfejsy XMLStreamReader: hasnext(), int next(), int geteventtype(), getname(), getvalue(), getattributevalue(),... XMLEventReader: XMLEvent next(), XMLEvent peek(), XMLEvent: geteventtype(), isstartelement(), ischaracters(),... podinterfejsy StartElement, Characters,... XMLStreamWriter, XMLEventWriter, XMLStreamFilter, XMLEventFilter. Patryk Czarnik 10 Programming XML 2010/11 33 / 43

55 Model strumieniowy (StAX) StAX (dawniej Sun Java Streaming XML Parser) Standard parserów strumieniowych dla Javy (Sun). Realizacja założeń dokumentu JSR 173, zawarty w JSE 6.0. Najważniejsze interfejsy XMLStreamReader: hasnext(), int next(), int geteventtype(), getname(), getvalue(), getattributevalue(),... XMLEventReader: XMLEvent next(), XMLEvent peek(), XMLEvent: geteventtype(), isstartelement(), ischaracters(),... podinterfejsy StartElement, Characters,... XMLStreamWriter, XMLEventWriter, XMLStreamFilter, XMLEventFilter. Patryk Czarnik 10 Programming XML 2010/11 33 / 43

56 StAX przykład (1) Models Model strumieniowy (StAX) Program private s t a t i c XMLStreamReader freader ; public void run ( S t r i n g [ ] args ) { i n t r e s u l t = 0; XMLInputFactory f a c t o r y = XMLInputFactory. newinstance ( ) ; freader = f a c t o r y. createxmlstreamreader (new FileInputStream ( args [ 0 ] ) ) ; while ( freader. hasnext ( ) ) { i n t eventtype = freader. next ( ) ; i f ( eventtype == XMLStreamConstants. START_ELEMENT) { i f ( " group ". equals ( freader. getlocalname ( ) ) ) { S t r i n g a t t r V a l = freader. g e t A t t r i b u t e V a l u e ( null, " important " ) ; i f ( " yes ". equals ( a t t r V a l ) ) { r e s u l t += this. processgroup ( ) ; } } } } freader. close ( ) ; System. out. p r i n t l n ( " Result : " + r e s u l t ) ; } Patryk Czarnik 10 Programming XML 2010/11 34 / 43

57 StAX przykład (2) Models Model strumieniowy (StAX) Metoda processgroup private i n t processgroup ( ) throws XMLStreamException { i n t r e s u l t = 0; } while ( freader. hasnext ( ) ) { i n t eventtype = freader. next ( ) ; switch ( eventtype ) { case XMLStreamConstants. START_ELEMENT : i f ( " l ". equals ( freader. getlocalname ( ) ) ) { S t r i n g v a l = freader. getelementtext ( ) ; r e s u l t += I n t e g e r. p a r s e I n t ( v a l ) ; } break ; case XMLStreamConstants.END_ELEMENT : i f ( " group ". equals ( freader. getlocalname ( ) ) ) { return r e s u l t ; } break ; } } return r e s u l t ; Patryk Czarnik 10 Programming XML 2010/11 35 / 43

58 Which model to choose? (1) Comparison Document tree in memory: small documents (must fit in memory) concurrent access to many nodes creating and editing document "in place" Generyczny model dokumentu (np. DOM): nieznana/niedoprecyzowana struktura dokumentów, dopuszczalna niższa efektywność. Wiazanie XML (np. JAXB): ustalona i znana struktura dokumentu (Schema/DTD), zapisywanie do XML obiektów z aplikacji (np. wymiana danych). Patryk Czarnik 10 Programming XML 2010/11 36 / 43

59 Which model to choose? (1) Comparison Document tree in memory: small documents (must fit in memory) concurrent access to many nodes creating and editing document "in place" Generyczny model dokumentu (np. DOM): nieznana/niedoprecyzowana struktura dokumentów, dopuszczalna niższa efektywność. Wiazanie XML (np. JAXB): ustalona i znana struktura dokumentu (Schema/DTD), zapisywanie do XML obiektów z aplikacji (np. wymiana danych). Patryk Czarnik 10 Programming XML 2010/11 36 / 43

60 Which model to choose? (1) Comparison Document tree in memory: small documents (must fit in memory) concurrent access to many nodes creating and editing document "in place" Generyczny model dokumentu (np. DOM): nieznana/niedoprecyzowana struktura dokumentów, dopuszczalna niższa efektywność. Wiazanie XML (np. JAXB): ustalona i znana struktura dokumentu (Schema/DTD), zapisywanie do XML obiektów z aplikacji (np. wymiana danych). Patryk Czarnik 10 Programming XML 2010/11 36 / 43

61 Which model to choose? (2) Comparison Processing node by node potentially large documents relatively simple, local operations efficiency is the key factor Model zdarzeniowy (np. SAX): filtrowanie zdarzeń, asynchroniczne napływanie zdarzeń, kilka rodzajów przetwarzania podczas jednego czytania dokumentu. Przetwarzanie strumieniowe (np. StAX): koniec przetwarzania po wystapieniu poszukiwanych danych, przetwarzanie zdarzenia zależy od kontekstu (np. od tego, czy jesteśmy wewnatrz pewnego elementu), przetwarzanie równolegle więcej niż jednego pliku. Patryk Czarnik 10 Programming XML 2010/11 37 / 43

62 Which model to choose? (2) Comparison Processing node by node potentially large documents relatively simple, local operations efficiency is the key factor Model zdarzeniowy (np. SAX): filtrowanie zdarzeń, asynchroniczne napływanie zdarzeń, kilka rodzajów przetwarzania podczas jednego czytania dokumentu. Przetwarzanie strumieniowe (np. StAX): koniec przetwarzania po wystapieniu poszukiwanych danych, przetwarzanie zdarzenia zależy od kontekstu (np. od tego, czy jesteśmy wewnatrz pewnego elementu), przetwarzanie równolegle więcej niż jednego pliku. Patryk Czarnik 10 Programming XML 2010/11 37 / 43

63 Which model to choose? (2) Comparison Processing node by node potentially large documents relatively simple, local operations efficiency is the key factor Model zdarzeniowy (np. SAX): filtrowanie zdarzeń, asynchroniczne napływanie zdarzeń, kilka rodzajów przetwarzania podczas jednego czytania dokumentu. Przetwarzanie strumieniowe (np. StAX): koniec przetwarzania po wystapieniu poszukiwanych danych, przetwarzanie zdarzenia zależy od kontekstu (np. od tego, czy jesteśmy wewnatrz pewnego elementu), przetwarzanie równolegle więcej niż jednego pliku. Patryk Czarnik 10 Programming XML 2010/11 37 / 43

64 1 Introduction XML in own applications 2 Models Generyczne drzewo dokumentu (DOM) XML binding (JAXB) Model zdarzeniowy (SAX) Model strumieniowy (StAX) Porównanie 3 Obsługa standardów około-xml-owych Walidacja Transformacje

65 Obsługa standardów około-xml-owych Walidacja Walidacja względem DTD podczas parsowania SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]); Patryk Czarnik 10 Programming XML 2010/11 39 / 43

66 Obsługa standardów około-xml-owych Walidacja Walidacja względem XML Schema SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setvalidating(false); factory.setschema(schemat); factory.setnamespaceaware(true); XMLReader reader = factory.newsaxparser().getxmlreader(); reader.setcontenthandler(mojconenthandler); reader.seterrorhandler(mojerrorhandler); reader.parse(args[0]); Patryk Czarnik 10 Programming XML 2010/11 40 / 43

67 Obsługa standardów około-xml-owych Walidacja Walidacja i zapis drzewa DOM SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); Validator validator = schemat.newvalidator(); validator.validate(new DOMSource(doc)); DOMImplementationLS lsimpl = (DOMImplementationLS)domImpl.getFeature("LS", "3.0"); LSSerializer ser = lsimpl.createlsserializer(); LSOutput out = lsimpl.createlsoutput(); out.setbytestream(new FileOutputStream(args[0])); ser.write(doc, out); Patryk Czarnik 10 Programming XML 2010/11 41 / 43

68 Obsługa standardów około-xml-owych Walidacja Walidacja i zapis drzewa DOM SchemaFactory schemafactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schemat = schemafactory.newschema(new StreamSource(args[1])); Validator validator = schemat.newvalidator(); validator.validate(new DOMSource(doc)); DOMImplementationLS lsimpl = (DOMImplementationLS)domImpl.getFeature("LS", "3.0"); LSSerializer ser = lsimpl.createlsserializer(); LSOutput out = lsimpl.createlsoutput(); out.setbytestream(new FileOutputStream(args[0])); ser.write(doc, out); Patryk Czarnik 10 Programming XML 2010/11 41 / 43

69 Obsługa standardów około-xml-owych Transformacje XSLT Transformacje Przekształcenie dokumentów zapisanych w plikach TransformerFactory t r a n s _ f a c t = TransformerFactory. newinstance ( ) ; transformer = t r a n s _ f a c t. newtransformer (new StreamSource ( args [ 2 ] ) ) ; Source src = new StreamSource ( args [ 0 ] ) ; Result res = new StreamResult ( args [ 1 ] ) ; transformer. transform ( src, res ) ; Patryk Czarnik 10 Programming XML 2010/11 42 / 43

70 Transformacje Obsługa standardów około-xml-owych Transformacje Zastosowanie do zapisu zdarzeń SAX po przefiltrowaniu SAXParserFactory p a r s e r _ f a c t = SAXParserFactory. newinstance ( ) ; XMLReader reader = p a r s e r _ f a c t. newsaxparser ( ). getxmlreader ( ) ; TransformerFactory t r a n s _ f a c t = TransformerFactory. newinstance ( ) ; Transformer transformer = t r a n s _ f a c t. newtransformer ( ) ; XMLFilter f i l t r = new FiltrGrupyWazne ( ) ; f i l t r. setparent ( reader ) ; InputSource doc = new InputSource ( args [ 0 ] ) ; Source src = new SAXSource ( f i l t r, doc ) ; Result res = new StreamResult ( args [ 1 ] ) ; transformer. transform ( src, res ) ; Patryk Czarnik 10 Programming XML 2010/11 43 / 43

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

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ą 2011/12 Wprowadzenie XML we własnych aplikacjach XML w Javie Modele dostępu do dokumentu

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

XML we własnych aplikacjach

XML we własnych aplikacjach XML we własnych aplikacjach Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2008/09 Patryk Czarnik 09 Programy XML 2008/09 1 / 1 Wprowadzenie XML we własnych aplikacjach

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 zarzadzania treścia 2011/12 Patryk Czarnik 10 Programy XML 2011/12 1 / 55 1 Wprowadzenie XML we własnych

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 zarzadzania treścia 2007/08 Patryk Czarnik (MIMUW) 09 Programy XML 2007/08 1 / 48 Plan 1 Wprowadzenie XML

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 zarzadzania treścia 2007/08 Wprowadzenie XML we własnych aplikacjach XML w Javie Modele dostępu do dokumentu

Bardziej szczegółowo

Kotwasiński Obsługa XMLa z poziomu Javy

Kotwasiński Obsługa XMLa z poziomu Javy Obsługa XMLa z poziomu Javy Adam 5 kwietnia 2009 Co możemy zrobić odczyt zawartości dokumentów XML modyfikacja i zapis dokumentów walidacja dokumentu podczas parsowania przed zapisaniem wzdględem DTD,

Bardziej szczegółowo

Wykorzystanie XML a we własnych aplikacjach

Wykorzystanie XML a we własnych aplikacjach 2 grudnia 2004 Wykorzystanie XML a we własnych aplikacjach Patryk Czarnik (na podstawie wykładu Szymona Zioło) Modele dostępu do dokumentów XML Pozwalają programistom na dostęp do zawartości dokumentów

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

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

SAX2 pakiet org.xml.sax

SAX2 pakiet org.xml.sax Modele dostępu do dokumentu XML 23 października 2003 Wykorzystanie XML-a we własnych aplikacjach Pozwalają programistom na dostęp do zawartości dokumentów XML na wysokim poziomie: korzystamy z abstrakcyjnych

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

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

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

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

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

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

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

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

XML i Java 1. XML. 1.1. Budowa dokumentu XML. Projektowanie systemów informatycznych 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

Bardziej szczegółowo

XML w bazach danych, standardy wiaż ace dokumenty XML

XML w bazach danych, standardy wiaż ace dokumenty XML XML w bazach danych, standardy wiaż ace dokumenty XML Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2008/09 Patryk Czarnik 10 Bazy danych, XLink XML 2008/09 1

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

XML w bazach danych, standardy wiążące dokumenty XML

XML w bazach danych, standardy wiążące dokumenty XML XML w bazach danych, standardy wiążące dokumenty XML Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarządzania treścią 2008/09 Walidacja względem DTD podczas parsowania SAXParserFactory

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

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda

Programowanie urządzeń mobilnych. dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda Programowanie urządzeń mobilnych dr inż. Andrzej Grosser na podstawie wykładu dr inż. Juliusz Mikoda Extensible Markup Language XML Extensible Markup Language (Rozszerzalny Język Znaczników), Uniwersalny

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

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

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

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

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 07 Plan Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 07 T. Romańczukiewicz Jagiellonian University 2009/2010 Plan Plan 1 JAXB Plan JAXB Przypomnienie Wstęp Przykład Typy danych Unmarshalling

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 w.net. Dominik Baś nr alb. 160345. Wrocław, 29 maja 2007

XML w.net. Dominik Baś nr alb. 160345. Wrocław, 29 maja 2007 XML w.net Dominik Baś nr alb. 160345 Wrocław, 29 maja 2007 Przetwarzanie dokumentów XML API: SAX Simple Api for XML - przetwarzanie strumieniowe DOM - Document Object Model - odwzorowanie dokumentu XML

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h] 1. Typy. Java jest językiem programowania z silnym systemem kontroli typów. To oznacza, że każda zmienna, atrybut czy parametr ma zadeklarowany typ. Kompilator wylicza typy wszystkich wyrażeń w programie

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

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku

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

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Przygotował: Jacek Sroka 1 Programowanie obiektowe Wykład 3 Java podstawy Przygotował: Jacek Sroka 2 Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo

Bardziej szczegółowo

Lab. Efekt 1 - kolokwium wykładowe. Efekt 2, 3 i 4 - samodzielnie rozwiązywane ćwiczenia laboratoryjne.

Lab. Efekt 1 - kolokwium wykładowe. Efekt 2, 3 i 4 - samodzielnie rozwiązywane ćwiczenia laboratoryjne. Kod: 2 51 575 Liczba punktów ECTS: 2 Nazwa przedmiotu Technologie XML Nazwa w języku angielskim Język prowadzenia zajęć Poziom studiów Profil studiów Jednostka prowadząca Kierownik i realizatorzy polski

Bardziej szczegółowo

Systemy operacyjne na platformach mobilnych

Systemy operacyjne na platformach mobilnych Systemy operacyjne na platformach mobilnych Wykład 4 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menadżer połączeń Usługi HTTP Klient HTTP Żądanie

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

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

Tworzenie aplikacji w języku Java

Tworzenie aplikacji w języku Java Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009

Bardziej szczegółowo

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie Języki Programowania II Wykład 3 Java podstawy Przypomnienie Analiza, projektowanie, programowanie, testowanie, wdrażanie Iteracyjnie nie kaskadowo Przypadki użycia = opowiastki o używaniu systemu = wymagania

Bardziej szczegółowo

Drzewa DOM. Maciej Zakrzewicz. mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/

Drzewa DOM. Maciej Zakrzewicz. mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Drzewa DOM Maciej Zakrzewicz mzakrz@cs.put.poznan.pl http://www.cs.put.poznan.pl/~mzakrz/ Document Object Model (DOM) Document Object Model jest standardem modelowania dokumentów XML przy użyciu struktury

Bardziej szczegółowo

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) MAS dr. Inż. Mariusz Trzaska Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1) Zagadnienia o Podstawy o Kontrolowanie sterowania o Klasy o Interfejsy o Obsługa błędów o Pojemniki o System

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

Biblioteki dzielone, XML i readline

Biblioteki dzielone, XML i readline Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania

Bardziej szczegółowo

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP Certyfikaty firmy Sun Ścieżka certyfikacyjna dla Javy Egzamin SCJP Ścieżka certyfikacyjna Java Podstawa J2EE J2ME J2SE Sun Certified Programmer Sun Certified Developer Sun Certified Web Component Developer

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

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

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

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna

Kurs programowania. Wykład 9. Wojciech Macyna Wykład 9 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa zbiór, lista czy

Bardziej szczegółowo

Zarządzanie sieciami telekomunikacyjnymi

Zarządzanie sieciami telekomunikacyjnymi SNMP Protocol The Simple Network Management Protocol (SNMP) is an application layer protocol that facilitates the exchange of management information between network devices. It is part of the Transmission

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa

Bardziej szczegółowo

Architektura rozproszonych magazynów danych

Architektura rozproszonych magazynów danych Big data Big data, large data cloud. Rozwiązania nastawione na zastosowanie w wielkoskalowych serwisach, np. webowych. Stosowane przez Google, Facebook, itd. Architektura rozproszonych magazynów danych

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

Java. Programowanie Obiektowe Mateusz Cicheński

Java. Programowanie Obiektowe Mateusz Cicheński Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja

Bardziej szczegółowo

Platformy Programistyczne Podstawy języka Java

Platformy Programistyczne Podstawy języka Java Platformy Programistyczne Podstawy języka Java Agata Migalska 6 maja 2014 Plan wykładu 1 Sztuka wysławiania się w języku Java 2 Cały świat jest obiektem 3 Kolekcje 4 Zmienne i metody statyczne 5 Słowo

Bardziej szczegółowo

Java: interfejsy i klasy wewnętrzne

Java: interfejsy i klasy wewnętrzne Java: interfejsy i klasy wewnętrzne Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 INTERFEJSY Interfejs to opis co klasa implementująca dany interfejs powinna robić, ale bez określania

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0  Zofia Kruczkiewicz Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 http://www.junit.org/ Zofia Kruczkiewicz 1. Aby utworzyć test dla jednej klasy, należy kliknąć prawym przyciskiem myszy w oknie Projects na wybraną

Bardziej szczegółowo

Laboratorium Programowania Kart Elektronicznych

Laboratorium Programowania Kart Elektronicznych Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle Pętle while, for, while, instrukcje break, continue, switch 1. Pętle Przykład 1 - Pętla while public class lab4_3 public static void main(string[] args) char ch = 'a'; String s, wynik=""; while ( ch!=

Bardziej szczegółowo

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Języki i metody programowania Java INF302W Wykład 2 (część 1) Języki i metody programowania Java INF302W Wykład 2 (część 1) Autor Dr inż. Zofia Kruczkiewicz Autor: Zofia Kruczkiewicz, Języki i metody programowania Java, wykład 2, część 1 1 Struktura wykładu 1. Identyfikacja

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

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

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa

Bardziej szczegółowo

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury Rozproszone systemy internetowe Wprowadzenie. Koncepcja zdalnego wywołania procedury Zakres tematyczny przedmiotu Aplikacje rozproszone Technologie /standardy internetowe Programowanie obiektowe 2 Co będzie

Bardziej szczegółowo

Programowane refleksyjne i serializacja

Programowane refleksyjne i serializacja 1 Programowane refleksyjne i serializacja 1. Programowanie refleksyjne: przegląd wybranych klas z pakietu java.lang i java.lang.reflect, dynamiczne obiekty proxy. 2. Serializacja interfejs Serializable,

Bardziej szczegółowo

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI Maciej Zakrzewicz PLOUG mzakrz@cs.put.poznan.pl Plan prezentacji Wprowadzenie do architektury zorientowanej na usługi Charakterystyka technologii

Bardziej szczegółowo

DOM SAX AJAX. SAX,DOMiAJAX. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 11 kwietnia 2010

DOM SAX AJAX. SAX,DOMiAJAX. Bartłomiej Świercz. Katedra Mikroelektroniki i Technik Informatycznych. Łódź, 11 kwietnia 2010 DOM,DOMi Bartłomiej Świercz Katedra Mikroelektroniki i Technik Informatycznych Łódź, 11 kwietnia 2010 Bartłomiej Świercz, DOM i DOM Model DOM org.w3c.dom DOM Document Object Model zapewnia: Zbiór obiektów

Bardziej szczegółowo

Systemy Rozproszone - Ćwiczenie 6

Systemy Rozproszone - Ćwiczenie 6 Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 1 21 lutego 2019 Plan wykładu 1 Opis wykładu Zaliczenie i egzamin Literatura 2 3 Modelowanie obiektowe Abstrakcja Hermetyzacja Dziedziczenie Polimorfizm 4 Opis wykładu Zaliczenie i egzamin Literatura

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python Wykład 5. 30 października 2013 Plan wykładu 1 2 3 4 yield from Zamiast Example for item in iterable: yield item: można pisać Example yield from iterable Plan wykładu 1 2 3 4 Przykłady wyrażeń regularnych

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift. SOAP i alternatywy 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift. 1 WSDL WSDL (Web Services Description Language) jest standardem

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Składnia elementów na diagramach UML 1. W prezentacji składni diagramów

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

Systemy operacyjne na platformach mobilnych

Systemy operacyjne na platformach mobilnych Systemy operacyjne na platformach mobilnych Wykład 3 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menu opcji ListActivity własny widok własny adapter

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

Katalog książek cz. 2

Katalog książek cz. 2 Katalog książek cz. 2 Odczytywanie danych z XML Do ćwiczenia dołączony jest plik books.xml zawierający pełen katalog książek. Poniższy listing zawiera przykładowy fragment danych w stosowanym formacie.

Bardziej szczegółowo

SOAP. Autor: Piotr Sobczak

SOAP. Autor: Piotr Sobczak SOAP Autor: Piotr Sobczak AGENDA: Trochę o Web Services Wprowadzenie do SOAP Anatomia komunikatu SOAP Wysyłanie i otrzymywanie komunikatu SOAP oraz API Javy w przykładach SOAP z załącznikami SOAP-RPC Obsługa

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 Problem: Jak zaimplementować stos? Co się stanie gdy dodamy do stosu obiekt typu Czlowiek? Co się stanie, gdy spróbujemy ten obiekt odczytać

Bardziej szczegółowo

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

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW XML Schema Motywacja, struktura schematu, typy złożone Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2007/08 Patryk Czarnik (MIMUW) 03 XML Schema XML 2007/08 1

Bardziej szczegółowo

[Android] Podstawy programowania

[Android] Podstawy programowania Page 1 of 7 [Android] Podstawy programowania LinkiPrzewodnik z przykładamizasosbykrótka prezentacja wprowadzająca do budowy systemuprosta aplikacja z menu i dialogami, którą utworzymy tutaj krok po kroku

Bardziej szczegółowo

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1 PODSTAWOWE ELEMENTY JĘZYKA JAVA WYRAŻENIA, OPERATORY, INSTRUKCJE 1. Operatory arytmetyczne +, -, /,*, % Przykład 1 programu z interfejsem konsolowym public class Lab2_1 // Tworzy generator liczb losowych,

Bardziej szczegółowo

Programowanie w Javie wykład 8 Interfejsy

Programowanie w Javie wykład 8 Interfejsy 1 Programowanie w Javie wykład 8 Interfejsy Treści prezentowane w wykładzie zostały oparte o: Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014 Barteczko, JAVA Uniwersalne techniki programowania,

Bardziej szczegółowo

XML standardy pokrewne

XML standardy pokrewne XML standardy pokrewne 1 Standardy wykorzystywane w przetwarzaniu dokumentów XML XPath XML Path Language. XSLT Extensible Styleshheet Language Transformations. Modele dostępu programistycznego do dokumentów

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Systemy Rozproszone Temat projektu: Regułowy system analizujacy logi Spis treści autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Cel Projektu...2 Dane aplikacji...2 Technologia...2 Zarządzanie

Bardziej szczegółowo