AI 2 2 XML

background image

XML

eXtensible Markup Language

Rafał KASPRZYK

background image

Rafał KASPRZYK

Przyczyna powstania XML

- ewolucja Internetu

czas

człowiek

człowiek

człowiek

aplikacja

aplikacja

człowiek

aplikacja

aplikacja

dzisiaj

start

2

background image

Rafał KASPRZYK

3

Wymiana danych

We współczesnych systemach informatycznych dane przechowywane są

w wielu niekompatybilnych formatach.

Przy próbie integracji SI jednym z najbardziej czasochłonnych zadań do

wykonania jest opracowanie metod (procedur) wymiany danych.

Próba integracji N systemów wymaga
opracowania procedur wymiany
danych

Wykorzystanie formatu pośredniego
pozwala na ograniczenie ich liczby do
N

background image

Rafał KASPRZYK

4

Wymiana danych

Historia informatyki zna wiele formatów wymiany danych, niektóre z

nich popularne są do dnia dzisiejszego

pliki tekstowe (z wyróżnionymi separatorami pól i rekordów)

pliki baz danych w formacie dBase, Paradox

pliki MS Office (Word, Excell)

dokumenty .pdf

mechanizm ODBC

...

Wraz z rozwojem Internetu (sieci WWW) standardowym formatem

publikowania informacji stał się język HTML (HyperText Markup
Language - Język Odnośników Hipertekstowych).

Pozwolił on na konstrukcję złożonych interaktywnych witryn bogatych

zarówno w formę jak i treść.

background image

Rafał KASPRZYK

5

Czym jest HTML ?

HTML

jest językiem opisu strony służącym do konstruowania

dokumentów przeznaczonych do prezentacji w Internecie.

Dokumenty HTML są zwykłymi plikami tekstowymi (z rozszerzeniem .htm

lub .html) które mogą być redagowane w dowolnym edytorze np. Notatniku
Windows.

Zawierają one tekst (właściwą treść dokumentu) i znaczniki (zwane

również

tagami

) czyli ujęte w nawiasy kątowe litery, mające ściśle

zdefiniowany wpływ na interpretację przez przeglądarkę tekstu znajdującego
się w pliku.

Ogólna składnia znaczników wygląda następująco:

<TAG parametr="wartość"> tekst </TAG>

Przeglądarka interpretuje zawartość pliku i przekształca go na postać

graficzną.

Specyfikacja standardu języka HTML opracowywana jest przez World Wide

Web Consortium (W3C). Obecnie standardem jest zatwierdzona pod koniec
grudnia 1997 roku specyfikacja HTML 4.0

background image

Rafał KASPRZYK

6

Osnowa dokumentu HTML

<!DOCTYPE HTML PUBLIC "- //W3C//DTD HTML 4.0//EN">

<HTML>

<HEAD>

nagłówek dokumentu

</HEAD>

<BODY>

treść dokumentu

</BODY>

</HTML>

prolog - informacja o wersji HTML używanej w dokumencie

HTML - zakres dokumentu

HEAD - nagłówek dokumentu

informacje o dokumencie (strona kodowa, tytuł dokumentu...)

BODY - ciało dokumentu

publikowana treść dokumentu (formatowany tekst, obrazki,
odsyłacze itp...)

background image

Rafał KASPRZYK

7

Przykład dokumentu HTML

<!DOCTYPE HTML PUBLIC "- //W3C//DTD HTML 4.0//EN">

<html>
<head>
<title>

Bolesław Leśmian - ***

</title>

</head>
<body>
<div align="center">
<H2>Bolesław Leśmian</H2>
<font size="+1">

***

</font>

<p>

Zmienionaż po rozłące? O, nie, niezmieniona!

<br>

Lecz jakiś kwiat z twych włosów zbiegł do stóp ołtarzy,

<br>

A choć brak tego zbiega nie skalał twej twarzy,

<br>

Serce me w tajemnicy przed twym sercem kona...

</p>

<p>

Dusza twoja śmie marzyć, że w gwiezdne zamiecie

<br>

Wdumana, będzie trwała raz jeszcze i jeszcze -

<br>

Lecz ciało? Któż pomyśli o nim we wszechświecie,

<br>

Prócz mnie, co tak w nie wierzę i kocham i pieszczę?

</p>

</body>
</html>

background image

Rafał KASPRZYK

8

HTML a wymiana danych

