Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSilvia Guida Modificato 9 anni fa
1
Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno di utilizzare metodi indiretti (come eventi di SAX parser) non permettono manipolazione diretta del documento introdotte rappresentazioni strutturate che permettono di analizzare e modificare contenuto di documento W3C ha definito specifiche di rappresentazione strutturata di documento XML –Documenti XML sono gerarchici (tag annidati) rappresentazione ad albero –Elementi, attributi, etc. rappresentati come nodi di albero
2
Laboratorio di Servizi Web - XML - Ardissono 2 DOM - Document Object Model - I W3C standard per gestione di documenti XML –rappresenta i documenti con un modello ad oggetti –specifica interfaccia per accedere a parti di documenti e “navigarli” –rappresentazione DOM si basa su struttura ad albero peperoni 8.00 large Document pizza topping pricesize Root element Child elements
3
Laboratorio di Servizi Web - XML - Ardissono 3 DOM - Document Object Model - II Molti parser sono conformi a DOM (es. JAXP) usano rappresentazione DOM per gestire documenti DOM interfaccia produttori di parser hanno sviluppato implementazioni org.w3c.dom DOM usa interfaccia Node (e più specifici, come Element), che rappresenta i nodi dell’albero di un documento e offre metodi per: –trovare i nodi figli di un nodo –aggiungere figli ad un nodo –leggere il valore contenuto in un nodo,... documento si ispeziona (e modifica) navigando albero a partire da radice Vedere Tutorial (JAXP) per maggiori informazioni su DOM
4
Laboratorio di Servizi Web - XML - Ardissono 4 Creazione di DOM dal nulla, creando i nodi e inserendoli nell’albero parsificando documento XML (e.g., via SAX parser) import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; import org.w3c.dom.Document; import org.w3c.dom.DOMException;... public class DomEcho01{ static Document document; public static void main(String argv[]) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); try {DocumentBuilder builder = factory.newDocumentBuilder(); document = builder.parse( “coffee.xml” ); } catch (SAXParseException spe) {System.out.println("\n** Parsing error”); ….. Gestione di altre eccezioni... } }
5
Laboratorio di Servizi Web - XML - Ardissono 5 Visita di oggetto DOM public static void visitDocument(Document document, String feature) { if (document!=null) { Element el = document.getDocumentElement(); visit(el, feature);}} public static void visit(Node el, String feature) { if (el!=null) { NodeList children = el.getChildNodes(); for (int i=0; i<children.getLength(); i++) { Node n=children.item(i); getFeatureVal(n, feature); visit(children.item(i), feature);}}} public static void getFeatureVal(Node domNode, String feature) { String out = ""; if (domNode!=null) { String name = domNode.getNodeName(); String type = typeName[domNode.getNodeType()]; if (name.equals(feature)) { Element el = (Element)domNode; out = el.getFirstChild().getNodeValue(); System.out.println("The value of feature "+feature+ " is: " +out);} }}
6
Laboratorio di Servizi Web - XML - Ardissono 6 DOM vs. JDOM e altri…. DOM nato per trattare documenti –document-oriented, focalizzato sulle parti di cui un documento si compone –gestione di strutture dati possibile, ma un po’ ostica – sviluppati altri modelli di rappresentazione che facilitano accesso e modifica. Es: JDOM, DOM4J Trascuriamo DOM, JDOM, etc. per focalizzarci su uno strumento recente, più efficace nel trattamento di strutture dati: JAXB JAXB (Java Architecture for XML Binding) nato apposta per trattare rappresentazione XML di strutture dati
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.