05 xml domid 5979 ppt

background image

Bazy danych XML

Wydział Informatyki EWSIE

Wykład: Bazy danych II – DOM Document

background image

Obiektowy model dokumentu

DOM

Model DOM jest wynikiem prac producentów
przeglądarek, mających na celu zamienienie
stron dokumentów WWW w zbiory obiektów.

Element BODY na stronie WWW jest przykładem
obiektu, obsługiwanego przez przeglądarkę.

Poszczególne elementy na stronie WWW mogą
być więc traktowane jako obiekty posiadające
właściwości, metody oraz zdarzenia.

Hierarchia obiektów na stronie WWW jest
strukturą, którą model DOM wnosi do
dokumentu.

Niniejsze slajdy bazują na specyfikacji Document
Object Model (DOM) Level 1 i Level 2 (patrz

http://www.w3.org

)

background image

Przykład hierarchii obiektów

DOM

Tabela

Wiersz

Wiersz

Komórka

Komórka

Komórka

Komórka

Dane

komórki 1

Dane

komórki 2

Dane

komórki 4

Dane

komórki 3

<Tabela border=‘1’ >
<TR><TD> Komórka 1 </TD> <TD> Komórka 2 </TD></TR>
<TR><TD> Komórka 3 </TD> <TD> Komórka 4 </TD></TR>
</Tabela>

background image

Hierarchia składników DOM

Składnik

Dopuszczalne obiekty potomne

Document

Element max 1, PI, Comment,

DocumentType max 1

Document-

Fragment

Element, PI, Comment, Text,

CDATASection, EntityRef.

DocumentType

Żaden (węzeł liściowy)

EntitReference

Element, PI, Comment, Text,

CDATASection, EntityRef.

Element

Element, PI, Comment, Text,

CDATASection, EntityRef.

Attr

Text, EntityReference

ProcessingInstr

uction

Żaden (węzeł liściowy)

Comment

Żaden (węzeł liściowy)

Text

Żaden (węzeł liściowy)

CDATASection

Żaden (węzeł liściowy)

Entity

Element, PI, Comment, Text,

CDATASection, EntityRef.

Notation

Żaden (węzeł liściowy)

background image

Leksykon obiektów DOM

• Dalej przedstawimy szczegółowo obiekty Jądra

XML DOM Level 2.

• W kolejnych punktach omówimy: opisy, atrybuty i

metody każdego rodzju elementu w zależności od
języka specyfikacji IDL.

• Książki zwykle zawierają jeszcze przykłady

sposobów użycia poszczególnych pozycji i
dowiązania do języka Java. Ze względu na
ograniczenia czasowe niniejszego wykładu,
przykłady i dowiązania do języka Java
pomineliśmy.

background image

Interfejs: Attr

• Opis: reprezentuje wartość przypisaną do atrybutu

elementu XML. Ponieważ dostęp do obiektów Attr w

obrębie DOM umożliwia jedynie attributes

NameNodeList interfejsu Element, atrybuty parentNode,

previousSibling oraz nextSibling zawsze zwracają null.

Chociaż interfejs Attr dziedziczy podstawowy interfejs

Node, nie znajduje tu zastosowania wiele podstawowych

metod Node. Element XML może pobierać atrybut na

kilka sposobów. Element posiada wartość atrybutu jeżeli:

– Dokument XML podaje wartość atrybutu w sposób jawny,

– Definicja DTD dokumentu określa wartość domyślną atrybutu,

– Atrybut jest dodawany programowo, za pomocą metody

setAttribute( ) lub setAttributeNode( ) interfejsu Element.

• Atrybuty: DOMString (nazwa - tylko do odczytu),

ownerElement (łącze do elementy), specified

(ustawienie jawne/niejawne), value (ułatwia odczyt

wartości tekstowej Atrr).

Metody: brak.

background image

Interfejs: CDATASection

• Opis: interfejs CDATASection zawiera dane nie-

analizowalne, zapisane bez konwencji Escape,
która występuje w dokumencie XML, w obrębie
bloków CDATA. Chociaż interfejs ten dziedziczy
interfejs TeCDATASection, nie można scalać
sąsiednich bloków za pomocą metody normalize( )
interfejsu Element. CDATASection jest podklasą
interfejsu Text i nie posiada własnych atrybutów
ani metod.

• Atrybuty: brak.
• Metody: brak.

background image

Interfejs: CharakterData

• Opis: interfejs CharacterData jest całkowicie

abstrakcyjny i rozszerza podstawowy interfejs Node

jedynie o obsługę operacji na danych tekstowych.

