de.opsdesign.yax.helpers
Class SAXDocumentWriter

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by de.opsdesign.yax.helpers.SAXDocumentWriter
All Implemented Interfaces:
Loggable, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
Direct Known Subclasses:
ResolvingSAXDocumentWriter

public class SAXDocumentWriter
extends org.xml.sax.helpers.DefaultHandler
implements Loggable

XIncludeResolver based on

SAXXIncluder (see description below) with following modifications: - output to a StringWriter - comments treated without using XIncludeFilter Joerg Moebius, January 8, 2007

SAXXIncluder is a simple ContentHandler that writes its XML document onto an output stream after resolving all xinclude:include elements.

The only current known bug is that the notation and unparsed entity information items are not included in the result infoset. Furthermore, processing instructions in the DTD are not included. Note that this is only relevant to the source infoset. The DOCTYPE declaration is specifically excluded from included infosets.

I also need to check how section 4.4.3.1 applies for inscope namespaces in included documents. Currently this is not an issue because I only include full documents, but it may become an an issue when XPointer support is added.

There's no XPointer support yet. Only full documents are included.

The xinclude:fallback element is not yet supported.

The parser used to drive this must support the LexicalHandler interface. It must also provide a Locator object. These are optional in SAX, but Xerces-J does support these features.

Version:
1.0d11, March 9, 2003
Author:
Elliotte Rusty Harold

Field Summary
protected  org.xml.sax.InputSource inputSource
           
 
Constructor Summary
SAXDocumentWriter(org.xml.sax.InputSource inputSource)
           
SAXDocumentWriter(org.xml.sax.InputSource inputSource, java.lang.String encoding)
           
 
Method Summary
 void characters(char[] ch, int start, int length)
           
 void comment(char[] ch, int start, int length)
           
 void endCDATA()
           
 void endDocument()
           
 void endDTD()
           
 void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qualifiedName)
           
 void endEntity(java.lang.String name)
           
 void endPrefixMapping(java.lang.String prefix)
           
 java.lang.String getResult()
           
 void ignorableWhitespace(char[] ch, int start, int length)
           
 void log(java.lang.String msg)
           
 void log(java.lang.String msg, int msgSeverity)
           
 void log(YaxEvent yaxEvent)
           
 void log(YaxException yaxException)
          resolves a passed through YaxException
 void processingInstruction(java.lang.String target, java.lang.String data)
           
 void run()
           
 void skippedEntity(java.lang.String name)
           
 void startCDATA()
           
 void startDocument()
           
 void startDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID)
           
 void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qualifiedName, org.xml.sax.Attributes atts)
           
 void startEntity(java.lang.String name)
           
 void startPrefixMapping(java.lang.String prefix, java.lang.String uri)
           
 
Methods inherited from class org.xml.sax.helpers.DefaultHandler
error, fatalError, notationDecl, resolveEntity, setDocumentLocator, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inputSource

protected org.xml.sax.InputSource inputSource
Constructor Detail

SAXDocumentWriter

public SAXDocumentWriter(org.xml.sax.InputSource inputSource)

SAXDocumentWriter

public SAXDocumentWriter(org.xml.sax.InputSource inputSource,
                         java.lang.String encoding)
Method Detail

run

public void run()
         throws RunException
Throws:
RunException

getResult

public java.lang.String getResult()

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Specified by:
startDocument in interface org.xml.sax.ContentHandler
Overrides:
startDocument in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Specified by:
endDocument in interface org.xml.sax.ContentHandler
Overrides:
endDocument in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startPrefixMapping

public void startPrefixMapping(java.lang.String prefix,
                               java.lang.String uri)
                        throws org.xml.sax.SAXException
Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler
Overrides:
startPrefixMapping in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endPrefixMapping

public void endPrefixMapping(java.lang.String prefix)
                      throws org.xml.sax.SAXException
Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler
Overrides:
endPrefixMapping in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startElement

public void startElement(java.lang.String namespaceURI,
                         java.lang.String localName,
                         java.lang.String qualifiedName,
                         org.xml.sax.Attributes atts)
                  throws org.xml.sax.SAXException
Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

endElement

public void endElement(java.lang.String namespaceURI,
                       java.lang.String localName,
                       java.lang.String qualifiedName)
                throws org.xml.sax.SAXException
Specified by:
endElement in interface org.xml.sax.ContentHandler
Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws org.xml.sax.SAXException
Specified by:
characters in interface org.xml.sax.ContentHandler
Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

ignorableWhitespace

public void ignorableWhitespace(char[] ch,
                                int start,
                                int length)
                         throws org.xml.sax.SAXException
Specified by:
ignorableWhitespace in interface org.xml.sax.ContentHandler
Overrides:
ignorableWhitespace in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws org.xml.sax.SAXException
Specified by:
processingInstruction in interface org.xml.sax.ContentHandler
Overrides:
processingInstruction in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

skippedEntity

public void skippedEntity(java.lang.String name)
                   throws org.xml.sax.SAXException
Specified by:
skippedEntity in interface org.xml.sax.ContentHandler
Overrides:
skippedEntity in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException

startDTD

public void startDTD(java.lang.String name,
                     java.lang.String publicID,
                     java.lang.String systemID)
              throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

endDTD

public void endDTD()
            throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

startEntity

public void startEntity(java.lang.String name)
                 throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

endEntity

public void endEntity(java.lang.String name)
               throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

startCDATA

public void startCDATA()
                throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

endCDATA

public void endCDATA()
              throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws org.xml.sax.SAXException
Throws:
org.xml.sax.SAXException

log

public void log(java.lang.String msg)
Specified by:
log in interface Loggable

log

public void log(java.lang.String msg,
                int msgSeverity)
Specified by:
log in interface Loggable

log

public void log(YaxEvent yaxEvent)
Specified by:
log in interface Loggable

log

public void log(YaxException yaxException)
resolves a passed through YaxException

Specified by:
log in interface Loggable


Copyright © 2008 OPS Design GmbH. All Rights Reserved.