org.geotools.xml
Class Parser

Object
  extended by Parser

public class Parser
extends Object

GeoTools XML parser.

This parser uses a sax based driver to parse an input stream into a single object. For streaming look at StreamingParser. If the source document being parsed as already been parsed into a Document the DOMParser class may be used.

Schema Resolution

See Configuration javadocs for instructions on how to customize schema resolution. This is often desirable in the case that the instance document being parsed contains invalid uri's in schema imports and includes.

Author:
Justin Deoliveira, The Open Planning Project

Nested Class Summary
static interface Parser.Properties
          Deprecated.  
 
Constructor Summary
Parser(Configuration configuration)
          Creats a new instance of the parser.
Parser(Configuration configuration, InputStream input)
          Deprecated. use Parser(Configuration) and parse(InputStream).
Parser(Configuration configuration, String input)
          Deprecated. use Parser(Configuration) and parse(InputStream).
 
Method Summary
 EntityResolver getEntityResolver()
          Get EntityResolver
 NamespaceSupport getNamespaces()
          Returns the namespace mappings maintained by the parser.
 QName getRootElementType()
          The type name of the root element being parsed.
 XSDSchema[] getSchemas()
          Returns the schema objects referenced by the instance document being parsed.
 List<URIHandler> getURIHandlers()
          Returns the list of URIHandler used when parsing schemas.
 List getValidationErrors()
          Returns a list of any validation errors that occured while parsing.
 boolean isFailOnValidationError()
           
 boolean isForceParserDelegate()
          Flag that forces of the check for ParserDelegate even in cases where an element can be parsed normally.
 boolean isHandleMixedContent()
          Flag that controls whether the parser will process mixed content in a way that preserves order of child elements and text.
 boolean isValidating()
           
 Object parse()
          Deprecated. use parse(InputStream)
 Object parse(InputSource source)
          Parses an instance documented defined by a sax input source.
 Object parse(InputStream input)
          Parses an instance documented defined by an input stream.
 Object parse(Reader reader)
          Parses an instance documented defined by a reader.
 Object parse(Source source)
          Parses an instance document defined by a transformer source.
protected  SAXParser parser()
           
protected  SAXParser parser(boolean validate)
           
 void setEntityResolver(EntityResolver entityResolver)
          Set EntityResolver
 void setFailOnValidationError(boolean fail)
          Sets the flag which controls how the parser handles validation errors.
 void setForceParserDelegate(boolean forceParserDelegate)
          Sets Flag that forces of the check for ParserDelegate even in cases where an element can be parsed normally.
 void setHandleMixedContent(boolean handleMixedContent)
          Sets flag that controls whether the parser will process mixed content in a way that preserves order of child elements and text.
 void setRootElementType(QName typeName)
          Informs the parser of the type of the root element to be used in cases where it can not be inferred.
 void setStrict(boolean strict)
          Sets the strict parsing flag.
 void setValidating(boolean validating)
          Sets the flag controlling wether the parser should validate or not.
 void validate(InputSource source)
          Validates an instance document defined by a input source.
 void validate(InputStream in)
          Validates an instance document defined by a input stream.
 void validate(Reader reader)
          Validates an instance document defined by a reader.
 
Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Parser

public Parser(Configuration configuration)
Creats a new instance of the parser.

Parameters:
configuration - The parser configuration, bindings and context, must never be null.

Parser

public Parser(Configuration configuration,
              String input)
       throws IOException,
              URISyntaxException
Deprecated. use Parser(Configuration) and parse(InputStream).

Creates a new instance of the parser.

Parameters:
configuration - Object representing the configuration of the parser.
input - A uri representing the instance document to be parsed.
Throws:
ParserConfigurationException
SAXException - If a sax parser can not be created.
URISyntaxException - If input is not a valid uri.
IOException

Parser

public Parser(Configuration configuration,
              InputStream input)
Deprecated. use Parser(Configuration) and parse(InputStream).

Creates a new instance of the parser.

Parameters:
configuration - Object representing the configuration of the parser.
input - The stream representing the instance document to be parsed.
Method Detail

parse

public Object parse()
             throws IOException,
                    SAXException,
                    ParserConfigurationException
Deprecated. use parse(InputStream)

Signals the parser to parse the entire instance document. The object returned from the parse is the object which has been bound to the root element of the document. This method should only be called once for a single instance document.

Returns:
The object representation of the root element of the document.
Throws:
IOException
SAXException
ParserConfigurationException

parse

public Object parse(InputStream input)
             throws IOException,
                    SAXException,
                    ParserConfigurationException
Parses an instance documented defined by an input stream.

The object returned from the parse is the object which has been bound to the root element of the document. This method should only be called once for a single instance document.

Returns:
The object representation of the root element of the document.
Throws:
IOException
SAXException
ParserConfigurationException

parse

public Object parse(Reader reader)
             throws IOException,
                    SAXException,
                    ParserConfigurationException
Parses an instance documented defined by a reader.

The object returned from the parse is the object which has been bound to the root element of the document. This method should only be called once for a single instance document.

Returns:
The object representation of the root element of the document.
Throws:
IOException
SAXException
ParserConfigurationException

parse

public Object parse(Source source)
             throws IOException,
                    SAXException,
                    ParserConfigurationException,
                    TransformerException
Parses an instance document defined by a transformer source.