Każdy obiekt typu DOM, który ma do czynienia a

danymi tekstowymi, dziedziczy po tym interfejsie

bezpośrednio lub pośrednio.

• Atrybuty: data (umożliwia uzyskanie dostępu do

„pierwotnych” danych węzła CharacterData; length

(rozmiar DOMString zapisany w atrybucie data).

• Metody: appendData(arg) - dołącza zawartość

parametru attr do bieżącej wartości atrybutu data;

deleteData(offset, count) - likwiduje DOMString w

atrybucie data – usuwając count znaków, począwszy od

położenia offset; insertData(offset, arg) - dzieli bieżąca

zawartość atrybutu data w położeniu offset, a

następnie wstawia pomiędzy dwie części ciągu – ciąg

znaków z parametru arg; replaceData(offset, count,

arg) – zastępuje część znaków; substringData(offset,

count) – zwraca podzbiór.

background image

Obiekt: Comment

• Opis: zawiera tekst komentarza XML, czyli

wszystko, co znajduje się pomiędzy
otwierającym <!- - a zamykającym - ->.
Dziedziczy po CharacterData.

• Atrybuty: brak.
• Metody: brak.

background image

Object: Document

Opis: reprezentuje cały dokument XML o właściwej konstrukcji.

Kiedy obiekt Document zostanie utworzony za pośrednictwem

interfejsu DOMImplemantation, możemy uzyskać dostęp do

każdego aspektu podstawowego dokumentu DOM.

Atrybuty: doctype – zwraca instancję interfejsu DocumentType

DTD dla dokumentu; documentElement – wskazuje na

pojedyńczy węzeł Element (tylko do odczytu); implementation

zwraca odwołanie do DOMImplementation (tylko do odczytu).

Metody: createAttribute(name) – tworzy atrybut o podanej

nazwie; createAttributeNS(namespaceURI, qualifiedName);

createDATASection(data); createComment(data);

createDocumentFragment() – zwraca pusty obiekt;

createElement (tagName);

createElementNS(namespaceURI,qualifiedName);

createEntityReference(name);

createProcessingInstruction(target, data); createTextNode(data);

getElementByID(name); getElementByTagName(tagName);

getElementByTagNS(namespaceURI, localName);

hasAttribute(name); hasAttributeNS(namespaceURI, localName);

importNode(localName).

background image

Obiekt: DocumentFragment

• Opis: jest kontenerem wykorzystywanym do

tymczasowego przechowywania fragmentów
dokumentu XML. Nie posiada własnych metod ani
właściwości, może oferować taki zakres funkcji,
jakie udostępnia węzeł Node. Jako kontener, może
być wykorzystywany przez przynajmniej jedno
poddrzewo XML o odpowiedniej konstrukcji.
Najbardziej oczywistym zastosowaniem tego
obiektu jest wykorzystywanie go jako schowka
wykonawcy operacji typu przeciągniej-i-upuść (w
edytorze graficznym).

• Atrybuty: brak.
• Metody: brak.

background image

Interfejs: DocumentType

• Opis: zawiera pojedynczy atrybut docType, który

wskazuje na opis DTD dla bieżącego dokumentu,
albo null gdy nie istnieje DTD.

• Atrybuty: entities – określa listę encji ogólnych;

internalSubset – zawiera podzbiór wewnętrzny
dokumentu; name – nazwa DTD występująca w
dokumencie źródłowym ze słowem kluczowym XML
DOCTYPE; notations – zawiera listę deklaracji
zapisów XML dla bieżącego dokumentu; publicID
identyfikator publiczny podzbioru zewnętrznego
(tylko do odczytu); systemID – URI podzbioru
zewnętrznego bieżącego dokumentu.

• Metody: brak.

background image

ExceptionCode:

DOMException

• Opis: w językach i obsługujących je platformach

wykonawczych, strukturalne stany wyjątków
oddzielają kod zajmujący się stanami nienormalnymi
lub niespodziewanymi od normalnego potoku
wykonawczego. W przypadku języków nie
obsługujących wyjątków, na przykład ECMAScript
albo Perl, stany te są zgłaszane programowi przez
metody, które te stany rozpoznają jako kody błędów.
ExceptionCode jest wartością całkowitą, która
pokazuje jakiego typu wyjątek został wykryty.
Wyróżniono 15 różnych wartości kodu.

• Atrybuty: brak.
• Metody: brak.

background image

Interfejs:

DOMImplementation

• Opis: zapewnia globalną informację o aktualnie

używanej implementacji DOM. Jedyny sposób
odwołania się do interfejsu DOMImplementation
polega na użyciu metody getIplementation( ) obiektu
Document.

• Atrybuty: brak.
• Metody: createDocument( namespaceURI,

qualifiedName, doctype);
createDocumentType( quaifiedName, publicID,
systemID); hasFeature( feature, version).

background image

Obiekt: Element

• Opis: zapewnia dostęp do struktury dokumentu XML i

zawartych w nim danych. Każdy element XML, podlega

translacji na jeden węzeł Element. Element bazowy

dokumentu jest dostępny poprzez właściwość

documentElement obiektu Document. Możliwe jest

odtworzenie pełnej struktury pierwotnego dokumentu XML,

dokonane w oparciu o ten węzeł – „przejście” przez drzewo

elementów.

• Atrybuty: tagName – nazwa znacznika XML z pierwotnego

dok.

• Metody: getAttribute( name);

getAttributeNS( namespaceURI, localName);

getAttributeNode( name);

getAttributeNodeNS( namespaceURI, localName);

getElementsByTagName( name);

getElementsByTagName( namespaceURI, localName);

hasAttribute( name); hasAttributeNS( namespaceURI,

localName); removeAttribute( name);

removeAttributeNS( namespaceURI, localName);

removeAttributeNode( oldAttr); setAttribute( name, value);

setAttributeNS( namespaceURI, localName);

setAttributeNode( newAttr); setAttributeNodeNS( newAttr).

background image

Obiekt: Entity

• Opis: reprezentuje wartość zastępczą danej encji

ogólnej XML. W zależności od tego, czy dana
implementacja DOM kontroluje prawidłowość oraz,
czy rozwija ona podczas analizy składni odwołania do
encji w trybie liniowym, obiekty Entity mogą być
niedostępne dla użytkownika DOM.

• Atrybuty: notationName: DOMString – jeśli encja

nieanalizowana, jest nazwą zapisu tej encji; publicID:
DOMString
– nadany publiczny identyfikator URL albo
null, gdy nie określono identyfikatora; systemID:
DOMString
– nadany systemowy identyfikator URL
albo null, gdy nie określono identyfikatora.

• Metody: brak.

background image

Węzeł: EntityReference

• Opis: odwołania do encji pojawiają się w hierarchii

dokumentu od razu, gdy odwołania do encji ogólnej
XML zostanie osadzone w dokumencie źródłowym.
W zależności od dokumentacji DOM, w grupie
entities atrybutu docType obiektu Document może
istnieć odpowiadający tej encji obiekt Entity. Jeśli
taka encja istnieje, wtedy węzły potomne zarówno
Entity, jak i EntityReference reprezentują skojarzony
z daną encją tekst zastępczy.

• Atrybuty: brak.
• Metody: brak.

background image

Interfejs: NamedNodeMap

• Opis: oferuje mechanizm wykorzystywany do

pobierania obiektów z grupy Node (pobieranie odbywa

się według nazwy). Chociaż ten interfejs udostępnia

takie same atrybuty i metody jak klasa NodeList, nie są

one ze sobą powiązane.

• Atrybuty: length – ogólna liczba węzłów Node

znajdujących się na liście.

• Metody: getNameItem( name) – zwraca odwołanie do

węzła ; getNameItemNS( namespaceURI, localName)

rozszerza poprzednią metodę o obsługę przestrzeni

nazw; item( index) – zwraca odwołanie do obiektu;

removeNamedItem( name) – usuwa obiekt Node;

removeNameItemNS( namespaceURI, localName)

usuwa Node; setNameItem( arg) – wstawia do listy

obiekt Node; setNamedItemNS( arg) – rozszerza

poprzednią metodę uwzględniając przestrzeń nazw.

background image

Interfejs: Node

• Opis: jest podstawowym interfejsem dla każdej części

składowej drzewa dokumentu DOM. Udostępnia on

atrybuty wspólne dla wszystkich typów obiektów

dokumentu i oferuje proste metody pobierania

informacji specyficznych dla danego typu obiektu.

• Atrybuty: attributes: NamedNodeMap; childNodes:

NodeList; firstChild: Node; lastChild: Node; localName:

DOMString; namespaceURI; DOMString; nextSibling:

Node; nodeName: DOMString; nodeType: unsigned

short; nodeValue: DOMString; ownerDocument:

Document; parentNode: Node; prefix: DOMString;

previousSibling: Node.

• Metody: appendChild( newchild); cloneNode( deep);

hasAttribute( ); hasChildNodes( );

inserdBefore( newchild, refchild); isSupported( feature,

version); removeChild( oldchild); replaceChild( newchild,

oldchild).

background image

Interfejs: NodeList

• Opis: umożliwia udostępnienie przez klasę DOM

uporządkowanej grupy węzłów . NodeList
reprezentuje macierz obiektów Node (o
podstawie zero, tylko do odczytu). Ponieważ nie
istniej mechanizm tworzenia, dodawania ani
usuwania węzłów z NodList, nie można korzystać
z tego interfejsu jako z narzędzia ogólnego
przeznaczenia.

• Atrybuty: lengh: unsigned long - całkowita liczba

obiektów znajdujących się na liście.

• Metody: item( index) – wskaźnik na listę o

podstawie 0.

background image

Interfejs:

ProcessingInstruction

• Opis: zapewnia dostęp do zawartości polecenia

przetwarzania XML. Polecenia przetwarzania oferują
mechanizm osadzania poleceń dla aplikacji
przetwarzającej XML, która jest wołana z poziomu
zawartości dokumentu XML.

• Atrybuty: data: DOMString – zwraca zawierającą dane

część polecenia przetwarzania. Część ta zaczyna się
od pierwszego znaku, który nie jest znakiem białym,
występującej po żetonie target – a kończy się na
zamykającej sekwencji ?>; target: DOMString – zwraca
część polecenia przetwarzania zawierającą obiekt
docelowy. Obiektem docelowym jest pierwszy żeton z
ogranicznikami w postaci białych znaków, występujący
w obrębie bloku polecenia przetwarzania.

• Metody: brak

background image

Węzeł: Text

• Opis: zawierają występujące w obrębie dokumentu XML

dane znakowe, które nie są oznaczeniem. Po wykonaniu

analizy składni dokumentu, dla każdego ciągłego pliku

tekstowego, który nie jest oznaczeniem, istnieje

dokładnie jeden węzeł Text:

<węzeł_tekstowy> To jest tekst </ węzeł_tekstowy>

• Atrybuty: brak.
• Metody: splitText ( offset) – dzieli węzeł Text na dwa

sąsiadujące węzły Text. Zawartość pierwotnego węzła

zostaje podzielona w miejscu, wskazanym przez offset,

przy czym drugi ciąg znaków stanowi wartość nowego

węzła. Pierwszy podciąg znaków pozostaje w pierwotnym

węźle. Gdyby dany węzeł był aktualnie włączony do

drzewa DOM, nowy węzeł z oddzielną zawartością staje

się następnym siostrzanym węzłem pierwotnego węzła.

Zwracany jest nowy węzeł Text, zawierający drugą część

danych

background image

Podstawowe typy

składników

Document – może posiadać pojedynczy węzeł Element,

węzły Processing Instructions PI, węzły Comment i

pojedynczy węzeł DocumentType.

DocumentFragment – może posiadać węzły: Element, PI,

Comment, Text, CDATA i EntityReference.

DocumentType – nie może posiadać węzłów dzieci.

EntityReference - może posiadać węzły: Element, PI,

Comment, Text, CDATA i EntityReference.

Element - może posiadać węzły: Element, PI, Comment, Text,

CDATA i EntityReference.

Attr (atrybut) - może posiadać węzły: Text i EntityReference.

Comment – nie może posiadać węzłów dzieci.

Text – nie może posiadać węzłów dzieci.

CDATA – nie może posiadać węzłów dzieci.

Entity - może posiadać węzły: Element, PI, Comment, Text,

CDATA i EntityReference.

Notation – nie może posiadać węzłów dzieci.


Document Outline


Wyszukiwarka

Podobne podstrony:
05 Badanie diagnostyczneid 5649 ppt
05 Instrukcje warunkoweid 5533 ppt
05 IG 4id 5703 ppt
10 XML appsid 11206 ppt
05 sprawozdania finansowid 5838 ppt
05 Geoelektryka03 opornoscioweid 5954 ppt
04 xml xslid 5313 ppt
05 Reklama 3id 5557 ppt
05 Gaszenie łukuid 5689 ppt
05 Geoelektryka01 introid 5950 ppt
05 koszty utopioneid 5538 ppt
05 Zabezpieczenia przewodówid 5894 ppt
05 Geoelektryka05 EMid 5957 ppt
11 Głowa i szyja 26 05 07r komentarzid 12421 ppt
05 Pojecie wiedzyid 5546 ppt
05 Geoelektryka06 GPRid 5958 ppt
05 podatek VATid 5789 ppt

więcej podobnych podstron