com.icl.saxon.aelfred

Class XmlParser

final class XmlParser extends Object

Parse XML documents and return parse events through call-backs. Use the SAXDriver class as your entry point, as the internal parser interfaces are subject to change.

Version: $Date: 2001/06/06 17:57:44 $

Author: Written by David Megginson <dmeggins@microstar.com> (version 1.2a with bugfixes) Updated by David Brownell <david-b@pacbell.net>

See Also: SAXDriver

Nested Class Summary
static classXmlParser.EncodingException
Field Summary
static intATTRIBUTE_CDATA
Constant: the attribute value is a string value.
static intATTRIBUTE_DEFAULT_FIXED
Constant: the attribute was declared #FIXED.
static intATTRIBUTE_DEFAULT_IMPLIED
Constant: the attribute was declared #IMPLIED.
static intATTRIBUTE_DEFAULT_REQUIRED
Constant: the attribute was declared #REQUIRED.
static intATTRIBUTE_DEFAULT_SPECIFIED
Constant: the attribute has a literal default value specified.
static intATTRIBUTE_DEFAULT_UNDECLARED
Constant: the attribute is not declared.
static intATTRIBUTE_ENTITIES
Constant: the attribute value is a list of entity names.
static intATTRIBUTE_ENTITY
Constant: the attribute value is the name of an entity.
static intATTRIBUTE_ENUMERATED
Constant: the attribute value is a token from an enumeration.
static intATTRIBUTE_ID
Constant: the attribute value is a unique identifier.
static intATTRIBUTE_IDREF
Constant: the attribute value is a reference to a unique identifier.
static intATTRIBUTE_IDREFS
Constant: the attribute value is a list of ID references.
static intATTRIBUTE_NMTOKEN
Constant: the attribute value is a name token.
static intATTRIBUTE_NMTOKENS
Constant: the attribute value is a list of name tokens.
static intATTRIBUTE_NOTATION
Constant: the attribute is the name of a notation.
static intATTRIBUTE_UNDECLARED
Constant: the attribute has not been declared for this element type.
static intCONTENT_ANY
Constant: the element has a content model of ANY.
static intCONTENT_ELEMENTS
Constant: the element has element content.
static intCONTENT_EMPTY
Constant: the element has declared content of EMPTY.
static intCONTENT_MIXED
Constant: the element has mixed content.
static intCONTENT_UNDECLARED
Constant: an element has not been declared.
static intENTITY_INTERNAL
Constant: the entity is internal.
static intENTITY_NDATA
Constant: the entity is external, non-parseable data.
static intENTITY_TEXT
Constant: the entity is external XML data.
static intENTITY_UNDECLARED
Constant: the entity has not been declared.
Constructor Summary
XmlParser()
Construct a new parser with no associated handler.
Method Summary
EnumerationdeclaredAttributes(String elname)
Get the declared attributes for an element type.
EnumerationdeclaredElements()
Get the declared elements for an XML document.
EnumerationdeclaredEntities()
Get declared entities.
EnumerationdeclaredNotations()
Get declared notations.
voiddoParse(String systemId, String publicId, Reader reader, InputStream stream, String encoding)
Parse an XML document from the character stream, byte stream, or URI that you provide (in that order of preference).
StringgetAttributeDefaultValue(String name, String aname)
Retrieve the default value of a declared attribute.
intgetAttributeDefaultValueType(String name, String aname)
Retrieve the default value type of a declared attribute.
StringgetAttributeEnumeration(String name, String aname)
Retrieve the allowed values for an enumerated attribute type.
StringgetAttributeExpandedValue(String name, String aname)
Retrieve the expanded value of a declared attribute.
intgetAttributeType(String name, String aname)
Retrieve the declared type of an attribute.
intgetColumnNumber()
Return the current column number.
StringgetElementContentModel(String name)
Look up the content model of an element.
intgetElementContentType(String name)
Look up the content type of an element.
StringgetEntityNotationName(String eName)
Get the notation name associated with an NDATA entity.
StringgetEntityPublicId(String ename)
Return an external entity's public identifier, if any.
StringgetEntitySystemId(String ename)
Return an external entity's system identifier.
intgetEntityType(String ename)
Find the type of an entity.
StringgetEntityValue(String ename)
Return the value of an internal entity.
intgetLineNumber()
Return the current line number.
StringgetNotationPublicId(String nname)
Look up the public identifier for a notation.
StringgetNotationSystemId(String nname)
Look up the system identifier for a notation.
Stringintern(char[] ch, int start, int length)
Create an interned string from a character array.
voidsetHandler(SAXDriver handler)
Set the handler that will receive parsing events.

