La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno.

Presentazioni simili


Presentazione sul tema: "Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno."— Transcript della presentazione:

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


Scaricare ppt "Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno."

Presentazioni simili


Annunci Google