com.caucho.xml
Class XmlParser

java.lang.Object
  |
  +--com.caucho.xml.XmlParser
All Implemented Interfaces:
org.xml.sax.Locator, org.xml.sax.Parser
Direct Known Subclasses:
Html, LooseHtml, LooseXml, Xml

public class XmlParser
extends java.lang.Object
implements org.xml.sax.Parser, org.xml.sax.Locator

A configurable XML parser. Loose versions of XML and HTML are supported by changing the Policy object.


Constructor Summary
XmlParser()
           
 
Method Summary
 int getColumnNumber()
          Return the column number where the current document event ends.
 Document getDocument()
           
 int getLineNumber()
          Return the line number where the current document event ends.
 java.lang.String getPublicId()
          Return the public identifier for the current document event.
 java.lang.String getSystemId()
          Return the system identifier for the current document event.
 void parse(org.xml.sax.InputSource source)
          Parse an XML document.
 Document parse(java.io.InputStream is)
           
 Document parse(Path path)
           
 Document parse(ReadStream is)
           
 void parse(java.lang.String systemId)
          Parse an XML document from a system identifier (URI).
 Document parseInt(ReadStream is)
          Parse the document from a read stream.
 void setAutodetectXml(boolean autodetectXml)
           
 void setDocumentHandler(org.xml.sax.DocumentHandler handler)
          Allow an application to register a document event handler.
 void setDTDHandler(org.xml.sax.DTDHandler handler)
          Allow an application to register a DTD event handler.
 void setEntitiesAsText(boolean entitiesAsText)
           
 void setEntityResolver(org.xml.sax.EntityResolver resolver)
          Allow an application to register a custom entity resolver.
 void setErrorHandler(org.xml.sax.ErrorHandler handler)
          Allow an application to register an error event handler.
 void setExpandEntities(boolean expandEntities)
           
 void setLocale(java.util.Locale locale)
          Allow an application to request a locale for errors and warnings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XmlParser

public XmlParser()
Method Detail

setEntitiesAsText

public void setEntitiesAsText(boolean entitiesAsText)

setExpandEntities

public void setExpandEntities(boolean expandEntities)

setAutodetectXml

public void setAutodetectXml(boolean autodetectXml)

setEntityResolver

public void setEntityResolver(org.xml.sax.EntityResolver resolver)
Description copied from interface: org.xml.sax.Parser
Allow an application to register a custom entity resolver.

If the application does not register an entity resolver, the SAX parser will resolve system identifiers and open connections to entities itself (this is the default behaviour implemented in HandlerBase).

Applications may register a new or different entity resolver in the middle of a parse, and the SAX parser must begin using the new resolver immediately.

Specified by:
setEntityResolver in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
resolver - The object for resolving entities.
See Also:
EntityResolver, HandlerBase

setDTDHandler

public void setDTDHandler(org.xml.sax.DTDHandler handler)
Description copied from interface: org.xml.sax.Parser
Allow an application to register a DTD event handler.

If the application does not register a DTD handler, all DTD events reported by the SAX parser will be silently ignored (this is the default behaviour implemented by HandlerBase).

Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

Specified by:
setDTDHandler in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
handler - The DTD handler.
See Also:
DTDHandler, HandlerBase

setDocumentHandler

public void setDocumentHandler(org.xml.sax.DocumentHandler handler)
Description copied from interface: org.xml.sax.Parser
Allow an application to register a document event handler.

If the application does not register a document handler, all document events reported by the SAX parser will be silently ignored (this is the default behaviour implemented by HandlerBase).

Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

Specified by:
setDocumentHandler in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
handler - The document handler.
See Also:
DocumentHandler, HandlerBase

setErrorHandler

public void setErrorHandler(org.xml.sax.ErrorHandler handler)
Description copied from interface: org.xml.sax.Parser
Allow an application to register an error event handler.

If the application does not register an error event handler, all error events reported by the SAX parser will be silently ignored, except for fatalError, which will throw a SAXException (this is the default behaviour implemented by HandlerBase).

Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

Specified by:
setErrorHandler in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
handler - The error handler.
See Also:
ErrorHandler, SAXException, HandlerBase

setLocale

public void setLocale(java.util.Locale locale)
Description copied from interface: org.xml.sax.Parser
Allow an application to request a locale for errors and warnings.