Field Detail

ATTRIBUTE_CDATA

public static final int ATTRIBUTE_CDATA
Constant: the attribute value is a string value.

See Also: XmlParser

ATTRIBUTE_DEFAULT_FIXED

public static final int ATTRIBUTE_DEFAULT_FIXED
Constant: the attribute was declared #FIXED.

See Also: XmlParser XmlParser

ATTRIBUTE_DEFAULT_IMPLIED

public static final int ATTRIBUTE_DEFAULT_IMPLIED
Constant: the attribute was declared #IMPLIED.

See Also: XmlParser

ATTRIBUTE_DEFAULT_REQUIRED

public static final int ATTRIBUTE_DEFAULT_REQUIRED
Constant: the attribute was declared #REQUIRED.

See Also: XmlParser

ATTRIBUTE_DEFAULT_SPECIFIED

public static final int ATTRIBUTE_DEFAULT_SPECIFIED
Constant: the attribute has a literal default value specified.

See Also: XmlParser XmlParser

ATTRIBUTE_DEFAULT_UNDECLARED

public static final int ATTRIBUTE_DEFAULT_UNDECLARED
Constant: the attribute is not declared.

See Also: XmlParser

ATTRIBUTE_ENTITIES

public static final int ATTRIBUTE_ENTITIES
Constant: the attribute value is a list of entity names.

See Also: XmlParser

ATTRIBUTE_ENTITY

public static final int ATTRIBUTE_ENTITY
Constant: the attribute value is the name of an entity.

See Also: XmlParser

ATTRIBUTE_ENUMERATED

public static final int ATTRIBUTE_ENUMERATED
Constant: the attribute value is a token from an enumeration.

See Also: XmlParser

ATTRIBUTE_ID

public static final int ATTRIBUTE_ID
Constant: the attribute value is a unique identifier.

See Also: XmlParser

ATTRIBUTE_IDREF

public static final int ATTRIBUTE_IDREF
Constant: the attribute value is a reference to a unique identifier.

See Also: XmlParser

ATTRIBUTE_IDREFS

public static final int ATTRIBUTE_IDREFS
Constant: the attribute value is a list of ID references.

See Also: XmlParser

ATTRIBUTE_NMTOKEN

public static final int ATTRIBUTE_NMTOKEN
Constant: the attribute value is a name token.

See Also: XmlParser

ATTRIBUTE_NMTOKENS

public static final int ATTRIBUTE_NMTOKENS
Constant: the attribute value is a list of name tokens.

See Also: XmlParser

ATTRIBUTE_NOTATION

public static final int ATTRIBUTE_NOTATION
Constant: the attribute is the name of a notation.

See Also: XmlParser

ATTRIBUTE_UNDECLARED

public static final int ATTRIBUTE_UNDECLARED
Constant: the attribute has not been declared for this element type.

See Also: XmlParser

CONTENT_ANY

public static final int CONTENT_ANY
Constant: the element has a content model of ANY.

See Also: XmlParser

CONTENT_ELEMENTS

public static final int CONTENT_ELEMENTS
Constant: the element has element content.

See Also: XmlParser

CONTENT_EMPTY

public static final int CONTENT_EMPTY
Constant: the element has declared content of EMPTY.

See Also: XmlParser

CONTENT_MIXED

public static final int CONTENT_MIXED
Constant: the element has mixed content.

