17 apr 2002 xml programming: trax andy clark. java api for xml processing standard java api for...

14
17 Apr 2002 XML Programming: TrAX Andy Clark

Upload: barrie-tate

Post on 23-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

17 Apr 2002

XML Programming: TrAX

Andy Clark

Page 2: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Java API for XML Processing

Standard Java API for loading, creating, accessing, and transforming XML documents– JAXP: parsing

Supports DOM and SAX

– TrAX: transformation Generic transformation framework

Java standard extension (i.e. javax package)– Defined by Sun JCP

Page 3: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Transformation API for XML

Transformation framework– Allows generic transformation from one form to

another

Examples:– Serializers– XSLT processors– etc…

Page 4: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

javax.xml.transform (1 of 2)

Transformation– Transformer, TransformerFactory– Templates

Input and Output– Source– Result

Page 5: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

javax.xml.transform (2 of 2)

Transformer control– ErrorListener– SourceLocator, URIResolver– OutputKeys

Other– TransformerConfigurationException– TransformerException– TransformerFactoryConfigurationError

Page 6: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Input and Output

javax.xml.transform.stream– StreamSource– StreamResult

javax.xml.transform.dom– DOMSource, DOMResult– DOMLocator

javax.xml.transform.sax– SAXSource, SAXResult– SAXTransformerFactory– TransformerHandler, TemplatesHandler

Page 7: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Stream Input and Output

StreamSource– Specifies document stream to parse

StreamResult– Specifies stream for serialization of document– OutputKeys controls serialization settings

Page 8: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

DOM/SAX Input and Output

Document Object Model– DOMSource

Specifies document or node to process

– DOMResult Specifies document factory for new nodes

Simple API for XML– SAXSource

Specifies XMLReader to parse document

– SAXResult Specifies handler for generated events

Page 9: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Transform Document (1 of 3)

Identity transform– Get instance of transformer factory

TransformerFactory factory = TransformerFactory.newInstance();

– Create transformer Transformer transformer = factory.newTransformer();

– Create input and output Source source = new StreamSource(“document.xml”); Result result = new StreamResult(System.out);

– Transform document transformer.transform(source, result);

Page 10: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Transform Document (2 of 3)

Transform with stylesheet (1 of 2)– Get instance of transformer factory

TransformerFactory factory = TransformerFactory.newInstance();

– Create templates Source templatesSource = new StreamSource(“style.xsl”); Templates templates = factory.newTemplates(templatesSour

ce);

– Create transformer Transformer transformer = templates.newTransformer();

Page 11: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Transform Document (3 of 3)

Transform with Stylesheet (2 of 2)– Create input and output

Source source = new StreamSource(“document.xml”); Result result = new StreamResult(System.out);

– Transform document transformer.transform(source, result);

Page 12: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Error Handling and Entity Resolution

Transformer– Can set a TrAX ErrorListener– Can set a TrAX URIResolver

URIResolver– Called when reference to multiple documents

Passed base and literal system identifiers of resource Example XPath: “document(‘book.xml’)/book/title”

– Returns a TrAX Source Note: This is super cool because it means that you can

cache (or generate) documents in memory.

Page 13: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

Useful Links

JAXP– http://java.sun.com/xml/

Apache Xalan XSLT Processor– http://xml.apache.org/xalan-j/

Page 14: 17 Apr 2002 XML Programming: TrAX Andy Clark. Java API for XML Processing Standard Java API for loading, creating, accessing, and transforming XML documents

XML Programming: TrAX

Andy Clark