HTML pomimo zasług w dziedzinie publikacji danych, jakie poniósł na

wczesnym etapie rozwoju WWW, posiada cechy, które uniemożliwiają
zastosowanie go jako formatu wymiany danych.

HTML został zaprojektowany do prezentacji danych.

HTML posiada własności pozwalające stworzyć strony bogate zarówno

w treść jak i atrakcyjne w formie, ale chociaż wykonane przy jego pomocy
dokumenty prezentują się atrakcyjnie dla człowieka, to nie nadają się do
automatycznego (zalgorytmizowanego) przetwarzania.

Na przykład odczytanie informacji o kursie poszczególnych walut

zamieszczone na witrynie banku centralnego jest dla człowieka
stosunkowo łatwe. Napisanie aplikacji, która wykonywałaby to samo
działanie jest już złożonym problemem.

background image

Rafał KASPRZYK

9

SGML

W 1969 roku w ośrodku badawczym IBM Almaden panowie Goldfarb,

Mosher i Lorie opracowali język pozwalający na edycję, formatowanie i
wyszukiwanie informacji w dużych zbiorach tekstowych w oparciu o formalną
definicję typu dokumentu.

Oparty na ich rozwiązaniu SGML (Standard Generalized Markup Language)

jest od 1986 opracowaną normą ISO 8879:1986. SGML jest metajęzykiem.

Mimo wielu zastosowań SGML nadal nie jest technologią popularną. Barierę

stanowią tu duży stopień komplikacji i wysokie koszty wdrażania. Z tych
samych przyczyn nie został bezpośrednio wykorzystany w Internecie (chociaż
HTML jest przecież językiem SGML-owym).

Idea SGML:

-

Stworzenie najodpowiedniejszego modelu dla indywidualnych potrzeb

-

Oddzielenie znaczenia tekstu od sposobu prezentacji

background image

Rafał KASPRZYK

10

Czym jest XML ?

Wychodząc naprzeciw rosnącemu zapotrzebowaniu na standard

formatu wymiany danych konsorcjum W3C opracowało (meta)język XML
(eXtensible Markup Language - Rozszerzalny Język Znaczników).

XML jest uproszczoną wersją SGML. Wg. twórców XML zachował on

90% możliwości i 10% skomplikowania swojego protoplasty.

XML został zaprojektowany do opisu danych

Pierwszą wersję XML zaprezentowano w grudniu 1996 roku. Obecnie

obowiązuje rekomendacja opublikowana przez konsorcjum W3C 6
października 2000 roku (XML 1.0 Second Edition).

Poza tym na stronach W3C można znaleźć rekomendacje standardów

związanych z XML (jak XSL, XSLT, XML Schema, XPath, MathML, XHTML
…)

background image

Rafał KASPRZYK

11

Przykład dokumentu XML *

<?xml version="1.0" encoding="ISO-8859-2"?>
<?xml-stylesheet type="text/xsl" href="utwor.xsl"?>
<utwor typ="wiersz">
<autor>

Bolesław Leśmian

</autor>

<tytul>

***

</tytul>

<zwrotka><wers>

Zmienionaż po rozłące? O, nie, niezmieniona!

</wers>

<wers>

Lecz jakiś kwiat z twych włosów zbiegł do stóp ołtarzy,

</wers>

<wers>

A choć brak tego zbiega nie skalał twej twarzy,

</wers>

<wers>

Serce me w tajemnicy przed twym sercem kona...

</wers>

</zwrotka>

<zwrotka><wers>

Dusza twoja śmie marzyć, że w gwiezdne zamiecie

</wers>

<wers>

Wdumana, będzie trwała raz jeszcze i jeszcze -

</wers>

<wers>

Lecz ciało? Któż pomyśli o nim we wszechświecie,

</wers>

<wers>

Prócz mnie, co tak w nie wierzę i kocham i pieszczę?

</wers>

</zwrotka>
</utwor>

* Przykład zaczerpnięty z artykułu Andrzeja Dmocha „XML i XSL czyli treść i forma” - Webmaster 12/99

background image

Rafał KASPRZYK

12

Cechy XML

jest językiem znaczników tak jak i HTML i tak samo nie został

zaprojektowany do wykonywania czegokolwiek, jest językiem opisu strony
(nie jest językiem algorytmicznym)

jest między-platformowym niezależnym od oprogramowania i sprzętu