See Also: XmlParser

CONTENT_UNDECLARED

public static final int CONTENT_UNDECLARED
Constant: an element has not been declared.

See Also: XmlParser

ENTITY_INTERNAL

public static final int ENTITY_INTERNAL
Constant: the entity is internal.

See Also: XmlParser

ENTITY_NDATA

public static final int ENTITY_NDATA
Constant: the entity is external, non-parseable data.

See Also: XmlParser

ENTITY_TEXT

public static final int ENTITY_TEXT
Constant: the entity is external XML data.

See Also: XmlParser

ENTITY_UNDECLARED

public static final int ENTITY_UNDECLARED
Constant: the entity has not been declared.

See Also: XmlParser

Constructor Detail

XmlParser

XmlParser()
Construct a new parser with no associated handler.

See Also: XmlParser XmlParser

Method Detail

declaredAttributes

public Enumeration declaredAttributes(String elname)
Get the declared attributes for an element type.

Parameters: elname The name of the element type.

Returns: An Enumeration of all the attributes declared for a specific element type. The results will be valid only after the DTD (if any) has been parsed.

See Also: XmlParser XmlParser XmlParser XmlParser XmlParser

declaredElements

public Enumeration declaredElements()
Get the declared elements for an XML document.

The results will be valid only after the DTD (if any) has been parsed.

Returns: An enumeration of all element types declared for this document (as Strings).

See Also: XmlParser XmlParser

declaredEntities

public Enumeration declaredEntities()
Get declared entities.

Returns: An Enumeration of all the entities declared for this XML document. The results will be valid only after the DTD (if any) has been parsed.

See Also: XmlParser XmlParser XmlParser XmlParser XmlParser

declaredNotations

public Enumeration declaredNotations()
Get declared notations.

Returns: An Enumeration of all the notations declared for this XML document. The results will be valid only after the DTD (if any) has been parsed.

See Also: XmlParser XmlParser

doParse

void doParse(String systemId, String publicId, Reader reader, InputStream stream, String encoding)
Parse an XML document from the character stream, byte stream, or URI that you provide (in that order of preference). Any URI that you supply will become the base URI for resolving relative URI, and may be used to acquire a reader or byte stream.

You may parse more than one document, but that must be done sequentially. Only one thread at a time may use this parser.

Parameters: systemId The URI of the document; should never be null, but may be so iff a reader or a stream is provided. publicId The public identifier of the document, or null. reader A character stream; must be null if stream isn't. stream A byte input stream; must be null if reader isn't. encoding The suggested encoding, or null if unknown.

Throws: java.lang.Exception Basically SAXException or IOException

getAttributeDefaultValue

public String getAttributeDefaultValue(String name, String aname)
Retrieve the default value of a declared attribute.

Parameters: name The name of the associated element. aname The name of the attribute.

Returns: The default value, or null if the attribute was #IMPLIED or simply undeclared and unspecified.

See Also: XmlParser

getAttributeDefaultValueType

public int getAttributeDefaultValueType(String name, String aname)
Retrieve the default value type of a declared attribute.

See Also: ATTRIBUTE_DEFAULT_SPECIFIED ATTRIBUTE_DEFAULT_IMPLIED ATTRIBUTE_DEFAULT_REQUIRED ATTRIBUTE_DEFAULT_FIXED

getAttributeEnumeration

public String getAttributeEnumeration(String name, String aname)
Retrieve the allowed values for an enumerated attribute type.

Parameters: name The name of the associated element. aname The name of the attribute.

Returns: A string containing the token list.

See Also: ATTRIBUTE_ENUMERATED ATTRIBUTE_NOTATION

getAttributeExpandedValue

public String getAttributeExpandedValue(String name, String aname)
Retrieve the expanded value of a declared attribute.

General entities (and char refs) will be expanded (once).

Parameters: name The name of the associated element. aname The name of the attribute.

Returns: The expanded default value, or null if the attribute was #IMPLIED or simply undeclared

See Also: XmlParser

