jd.xml.xpath.model.parse
Class Sax2ParseHandler

java.lang.Object
  extended byjd.xml.xpath.model.parse.ParseHandler
      extended byjd.xml.xpath.model.parse.SaxParseHandler
          extended byjd.xml.xpath.model.parse.Sax2ParseHandler
All Implemented Interfaces:
ContentHandler, DTDHandler, LexicalHandler, ModelLocator
Direct Known Subclasses:
TemplatesHandlerImpl, TransformerHandlerImpl

public class Sax2ParseHandler
extends SaxParseHandler
implements ContentHandler, LexicalHandler

A ParseHandler for SAX 2 Parsers.


Field Summary
 
Fields inherited from class jd.xml.xpath.model.parse.SaxParseHandler
locator_
 
Fields inherited from class jd.xml.xpath.model.parse.ParseHandler
elementInfo_, modelBuilder_, nodeNamePool_, preserveSpaceStack_, preserveWhitespace_, text_
 
Constructor Summary
protected Sax2ParseHandler()
           
  Sax2ParseHandler(XMLReader xmlReader)
           
 
Method Summary
 void comment(char[] ch, int start, int length)
          Report an XML comment anywhere in the document.
 void endCDATA()
          Report the end of a CDATA section.
 void endDTD()
          Report the end of DTD declarations.
 void endElement(String namespaceURI, String localName, String qname)
          Receive notification of the end of an element.
 void endEntity(String name)
          Report the end of an entity.
 void endPrefixMapping(String prefix)
          End the scope of a prefix-URI mapping.
 EntityResolver getEntityResolver()
           
 Object getParser()
           
 boolean isValidating()
           
protected  void parse(XmlSource source)
           
 void processingInstruction(String target, String data)
          Receive notification of a processing instruction.
 void setEntityResolver(EntityResolver resolver)
           
 void setValidating(boolean validating)
           
 void skippedEntity(String name)
          Receive notification of a skipped entity.
 void startCDATA()
          Report the start of a CDATA section.
 void startDTD(String name, String publicId, String systemId)
          Report the start of DTD declarations, if any.
 void startElement(String namespaceUri, String localName, String qname, Attributes attributes)
          Receive notification of the beginning of an element.
 void startEntity(String name)
          Report the beginning of some internal and external XML entities.
 void startPrefixMapping(String prefix, String uri)
          Begin the scope of a prefix-URI Namespace mapping.
 
Methods inherited from class jd.xml.xpath.model.parse.SaxParseHandler
characters, endDocument, getInputSource, getLineNumber, ignorableWhitespace, notationDecl, setDocumentLocator, startDocument, unparsedEntityDecl
 
Methods inherited from class jd.xml.xpath.model.parse.ParseHandler
flushTextNode, getNodeName, getNodeName, parse, popPreserveWhitespace, pushPreserveWhitespace
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
characters, endDocument, ignorableWhitespace, setDocumentLocator, startDocument
 

Constructor Detail

Sax2ParseHandler

protected Sax2ParseHandler()

Sax2ParseHandler

public Sax2ParseHandler(XMLReader xmlReader)
                 throws SAXException
Method Detail

getParser

public Object getParser()
Specified by:
getParser in class ParseHandler

setValidating

public void setValidating(boolean validating)
Specified by:
setValidating in class ParseHandler

isValidating

public boolean isValidating()
Specified by:
isValidating in class ParseHandler

setEntityResolver

public void setEntityResolver(EntityResolver resolver)
Specified by:
setEntityResolver in class ParseHandler

getEntityResolver

public EntityResolver getEntityResolver()
Specified by:
getEntityResolver in class ParseHandler

parse

protected void parse(XmlSource source)
              throws Exception
Specified by:
parse in class ParseHandler
Throws:
Exception

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
Begin the scope of a prefix-URI Namespace mapping.

Specified by:
startPrefixMapping in interface ContentHandler
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
See Also:
ContentHandler.endPrefixMapping(java.lang.String), ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)

endPrefixMapping

public void endPrefixMapping(String prefix)
End the scope of a prefix-URI mapping.

Specified by:
endPrefixMapping in interface ContentHandler
Parameters:
prefix - The prefix that was being mapping.
See Also:
ContentHandler.startPrefixMapping(java.lang.String, java.lang.String), ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)

startElement

public void startElement(String namespaceUri,
                         String localName,
                         String qname,
                         Attributes attributes)
                  throws SAXException
Receive notification of the beginning of an element.

Specified by:
startElement in interface ContentHandler
Parameters:
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
qname - The qualified name (with prefix), or the empty string if qualified names are not available.
attributes - The attributes attached to the element. If there are no attributes, it shall be an empty Attributes object.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.
See Also:
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String), Attributes

endElement

public void endElement(String namespaceURI,
                       String localName,
                       String qname)
                throws SAXException
Receive notification of the end of an element.

Specified by:
endElement in interface ContentHandler
Parameters:
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
qname - The qualified XML 1.0 name (with prefix), or the empty string if qualified names are not available.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.

