21
DOM Document Object Model

DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

Embed Size (px)

Citation preview

Page 1: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

DOM

DocumentObjectModel

Page 2: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

Généralités

Standard du W3C Parseur XML

– Génération d’un arbre d’objet– Construction totale de l’arbre

DOM est spécifié en IDL CORBA

Page 3: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

Principe de Fonctionnement

DOM

XML OBJETS

Internet

Fichier

Page 4: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

DOM aujourd’hui

DOM Level 1 Recommendation (Oct, 1998)– Core– HTML

DOM Level 2 Candidate Recommendation (May, 2000)– Core– HTML, Views, StyleSheets, CSS, Events, …

DOM Level 3 Draft (Sept, 2000)

Page 5: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

DOM Level 1 Core

Interfaces– Document,– Element,– Text,– Comment,– CDATASection,– Notation,– Node

Exception– DOMException

Page 6: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Node

La classe de base Tout objet DOM est un Node Methodes

– public Node getFirstChild();– public java.lang.String getNodeName();– public short getNodeType(); – public Node appendChild(Node newChild) throws

DOMException– …

Page 7: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.NodeList

Liste ordonnée de Node L’index commence à Zéro Méthodes

– public int getLength();– public Node item(int index) ;

Page 8: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.NamedNodeMap

Liste non ordonnée de Node Recherche par nom Méthodes

– public Node getNamedItem(java.lang.String name);

– public Node setNamedItem(Node arg) throws DOMException

– …

Page 9: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Document

Un objet de type Document représente le document XML en cours de traitement

Méthodes :– public NodeList getElementsByTagName(String tagname)

– public Element getDocumentElement();– public Attr createAttribute(String name) throws

DOMException– public Text createTextNode(String data) – public Comment createComment(String data)– …

Page 10: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Element

Un objet de type Element représente un élément du document XML

Méthodes :– public java.lang.String getAttribute(String

name);– public NodeList getElementsByTagName(String name);

– public java.lang.String getTagName();– …

Page 11: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Attr

Un objet de type Attr représente l’attribut d’un élément du document XML

Un objet de type Attr n’est pas le fils d’un objet de type Element représentant l’élément qui contient l’attribut (voir Node).

Méthodes :– public java.lang.String getName();– public java.lang.String getValue();– public void setValue(java.lang.String value) throws

DOMException– …

Page 12: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.CharData

Supertype de tout objet représentant du texte Méthodes :

– public String getData() throws DOMException– public void setData(String data) throws DOMException– public int getLength() – public void appendData(String arg) throws

DOMException – public void insertData(int offset, String arg) throws

DOMException– …

Page 13: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Text

Hérite de CharData Représente La valeur textuelle

– D’un élément– D’un attribute

Deux objets Text consécutif seront uni lors du prochain parsing

Méthode :– public Text splitText(int offset) throws

DOMException

Page 14: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Comment

Hérite de CharData Représente un commentaire XML Ne contient pas les balises

– <!- - – - - >

Page 15: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.CDATASection

Hérite de Text Représente une section littérale Ne contient pas les balises

– <![CDATA[– ]]>

Page 16: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.DocumentType

Les documents XML ont un attribut doctype qui a pour valeur null ou un objet DocumentType

Représente la liste des entitées définies pour le document

Méthodes :– public NamedNodeMap getEntities() – public java.lang.String getName() – …

Attention un DocumentType ne représente pas la totalité de la DTD

Page 17: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.Entity

Représente une Entité XML (parsable ou non parsable)

Représente l’entité et non pas la déclaration– Pas de trace de la valeur

Méthodes :– public java.lang.String getNotationName() – public java.lang.String getSystemId() – public java.lang.String getPublicId()

Page 18: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

org.w3c.dom.EntityReference

Représente une référence vers une entité Méthode :

– Aucune

Sous-spécifié

Page 19: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

Particularité de DOM

Création des éléments– Document.createElement(java.lang.String tagName)– Document.createTextNode(java.lang.String data) – …

Pas de méthode pour créer un document– Xerces (parseur de Apache)– Jaxp (parseur de Java)

La class DOMImplementation– public boolean hasFeature(String feature, String version)

Page 20: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

Exemple de Programme DOM

public static void main(String[] args) {

org.apache.xerces.parsers.DOMParser parser;

org.w3c.dom.Document document;

try {

parser = new org.apache.xerces.parsers.DOMParser ();

parser.parse ("UML.xml");

document = parser.getDocument ();

System.out.println(document.getDocumentElement().getTagName());

}

catch (org.xml.sax.SAXException ex) {ex.printStackTrace();}

catch (java.io.IOException ex) {ex.printStackTrace();}

}

Page 21: DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre dobjet – Construction totale de larbre DOM est spécifié en IDL

DOM : Conclusion

Un parseur de document XML– Java– C++– Python

Construction d’un arbre d’objets– Facile à programmer– Lourd– Long– Vision Globale

Standard du W3C