getAttributeType

public int getAttributeType(String name, String aname)
Retrieve the declared type of an attribute.

Parameters: name The name of the associated element. aname The name of the attribute.

Returns: An integer constant representing the attribute type.

See Also: ATTRIBUTE_UNDECLARED ATTRIBUTE_CDATA ATTRIBUTE_ID ATTRIBUTE_IDREF ATTRIBUTE_IDREFS ATTRIBUTE_ENTITY ATTRIBUTE_ENTITIES ATTRIBUTE_NMTOKEN ATTRIBUTE_NMTOKENS ATTRIBUTE_ENUMERATED ATTRIBUTE_NOTATION

getColumnNumber

public int getColumnNumber()
Return the current column number.

getElementContentModel

public String getElementContentModel(String name)
Look up the content model of an element.

The result will always be null unless the content type is CONTENT_ELEMENTS or CONTENT_MIXED.

Parameters: name The element type name.

Returns: The normalised content model, as a string.

See Also: XmlParser

getElementContentType

public int getElementContentType(String name)
Look up the content type of an element.

Parameters: name The element type name.

Returns: An integer constant representing the content type.

See Also: XmlParser CONTENT_UNDECLARED CONTENT_ANY CONTENT_EMPTY CONTENT_MIXED CONTENT_ELEMENTS

getEntityNotationName

public String getEntityNotationName(String eName)
Get the notation name associated with an NDATA entity.

Parameters: ename The NDATA entity name.

Returns: The associated notation name, or null if the entity was not declared, or if it is not an NDATA entity.

See Also: XmlParser

getEntityPublicId

public String getEntityPublicId(String ename)
Return an external entity's public identifier, if any.

Parameters: ename The name of the external entity.

Returns: The entity's system identifier, or null if the entity was not declared, if it is not an external entity, or if no public identifier was provided.

See Also: XmlParser

getEntitySystemId

public String getEntitySystemId(String ename)
Return an external entity's system identifier.

Parameters: ename The name of the external entity.

Returns: The entity's system identifier, or null if the entity was not declared, or if it is not an external entity. Change made by MHK: The system identifier is returned as an absolute URL, resolved relative to the entity it was contained in.

See Also: XmlParser

getEntityType

public int getEntityType(String ename)
Find the type of an entity.

See Also: ENTITY_UNDECLARED ENTITY_INTERNAL ENTITY_NDATA ENTITY_TEXT

UNKNOWN: An integer constant representing the entity type.

getEntityValue

public String getEntityValue(String ename)
Return the value of an internal entity.

Parameters: ename The name of the internal entity.

Returns: The entity's value, or null if the entity was not declared, or if it is not an internal entity.

See Also: XmlParser

getLineNumber

public int getLineNumber()
Return the current line number.

getNotationPublicId

public String getNotationPublicId(String nname)
Look up the public identifier for a notation. You will normally use this method to look up a notation that was provided as an attribute value or for an NDATA entity.

Parameters: nname The name of the notation.

Returns: A string containing the public identifier, or null if none was provided or if no such notation was declared.

See Also: XmlParser

getNotationSystemId

public String getNotationSystemId(String nname)
Look up the system identifier for a notation. You will normally use this method to look up a notation that was provided as an attribute value or for an NDATA entity.

Parameters: nname The name of the notation.

Returns: A string containing the system identifier, or null if no such notation was declared.

See Also: XmlParser

intern

public String intern(char[] ch, int start, int length)
Create an interned string from a character array. Ælfred uses this method to create an interned version of all names and name tokens, so that it can test equality with == instead of String.equals ().

This is much more efficient than constructing a non-interned string first, and then interning it.

Parameters: ch an array of characters for building the string. start the starting position in the array. length the number of characters to place in the string.

Returns: an interned string.

See Also: XmlParser java.lang.String#intern

setHandler

void setHandler(SAXDriver handler)
Set the handler that will receive parsing events.

Parameters: handler The handler to receive callback events.

See Also: XmlParser