Prezentacja programu PowerPoint

Download Report

Transcript Prezentacja programu PowerPoint

Obiektowe metody projektowania systemów
XML
eXtensible Markup Language
Wstęp: XML
XML – eXtensible Markup Language
•
Stworzony aby opisać dane
•
Zrozumiały dla ludzi, łatwo przetwarzalny dla komputera
•
•
•
- Zapewnia informacje strukturalne i semantyczne
- Rozszerzalny
Niezależny od Software i Hardware
Otwarty i ustandaryzowany przez W3C
Idealny dla wymiany danych
Plan prezentacji
•
•
•
•
•
•
•
•
Dokument XML
Struktura Danych
Syle CSS 1, 2
XSL
Typy dokumentu (DTD)
Zastosowanie: XHTML, XMMP(Jabber)
Document Object Model (DOM)
Data Modeling with XML
„Płaskie dane” (flat files)
…
…;
Jan Kowalki,
[email protected],
+48 12 617 77 77,
116777;
…
…
Dokument XML - elementy
<?xml version="1.0" standalone ="yes"?>
<people>
<person>
<name>Jan Kowalki</name>
<email>[email protected]</email>
<phone>+48 12 617 77 77</phone>
<id>116777</id>
</person>
</people>
Wygląd w przegladarce
XML – zasady
Nazwy znaczników:
- wewnątrz wszystkie znaki
- pierwsza litera, cyfra lub ‘_’
- BRAK białych znaków
Przykłady:
<HELP></HELP>
<Książka></Książka>
<volume1></volume1>
<sekcja.akapit></sekcja.akap
<Ewa_Ada></Ewa_Ada>
<_8ball></_8ball>
Ale też:
<Help/>
<volume1/>
Znaczniki nie mogą się przeplatać!
<pre><kod>n:=n+1;</pre></kod> ZLE!
<kod><pre>n:=n+1;</pre></kod>
Korzyści ze stosowania XML
• Dane same się opisują
• Dane można przekształcać stosując standardowe
narzędzia
• Dane można oglądać stosując standardowe narzędzia
• Stosując różne arkusze stylów na te same dane można
różnie spojrzeć
Atrybuty
<?xml version="1.0" standalone ="yes"?>
<people>
<person id ="116777">
<name>Jan Kowalki</name>
<email>[email protected]</email>
<phone>+48 12 617 77 77</phone>
</person>
</people>
<?xml version="1.0" standalone ="yes"?>
<people>
<person id = "116777" phone ="+48 12 617 77 77">
<name>Jan Kowalki</name>
<email>[email protected]</email>
</person>
</people>
Atrybuty a znaczniki
• Brak prostych reguł
• Opieranie się na doświadczeniu
Wstępnie:
• Dane powinny być trzymane w postaci elementów
• Informacje o danych (metadane) w atrybutach
Atrybuty większy przykład
<offenders>
<!-- Lists all traffic offenders -->
<offender id="024378449 ">
<firstName> David </firstName>
<middleName>Reuven</middleName>
<lastName>Harel</lastName>
<violation id=’12’>
<code num=“232” category=“traffic”/>
<issueDate>2001-11-02</issueDate>
<issueTime>10:32:00</issueTime>
Ran a red light at Arik &amp; Benz st.
</violation>
</offender>
</offenders>
CSS Layer 1,2
CSS - Cascading Style Sheets
Pozwala przypisać poszczególnym elementom
XML charakterystykę
(np. forma czcionek, rozkład ramek)
•
Rozdziela formę od treści (przechowuje dane w
osobnym dokumencie – arkuszu stylów)
•
CSS - Przykład
Dodawanie arkusza stylów do dokumentu XML
<?xml-stylesheet type="text/css" href= "person.css" ?>
Przykład:
person {display:block; padding: 10px}
name {display:block; font-weight:bold}
email {display:block; font-style:italic}
phone {display:block}
id {display:block; font-size:9px}
CSS - Wyniki
Przed:
Po:
Dużo więcej możliwości !!!
Przekształcenia XSL
XSL – eXtensible Style Language
Język przekształceń i formatowania (aplikacja XML)
Definiowanie reguł opisujących sposób przekształcania
jednego dokumentu XML na inny dokument
Przekształcenia:
Podmiana jednych znaczników na inne.
Np.:
- XML->HTML+CSS,
- zmienić kolejność elementów,
- dodawać nowe treści
Formatowanie:
Umożliwia określenie wyglądu i układu strony
Np.:
- otaczanie obiektów przez tekst
- ustalanie odstępów międzywierszowych
- zaawansowane ustawienia czcionki
SŁABO OBSŁUGIWANY
XSL – Przykład użycia
HTML:
<ul>
</ul>
<li >Jan Kowalki</li>
<li>[email protected]</li>
<li>+48 12 617 77 77</li>
<li>116777</li>
XSL:
<xsl:for-each select="person">
<ul>
<li><xsl:value-of
<li><xsl:value-of
<li><xsl:value-of
<li><xsl:value-of
</ul>
</xsl:for-each>
select="name"/></li>
select="email"/></li>
select="phone"/></li>
select="id"/></li>
XSL - XHTML
<?xml version="1.0" ?>
<html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<head>
<title>Lista obecnosci</title>
</head>
<body>
<xsl:for-each select="people">
<h2>LISTA OBECNOSCI:</h2>
<xsl:for-each select="person">
<ul>
<li><xsl:value-of select="name"/></li>
<li><xsl:value-of select="email"/></li>
<li><xsl:value-of select="phone"/></li>
<li><xsl:value-of select="id"/></li>
</ul>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
Należy dodać do pliku *.xml :
<?xml-stylesheet type="text/xsl" href=„person.xsl"?>
XSL – XHTML cd.
W przeglądarce:
Bardzo duże możliwości!!!
XSL i CSS
Można łączyć CSS z XSL !!
DTD - document type definition
XML jest językiem metaznaczników, czyli
językiem opisu innych języków znacznikowych.
DTD – document type definition
DTD - pozwala definiować języki znacznikowe (zestawy
znaczników) , pozwala walidować dokumenty
DTD - Przykład
<?xml version="1.0" standalone ="yes"?>
<!DOCTYPE people[
<!ELEMENT people (person*)>
<!ELEMENT person (name, email, phone, id)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT id (#PCDATA)>
]>
<people>
<person>
<name>Jan Kowalki</name>
<email>[email protected]</email>
<phone>+48 12 617 77 77</phone>
<id>116777</id>
</person>
</people>
DTD – Po co?
Dlaczego tak:
• Może służyć jako schemat dla XML
• Ustrzega przed błędami
• Pomaga w tworzeniu/przekształcaniu
• Można ustalić standard DTD wymiany informacji
Dlaczego nie:
• Brak standardu ( łatwość zmian* )
• Brak nakładu na walidacje dokumentów
XML – Przykłady zastosowania

XMPP - Extensible Messaging and Presence Protocol (Jabber)
<message
to='[email protected]'
from='[email protected]/balcony'
type='chat' xml:lang='en'>
<body>Wherefore art thou, Romeo?</body>
</message>

SVG - Scalable Vector Graphics
<svg width="300" height="300">
<rect width="300" height="100"
style="fill:rgb(0,0,255);stroke-width:1; stroke:rgb(0,0,0)"/>
</svg>

XHTML, MathML …
DOM - Document Object Model
Document Object Model (DOM) jest interfejsem
programowania (API) dla dokumentów HTML oraz XML.
Definiuje on logiczną strukturę dokumentu oraz zestaw
metod do odwoływania się do dokumentów oraz
manipulowania nimi.
Programiści wykorzystując interfejs DOM mają możliwość
tworzenia dokumentów, nawigowania nimi, dodawania,
modyfikowania lub usuwania treści, mogą też
implementować DOM jako platformę dostępu do baz
danych lub jako interfejs zamiast standardowego API.
Strukturalny model DOM
<people>
<person>
<name>Jan Kowalki</name>
<email>[email protected]</email>
<phone>+48 12 617 77 77</phone>
</person>
</people>
Węzły
<P>To też jest paragraf</P>
<P>To też jest <B>paragraf</B></P>
node – (węzeł) jest nim każdy element, jego atrybut, czy tekst,
czymkolwiek by nie był
element - reprezentację dla każdego znacznika <TAG>
attribute - jest atrybutem znaczników
Przykład - DOM Class Hierarchy
<<interface>>
<<interface>>
<<interface>>
NodeList
Node
NamedNodeMap
<<interface>>
<<interface>>
<<interface>>
<<interface>>
Document
CharacterData
Element
Attr
<<interface>>
<<interface>>
Text
Comment
DOM – przykład
Podsumowanie:
Podsumowanie
Przyszłość
Bibliografia:

Elliotte Rusty Harold.: XML, Helion,
2000
http://www.w3.org/
http://www.wodzu.maciaszek.pl/dom/

Notepad2 -http://www.flos-freeware.ch/


...i to by było tyle
na dzisiaj!