Note: Currently this method reads the entire source into memory in order to validate it. If large documents must be parsed one of {@link #

Parameters:
source - THe source of the instance document.
Returns:
@return The object representation of the root element of the document.
Throws:
IOException
SAXException
ParserConfigurationException
TransformerException
Since:
2.6

parse

public Object parse(InputSource source)
             throws IOException,
                    SAXException,
                    ParserConfigurationException
Parses an instance documented defined by a sax input source.

The object returned from the parse is the object which has been bound to the root element of the document. This method should only be called once for a single instance document.

Returns:
The object representation of the root element of the document.
Throws:
IOException
SAXException
ParserConfigurationException

setStrict

public void setStrict(boolean strict)
Sets the strict parsing flag.

When set to true, this will cause the parser to operate in a strict mode, which means that xml being parsed must be exactly correct with respect to the schema it references.

Some examples of cases in which the parser will throw an exception while operating in strict mode:

Parameters:
strict - The strict flag.

setValidating

public void setValidating(boolean validating)
Sets the flag controlling wether the parser should validate or not.

Parameters:
validating - Validation flag, true to validate, otherwise false

isValidating

public boolean isValidating()
Returns:
Flag determining if the parser is validatin or not.

setFailOnValidationError

public void setFailOnValidationError(boolean fail)
Sets the flag which controls how the parser handles validation errors.

When this flag is set, the parser will throw an exception when it encounters a validation error. Otherise the error will be stored, retreivable from getValidationErrors().

The default behavior is to set this flag to false. So client code should explicitly set this flag if it is desired that the exception be thrown when the validation error occurs.

Parameters:
fail - failure flag, true to fail, otherwise false

isFailOnValidationError

public boolean isFailOnValidationError()
Returns:
The flag determining how the parser deals with validation errors.

setHandleMixedContent

public void setHandleMixedContent(boolean handleMixedContent)
Sets flag that controls whether the parser will process mixed content in a way that preserves order of child elements and text.

Since:
2.7

isHandleMixedContent

public boolean isHandleMixedContent()
Flag that controls whether the parser will process mixed content in a way that preserves order of child elements and text.

By default the parser will simply concatenate blindly all child text and not preserve order with respect to other elements within a mixed content type.

Since:
2.7

setForceParserDelegate

public void setForceParserDelegate(boolean forceParserDelegate)
Sets Flag that forces of the check for ParserDelegate even in cases where an element can be parsed normally.

Since:
8.0
See Also:
isForceParserDelegate()

isForceParserDelegate

public boolean isForceParserDelegate()
Flag that forces of the check for ParserDelegate even in cases where an element can be parsed normally.

By default the parser will only lookup parser delegates when the element is unrecognized with regard to the schema and can't be parsed normally.

Since:
8.0

setEntityResolver

public void setEntityResolver(EntityResolver entityResolver)
Set EntityResolver

Parameters:
entityResolver -

getEntityResolver

public EntityResolver getEntityResolver()
Get EntityResolver

Returns:
entityResolver

setRootElementType

public void setRootElementType(QName typeName)
Informs the parser of the type of the root element to be used in cases where it can not be inferred.

This method is used in cases where the element being parsed is not declared as global in the schema.

Parameters:
typeName - The type name of the root element.
Since:
8.0

getRootElementType

public QName getRootElementType()
The type name of the root element being parsed.

See Also:
setRootElementType(QName)

getValidationErrors

public List getValidationErrors()
Returns a list of any validation errors that occured while parsing.

Returns:
A list of errors, or an empty list if none.

validate

public void validate(InputStream in)
              throws IOException,
                     SAXException,
                     ParserConfigurationException
Validates an instance document defined by a input stream.

Clients should call getValidationErrors() after this method to retrieve any validation errors that occurred. Clients do not need to call setValidating(boolean) when using this method to validate.

This method does not do any of the work done by parse(InputSource), it only validates.

Throws:
IOException
SAXException
ParserConfigurationException

validate

public void validate(Reader reader)
              throws IOException,
                     SAXException,
                     ParserConfigurationException
Validates an instance document defined by a reader.

Clients should call getValidationErrors() after this method to retrieve any validation errors that occurred. Clients do not need to call setValidating(boolean) when using this method to validate.

This method does not do any of the work done by parse(InputSource), it only validates.

Throws:
IOException
SAXException
ParserConfigurationException

validate

public void validate(InputSource source)
              throws IOException,
                     SAXException,
                     ParserConfigurationException
Validates an instance document defined by a input source.

Clients should call getValidationErrors() after this method to retrieve any validation errors that occurred. Clients do not need to call setValidating(boolean) when using this method to validate.

This method does not do any of the work done by parse(InputSource), it only validates.

Throws:
IOException
SAXException
ParserConfigurationException

getSchemas

public XSDSchema[] getSchemas()
Returns the schema objects referenced by the instance document being parsed. This method can only be called after a successful parse has begun.

Returns:
The schema objects used to parse the document, or null if parsing has not commenced.

getNamespaces

public NamespaceSupport getNamespaces()
Returns the namespace mappings maintained by the parser.

Clients may register additional namespace mappings. This is useful when an application whishes to provide some "default" namespace mappings.

Clients should register namespace mappings in the current "context", ie do not call NamespaceSupport.pushContext(). Example: Parser parser = new Parser( ... ); parser.getNamespaces().declarePrefix( "foo", "http://www.foo.com" ); ...

Returns:
The namespace support containing prefix to uri mappings.
Since:
2.4

getURIHandlers

public List<URIHandler> getURIHandlers()
Returns the list of URIHandler used when parsing schemas.

URI handlers are invoked to handle external references that occur during parsing.

Since:
2.7

parser

protected SAXParser parser()
                    throws ParserConfigurationException,
                           SAXException
Throws:
ParserConfigurationException
SAXException

parser

protected SAXParser parser(boolean validate)
                    throws ParserConfigurationException,
                           SAXException
Throws:
ParserConfigurationException
SAXException


Copyright © 1996-2014 Geotools. All Rights Reserved.