SAX parsers are not required to provide localisation for errors and warnings; if they cannot support the requested locale, however, they must throw a SAX exception. Applications may not request a locale change in the middle of a parse.

Specified by:
setLocale in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
locale - A Java Locale object.
Throws:
org.xml.sax.SAXException - Throws an exception (using the previous or default locale) if the requested locale is not supported.
See Also:
SAXException, SAXParseException

getDocument

public Document getDocument()

parse

public void parse(org.xml.sax.InputSource source)
           throws java.io.IOException
Description copied from interface: org.xml.sax.Parser
Parse an XML document.

The application can use this method to instruct the SAX parser to begin parsing an XML document from any valid input source (a character stream, a byte stream, or a URI).

Applications may not invoke this method while a parse is in progress (they should create a new Parser instead for each additional XML document). Once a parse is complete, an application may reuse the same Parser object, possibly with a different input source.

Specified by:
parse in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
source - The input source for the top-level of the XML document.
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
java.io.IOException - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.
See Also:
InputSource, Parser.parse(java.lang.String), Parser.setEntityResolver(org.xml.sax.EntityResolver), Parser.setDTDHandler(org.xml.sax.DTDHandler), Parser.setDocumentHandler(org.xml.sax.DocumentHandler), Parser.setErrorHandler(org.xml.sax.ErrorHandler)

parse

public void parse(java.lang.String systemId)
           throws java.io.IOException,
                  org.xml.sax.SAXException
Description copied from interface: org.xml.sax.Parser
Parse an XML document from a system identifier (URI).

This method is a shortcut for the common case of reading a document from a system identifier. It is the exact equivalent of the following:

 parse(new InputSource(systemId));
 

If the system identifier is a URL, it must be fully resolved by the application before it is passed to the parser.

Specified by:
parse in interface org.xml.sax.Parser
Following copied from interface: org.xml.sax.Parser
Parameters:
systemId - The system identifier (URI).
Throws:
org.xml.sax.SAXException - Any SAX exception, possibly wrapping another exception.
java.io.IOException - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.
See Also:
Parser.parse(org.xml.sax.InputSource)

parse

public Document parse(Path path)
               throws java.io.IOException

parse

public Document parse(java.io.InputStream is)
               throws java.io.IOException

parse

public Document parse(ReadStream is)
               throws java.io.IOException

parseInt

public Document parseInt(ReadStream is)
                  throws java.io.IOException,
                         org.xml.sax.SAXException
Parse the document from a read stream.
Parameters:
is - read stream to parse from.
Returns:
The parsed document.

getPublicId

public java.lang.String getPublicId()
Description copied from interface: org.xml.sax.Locator
Return the public identifier for the current document event.

This will be the public identifier

Specified by:
getPublicId in interface org.xml.sax.Locator
Following copied from interface: org.xml.sax.Locator
Returns:
A string containing the public identifier, or null if none is available.
See Also:
Locator.getSystemId()

getSystemId

public java.lang.String getSystemId()
Description copied from interface: org.xml.sax.Locator
Return the system identifier for the current document event.

If the system identifier is a URL, the parser must resolve it fully before passing it to the application.

Specified by:
getSystemId in interface org.xml.sax.Locator
Following copied from interface: org.xml.sax.Locator
Returns:
A string containing the system identifier, or null if none is available.
See Also:
Locator.getPublicId()

getLineNumber

public int getLineNumber()
Description copied from interface: org.xml.sax.Locator
Return the line number where the current document event ends. Note that this is the line position of the first character after the text associated with the document event.
Specified by:
getLineNumber in interface org.xml.sax.Locator
Following copied from interface: org.xml.sax.Locator
Returns:
The line number, or -1 if none is available.
See Also:
Locator.getColumnNumber()

getColumnNumber

public int getColumnNumber()
Description copied from interface: org.xml.sax.Locator
Return the column number where the current document event ends. Note that this is the column number of the first character after the text associated with the document event. The first column in a line is position 1.
Specified by:
getColumnNumber in interface org.xml.sax.Locator
Following copied from interface: org.xml.sax.Locator
Returns:
The column number, or -1 if none is available.
See Also:
Locator.getLineNumber()