XML
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

XML – e X tensible M arkup L anguage 2 PowerPoint PPT Presentation


  • 69 Views
  • Uploaded on
  • Presentation posted in: General

XML – e X tensible M arkup L anguage 2. Nazwy XML. Nazwy atrybutów i elementów w języku XML muszą spełniać te same reguły (te same reguły musza spełniać też inne, rzadziej stosowane konstrukcje). W ogólności będziemy mówić o nazwach XML. Nazwa XML może zawierać :.

Download Presentation

XML – e X tensible M arkup L anguage 2

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Xml e x tensible m arkup l anguage 2

XML – eXtensible Markup Language 2


Xml e x tensible m arkup l anguage 2

Nazwy XML

Nazwy atrybutów i elementów w języku XML muszą spełniać te same reguły (te same reguły musza spełniać też inne, rzadziej stosowane konstrukcje). W ogólności będziemy mówić o nazwach XML.

Nazwa XMLmoże zawierać:

1) Standardowe litery (duże i małe) i cyfry np. A, b, 6

2) litery nieangielskie i ideogramy np. õ, Ж, IV

3) symbole: _ (podkreślnik), - (myślnik), . (kropka)

Nazwa XMLnie może zawierać:

``(cudzysłów), ‘ (apostrof), $, %, ; (średnik)

Symbol : (dwukropek) jest zarezerwowany dla tzw. przestrzeni nazw.


Xml e x tensible m arkup l anguage 2

Nazwy XML

Nazwa XMLnie może zawierać „pustych znaków”.

Nazwa XMLnie może zaczynać się od ciągu znaków XML (zarezerwowane dla specyfikacji XML).

Nazwa XMLmoże zaczynać się od:

1) litery

2) ideogramu

3) podkreślnika

Nazwa XMLniemoże zaczynać się od:

1) liczby

2) myślnika

3) kropki


Xml e x tensible m arkup l anguage 2

Nazwy XML

Przykład 1

Poniższe elementy są prawidłowo sformatowane (well formed) czyli zgodne zregułami tworzenia dokumentów XML.

1) <Drivers_LicenseNumber>98 NY 32</Drivers_License_Nmber>

2) <month-day-year>7/23/2001</month-day-year>

3) <first_name>Alan</first_name>

4) <_4-lane>I-610</_4-lane>

5) <téléphone>011 33 91 55 27 55 27</téléphone>


Xml e x tensible m arkup l anguage 2

Nazwy XML

Przykład 2

Poniższe elementy nie są prawidłowo sformatowane (well formed) czyli nie są zgodne zregułami tworzenia dokumentów XML.

1) <month/day/year>7/23/2001</month/day/year>

2) <first name>Alan</first name>

3) <Driver's_License_Number>98 NY 32</Driver's_License_Number>

4) <4-lane>I-610</4-lane>


Xml e x tensible m arkup l anguage 2

Encje

Może się zdarzyć, że w dokumencie XML będzie będziemy chcieli użyć np. <.

Bezpośrednie użycie < spowoduje, że znak ten będzie interpretowany jako początek znacznika.

Jeżeli chcemu użyć znaku < w innym znaczeniu używamy encji &lt;.

Przykład 3

<SCRIPT LANGUAGE="JavaScript">

if (location.host.toLowerCase().indexOf("cafeconleche")&lt;0)

{

location.href="http://www.cafeconleche.org/";

}

</SCRIPT>


Xml e x tensible m arkup l anguage 2

Encje

Znak & jest zawsze rozpoznawany jako początek encji.

Jeżeli chcemy wstawić w dokumencie ten znak to możemy użyć encji &amp;

Przykład 4

<publisher>A &amp; B</publisher>

W języku XML zdefiniowane są następujące encje:

1) &lt; znak <

2) &amp; znak &

3) &gt; znak >

4) &quot; znak ``

