org.pentaho.reporting.libraries.xmlns.parser

Class MultiplexRootElementHandler

public class MultiplexRootElementHandler extends RootXmlReadHandler

A root-handler that intercepts the first call to startElement to select a XmlReadHandler based on the XmlDocumentInfo provided by the parser.

Author: Thomas Morgner

Constructor Summary
MultiplexRootElementHandler(ResourceManager manager, ResourceKey source, ResourceKey context, long version, XmlFactoryModule[] rootHandlers)
Creates a new MultiplexRootElementHandler for the given root handler selection.
Method Summary
EntityResolvergetEntityResolver()
Returns the entity resolver used in this handler.
ParserEntityResolvergetParserEntityResolver()
Returns the parent entity resolver used in the element handler.
protected XmlFactoryModule[]getRootHandlers()
Returns all known roothandlers.
XmlFactoryModulegetSelectedRootHandler()
protected voidinterceptFirstStartElement(String originalUri, String localName, String qName, Attributes attributes)
Starts processing an element.
booleanisXmlnsUrisNotAvailable()
Returns, whether the parser resolves namespace-URIs.
voidsetXmlnsUrisNotAvailable(boolean xmlnsUrisNotAvailable)
Sets a hint that the parser will not be able to return URIs for XML-Namespaces.

Constructor Detail

MultiplexRootElementHandler

public MultiplexRootElementHandler(ResourceManager manager, ResourceKey source, ResourceKey context, long version, XmlFactoryModule[] rootHandlers)
Creates a new MultiplexRootElementHandler for the given root handler selection.

Parameters: manager the resource manager that loaded this xml-file. source the source-key that idenfies from where the file was loaded. context the key that should be used to resolve relative paths. version the versioning information for the root-file. rootHandlers the roothandlers, never null.

Method Detail

getEntityResolver

public EntityResolver getEntityResolver()
Returns the entity resolver used in this handler.

Returns: the entity resolver.

getParserEntityResolver

public ParserEntityResolver getParserEntityResolver()
Returns the parent entity resolver used in the element handler. This returns the modifiable entity-resolver backend.

Returns: the entity resolver.

getRootHandlers

protected XmlFactoryModule[] getRootHandlers()
Returns all known roothandlers.

Returns: the known root handlers.

getSelectedRootHandler

public XmlFactoryModule getSelectedRootHandler()

interceptFirstStartElement

protected void interceptFirstStartElement(String originalUri, String localName, String qName, Attributes attributes)
Starts processing an element.

Parameters: originalUri the URI. localName the local name. qName the qName. attributes the attributes.

Throws: SAXException if there is a parsing problem.

isXmlnsUrisNotAvailable

public boolean isXmlnsUrisNotAvailable()
Returns, whether the parser resolves namespace-URIs.

Returns: true, if the parser will *NOT* resolve namespaces, false otherwise.

setXmlnsUrisNotAvailable

public void setXmlnsUrisNotAvailable(boolean xmlnsUrisNotAvailable)
Sets a hint that the parser will not be able to return URIs for XML-Namespaces. You should not see this nowadays, as all the common JAXP-parser implementations seem to work fine with namespaces.

Parameters: xmlnsUrisNotAvailable a flag indicating that the XML parser has troubles resolving namespaces.