XLink i XPointer. środa, 4 stycznia 12

Podobne dokumenty
WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

Oczywiście plik musi mieć rozszerzenie *.php

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

XML extensible Markup Language. część 5

Krótki kurs JavaScript

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

Wykład 03 JavaScript. Michał Drabik

Test przykładowy 2 PAI WSB Wrocław /06/2018

Bazy dokumentów. MongoDB

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

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Podstawy JavaScript ćwiczenia

Przykładowy dokument XML

XQuery. sobota, 17 grudnia 11

Tworzenie Stron Internetowych. odcinek 10

Zajęcia 4 - Wprowadzenie do Javascript

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

PHP: bloki kodu, tablice, obiekty i formularze

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

XML extensible Markup Language. część 5

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

JS:Obiekty, tablice, JSON

na podstawie bazy Oracle NoSQL

Inne standardy zwiazane z XML

Algorytmy i struktury danych. wykład 1

Bazy Danych i Usługi Sieciowe

Wykład 2 Składnia języka C# (cz. 1)

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

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

Funkcje i instrukcje języka JavaScript

Komunikacja międzysystemowa

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

1. Wprowadzenie do języka PHP

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Java Podstawy. Michał Bereta

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Dlaczego GML? Gdańsk r. Karol Stachura

Diagramy klas. dr Jarosław Skaruz

Zdarzenia Zdarzenia onload i onunload

Cw.12 JAVAScript w dokumentach HTML

Zaawansowane aplikacje WWW - laboratorium

VBA praca z makrami w Excelu

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

JAVAScript w dokumentach HTML (1)

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

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

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

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

JAVAScript w dokumentach HTML - przypomnienie

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

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

MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska

Inne standardy zwiazane z XML

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

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

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

Terytorialna analiza danych

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Programowanie obiektowe

Wprowadzenie do języka Java

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Obiektowy język JavaScript oraz format JSON (Zajęcia r.)

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Podstawy programowania skrót z wykładów:

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

VBA praca z makrami w Excelu

WYKŁAD 4 JĘZYK JAVASCRIPT CZĘŚĆ 1

Laboratorium 1. Wprowadzenie do protokołu SNMP i kodowanie BER (ASN.1)

Języki programowania wysokiego poziomu. PHP cz.2.

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

REACT NATIVE. Anna Maziejuk Kamil Jankowski

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

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

Podstawy programowania. Podstawy C# Tablice

Wprowadzenie do technologii XML