skippedEntity

public void skippedEntity(String name)
Receive notification of a skipped entity.

Specified by:
skippedEntity in interface ContentHandler
Parameters:
name - The name of the skipped entity. If it is a parameter entity, the name will begin with '%', and if it is the external DTD subset, it will be the string "[dtd]".

processingInstruction

public void processingInstruction(String target,
                                  String data)
                           throws SAXException
Description copied from interface: ContentHandler
Receive notification of a processing instruction.

The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.

A SAX parser must never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.

Specified by:
processingInstruction in interface ContentHandler
Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none was supplied. The data does not include any whitespace separating it from the target.
Throws:
SAXException - Any SAX exception, possibly wrapping another exception.

startDTD

public void startDTD(String name,
                     String publicId,
                     String systemId)
Description copied from interface: LexicalHandler
Report the start of DTD declarations, if any.

This method is intended to report the beginning of the DOCTYPE declaration; if the document has no DOCTYPE declaration, this method will not be invoked.

All declarations reported through DTDHandler or DeclHandler events must appear between the startDTD and endDTD events. Declarations are assumed to belong to the internal DTD subset unless they appear between startEntity and endEntity events. Comments and processing instructions from the DTD should also be reported between the startDTD and endDTD events, in their original order of (logical) occurrence; they are not required to appear in their correct locations relative to DTDHandler or DeclHandler events, however.

Note that the start/endDTD events will appear within the start/endDocument events from ContentHandler and before the first startElement event.

Specified by:
startDTD in interface LexicalHandler
Parameters:
name - The document type name.
publicId - The declared public identifier for the external DTD subset, or null if none was declared.
systemId - The declared system identifier for the external DTD subset, or null if none was declared.
See Also:
LexicalHandler.endDTD(), LexicalHandler.startEntity(java.lang.String)

endDTD

public void endDTD()
            throws SAXException
Description copied from interface: LexicalHandler
Report the end of DTD declarations.

This method is intended to report the end of the DOCTYPE declaration; if the document has no DOCTYPE declaration, this method will not be invoked.

Specified by:
endDTD in interface LexicalHandler
Throws:
SAXException - The application may raise an exception.
See Also:
LexicalHandler.startDTD(java.lang.String, java.lang.String, java.lang.String)

startEntity

public void startEntity(String name)
Description copied from interface: LexicalHandler
Report the beginning of some internal and external XML entities.

The reporting of parameter entities (including the external DTD subset) is optional, and SAX2 drivers that support LexicalHandler may not support it; you can use the http://xml.org/sax/features/lexical-handler/parameter-entities feature to query or control the reporting of parameter entities.

General entities are reported with their regular names, parameter entities have '%' prepended to their names, and the external DTD subset has the pseudo-entity name "[dtd]".

When a SAX2 driver is providing these events, all other events must be properly nested within start/end entity events. There is no additional requirement that events from DeclHandler or DTDHandler be properly ordered.

Note that skipped entities will be reported through the skippedEntity event, which is part of the ContentHandler interface.

Because of the streaming event model that SAX uses, some entity boundaries cannot be reported under any circumstances:

These will be silently expanded, with no indication of where the original entity boundaries were.

Note also that the boundaries of character references (which are not really entities anyway) are not reported.

All start/endEntity events must be properly nested.

Specified by:
startEntity in interface LexicalHandler
Parameters:
name - The name of the entity. If it is a parameter entity, the name will begin with '%', and if it is the external DTD subset, it will be "[dtd]".
See Also:
LexicalHandler.endEntity(java.lang.String), DeclHandler.internalEntityDecl(java.lang.String, java.lang.String), DeclHandler.externalEntityDecl(java.lang.String, java.lang.String, java.lang.String)

endEntity

public void endEntity(String name)
Description copied from interface: LexicalHandler
Report the end of an entity.

Specified by:
endEntity in interface LexicalHandler
Parameters:
name - The name of the entity that is ending.
See Also:
LexicalHandler.startEntity(java.lang.String)

startCDATA

public void startCDATA()
Description copied from interface: LexicalHandler
Report the start of a CDATA section.

The contents of the CDATA section will be reported through the regular characters event; this event is intended only to report the boundary.

Specified by:
startCDATA in interface LexicalHandler
See Also:
LexicalHandler.endCDATA()

endCDATA

public void endCDATA()
Description copied from interface: LexicalHandler
Report the end of a CDATA section.

Specified by:
endCDATA in interface LexicalHandler
See Also:
LexicalHandler.startCDATA()

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws SAXException
Description copied from interface: LexicalHandler
Report an XML comment anywhere in the document.

This callback will be used for comments inside or outside the document element, including comments in the external DTD subset (if read). Comments in the DTD must be properly nested inside start/endDTD and start/endEntity events (if used).

Specified by:
comment in interface LexicalHandler
Parameters:
ch - An array holding the characters in the comment.
start - The starting position in the array.
length - The number of characters to use from the array.
Throws:
SAXException - The application may raise an exception.