5) &apos; znak `


Xml e x tensible m arkup l anguage 2

Encje

Aplikacja parsująca dokument XML w przypadku napotkania encji automatycznie wstawia w to miejsce odpowiedni symbol do którego odnosi się dana encja.

Oprócz powyższych 5 encji zdefiniowanych w specyfikacji XML istnieją encje które możemy sami definiować. Zajmiemy się nimi po omówieniu Definicji Typu Dokumentu (DTD).


Xml e x tensible m arkup l anguage 2

<![CDATA[

i

]]>

Sekcje CDATA

Jeżeli chcemy umieścić w dokumencie XML tekst, który nie będzie parowany (np. komentarz) możemy to uczynić wykorzystując sekcje CDATA.

Tekst taki umieszczamy między znacznikami:

Przykład 5

<p>You can use a default <code>xmlns</code> attribute to avoid having to add the svg prefix to all your elements:</p>

<![CDATA[

<svg xmlns=http://www.w3.org/2000/svg width="12cm

height="10cm">

<ellipse rx="110" ry="130" />

<rect x="4cm" y="1cm" width="3cm" height="6cm" />

</svg> ]]>


Xml e x tensible m arkup l anguage 2

Sekcje CDATA

W sekcji CDATA nie może pojawić się symbol ]]>.

Sekcje CDATA są przeznaczone dla ludzi, a nie maszyn.

Komentarze

W dokumencie XML komentarze wstawiamy podobnie jak w dokumentach HTML.

<!–- komentarz -->

W treści komentarza nie może pojawić się ciąg znaków --> ponieważ będzie on traktowany jako zakończenie komentarza.

Komentarz może pojawić się praktycznie w dowolnym miejscu w dokumencie XML.


Xml e x tensible m arkup l anguage 2

Komentarze

Komentarz może się pojawić m.in. przed lub za elementem będącym korzeniem.

Komentarz nie może się pojawić wewnątrz znacznika i wewnątrz innego komentarza.

Przykład 6

<person>

<!-- Alan Turing -->

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession<!—prof2-->>mathematician</profession>

<profession>cryptographer</profession>

</person>


Xml e x tensible m arkup l anguage 2

Komentarze

Komentarze są przeznaczone dla ludzi i nie należy umieszczać w nich żadnych instrukcji przeznaczonych dla aplikacji.

Instrukcje przetwarzania (Processing Instructions)

Instrukcje przetwarzania są przeznaczone dla aplikacji, które mogą „czytać” dokument XML.

<?cel instrukcja przetwarzania ?>

Bezpośrednio po znaczniku <? występuje tzw. cel (target).

Cel identyfikuje aplikację mającą dokonać przetwarzania.

Przykład 7

<?php

mysql_connect("database.unc.edu", "clerk", "password");

?>


Xml e x tensible m arkup l anguage 2

Instrukcje przetwarzania (Processing Instructions)

Przykład 8

HTML

<meta name="robots" content="noindex,nofollow">

XML

<?robots index="yes" follow="no"?>

Przykład 9

<?xml-stylesheet type="application/xml" href="people.xsl"?>

Podobnie jak komentarze instrukcje przetwarzania mogą pojawić się przed lub za elementem będącym korzeniem.

Instrukcje przetwarzania nie mogą pojawić się wewnątrz znacznika.


Xml e x tensible m arkup l anguage 2

Deklaracja dokumentu XML

Dokument XML powinien (ale nie musi) zaczynać się od deklaracji XML.

Deklaracja XML jest instrukcją przetwarzania (gdzie cel=XML) posiadającą następujące atrybuty:

  • version– standardowo ma wartość "1.0"

Atrybut ten jest obowiązkowym elementem deklaracji.

  • encoding– określa sposób kodowania tekstu w dokumencie XML.

Standardowo dokumenty XML używają kodowania UTF-8.

Atrybut ten nie jest obowiązkowy. Jeżeli jest pominięty przyjmowane jest domyślnie kodowanie UTF-8.


Xml e x tensible m arkup l anguage 2

Deklaracja dokumentu XML

  • standalone – atrybut określa czy dla dokumentu XML określona jest Definicja Typu Dokumentu (DTD).

Atrybut ten nie jest obowiązkowym elementem deklaracji. Jeżeli jest pominięty przyjmowana jest domyślnie wartość no.

Przykład 10

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

<person>

Erwin Schrödinger

</person>

UWAGA: Deklaracja XML nie jest obowiązkowa w dokumencie XML, ale jeżeli jest musi być pierwszym elementem dokumentu.


Xml e x tensible m arkup l anguage 2

Dokument prawidłowo sformatowany (well formed)

Każdy dokument XML musi być prawidłowo sformatowany tzn. musi spełniać pewne warunki.

Najważniejsze z nich to:

1) Każdy znacznik początkowy musi posiadać znacznik końcowy.

2) Elementy mogą być zagnieżdżone, ale nie mogą „nachodzić na siebie”.

Przykład 10

<person>

<name>

<first_name>Alan<last_name>

Turing</first_name></last_name>

</name>

</person>


Xml e x tensible m arkup l anguage 2

Dokument prawidłowo sformatowany (well formed)

3) Dokument musi posiadać dokładnie jeden korzeń.

Przykład 11

<person>

<name>

<first_name>Alan<first_name>

<last_name>Turing</last_name>

</name>

</person>

<profession>computer scientist</profession>

Brak korzenia!!!

4) Wartości atrybutów muszą znajdować się między symbolami " .

Przykład 12

<person born="1912-06-23" died="1954-06-07"/>


Xml e x tensible m arkup l anguage 2

Dokument prawidłowo sformatowany (well formed)

5) Element nie może posiadać dwóch atrybutów o tej samej nazwie.

6) Komentarze i instrukcje przetwarzania nie mogą znajdować się wewnątrz znaczników.

Przykład 13

<person<?php … ?>>Tom</person>

7) Znaki < i & nie mogą pojawić się w żadnym elemencie i atrybucie.


Xml e x tensible m arkup l anguage 2

Definicja Typu Dokumentu - DTD

DTD (ang. Document Type Definition) – rodzaj dokumentu definiujący formalną strukturę dokumentów XML.

DTDokreśla składnię konkretnej aplikacji XML czyli:

  • definiuje każdy dopuszczalny element dokumentu, jego zbiór atrybutów i dopuszczalne wartości.

  • określa zagnieżdżanie i wymagalność poszczególnych elementów w dokumencie.

Przykład 14

W dokumencie XHTML element li może pojawić się tylko jako dziecko elementów ollub ul.

Informacja o tym zapisana jest właśnie w odpowiednim dokumencie DTD.


Xml e x tensible m arkup l anguage 2

Definicja Typu Dokumentu - DTD

Jeżeli dokument XML jest zgodny z określonym dla niego DTD mówimy wówczas że jest poprawny strukturalnie (w skrócie poprawny - ang. valid).

Poprawność dokumentu XML nie jest wymagana (zależy to np. od twórcy dokumentu). Wymagane jest aby dokument był prawidłowo sformatowany.

Jeżeli jednak dokument nie będzie poprawny aplikacja działająca w oparciu o dane w nim zapisane może nie działać poprawnie.

UWAGA: Przyjęte jest, że w dokumencie XML zakazane jest wszystko co nie jest dozwolone przez związany z nim dokument DTD.


Xml e x tensible m arkup l anguage 2

Definicja Typu Dokumentu - DTD

Przykład 15

Rozważmy następujący dokument XML

<person>

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession>mathematician</profession>

<profession>cryptographer</profession> </person>

Jak może wyglądać DTD dla tego dokumentu?


Xml e x tensible m arkup l anguage 2

Deklaracja Typu Dokumentu

Poprawny dokument XML musi zawierać deklaracje związanego z nim DTD.

Przykład 16

<!DOCTYPE person SYSTEM

"http://www.cafeconleche.org/dtds/person.dtd">

Deklaracja ta mówi, że korzeniem dokumentu jest element personoraz, że DTD dla tego dokumentu znajduje się pod adresem

http://www.cafeconleche.org/dtds/person.dtd

Deklaracja typu dokumentu znajduje się zawsze na początku dokumentu zaraz po deklaracji XML i przed korzeniem dokumentu.


Xml e x tensible m arkup l anguage 2

Deklaracja Typu Dokumentu

Przykład 17

<?xml version="1.0" standalone="no"?>

<!DOCTYPE person SYSTEM "http://www.cafeconleche.org/dtds/person.dtd">

<person>

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession>mathematician</profession>

<profession>cryptographer</profession>

</person>

Jeżeli dokument DTD znajduje się w tym samym folderze co dokument XML:

<!DOCTYPE person SYSTEM "person.dtd">


Xml e x tensible m arkup l anguage 2

Deklaracja Typu Dokumentu

Deklaracja typu dokumentu zwykle znajduje się w oddzielnym pliku. Można ją jednak umieścić w dokumencie XML.

Przykład 18

<?xml version="1.0"?>

<!DOCTYPE person [

<!ELEMENT first_name (#PCDATA)>

<!ELEMENT last_name (#PCDATA)>

<!ELEMENT profession (#PCDATA)>

<!ELEMENT name (first_name,last_name)>

<!ELEMENT person (name,profession*)>

]>

<person>

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession>mathematician</profession>

<profession>cryptographer</profession>

</person>


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Deklaracja elementu ma następującą postać:

<!ELEMENT nazwa_elementu zawartość_elementu>

nazwa_elementu – określa nazwę elementu.

zawartość_elementu – określa dzieci elementu i ich uporządkowanie.

Zawartość elementu

Tekst- najprostszą zawartością elementu jest zwykły tekst. Oznaczamy go przez #PCDATA.

Przykład 19

<!ELEMENT phone_number (#PCDATA)>


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Dzieci– deklarowany przez nas element może posiadać dzieci.

Przykład 20

<!ELEMENT name (first_name, last_name)>

Deklaracja ta oznacza, że element name posiada dzieci (kolejność ważna!!!):

first_name , second_name

Dla powyższej deklaracji elementu name poprawny jest dokument:

<name>

<first_name>Madonna</first_name>

<last_name>Ciconne</last_name>

</name>

Nie jest poprawny dokument:

<name>

<last_name>Ciconne</last_name>

<first_name>Madonna</first_name>

</name>


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

W DTD możemy określić liczbę dzieci danego elementu wykorzystując następujące oznaczenia:

? – zero lub jeden element

* - zero lub więcej elementów

+ - jeden lub więcej elementów

Przykład 20

<!ELEMENT name (first_name, middle_name?, last_name?)>

Element first_name jest wymagany.

Elementmiddle_namemoże nie wystąpić lub wystąpić tylko raz.

Element last_name może nie wystąpić lub wystąpić tylko raz.


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Dla powyższej deklaracji następujący dokument XML nie jest poprawny.

<name>

<first_name>George</first_name>

<middle_name>Herbert</middle_name>

<middle_name>Walker</middle_name>

<last_name>Bush</last_name>

</name>

<name>

<last_name>Ciconne</last_name>

<first_name>Madonna</first_name>

</name>

Przykład 21

<!ELEMENT name (first_name,middle_name*,last_name?)>

Elementmiddle_namemoże nie wystąpićlub wystąpić wiele razy.


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Może się zdarzyć, że dwa różne przykłady tego samego elementu będą zawierały różne elementy-dzieci.

Przykład 22

<!ELEMENT transport (train|bus|car)>

Dzieckiem elementu transportmoże być trainlubbuslubcar.

Elementy mogą mieć bardziej skomplikowane definicje.

Przykład 23

<!ELEMENT center ((x, y)|(r,))>

Dziećmi elementu center mogą być x iylubri.


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Przykład 25

<!ELEMENT a (b|(c+,d))>

Dzieckiem elementu amoże być:

b

lub

jedno lub wielecid

Przykład 26

<!ELEMENT definition (#PCDATA|term)*>

Dzieckiem elementu definitionmoże byćtekst zawierający dowolną ilość elementówterm.


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

Poniższy dokument jest poprawny ze względu na powyższą deklarację:

<definition>The <term>Turing Machine</term> is an abstract finite state automaton with infinite memory that can be proven equivalent to any any other finite state automaton with arbitrarily large memory. Thus what is true for a Turing machine is true for all equivalent machines no matter how implemented. </definition>

Element pusty deklarujemy następująco:

<!ELEMENT image EMPTY>


Xml e x tensible m arkup l anguage 2

Deklaracje Elementów

I na koniec DTD dla dokumentu z przykładu 15 tzn:

<person>

<name>

<first_name>Alan</first_name>

<last_name>Turing</last_name>

</name>

<profession>computer scientist</profession>

<profession>mathematician</profession>

<profession>cryptographer</profession> </person>

DTD:

<!ELEMENT person (name, profession*)>

<!ELEMENT name (first_name, last_name)>

<!ELEMENT first_name (#PCDATA)>

<!ELEMENT last_name (#PCDATA)>

<!ELEMENT profession (#PCDATA)>


  • Login