Wykład 2
Transkrypt
Wykład 2
12-03-2014 Kwalifikacje kadry dydaktycznej kluczem do rozwoju Uczelni PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ I EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO Uniwersytet Kazimierza Wielkiego w Bydgoszczy Wydział Matematyki, Fizyki i Techniki specjalność: Sieci i systemy rozproszone Technologie mobilne i rozproszone na platformie .NET Wykład 2 xaml, cz. 2 Czym jest xml? Język znaczników zasady zapisu i stosowania znaczników, i/lub standaryzowany zbiór tagów. xml: brak zbioru tagów, tylko „zasady stosowania” służy jedynie ujednoliceniu zapisu kolejnych języków html (zapis treści stron WWW) SVG (zapis grafiki wektorowej) można zbudować własny! Prosta, jednolita składnia – zapisaną informację łatwo jest przekształcić w bazę danych łatwo formatować i prezentować na rozmaitych urządzeniach. 3 1 12-03-2014 Przykłady kursy walut (www.nbp.pl) przelew bankowy (BGK) <przelewy> <przelew> <rach_obc>38 1130 0007 2001 0000 4444 0003</rach_obc> <bank>10800001</bank> <rachunek>63 1080 0001 1232 1232 1154 8412</rachunek> <nazwa>Janina Kowalska</nazwa> <kwota>123.10</kwota> <tresc>faktura nr 12345</tresc> </przelew> 4 problem:Unikalność nazw – „title” <?xml version="1.0" encoding="utf-8" ?> <section> <title>Book-Signing Event</title> <signing> <author title="Mr" name="Vikram Seth" /> <book title="A Suitable Boy" price="$22.95" /> </signing> <signing> <author title="Dr" name="Oliver Sacks" /> <book title="The Island of the Color-Blind” price="$12.95" /> </signing> </section> 5 Przestrzeń nazw „Kontener” nazw podobnie, jak w Java, C#, można kilka, definiowana jako element xml, identyfikowana referencją IRI lub URI, symbol xmlns xml + ns (name space) „ns” – tzw. alias <ns:pizza xmlns:ns="http://programowanie.org"> Użycie poprzez alias nazwa elementu identyfikator przestrzeni 6 2 12-03-2014 Alias i identyfikator <ns:pizza xmlns:ns="http://programowanie.org"> Identyfikator przestrzeni nazw http://programowanie.org adres URL (niekoniecznie istniejący) często odnośnik do tzw. schematu dokumentu xml Alias przestrzeni nazw ns Użycie podczas deklarowania znaczników: <alias:nazwa_znacznika> Atrybuty przestrzeni nazw <ns:pizza xmlns:ns="http://abc.net" ns:lang="PL"> 7 Węzły wielojęzyczne Atrybut lang można stosować tzw. węzły wielojęzyczne ułatwia tworzenie dokumentów wielojęzycznych element <ns:cena> ma atrybut xml:lang o wartości PL, a drugi — EU. <?xml version="1.0" encoding="utf-8" ?> <ns:pizza xmlns:ns="http://4programmers.net"> <ns:nazwa>Peperoni</ns:nazwa> <ns:cena xml:lang="PL">15,50</ns:cena> <ns:cena xml:lang="EU">4</ns:cena> </ns:pizza> 8 Takie same nazwy atrybutów <x xmlns:n1="http://inna.przestrzen.pl" xmlns:n2="http://inna2.przestrzen.pl"> <trzyAtrybuty a="0" n1:a="1" n2:a="2"/> </x> 9 3 12-03-2014 Schemat dokumentu Jak to zdefiniować? Jak jednoznacznie zapisać?? I po co?? 10 Składnia dokumentu Elementy, atrybuty czy nazwy prawidłowe? czy wartości wszystkie wymagane/opcjonalne? czy typ wartości prawidłowy? <uczestnicy> <osoba nazwisko="Rak" imię="Jan" rok="1991"/> <osoba nazwisk=„Nowak" im="Jan" rok="1971"/> <osoba imię="Adam" rok="000"/> </uczestnicy> 11 Weryfikacja poprawności Schemat dokumentu określa strukturę dokumentu listę poprawnych elementów Listę atrybutów tych elementów Schematy DTD (Document Type Definition) XSD (XML Schema Definition) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE osoba [ <!ELEMENT osoba (imie, drugieImie, nazwisko)> <!ELEMENT imie (#PCDATA)> <!ELEMENT drugieImie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)> ]> <osoba> <imie>Zygfryd</imie> <drugieImie>Zenobiusz</drugieImie> <XXazwisko>Wawrzyniak</XXazwisko> </osoba> zalecane przez W3C Nazwa nieprawidłowa 12 4 12-03-2014 Dlaczego XSD? Ograniczenia DTD (m.in.): słaba kontrola typów atrybutów, minimalna elementów elementy nie mogą określać wartości domyślnych niemożność zadeklarowania dowolnej kolejności podelementów (np. dowolna kolejność nazwisko, imię w elemencie osoba) brak wsparcia dla przestrzeni nazw! inna składnia, niż zwykły XML . Dlaczego XSD? schemat korzysta z języka XML, ma taką samą składnię, definiuje elementy, atrybuty oraz typy danych, jest bardziej użyteczny oraz rozbudowany niż DTD, jest opracowany i zalecany przez W3C. Idea utworzenia XSD została zapoczątkowana przez firmę Microsoft. W 2001 r. patronat nad powstaniem i utworzeniem standardu objęła W3C 13 Definiowanie XSD XML Schema Definition standardowa składnia XML, składniki definicji należą do przestrzeni nazw http://www.w3.org/2001/XMLSchema wyróżnionej zwykle prefiksem xsd albo xs. Definicja schematu w dokumencie xml-owym zawarta w elemencie głównym xsd:schema lub w oddzielnym dokumencie 14 Postać dokumentu schematu <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> .... </xsd:schema> Prefiks xsd zalecany określony w deklaracji przestrzeni nazwowej w elemencie schema Deklaracja elementu i jego typu element xsd:element typ elementu: atrybut type <xsd:element name="nazwaElementu" type="xsd:string" /> Deklaracja atrybutu i jego typu element xsd:attribute typ – jw. <xsd:attribute name="nazwaAtrybutu" type="xsd:integer" /> 15 5 12-03-2014 Typy elementów i atrybutów Predefiniowane typy proste (www.w3.org/TR/xmlschema-2) znakowe i logiczne string, normalizedString, token, boolean liczbowe positiveInteger, negativeInteger, integer, long, decimal, float, byte, … binarny: base64Binary (każde 6 bitów kodowane symbolem alfanumerycznym) daty i czasu: time: np. 13:20:00.000, 13:20:00.000-05:00 dateTime : np. 1999-05-31T13:20:00.000-05:00 duration: np. P1Y2M3DT10H30M12.3S date (oraz ich wycinki): np. 1999-05-31 anyURI (znakowy zgodny ze składnią URI): np. http://www.w3c.org/) language (kody języków narodowych): np. en-US, pl XML: ID, IDREF, IDREFS, NOTATION... Można także definiować typy własne. 16 Typy własne (za www.w3schools.com) Najczęściej jako: zawężenie typu prostego (restriction) listę wartości innego typu prostego (list) Element „age” z zakresu <0, 120> <xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element> 17 Typy własne (za www.w3schools.com) Element „car” z okreslonymi wartościami Audi, Golf, BMW <xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element> 18 6 12-03-2014 Typy własne (za www.w3schools.com) jw. – definiowanie typu <xs:element name="car" type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> carType może być użyty dla innych elementów (atrybutów) 19 Typy własne (za www.w3schools.com) Seria znaków literowych (typ string) <xs:pattern value="[a-z]"/> Sekwencja 5 cyfr (typ integer) <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> Określone wyrazy <xs:pattern value="male|female"/> Liczba znaków <xs:length value="8"/> <xs:minLength value="5"/> <xs:maxLength value="8"/> 20 Schemat w dokumencie 21 7 12-03-2014 Schemat w pliku zewnętrznym Visual Studio: Properties pliku xml-owego 22 XML wg Microsoft… XAML Extensible Application Markup Language język opisu interfejsu użytkownika m.in. w technologii Windows Presentation Foundation (WPF - element platformy .NET Framework od wersji 3.0) Cechy oparty na języku XML zoptymalizowany do opisu bogatych, wizualnych interfejsów (jak np. Adobe Flash) Inne tego typu: SVG (opis grafiki wektorowej), LZX (interfejsy graficzne) XUL (do budowy rozszerzeń dla Firefoksa) 23 XAML w projekcie • Design •UserControl • Grid • XAML 24 8 12-03-2014 Struktura opisu XAML <UserControl x:Class="SilverlightApplication5.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded" GotFocus="LayoutRoot_GotFocus"> </Grid> </UserControl> 25 Namespace: xmlns Dwie podstawowe przestrzenie nazw xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" zawiera klasy WPF (Button, Grid, Label, …) domyślna przestrzeń nazw (bez prefiksu) xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" zawiera różne pomocnicze cechy XAML domyślnie zmapowana do prefiksu x przy odwołaniu - prefiks <x:ElementName> 26 Inne rozszerzenia XSL (eXtensible Stylesheet Language) język, który opisuje przekształcenia dokumentów XSL; obejmuje: XSLT — XSL Transformation, język dla przekształceń dokumentów XML, XPath — XML Path Language, język opisujący dostęp lub odwołanie do fragmentów XML, XSLF - XSL Formatting, słownik opisujący formatowanie. Zastosowanie pozwala na opis transformacji dokumentów XML oraz sposobu ich formatowania, np.: przekształcenie dokumentu XML na dokument wizualny, który może zostać wydrukowany; w XSLT można stosować HTML i CSS, a następnie dynamicznie tworzyć stronę WWW, która będzie pobierać informacje z pliku XML - takie informacje będą np. formatowane w postaci tabeli HTML. 27 9 12-03-2014 Od czego warto zacząć… XML dla niewtajemniczonych http://office.microsoft.com/pl-pl/word-help/xml-dlaniewtajemniczonych-HA010034022.aspx XML in 10 points (po polsku!) http://www.w3.org/XML/1999/XML-in-10-points.pl.html Internetowa „szkoła” http://www.w3schools.com/schema/schema_simple.asp 28 10