mgr inż. Jacek Staniec Język XML staniec@wit.edu.pl
Zaliczenie przedmiotu (3 punkty ECTS) Obecność na 7 pierwszych zajęciach 15 punktów Sprawozdania z 7 pierwszych zajęć 15 punktów Projekt podstawowy 50 punktów projekt można poprawiać aż do uzyskania 40-50 pkt Oddanie 40-50-punktowego projektu w styczniu max 31 punktów przykładowo 1.01= 31pkt, 11.01=21pkt, 21.01=11pkt, 31.01=1 pkt Merytoryczna masa projektu max 10 punktów po oddaniu 40-50-punktowego projektu można wzbogacić go dodając 50 rekordów = 10 pkt 51pkt=3; 61pkt=3,5; 71pkt=4; 81pkt=4.5; 91pkt=5
Realizacja projektu (50 + 31 + 10 punktów) uzgodniona struktura XSD na zadany temat w tym referencje = 104 poprawne wykorzystanie typów danych w XSD = 53 wykorzystanie kilku różnych rodzajów restrykcji w XSD = 54 wykorzystanie linków do zdjęć (http://) (minimum 5 rekordów) = 52 zamieszczenie informacji o źródłach pochodzenia danych = 52 XSL przekształcający XML do XHTML1.1 = 105 XSL dodający do XHTML JavaScript dla dynamiki danych = 56 elementy min. dwóch innych języków: MathML, SVG, RSS, = 107 Dla 40-50 punktowych projektów: masa 50 szczegółowo opisanych rekordów lub wyczerpanie tematu = 10 punktów termin realizacji projektów styczeń 2008 = max 31 punktów
Tematyka zajęć Zajęcia 0: Informacje wstępne, przykłady XML; Zajęcia 1: Formalnie poprawne dokumenty XML; Zajęcia 2: Formalnie poprawne dokumenty XML (+ walidacja DTD); Zajęcia 3: Walidacja dokumentów XML schematy XSD; Zajęcia 4: Zaawansowane techniki schematów XSD; Zajęcia 5: Prezentacja dokumentów XML z wykorzystaniem XSL; Zajęcia 6: Zaawansowane techniki XSL (XSLT + XPath); Zajęcia 7: Języki XML: XLink, XPointer, XQuery, SMIL, MathML; Zajęcia 8: Języki XML: XLink, XPointer, XQuery, SMIL, MathML;
Oprogramowanie notatnik(-), jedit(+) 30-dniowe wersje XMLSpy (Altova), XMLwriter (Wattle), XMLEditor (editix) open source eclipse.org (eclipse ide for java ee developers)??? netbeans.org??? przeglądarki (Opera, Mozilla, IE, Amaya, );
Literatura Dowolne książki opisujące tematy poruszane na zajęciach: XML, XMLSchema (XSD), XSL (XSLT + XPath) Strona konsorcjum W3 w3.org; Tutoriale konsorcjum W3 w3schools.com;
Przykłady wykorzystania XML NBP RSS http://serwisy.gazeta.pl/rss JABBER CHATBOT (AIML + gadu-gadu) BOOKML - SZEKSPIR Media Player (listy odtwarzania) Pliki konfiguracyjne tysięcy programów (przeszukaj komputer *.xml) Web Services: http://waluty.k2.pl/ws/nbprates.asmx (brak możliwości testowania przy użyciu http://) http://www.xmlme.com/wsshakespeare.asmx (można testować online przy użyciu http://) Blogi Office 2007
Hasła dotyczące XML-a XML nie jest językiem (zwłaszcza programistycznym) XML jest zestawem instrukcji do tworzenia nowych języków (nowych gramatyk opartych na standardzie XML) potocznie mówi się jednak o języku XML XML (języki zgodne z XML) to języki znakowania podobne do HTML XHTML1.1 jest przykładem języka znakowania zgodnego z XML Specyfikacja XML nie definiuje żadnego znacznika, a jedynie określa sposoby definiowana znaczników Znaczniki, które wykorzystuje konkretny język XML definiowane są w schematach XML (XSD) lub DTD 4 języki znakowania XHTML zdefiniowane są w 4 różnych DTD (dyrektywy DOCTYPE)
Hasła dotyczące XML-a XML jest językiem, przy pomocy którego można zamodelować dowolne dane, dowolne dokumenty, dowolne struktury NBP kursy walut JABBER - komunikaty VCARD - wizytówki OFFICE 2007 wszystkie dokumenty XML oddziela zawartość dokumentu od sposobu jej prezentacji Każdy dokument XML to w całości zwykły plik testowy XML jest też wykorzystywany jako standard wymiany danych (SOAP)
Tworzenie formalnie poprawnych dokumentów XML
Tematyka dzisiejszych zajęć Struktura typowych danych biznesowych (bazy danych) Wprowadzenie do XML-a Tworzenie formalnie poprawnych dokumentów XML Część praktyczna pierwsze 2 punkty
Czym jest struktura danych? Dane nie posiadające czytelnego kontekstu mogą mieć niewielką wartość informacyjną i mogą powodować powstawanie błędów interpretacji 4 nr worka? Dane posiadające strukturę pozwalają (przede wszystkim innym aplikacjom) w pełni rozpoznawać i interpretować przekazywaną informację Dane opisujące inne dane to tzw metadane (metadata)
Typowe problemy biznesowe Typowe rozwiązania biznesowe powinny spełniać wymagania: czytelność zarówno dla maszyny jak i dla człowieka definiowanie zarówno kontekstu jak i struktury danych zachowanie relacji (klienci kontra ich zamówienia) odseparowanie struktury od warstwy prezentacyjnej Standard spełniający wszystkie w/w założenia: extensible Markup Language (XML)
XML typowy extensible Markup Language (XML) opisuje zawartość i strukturę danych, nie opisuje warstwy prezentacyjnej Northwind Traders Ltd. Order number: 123 02/12/02 To: Contoso Ltd. Widgets 20 Super Widgets 10 5.99 7.99 199.70 <Order number="123"> <From>Northwind Traders Ltd.</From> <To>Contoso Ltd.</To> <Date>02/12/02</Date> <Item> <Name>Widgets</Name> <Quantity>20</Quantity> <UnitPrice>5.99</UnitPrice> </Item> <Item> <Name>Super Widgets</Name> <Quantity>10</Quantity> <UnitPrice>7.99</UnitPrice> </Item> <Total Currency="USD"> 199.70</Total> </Order> Prezentacja zamówienia Zamówienie w wersji XML
Historia XML-a i konsorcjum W3C XML to uproszczony podzbiór SGML Lata 60 IBM-GML (Goldfarb, Mosher, Lorie) separacja informacji tekstowych przegląd prasy Standard Generalized Markup Language 1978 SGML jako standard ISO od 1986 Przeglądarka WWW Mosaic 1992 HTML 2.0 standard ANSI-ISO 1994 XML jako standard W3C 1998 Potężna kampania Microsoftu 2001 i popularyzacja XML (XHTML) XML nie jest własnością żadnej firmy, jako standard jest zarządzany i opisywany przez konsorcjum W3C http://www.w3.org
W jaki sposób XML opisuje dane? Typowe dokumenty biznesowe składają się zazwyczaj z trzech komponentów dane struktura warstwa prezentacyjna dokumenty XML zawierają informacje dotyczące kontekstu dokumentu (dane) i struktury (w tym metadane) dokumenty XML nie definiują warstwy prezentacyjnej warstwę prezentacyjną dostosowaną do potrzeb użytkownika definiują dopiero narzędzia specjalizujące się w parsowaniu XML
Jakie są różnice pomiędzy HTML-em a XML-em? język HTML sugeruje w jaki sposób dane mają być wyświetlane w przeglądarce, czyli pośrednio definiuje warstwę prezentacyjną typowy XML opisuje raczej strukturę danych, posługując się metadanymi <TABLE> <TR> <TR> <TD>Name</TD><TD>Jake</TD> </TR> </TR> <TR> <TR> <TD>Salary</TD><TD>25000</TD> </TR> </TR> <TR> <TR> <TD>Region</TD><TD>Ohio</TD> </TR> </TR> </TABLE> <employee> <name>jake</name> <salary>25000</salary> <region>ohio</region> </employee> a co z XHTML-em?
Czym są znaczniki (tagi) w XML-u? znaczniki w XML służą do definiowania struktury danych jednostkami definiowanymi przy użyciu znaczników są elementy <name> Lars Lars Peterson </name> znacznik początkowy zawartość elementu znacznik zamykający elementu name element name elementy w XML mogą być zagnieżdżone <employee> <name>lars Peterson</name> <salary>25000</salary> </employee>
Zawartość dokumentu XML deklaracja XML instrukcje przetwarzania komentarze element główny element potomny element pusty atrybut <?xml <?xml version="1.0"?> <??> <!-- <!--komentarz --> --> <employee> <name>lars Peterson</name> <permanent_staff /> /> <salary <salary curr="usd">25000</salary> </employee>
Jak utworzyć formalnie poprawny (well-formed) XML Wymagania dla poprawności formalnej dokumentu Dokument XML powinien zaczynać się od deklaracji wersji XML Istnieje tylko jeden element główny (root) o "dowolnej" nazwie Każdy otwarty element musi zostać zamknięty Wielkość liter w nazwach elementów ma znaczenie (case sensitive) W nazwach elementów nie używamy symboli typu @#$%&:; itp Nazw elementów nie zaczynamy od cyfr ani zlepku xml, XmL itp Elementy są poprawnie zagnieżdżone (bez krzyżowania) Elementy mogą posiadać zestaw atrybutów Nazwy atrybutów nie mogą się powtarzać (dla danego elementu) Atrybut zawsze musi mieć wartość (zakaz minimalizowania) Wartość atrybutu zawsze musi być ujęta w znaki cudzysłowu
Polskie znaki diakrytyczne
Polskie znaki diakrytyczne w XML Polska Norma PN-93 T-42118 IBM CP-852 zgodna z ISO-8859-2 <?xml <?xml version="1.0" encoding="iso-8859-2"?>?> <?xml <?xml version="1.0" encoding="ibm852"?>?> Microsoft CP-1250 <?xml <?xml version="1.0" encoding="windows-1250"?>?> UNICODE <?xml <?xml version="1.0" encoding="utf-8"?>?>
Sprawozdanie 1 (max 2 punkty) Utwórz formalnie poprawny, kodowany UTF-8 dokument XML Temat dokumentu: karta do głosowania w wyborach do senatu RP w dniu 21 X 2007 z minimum czterema (fikcyjnymi) kandydatami na senatorów (poproszę o imiona z polskimi znakami diakrytycznymi) (warstwy prezentacyjne kart dostępne są już w Internecie) Termin realizacji zadania: 16 października włącznie (wtorek) zazwyczaj opłaca się jednak przesłać wcześniej Sugerowana nazwa dokumentu xml: senat_nazwiskostudenta.xml Mój adres: staniec@wit.edu.pl