La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX.

Présentations similaires


Présentation au sujet: "SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX."— Transcription de la présentation:

1 SAX Simple API for XML

2 Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX existe en Java, Python et C++

3 SAX Principe de Fonctionnement XML Internet Fichier APPLICATIONS

4 SAX aujourdhui Debut des travaux Dec, 1997 SAX 1.0 Mai, 1998 – Tim Bray – David Megginson – … SAX 2.0 Mai, 2000

5 SAX 2.0 Interfaces – XMLReader – ContentHandler – DTDHandler – ErrorHandler – … Classes – InputSource Exceptions – SAXException – …

6 org.xml.sax.XMLReader Classe implantée par tout parser SAX Méthodes – public void setContentHandler(ContentHandler handler) – public void setDTDHandler(DTDHandler handler) – public void setErrorHandler(ErrorHandler handler) – public void parse(InputSource input) throws java.io.IOException, SAXException – …

7 org.xml.sax.ContentHandler Handler le plus important. Toutes les applications SAX doivent implanter un ContentHandler Méthodes : – public void startDocument() throws SAXException – public void endDocument() throws SAXException – public void startElement(String nspURI, String localName, String qName, Attributes atts) throws SAXException – public void characters(char[] ch, int start, int length) throws SAXException – …

8 org.xml.sax.DTDHandler Handler utilisé pour avoir des informations sur les entitées non parsable. Méthodes : – public void notationDecl(String name, String publicId, String systemId) throws SAXException – public void unparsedEntityDecl(String name, String publicId, String systemId, String notationName) throws SAXException

9 org.xml.sax.ErrorHandler Handler utilisé pour effectuer un traitement lors dapparition derreurs. Méthodes : – public void warning(SAXParseException exception) throws SAXException – public void error(SAXParseException exception) throws SAXException – public void fatalError(SAXParseException exception) throws SAXException

10 org.xml.sax.EntityResolver Handler utilisé pour effectuer un traitement lors de la résolution dentité. Méthode : – public InputSource resolveEntity(String publicId, String systemId) throws SAXException, java.io.IOException

11 org.xml.sax.Attributes Liste dattributs Méthodes : – public int getLength() – public java.lang.String getLocalName(int index) – public java.lang.String getValue(int index) – …

12 org.xml.sax.Locator Utiliser pour connaître la position du parser dans le fichier Les parser SAX ne sont pas obligé de fournit un Locator Méthodes : – public int getColumnNumber() – public int getLineNumber() – …

13 org.xml.sax.InputSource Tout input XML doit être encapsulé dans un InputSource Méthodes : – public InputSource(java.io.Reader characterStream) – public InputSource(java.io.InputStream byteStream) – …

14 Exemple de Programme SAX package test; public class ContentTest extends org.xml.sax.helpers.DefaultHandler { org.xml.sax.Locator _locator; public void startDocument() {System.out.println("Le document commence");} public void endDocument() {System.out.println("Le document finit");} public void startElement(java.lang.String namespaceURI, java.lang.String localName,java.lang.String rawName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException { System.out.println("element : "+localName+" commence"+"col = « +_locator.getColumnNumber()+" ; line ="+_locator.getLineNumber() );} public void endElement(java.lang.String namespaceURI,java.lang.String localName, java.lang.String rawName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException { System.out.println("element : "+localName+" finit"); } public void setDocumentLocator(org.xml.sax.Locator locator) {_locator = locator;} }

15 Exemple de Programme SAX package test; public class DTDTest extends org.xml.sax.helpers.DefaultHandler { public void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException { System.out.println("Notation Declaration"); } public void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName) throws org.xml.sax.SAXException { System.out.println("Unparsed entity Decl"); }

16 Exemple de Programme SAX package test; public class EntityTest extends org.xml.sax.helpers.DefaultHandler { public org.xml.sax.InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException{ System.out.println("resolve an entity"); return null; }

17 Exemple de Programme SAX package test; public class ErrorTest extends org.xml.sax.helpers.DefaultHandler { public void warning(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got a Warning"); } public void error(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got an Error"); } public void fatalError(org.xml.sax.SAXParseException exception) throws org.xml.sax.SAXException { System.out.println("Got a fatal Error"); }

18 Exemple de programme SAX package test; public class Parse { public static void main(String[] args) { try { org.xml.sax.XMLReader parser = (org.xml.sax.XMLReader)Class.forName(« org.apache.xerces.parsers.SAXParser").newInstance(); ContentTest _content = new ContentTest(); _content.setDocumentLocator(new org.xml.sax.helpers.LocatorImpl()); parser.setContentHandler(_content); parser.setErrorHandler(new ErrorTest()); parser.setEntityResolver(new EntityTest()); parser.setDTDHandler(new DTDTest()); parser.parse("UML.xml");} catch (org.xml.sax.SAXParseException spe) {spe.printStackTrace(System.err);} catch (org.xml.sax.SAXException se) {se.printStackTrace(System.err);} catch (Exception e) {e.printStackTrace(System.err);} }

19 Conclusion Type de Parser XML Standard « Internet » Orienté événement Utilisé par les serveurs Web


Télécharger ppt "SAX Simple API for XML. Généralités API non standard développé par les membres du forum XML-DEV Parseur XML – Orienté événement – Parsing dynamique SAX."

Présentations similaires


Annonces Google