public class

XmlHandler

extends Object
java.lang.Object
   ↳ com.google.gdata.wireformats.XmlHandler

Class Overview

XML handler that translates XML content from a wire format into an in-memory representation.

Summary

Fields
protected final Element element Element being parsed.
protected final ElementMetadata<?, ?> metadata Metadata for this element.
protected final Element parentElement Parent element, if non-null the element will be added to the parent after it has been fully parsed.
public String qName This element's QName.
public String value This element's text() value.
protected final ValidationContext vc Validation context, used to accumulate metadata validation errors discovered during parsing.
public String xmlBase The current state of xml:base.
public String xmlLang The current state of xml:lang.
Public Constructors
XmlHandler(ValidationContext vc, Element parent, Element element, ElementMetadata<?, ?> metadata)
Construct an xml parser that will add the element to its parent after parsing is completed.
Public Methods
String getAbsoluteUri(String uriValue)
Utility routine that combines the current state of xml:base with the specified URI to obtain an absolute URI.
Boolean getBooleanAttribute(Attributes attrs, String attrName)
Utility method to return the value of an xsd:boolean attribute.
XmlHandler getChildHandler(QName qName, Attributes attrs, List<XmlNamespace> namespaces)
Default child handler for xml.
Element getElement()
void initializeXmlBlob(XmlBlob xmlBlob, boolean mixedContent, boolean fullTextIndex)
If a derived class wishes to retrieve all unrecognized XML in a blob, it calls this method.
void processAttribute(QName qn, String value)
Called to process an attribute.
void processEndElement()
Called to process this element when the closing tag is encountered.
Protected Methods
Element createChildElement(QName qName, ElementMetadata<?, ?> metadata)
Create a child element for the given name and metadata.
XmlHandler createHandler(QName qName, Element parent, Element child, ElementMetadata<?, ?> metadata)
Hook to allow subclasses to change the type of handler being returned.
ElementMetadata<?, ?> findMetadata(QName qName)
Returns the appropriate metadata to use for the given qualified name.
Boolean parseBooleanValue(String booleanValue)
Utility method to parse provided xsd:boolean value.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

protected final Element element

Element being parsed.

protected final ElementMetadata<?, ?> metadata

Metadata for this element.

protected final Element parentElement

Parent element, if non-null the element will be added to the parent after it has been fully parsed.

public String qName

This element's QName. Used for error reporting.

public String value

This element's text() value.

protected final ValidationContext vc

Validation context, used to accumulate metadata validation errors discovered during parsing.

public String xmlBase

The current state of xml:base. See http://www.cafeconleche.org/books/xmljava/chapters/ch03s03.html for more information.

public String xmlLang

The current state of xml:lang. See http://www.w3.org/TR/REC-xml/#sec-lang-tag for more information.

Public Constructors

public XmlHandler (ValidationContext vc, Element parent, Element element, ElementMetadata<?, ?> metadata)

Construct an xml parser that will add the element to its parent after parsing is completed.

Parameters
vc
parent
element
metadata

Public Methods

public String getAbsoluteUri (String uriValue)

Utility routine that combines the current state of xml:base with the specified URI to obtain an absolute URI.

See http://www.cafeconleche.org/books/xmljava/chapters/ch03s03.html for more information.

Parameters
uriValue URI to be interpreted in the context of xml:base.
Returns
  • Corresponding absolute URI.
Throws
ParseException Invalid URI.

public Boolean getBooleanAttribute (Attributes attrs, String attrName)

Utility method to return the value of an xsd:boolean attribute.

Parameters
attrs Elements attributes to test against.
attrName Attribute name.
Returns
  • the Boolean value if the attribute is present, or null otherwise.
Throws
ParseException if attribute value is not valid xsd:boolean.

public XmlHandler getChildHandler (QName qName, Attributes attrs, List<XmlNamespace> namespaces)

Default child handler for xml. This will parse into a Element if the element has not been declared, otherwise it will parse into the type defined by the metadata.

Parameters
qName Child element's qualified name.
attrs Child element attributes. These attributes will be communicated to the child element handler through its processAttribute(QName, String) method. They are passed here because sometimes the value of some attribute determines the element's content type, so different element handlers may be needed.
namespaces List of namespaces in effect for child element.
Returns
  • Child element handler, or null if the child is unrecognized.
Throws
ParseException if a non-repeating element is repeated, or if the element type requested cannot be created.
IOException from overriding code. Not thrown by the default implementation.

public Element getElement ()

Returns
  • element that was parsed

public void initializeXmlBlob (XmlBlob xmlBlob, boolean mixedContent, boolean fullTextIndex)

If a derived class wishes to retrieve all unrecognized XML in a blob, it calls this method. It must be called in the constructor, in the parent element handler, or in processAttribute(QName, String).

Parameters
xmlBlob Supplies the XML blob that stores the resulting XML.
mixedContent Specifies that the handler accepts mixed content XML.
fullTextIndex Flag indicating whether unrecognized XML should be processed for full-text indexing. If set, the resulting string ready for indexing is stored in XmlBlob#fullText.
Throws
IOException

public void processAttribute (QName qn, String value)

Called to process an attribute. Designed to be overridden by derived classes.

Parameters
qn Attribute's qualified name.
value Attribute value.

public void processEndElement ()

Called to process this element when the closing tag is encountered. The default implementation refuses to accept text() content, unless the handler is configured to accept unrecognized XML with mixed content.

Protected Methods

protected Element createChildElement (QName qName, ElementMetadata<?, ?> metadata)

Create a child element for the given name and metadata.

Parameters
qName
metadata

protected XmlHandler createHandler (QName qName, Element parent, Element child, ElementMetadata<?, ?> metadata)

Hook to allow subclasses to change the type of handler being returned.

Parameters
qName
parent
child
metadata

protected ElementMetadata<?, ?> findMetadata (QName qName)

Returns the appropriate metadata to use for the given qualified name.

Parameters
qName

protected Boolean parseBooleanValue (String booleanValue)

Utility method to parse provided xsd:boolean value.

Parameters
booleanValue Xsd:boolean value to parse
Returns
  • the Boolean value or null
Throws
ParseException if value is not valid xsd:boolean.