dom document object model. généralités standard du w3c parseur xml – génération dun arbre...
TRANSCRIPT
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