narzędziem do wymiany informacji

jest metajęzykiem - nie zawiera predefiniowanych znaczników, pozwala

na ich samodzielne zdefiniowanie. Języki zbudowane na podstawie XML to
tzw. aplikacje XML.

XML używa DTD (Document Type Definition) do opisu struktury danych

(składni języka), wraz z nim jest samo opisujący się (ang. self-decriptive)

XML został zaprojektowany do przechowywania, przenoszenia i wymiany

danych. Nie został zaprojektowany do wyświetlania danych.

Pozwala skonstruować programy wymieniające się danymi (edytory

tekstu, arkusze kalkulacyjne) bez konieczności konstruowania narzędzi
konwertujących.

background image

Rafał KASPRZYK

13

Zalety XML

Konwersja danych do XML pozwala zredukować koszt i złożoność tych

operacji wymiany danych oraz umożliwić korzystanie z danych przez
wiele różnych aplikacji

XML może być również użyty do składowania (przechowywania)

danych, dzięki czemu mogą one być przetwarzane przez ogólne (nie
specjalizowane) aplikacje.

Ponieważ XML jest niezależny od platformy (sprzętowej, systemowej)

można mieć do niego dostęp poprzez przeglądarkę internetową.
Oprogramowanie klienckie może korzystać z XML jak z źródeł danych, tak
jak to jest w przypadku baz danych.

background image

Rafał KASPRZYK

14

Rodzina XML

W celu wyświetlenia (przetworzenia) dokumentu XML zazwyczaj

wymagane jest analiza 3 typów dokumentów.

właściwy dokument XML zawierający dane

dokument określający strukturę aplikacji XML (gramatykę języka) -

najczęściej korzystający z DTD (Document Type Definition) lub
XMLSchema

arkusz stylów - opisujący reguły formatowania (sposobu wyświetlania)

elementów podczas prezentacji w przeglądarce (dzięki niemu możliwa
jest zmiana wyglądu dokumentu bez zmiany jego treści) - najczęściej jest
to dokument XSL (eXTensible Stylesheets Language) lub CSS (Cascading
StyleSheets)

background image

Rafał KASPRZYK

15

Składnia XML

Reguły składniowe XML są proste do nauczenia i użycia. W

przeciwieństwie do HTML składnia XML jest bardzo restrykcyjna.

pierwsza (obowiązkowa) linia dokumentu określa wersję xml oraz

stronę kodową

<?xml version="1.0" encoding="ISO-8859-2"?>

komentarze powinny znajdować się pomiędzy znacznikami <!-- i -->

<!-- To jest komentarz -->

w XML wszystkie znaczniki muszą być zamknięte

możliwe jest definiowanie elementów pustych

<el-pusty> </el-pusty>

jest równoznaczne z

<el-pusty/>

background image

Rafał KASPRZYK

16

Składnia XML

w przeciwieństwie do HTML spacje nie są ignorowane

HTML

<tag> Rafał Kasprzyk </tag>

traktowane jest jako Rafał Kasprzyk

XML

<tag> Rafał Kasprzyk </tag>

traktowane jest jako Rafał Kasprzyk

