DOM Document Object Model. Généralités Standard du W3C Parseur XML – Génération dun arbre...

Preview:

Citation preview

DOM

DocumentObjectModel

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

Principe de Fonctionnement

DOM

XML OBJETS

Internet

Fichier

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)

DOM Level 1 Core

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

Exception– DOMException

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– …

org.w3c.dom.NodeList

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

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

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

– …

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)– …

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();– …

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– …

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– …

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

org.w3c.dom.Comment

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

– <!- - – - - >

org.w3c.dom.CDATASection

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

– <![CDATA[– ]]>

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

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()

org.w3c.dom.EntityReference

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

– Aucune

Sous-spécifié

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)

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();}

}

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

Recommended