Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy.

Podobne prezentacje


Prezentacja na temat: "Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy."— Zapis prezentacji:

1 Piotr Czapiewski Wydział Informatyki ZUT

2  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy  Reprezentacja dokumentów lub danych ustrukturalizowanych

3  Deklaracja XML  Element główny (root)  Elementy  Zagnieżdżanie  Atrybuty  Elementy puste Java i XML. Wydanie III Brett D. McLaughlin Justin Edelson Helion 2007

4  Metajęzyk  Brak zdefiniowanych znaczników, jedynie reguły znakowania  Aplikacje XML  Specjalizowane języki bazujące na XML  XHTML, WML, SVG, MathML, DocBook, WSDL, … XML DTD XHTML XHTML

5 Definiowanie struktury dokumentu XML DTDXML Schema

6 ]> Piotr Czapiewski Jan Kowalski

7

8

9  Zapobieganie konfliktom nazw  Elementy z różnych „słowników” w jednym dokumencie  Deklaracja: prefiks oraz URI Product Description Product Description

10 Product Description Product Description Product Description African Coffee Table Product Description African Coffee Table Coffee Table Coffee Table

11 DOM, SAX Parsowanie JAXB Wiązanie XML XPath Przeszukiwanie XSLT Przekształcenia

12 100 sposobów na Excel 2007 PL David Hawley, Raina Hawley Helion pytań na temat e-biznesu do Piotra Majewskiego Piotr Majewski Helion

13 private static class MyHandler extends DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {... } public void endElement(String uri, String localName, String qName) throws SAXException {... } public void characters(char[] ch, int start, int length) throws SAXException {... } };

14 private static class MyHandler extends DefaultHandler { private int bookCount = 0; private List titles = new ArrayList (); private boolean book = false; private boolean title = false; public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {... } public void endElement(String uri, String localName, String qName) throws SAXException {... } public void characters(char[] ch, int start, int length) throws SAXException {... }

15 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if(qName.equals("book")) { bookCount++; book = true; } else if(qName.equals("title")) { title = true; } public void endElement(String uri, String localName, String qName) throws SAXException { if(qName.equals("book")) book = false; else if(qName.equals("title")) title = false; } public void characters(char[] ch, int start, int length) throws SAXException { if(book && title) { String title = new String(ch, start, length); titles.add(title); }

16 SAXParser sax = SAXParserFactory.newInstance().newSAXParser(); MyHandler handler = new MyHandler(); sax.parse("books3.xml", handler); int bookCount = handler.getBookCount(); List titles = handler.getTitles(); System.out.println(bookCount); System.out.println(titles);

18 NodeList bookNodeList = root.getElementsByTagName("book"); int n = bookNodeList.getLength(); for(int i=0; i

19 @XmlType(name = "book") public class Book { private String id; private String title; private String author; private String isbn; private Integer year; private String publisher; private Integer public String getId() { return id; } public void setId(String id) { this.id = id; }

20 @XmlRootElement(name = "books") public class BookList { private List bookList = new ArrayList = "book") public List getBookList() { return bookList; } public void setBookList(List bookList) { this.bookList = bookList; }

21 JAXBContext context = JAXBContext.newInstance(BookList.class); Unmarshaller um = context.createUnmarshaller(); FileReader fr = new FileReader("books.xml"); BookList bl = (BookList) um.unmarshal(fr); fr.close(); for(Book b : bl.getBookList()) System.out.println(b.getId() + " " + b.getTitle());

22

23  XML Path Language  Adresowanie części dokumentu XML  Przykłady ścieżek  Element:/books/book/title 

24  /books/book/title    //person  //person [ profile/age<25 and profile/gender='female' ] / name

25  Funkcje operujące na liczbach:  fn:abs(...)  fn:round(...), fn:floor(...), fn:ceiling(...)  fn:avg(…), fn:min(…), fn:max(…)  Operacje na łańcuchach tekstowych:  fn:concat(string1, string2)  fn:substring(string, start, length)  fn:string-length(...)  fn:lower-case(...), fn:upper-case(...)  fn:contains(string1, string2), fn:starts-with(string1, string2)

26  //book[ starts-with(title, "Java") ]  //book[ contains(title, "Java") ]/title  //book[ count(//author)>1 ]/title  //book[ string-length(title)>100 ]/title

27 DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.parse("test100k.xml"); XPath xpath = XPathFactory.newInstance().newXPath(); String name = doc); String card = xpath.evaluate("//person[name='Nagasaki']/creditcard", doc);

28 String expr1 = "//person[profile/age<25 and profile/gender='female']/name"; NodeList nodes = (NodeList) xpath.evaluate(expr1, doc, XPathConstants.NODESET); for(int i=0; i

29 String expr2 = "//person[profile/age<25 and profile/gender='female']"; NodeList nodes2 = (NodeList) xpath.evaluate(expr2, doc, XPathConstants.NODESET); for(int i=0; i

30 Transformacje XSLT

31  XSL Transformations  Język przekształceń dokumentów XML  Tłumaczenie dokumentu XML z jednego formatu na inny  Arkusz XSLT  „Przepis” na transformację  Zbudowany z reguł  Wykorzystanie XPath

32 Helion Onepress

33 ...

34 ... Helion Onepress...


Pobierz ppt "Piotr Czapiewski Wydział Informatyki ZUT.  Extensible Markup Language  Język znaczników  Human-readable and machine-readable  Niezależny od platformy."

Podobne prezentacje


Reklamy Google