znakiem końca wiersza (nowej linii) jest LF (a nie Windows'owe CR/LF)

znaczniki mogą posiadać atrybuty, składające się z nazwy atrybutu i

jego wartości ujętej w cudzysłowy lub apostrofy

nieprawidłowo

<utwor typ=wiersz>

prawidłowo

<utwor typ="wiersz">

background image

Rafał KASPRZYK

17

Składnia XML

w dokumentach XML rozróżnialna jest wielkość liter:

znaczniki

<Name>

i

<NAME>

są rozpoznawane jako różne

nazwy znaczników:

mogą zawierać litery, cyfry i inne znaki

nie mogą zaczynać się cyfrą lub kropką

nie mogą zaczynać się ciągiem znaków "xml"

nie mogą zawierać spacji

zaleca się unikanie znaków - . , :

znaczniki powinny być prawidłowo zagnieżdżone (nie może dojść do

"przeplotu" znaczników)

nieprawidłowe zagnieżdżenie

<B><I>

Formatowany tekst

</B></I>

prawidłowe zagnieżdżenie

<B><I>

Formatowany tekst

</I></B>

background image

Rafał KASPRZYK

18

Składnia XML

dokument XML powinien posiadać element będący korzeniem, pozostałe

elementy powinnny być wzajemnie zagnieżdżone (dokument XML posiada
strukturę drzewiastą)

<root>

<element>

<podelement>......</podelement>

</element>

</root>

XML wspiera standard kodowania znaków narodowych Unicode (możliwy

zapis pojedynczego znaku przy pomocy dwóch bajtów danych)

Dokument spełniający powyższe reguły składniowe określany jest jako

dobrze sformułowany (ang. well-formed)

background image

Rafał KASPRZYK

CDATA i instrukcje przetwarzania

Pozwalają włączyć do dokumentu tekst, który ma być

zignorowany podczas automatycznej analizy. Jedyne, co można z
tą sekcją zrobić to przekazać jej zawartość (wyświetlić).

<![CDATA[Hej! to & jest <właśnie> sekcja cdata.]]>

Instrukcje przetwarzania są pokrewne sekcjom CDATA, ale lepiej

nadają się do „przemycania” w dokumentach XML np. skryptów.

<?javascript alert("To jest <tylko> przykład."); ?>
<?php function printsum($a, $b) {

echo $a + $b;
}

?>

<?xml-stylesheet type="text/xml" href="default.xsl"?>
<?xml-stylesheet type="text/css" href="arkusz.css"?>

19

background image

Rafał KASPRZYK

Encje tekstowe

Encje te są czymś w rodzaju szablonów tekstu. To również

sposób na umieszczaniu w tekście niedozwolonych znaków

<tag> &lt; zostanie zastąpione lewym nawiasem kątowym
</tag>

Pięć encji predefiniowanych:

&lt;

,

&gt;

,

&apos;

,

&quot;

,

&amp;

Inne znaki można cytować podając ich numer np. &#80;

Encje mogą być wykorzystane do cytowania fragmentu tekstu

<!ENTITY adres „rkasprzyk@wat.edu.pl">

20

background image

Rafał KASPRZYK

21

Element XML

Elementem XML jest wszystko co znajduje się pomiędzy znacznikiem

początkowym i końcowym.

Elementy ze względu na przechowywaną zawartość dzielimy na:

elementy puste

<utwor typ="wiersz"> </utwor>

elementy proste

<nazwisko>

Kowalski

</nazwisko>

elementy złożone - zawierające inne elementy

<osoba>

<imie>

Jan

</imie>

<nazwisko>

Kowalski

</nazwisko>

</osoba>

elementy mieszane - element złożony zawiarający dodatowo treść

<osoba>

<imie>

Jan

</imie>

<nazwisko>

Kowalski

</nazwisko>

VIP

</osoba>

background image

Rafał KASPRZYK

Poprawność dokumentów

Dokument XML poprawny składniowo (ang. well-

formed):

każdy element musi być zamknięty,

nie ma nakładających się elementów,

wartości atrybutów w apostrofach lub cudzysłowach,

...

Dokument XML poprawny strukturalnie (ang. valid):

struktura dokumentu zgodna ze strukturą zdefiniowaną w definicji typu

dokumentu,

obecne wszystkie wymagane atrybuty.

22

background image

Rafał KASPRZYK

Projektowanie struktury dokumentów

wiersz

autor

tytul

zwrotka

*

wers

*

23

background image

Rafał KASPRZYK

24

DTD

DTD (Document Type Definition) - opisuje gramatykę dokumentu XML

(zasady zagnieżdżania elementów)

DTD może być zawarte bezpośrednio w w dokumencie XML lub w

osobnym pliku

<

!DOCTYPE

utwor [

<

!ELEMENT

utwor (autor, tytul, zwrotka+)>

<

!ATTLIST

utwor typ CDATA #REQUIRED>

<

!ELEMENT

autor (#PCDATA)>

<

!ELEMENT

tytul (#PCDATA)>

<

!ELEMENT

zwrotka (wers+)>

<

!ELEMENT

wers (#PCDATA)>

]>

Dzięki DTD możliwa jest kontrola poprawności (walidacja) dokumentu.

background image

Rafał KASPRZYK

25

Zasady konstrukcji DTD

Zawartość elementu opisywana jest poprzez znacznik:

<

!ELEMENT

nazwa_elementu definicja_typu>

Definiując typ elementu możemy użyć wyrażeń:

ANY

- dowolana zawartość

EMPTY

- element pusty

#PCDATA

- ciąg tekstowy

ujęta w nawiasy

()

sekwencja oddzielonych przecinkiem nazw elementów

|

- alternatywa (lub) wystąpienia elementów

Typy elementów mogą być uzupełnione o specjalne znaki

brak znaku

- podelement musi wystąpić dokładnie jeden raz

+

- podelement musi wystąpić co najmniej raz (1,N)

?

- podelement może wystąpić raz lub wcale (0,1)

*

- dowolna liczba wystąpień, również brak (0,N)

Przykład:

<!ELEMENT

osoba ( imie, nazwisko, ( pesel | nip )? , data_ur?, dziecko* ) >

background image

Rafał KASPRZYK

26

Zasady konstrukcji DTD

Możliwość wystąpienia atrybutów elementu deklaruje się poprzez znacznik:

<

!ATTLIST

nazwa_elementu nazwa_atrybutu typ_lub_lista_możliwych_wartości)

modyfikator 'wartosc_domyslna' >

dostępne predefinowane typy danych to

CDATA

- dane tekstowe

ID

- unikalny identyfikator

IDREF, IDREFS

- wskazanie na unikalny identyfikator, lista wskazań

ENTITY, ENTITIES

- wskaźnik encji zewnętrznej, lista wskazań

modyfikator

#REQUIRED

- atrybut musi wystąpić i mieć nadana wartość

#IMPLIED

- procesor XML musi poinformować o braku atrybutu

#FIXED

- wartość atrybutu musi pokrywać się z wartościa domyślną

Przykład:

<

!ATTLIST

osoba plec (mezczyzna | kobieta) 'mezczyzna'

#REQUIRED

>

background image

Rafał KASPRZYK

27

DTD - przykład

<

!ELEMENT

faktury (faktura+)>

<

!ELEMENT

faktura (klient, data,wiersz+)>

<

!ELEMENT

klient (k_nazwa, miasto, logo) >

<

!ELEMENT

k_nazwa (#PCDATA)>

<

!ELEMENT

miasto (#PCDATA)>

<

!ELEMENT

logo EMPTY>

<

!ATTLIST

logo src>

<

!ELEMENT

data (#PCDATA)>

<

!ELEMENT

wiersz (towar, ilosc)>

<

!ELEMENT

towar (t_nazwa, jm, vat)>

<

!ELEMENT

t_nazwa (#PCDATA)>

<

!ELEMENT

cena (#PCDATA)>

<

!ELEMENT

jm (#PCDATA)>

<

!ELEMENT

vat (#PCDATA)>

<

!ELEMENT

ilosc (#PCDATA)>

background image

Rafał KASPRZYK

28

Konflikty nazw

Ponieważ XML projektowany był z myślą o zastosowaniach internetowych

pozwala na łączenie danych poprzez umieszczanie w treści dokumentu zamiast
danych - jedynie odnośników (adresów) do dokumentów zawierających dane.
Sposób użycia odnośników wewnątrz kodu opisują dwa języki zaliczane w skład
XML:

XLink

i

XPointer

.

Może się jednak zdarzyć, że łączone w ten sposób dokumenty budowane

były w oparciu o różne DTD. Komplikacje zaczynają się gdy owe DTD zawierają
definicje elemetów o tych samych nazwach.

Przykład:

Bardzo prawdopodobne jest zdefiniowanie przez 2 różnych projektantów elementu o

nazwie <cena> przy czym każdy może posiadać inną definicję:

<!ELEMENT cena (#PCDATA)>

lub

<!ELEMENT cena (kwota, waluta)>

<!ELEMENT kwota (#PCDATA)>
<!ELEMENT waluta (#PCDATA)>

background image

Rafał KASPRZYK

29

Przestrzenie nazw

Przestrzenie nazw

(ang. namespaces) są specjalnym mechanizmem

pozwalającym na unikanie problemów wynikających z możliwości
ewentualanych konfliktów nazw elementów.

Rozwiązaniem jest dodanie kodu definiującego przestrzeń nazw, który

wg. zaleceń W3C jest po prostu URL twórcy gramatyki.

<ceny

xmlnm:fk=

"http://www.firma-krzak.com.pl" >

Dzięki tej definicji w treści dokumentów możemy posługiwać się przed nazwą

elementu prefiksem określającym przestrzeń nazw do której on przynależy

<fk:cena>

<fk:kwota>13.10</fk:kwota>
<fk:waluta>PLN</fk:waluta>

</fk:cena>

background image

Rafał KASPRZYK

30

XML Schema

DTD pozwala zdefiniować gramatykę dokumentu XML, ale zawiera

liczne ograniczenia. Między innymi nie pozwala na dokładną kontrolę
typów elementów, liczności występowania elementów itd.

Dodatkowo dokument DTD nie jest dokumentem XML więc kontrola

jego poprawności wymaga dodatkowego parsera.

Niewystarczające możliwości DTD spowodowały powstanie standardu

tzw. schematów które pozwalają dokładniej kontrolować strukturę
dokumentu XML. Niestety istnieje wiele niezgodnych wersji schematów.
Najpopularniejsze to:

XML-Data

- firmy Microsoft

XMLSchema (XSD)

- konsorcjum W3C

Biz Talk Schema

background image

Rafał KASPRZYK

31

XML Schema

XMLSchema jest aplikacją XML tzn. że

jego gramatyka została zdefiniowana w
DTD

inne aplikacje XML mogą z kolei przy

definiowaniu własnej gramatyki korzystać z
XML Schema

aplikacja XML

XML Schema

DTD

background image

Rafał KASPRZYK

32

Przykład XML Schema

<?xml version="1.0" encoding="UTF-8"?>

<

xs:schema

xmlns:xs

="

http://www.w3.org/2001/XMLSchema

"

elementFormDefault

="

qualified

">

<

xs:element

name

="

autor

"

type

="

xs:string

"/>

<

xs:element

name

="

tytul

"

type

="

xs:string

"/>

<

xs:element

name

="

utwor

">

<

xs:complexType

>

<

xs:sequence

>

<

xs:element

ref

="

autor

"/>

<

xs:element

ref

="

tytul

"/>

<

xs:element

name

="

zwrotka

"

type

="

zwrotkaType

"

maxOccurs

="

unbounded

"/>

</

xs:sequence

>

<

xs:attribute

name

="

typ

"

type

="

xs:string

"

use

="

required

"/>

</

xs:complexType

>

</

xs:element

>

<

xs:element

name

="

wers

"

type

="

xs:string

"/>

<

xs:complexType

name

="

zwrotkaType

">

<

xs:sequence

>

<

xs:element

ref

="

wers

"

maxOccurs

="

unbounded

"/>

</

xs:sequence

>

</

xs:complexType

>

</

xs:schema

>

background image

Rafał KASPRZYK

Definiowanie elementów i atrybutów

<

xsd:element

name="osoba">

<xsd:complexType>
<xsd:sequence>
<xsd:element name="imie" type="xsd:string"/>
<xsd:element name="nazwisko"
type="xsd:string"/>
<xsd:element name="plec" type="xsd:string"/>
<xsd:element name="wiek" type="xsd:string"/>
</xsd:sequence>
<

xsd:attribute

name="id" type="xsd:ID"/>

<xsd:attribute name="NIP" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

33

background image

Rafał KASPRZYK

Typy proste

Wbudowane typy proste:

string,

boolean,

integer,

float,

dateTime,

ID, IDREF, CDATA,

...

34

background image

Rafał KASPRZYK

35

Typy proste

Tworzenie własnych typów prostych przy

pomocy aspektów/stron (facets):

minInclusive, maxInclusive, minExclusive, maxExclusive,

pattern,

enumeration,

list,

union,

length, minLength, maxLength.

background image

Rafał KASPRZYK

Przykłady

<xsd:element name="wiek">
<xsd:simpleType>
<xsd:restriction base="xsd:integer">
<

xsd:minInclusive

value="0"/>

<

xsd:maxInclusive

value="120"/>

</xsd:restriction>
</xsd:simpleType>
</xsd:element>

<xsd:attribute name="NIP">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<

xsd:pattern

value="\d{3}-\d{3}-\d{2}-\d{2}"/>

</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>

36

background image

Rafał KASPRZYK

Typy złożone

Możliwość definiowania typów

złożonych:

sequence,

choice,

group,

all.

Kontrola użycia podelementów:

minOccurs,

maxOccurs.

Kontrola użycia atrybutów:

atrybut use o dopuszczalnych wartościach: required, optional lub

prohibited.

37

background image

Rafał KASPRZYK

Kontrola użycia elementów i

atrybutów

<xsd:element name="osoba">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="imie" type="xsd:string"

minOccurs="1" maxOccurs="2"

/>

<xsd:element name="nazwisko"
type="xsd:string"/>
<xsd:element name="plec" type="xsd:string"/>
<xsd:element name="wiek" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:ID"

use="required"

/>

<xsd:attribute name="NIP" type="xsd:string"/>
</xsd:complexType>
</xsd:element>

38

background image

Rafał KASPRZYK

39

XSL - wyświetlanie XML

XSL - eXtensible Stylesheet Language - jest aplikacją XML definiującą

sposób wyświetlania znaczników XML.

XSL składa się z trzech podjęzyków:

XSLT (XSL - Transformations)

- język przekształceń znaczników XML

XPath

- język wzorców (ścieżek dostępu do elementów)

XML Formatting Objects

- definiowanie wyglądu znaczników XML

background image

Rafał KASPRZYK

40

XSLT

definiowanie wzrców

<

xsl:template

match

="

/

">

- definicja wzorca dla "korzenia" dokumentu

<

xsl:template

match

="

SONG

">

- definicja wzorca dla elementu "SONG"

przekształcanie treści znacznika w pętli

<

xsl:for-each

select

="

CD

">

- dla każdego elementu "CD"

<

xsl:for-each

select

="

SONG/SONG_TITLE

">

- dla każdego tytułu

wstawianie wartości znacznika

<

xsl:value-of

select

="

TITLE

"/>

- znacznik wstawiający wartość znacznika TITLE

sortowanie zawartości

<

xsl:sort

select

="

ARTIST

"/> -

znacznik sortujący bieżąca treść wg. znacznika

ARTIST

<

xsl:sort

select

="

PRICE

"

order

="

descending

"/>

- sortowanie malejące wg ceny

background image

Rafał KASPRZYK

41

XSLT

wstawianie znaczników i ich atrybutów

<

xsl:element

name

="

a

">

<

xsl:attribute

name

="

href

">

http:\\www.sklep.pl

</

xsl:attribute

>

Odwiedź

nas

</

xsl:element

>

deklarowanie i użycie zmiennych

<

xsl:variable

name

="

adres

">

<

xsl:value-of

select

="

adres

"/>

</

xsl:variable

>

<

td

><

a

href

="

{$adres}

"><

xsl:value-of

select

="

$adres

"/></

a

></

td

>

background image

Rafał KASPRZYK

42

XSLT

instrukcje warunkowe

<

xsl:if

test

="

@available='no'

">

<

b

>

brak

</

b

>

</

xsl:if

>

<

xsl:choose

>

<

xsl:when

test

="

@available='no'

">

<

font

color

="

green

"

size

="

4

">

brak !!!

</

font

>

</

xsl:when

>

<

xsl:otherwise

>

<

font

color

="

red

"

size

="

4

">

<

xsl:value-of

select

="

PRICE

"/>

</

font

>

</

xsl:otherwise

>

</

xsl:choose

>

background image

Rafał KASPRZYK

43

XPath

XPath

definiuje składnię "zapytań" filtrujących dane w dokumencie XML.

Wykorzystać go można zarówno w dokumentach XSL (atrybut

select

występujący w wielu znacznikach) jak i przy przetwarzaniu dokumentów XML
przy pomocy parserów.

Zapytanie XPath określa ścieżkę dostępu do danego elementu - jego

wzorzec

CATALOG

- identyfikuje element katalog

CATALOG/CD

- identyfikuje wszystkie elementy CD w dokumencie

CATALOG/CD[@available="yes"]

- identyfikuje wszystkie elementy CD w dokumencie

których atrybut @available ma wartośc "yes"

CATALOG/CD[@available="yes"]/SONG/SONG_TITLE

- identyfikuje tytuły wszystkich

utworów elementów CD których atrybut @available ma wartośc "yes"

CATALOG/CD[@available="yes"][2]/SONG[2]/SONG_TITLE

- tytuł drugiego utworu na

drugiej dostępnej płycie

Następcą XPath jest język

XQuery

który pozwala na zadawanie zapytań o bardziej

zaawansowanej składni.

background image

Rafał KASPRZYK

44

Przetwarzanie XML

XML nie został zaprojektowany z myślą o przetwarzaniu dokumentów przez

człowieka. Twórcy zakładali, że sprawdzenie poprawności dokumentów oraz
przetwarzanie będą wykonywane automatycznie.

Użytkownicy (programiści) nie są zmuszeni do samodzielnej implementacji

procedur odczytywania i analizy XML. Mogą posłużyć się jednym z istniejących
darmowych parserów XML (np. MSXML dostarczany wraz z MSIE).

Parser oferuje kompletne API do manipulacji (wstawianie, usuwanie,

modyfikacja, przetwarzanie) zawartością dokumentu.

Parsery XML w zależności od udostępnianego API można podzielić na dwie

grupy

parsery DOM

- bazujące na specyfikacji Document Object Model. Oferują

wygodniejszy dla programisty interfejs, gdyż budują w pamięci drzewo obiektów.
Pochłaniają jednak więcej zasobów.

parsery SAX

- bazujące na specyfikacji Simple Api for XML. Trudniejsze do

oprogramowania, mają jednak mniejsze wymagania odnośnie zasobów. Pozwalają
dopisać procedury obsługi zdarzeń wynikających z przetwarzania dokumentu
(napotkano początek znacznika, koniec znacznika, zawartość znacznika, ...).

background image

Rafał KASPRZYK

45

Bazy danych XML

Obecnie na rynku dostępne są następujące rozwiązania:

pure relational

- struktura dokumentu XML jest sprowadzana do struktury

relacyjnej (schematu tabel), dane są defragmentowane przy zapisie i scalane przy
odczycie

post relational

- istnieje możliwość definiowania typu kolumn jako dokument XML

(dokumenty przechowywane w całości jako BLOB) (np. Oracle, MS SQL Server)

native XML

- dane przechowywane są w postaci dokumentów XML (np. Tamino)

Dwa pierwsze rozwiązania wymagają istnienia dodatkowej warstwy oprogramowania

konwertującej (tłumaczącej) dane przy odczycie/zapisie, co oczywiście spowalnia
przetwarzanie.

Rozwiązanie trzecie - "czysta" baza XML-owa niesie ze sobą ograniczenia związane z

analizą danych rozproszonych pomiędzy wiele dokumentów.

Wybór typu bazy danych zależy od sposobu w jaki chcemy te dane

przetwarzać:

podejście

data-centric

podejście

document-centric

background image

Rafał KASPRZYK

46

Aplikacje XML

Specjalizowane dialekty XML to m.in.:

MathML (Mathematical Markup Language) – przeznaczony do

prezentowania wzorów matematycznych

XHTML – język HTML 4.0 uzupełniony o dodatkowe ograniczenia

wynikające z wymagań specyfikacji XML

SMIL (Standarized Multimedia Integration Language) – język

pozwalający w nowy sposób umieszczać na stronach WWW elementy
multimedialne

CML (Chemical Markup Language) – umożliwia graficzne

przedstawianie związków chemicznych

AML (Astronomy Markup Language) – język przeznaczony dla

zastosowań w astronomii

BSML (Biosequence ML) – język opracowany na potrzeby genetyków

XBRL (Extensible Business Reporting Language)– promowany przez

największe instytucje i firmy nowy standard wymiany danych finansowych w
Internecie

background image

Rafał KASPRZYK

47

...i to by było na tyle


Document Outline


Wyszukiwarka

Podobne podstrony:
XML zadania AI
05 xml domid 5979 ppt
10 XML appsid 11206 ppt
język XML, Pomoce naukowe, studia, informatyka
Wprowadzenie do języka XML
Model ai ansoffa
02 xml dokumenty
AI test1, Studia, ZiIP, SEMESTR IV, semestr IV zaoczny, Metody szt. int
kurswww 03b xml tu7hscifcfug23lqppd5qfiqjrigxla2gdgwgdq TU7HSCIFCFUG23LQPPD5QFIQJRIGXLA2GDGWGDQ
Ściąga ze sztucznej inteligencji(1), uczenie maszynowe, AI
Ai no Senshi, teksty piosenek z tłumaczeniem na polski, Sailor Moon
XML Schema Primer
ANSYS AI Nastran v1 0 id 65570 Nieznany (2)
xml SPXGTMAFU4KDOU3GONPD3WTRSC4HFBIDR5DJORA
02 3b Kasety sterownicze XAC Ai Nieznany (2)
help i workshop do AI, dziennikarstwo i komunikacja społeczna, technologie informacyjne
pai 06 XML
AI Wyklad 2 id 53261 Nieznany (2)

więcej podobnych podstron