JQuery. $('#pierwszy').css('color','red').hide('slow').show(3000); $(document).ready(function() { //... tutaj nasze skrypty jquery //...

Tworzenie aplikacji w języku Java

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Umieszczanie kodu. kod skryptu

Model semistrukturalny

Typy danych, zmienne i tablice. Tomasz Borzyszkowski

Podstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski

DOM (Document Object Model)

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

JAVAScript w dokumentach HTML (2)

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

XML extensible Markup Language. Paweł Chodkiewicz

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Tworzenie Stron Internetowych. odcinek 5

Pakiet XML Czym jest i z czym się je?

JavaScript funkcyjność

Wstęp do programowania. Różne różności

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

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

PROGRAMOWANIE W ŚRODOWISKU FLASH wykład 2

Podstawy otwartych języków programowania Przechowywanie danych

Wybrane działy Informatyki Stosowanej

Transkrypt:

XLink i XPointer

XLink - XML Linking Language XLink jest wykorzystywany do tworzenia linków w dokumentach XML Każdy element XML może zachowywać się jako link XLink wspiera linki proste (np. w dokumentach HTML) oraz linki rozszerzone (ang. extended) pozwalające na połączenie wielu zasobów Za pomocą XLink możliwe jest tworzenie linków definiowanych poza plikiem do którego się odnoszą. XLink jest rekomendacją W3C

XPointer XML Pointer Language XPointer pozwalają linkom wskazywać na określoną część dokumentu XML XPointer wykorzystuje wyrażenia XPath do nawigacji po dokumentach XML XPointer jest rekomendacją W3C

Przykład wykorzystania XLink <?xml version="1.0"?> <homepages xmlns:xlink="http://www.w3.org/1999/xlink"> <homepage xlink:type="simple" xlink:href="http://www.w3schools.com"> Visit W3Schools </homepage> <homepage xlink:type="simple" xlink:href="http://www.w3.org"> Visit W3C </homepage> </homepages>

XLink Aby uzyskać dostęp do atrybutów XLink konieczne jest zdefiniowanie przestrzeni nazw XLink "http://www.w3.org/1999/xlink". Z przestrzeni nazw XLink pochodzą atrybuty xlink:type oraz xlink:href wykorzystane w znaczniku homepage. Typ linku simple (xlink:type="simple") tworzy prosty link o dwóch zakończeniach (ang. two-ended link), którego działanie można opisać jako kliknij tu, aby pójść tam (ang. "click from here to go there").

XPointer Hiperłącza (ang. hyperlink) w HTML wskazują na stronę HTML lub zakładkę wewnątrz dokumentu HTML (wykorzystując #). W niektórych sytuacjach konieczne jest utworzenie łączą wskazującego na konkretny element dokumentu, np. na trzeci element listy, albo drugie zdanie piątego paragrafu. Jeśli łącze ma wskazywać na konkretny element dokument XML możliwe jest dodanie wskaźnika XPointer po adresie URL wewnątrz atrybutu xlink:href. Wskaźnik Xpointer za pomocą wyrażenia XPath wskazuje na określone miejsce w dokumencie XML. Wykorzystanie wskaźnika XPointer do wskazania piątego elementu listy o id osoby : href="http://www.example.com/cdlist.xml#id('osoby').child(5,item)"

XLink - przykład <?xml version="1.0" encoding="iso-8859-1"?> <bookstore xmlns:xlink="http://www.w3.org/1999/xlink"> <book title="harry Potter"> <description xlink:type="simple" xlink:href="http://book.com/images/hpotter.gif" xlink:show="new"> As his fifth year at Hogwarts School of Witchcraft and Wizardry approaches, 15-year-old Harry Potter is... </description> </book> </bookstore>

XLink - atrybuty xlink:type="simple" - definiuje typ łącza. Typ simple tworzy prosty link w stylu linków HTML. Możliwe jest również tworzenie złożonych linków wielokierunkowych. xlink:href - definiuje adres URL łącza xlink:show - określa gdzie otworzyć łącze. xlink:show="new" oznacza, że link zostanie otworzony w nowym oknie. xlink:show="embed" oznacza, że zasób, na który wskazuje powinien zostać przetworzony jako inline wewnątrz dokumentu. xlink:actuate - atrybut określający, kiedy zasób wskazywany przez link ma zostać załadowany. xlink:actuate="onload" oznacza, że zasób powinien zostać załadowany i pokazany w momencie załadowania dokumentu. xlink:actuate="onrequest" oznacza, że zasób nie powinien zostać odczytany i załadowany zanim link zostanie kliknięty.

XPointer Łącza XLink pozwalają na utworzenie łącza do całego dokumentu. XPointer pozwala na wskazanie określonej części dokumentu. W tym celu do linku URL po znaku # należy dołączyć wyrażenie XPointer. #xpointer(id("rottweiler")) - wskazuje na element, którego id jest równe "Rottweiler" <?xml version="1.0" encoding="iso-8859-1"?> <dogbreeds> <dog breed="rottweiler" id="rottweiler"> <picture url="http://dog.com/rottweiler.gif" /> <history>the Rottweiler's ancestors were probably Roman drover dogs...</history> <temperament>confident, bold, alert and imposing, the Rottweiler is a popular choice for its ability to protect...</temperament> </dog> <dog breed="fcretriever" id="fcretriever"> <picture url="http://dog.com/fcretriever.gif" /> <history>one of the earliest uses of retrieving dogs was to help fishermen retrieve fish from the water...</history> <temperament>the flat-coated retriever is a sweet, exuberant, lively dog that loves to play and retrieve </temperament> </dog> </dogbreeds> atrybut xlink:href wskazujący na ten element wygląda następująco: xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('rottweiler'))"

Skrócone łącza XLink Podczas tworzenia łączy do elementów o konkretnym id XLink pozwala na tworzenie skrótów. Łącze: xlink:href="http://dog.com/dogbreeds.xml#rottweiler" jest równoznaczne z poprzednio wykorzystywanym: xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('rottweiler'))"

XLink - kompletny przykład <?xml version="1.0" encoding="iso-8859-1"?> <dogbreeds> <dog breed="rottweiler" id="rottweiler"> <picture url="http://dog.com/rottweiler.gif" /> <history>the Rottweiler's ancestors were probably Roman drover dogs...</history> <temperament>confident, bold, alert and imposing, the Rottweiler is a popular choice for its ability to protect...</temperament> </dog> <dog breed="fcretriever" id="fcretriever"> <picture url="http://dog.com/fcretriever.gif" /> <history>one of the earliest uses of retrieving dogs was to help fishermen retrieve fish from the water...</history> <temperament>the flat-coated retriever is a sweet, exuberant, lively dog that loves to play and retrieve </temperament> </dog> <?xml version="1.0" encoding="iso-8859-1"?> <mydogs xmlns:xlink="http://www.w3.org/1999/xlink"> <mydog xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#rottweiler"> <description xlink:type="simple" xlink:href="http://myweb.com/mydogs/anton.gif"> Anton is my favorite dog. He has won a lot of... </description> </mydog> <mydog xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#fcretriever"> <description xlink:type="simple" xlink:href="http://myweb.com/mydogs/pluto.gif"> Pluto is the sweetest dog on earth... </description> </mydog> </mydogs> </dogbreeds>

JSON

JSON JSON - JavaScript Object Notation. Lekki, tekstowy format wymiany danych. Niezależny od języka programowania i systemu operacyjnego. JSON wykorzystuje składnię JavaScript do opisu obiektów, ale mimo to nadal zachowuje niezależność od języka i platformy. Biblioteki parsujące format JSON są dostępne dla większości języków programowania. JSON to format samoopisujący się i łatwy do zrozumienia.

JSON - przykład { "employees": [ { "firstname":"john", "lastname":"doe" }, { "firstname":"anna", "lastname":"smith" }, { "firstname":"peter", "lastname":"jones" } ] }

JSON vs. XML Podobieństwa: format tekstowy (plain text) samoopisujący się i czytelny dla użytkownika hierarchiczny (obiekty wewnątrz innych obiektów) Różnice: brak znaczników zamykających krótszy szybszy zapis i odczyt wykorzystuje tablice brak zastrzeżonych słów kluczowych

Składnia JSONa Dane w JSONie są przechowywane jako pary klucz/wartość: "firstname" : "John" Wartości JSON mogą być typu: liczbowego (integer lub float) ciąg znakowy (string w podwójnych cudzysłowach) wartości logiczne (true lub false) tablice (w nawiasach kwadratowych) obiekt (w nawiasach klamrowych) null

Obiekty JSON Obiekty JSON są umieszczane w nawiasach klamrowych i mogą zawierać wiele par nazwa/wartość. { "firstname":"john", "lastname":"doe" }

Tablice JSON Tablice JSON są umieszczane w nawiasach kwadratowych. Tablica mże zawierać wiele obiektów. { "employees": [ { "firstname":"john", "lastname":"doe" }, { "firstname":"anna", "lastname":"smith" }, { "firstname":"peter", "lastname":"jones" } ] }

Ciąg znaków String jest sekwencją zero lub więcej znaków Unicode zamkniętych w podwójne cudzysłowy. Możliwe jest wykorzystanie sekwencji unikowych zaczynających się od / (ang. backslash escapes). Pojedynczy znak jest traktowany jako ciąg znaków składających się z jednego znaku.

JSON i obiekty JavaScript Składnia obiektów JSON jest identyczna jak składnia kodu wykorzystywanego do tworzenia obiektów w JavaScript. Dostęp do obiektów utworzonych za pomocą JSONa jest identyczny jak do natywnych obiektów JavaScript: <html> <body> <p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p> <script type="text/javascript"> var JSONObject= { "name":"john Johnson", "street":"oslo West 555", "age":33, "phone":"555 1234567"}; document.getelementbyid("jname").innerhtml=jsonobject.name document.getelementbyid("jage").innerhtml=jsonobject.age document.getelementbyid("jstreet").innerhtml=jsonobject.street document.getelementbyid("jphone").innerhtml=jsonobject.phone </script> </body> </html>

JSON, JavaScript i funkcja eval Funkcja eval() traktuje ciąg tekstowy przekazany jako argument jako fragment kodu, wykonuje go lub interpretuje, np. <html> <body> Suma_txt: <span id="stxt"></span><br /> Suma_eval: <span id="seval"></span> <script type="text/javascript"> var suma_txt = "1+2"; var suma_eval = eval("1+2"); document.getelementbyid("stxt").innerhtml=suma_txt document.getelementbyid("seval").innerhtml=suma_eval </script> </body> </html> Suma_txt: 1+2 Suma_eval: 3

JSON, JavaScript i funkcja eval W języku JavaScript nie ma potrzeby używania parserów. W celu przekształcenia dokumentu tekstowego do obiektu wystarczy użyć metody eval() i przekazać do niej tekst zawierający dane w formacie JSON. Funkcja eval zwróci obiekt, który może być wykorzystywany tak samo jak natywne obiekty JavaScript. Dane tekstowe w formacie JSON przekazane do funkcji eval powinny zostać zamknięte w nawiasy okrągłe. Np JSON: { "imie": "Ala" } var JSONobject = eval( "( { \"imie\": \"Ala\" } )" );

JSON, JavaScript i funkcja eval <html> <body> Imie: <span id="imie_label"></span><br /> Wiek: <span id="wiek_label"></span> <script type="text/javascript"> var jsono = eval("( {\"osoby\": [{\"imie\": \"Jan\", \"wiek\":23}, {\"imie\": \"Ala\", \"wiek\":25} ] } )"); </script> </body> </html> ( {"osoby": [ {"imie": "Jan", "wiek":23}, {"imie": "Jan", "wiek":23} ] } ) document.getelementbyid("imie_label").innerhtml= jsono.osoby[1].imie document.getelementbyid("wiek_label").innerhtml= jsono.osoby[1].wiek Imie: Ala Wiek: 25

JSON w Java (www.json.org) Dostępne obiekty: JSONObject JSONArray JSONStringer JSONWriter JSONTokener Konstrukcja obiektu - parsowanie dokumentu tekstowego: JSONObject(java.lang.String source)

JSONObject Nieuporządkowana kolekcja par nazwa/wartość. Zewnętrzną reprezentacją jest ciąg znakowy zamknięty w nawiasach klamrowych z przecinkami pomiędzy parami nazwa/wartość i dwukropkiem pomiędzy nazwą i wartością. Wewnętrzna struktura to obiekt udostępniający metody get() i opt() umożliwiające dostęp do elementów. Dodawanie/zastępowanie elementów za pomocą metody put(). Wartości mogą być typu: Boolean, JSONArray, JSONObject, Number, String, JSONObject.NULL. Metoda tostring() pozwala na zapis obiektu do ciągu znakowego w formacie JSON.

JSONObject Odczyt wartości bez kontroli typu: java.lang.object get(java.lang.string key) Odczyt wartości z kontrolą typu: boolean getboolean(java.lang.string key) double getdouble(java.lang.string key) int getint(java.lang.string key) JSONArray getjsonarray(java.lang.string key) JSONObject getjsonobject(java.lang.string key) Jeśli wartość dla danego klucza nie istnieje, lub w przypadku metod z kontrolą typu, jeśli wartość jest innego typu niż oczekiwany wyrzucany jest wyjątek JSONException.

JSONArray JSONArray - uporządkowana sekwencja obiektów. Zewnętrzną reprezentacją jest ciąg znaków pomiędzy nawiasami kwadratowymi, elementy tablicy rozdzielone są przecinkami. Wewnętrzna struktura to obiekt udostępniający metody get() i opt() umożliwiające na dostęp do elementów za pomocą indeksu. Metoda put pozwalająca na dodawanie lub zastępowanie elementów. Metoda put przyjmująca jeden parametr dołącza element na końcu tablicy, natomiast metoda przyjmująca dwa elementy pozwala na wstawienie elementu dla konkretnego indeksu tablicy. Wartości mogą być typu: Boolean, JSONArray, JSONObject, Number, String, JSONObject.NULL.

JSONWriter JSONWriter to obiekt pozwalający na szybkie tworzenie dokumentów w formacie JSON. JSONWriter array() rozpoczyna dołączanie elementów do tablicy JSONWriter endarray() zakończenie tablicy JSONWriter object() rozpoczęcie tworzenia obiektu JSONWriter endobject() koniec obiektu JSONWriter key(java.lang.string string) dołącza klucz JSONWriter value(boolean b) JSONWriter value(double d) JSONWriter value(long l) JSONWriter value(java.lang.object object) dołącza wartość dla klucza

JSONWriter - przykład new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject(); spowoduje utworzenie ciągu znakowego {"JSON":"Hello, World!"}