org.apache.xerces.xpointer
Class XPointerHandler

java.lang.Object
  extended by org.apache.xerces.xinclude.XIncludeHandler
      extended by org.apache.xerces.xpointer.XPointerHandler
All Implemented Interfaces:
XMLComponent, XMLDocumentFilter, XMLDocumentSource, XMLDTDFilter, XMLDTDSource, XMLDocumentHandler, XMLDTDHandler, XPointerProcessor

public final class XPointerHandler
extends XIncludeHandler
implements XPointerProcessor

This is a pipeline component which extends the XIncludeHandler to perform XPointer specific processing specified in the W3C XPointerFramework and element() Scheme Recommendations.

This component analyzes each event in the pipeline, looking for an element that matches a PointerPart in the parent XInclude element's xpointer attribute value. If the match succeeds, all children are passed by this component.

See the XPointer Framework Recommendation for more information on the XPointer Framework and ShortHand Pointers. See the XPointer element() Scheme Recommendation for more information on the XPointer element() Scheme.

Version:
$Id: XPointerHandler.java 447248 2006-09-18 05:25:21Z mrglavas $

Field Summary
 
Fields inherited from class org.apache.xerces.xinclude.XIncludeHandler
CURRENT_BASE_URI, HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, XINCLUDE_ATTR_ACCEPT, XINCLUDE_ATTR_ACCEPT_LANGUAGE, XINCLUDE_ATTR_ENCODING, XINCLUDE_ATTR_HREF, XINCLUDE_ATTR_PARSE, XINCLUDE_DEFAULT_CONFIGURATION, XINCLUDE_FALLBACK, XINCLUDE_INCLUDE, XINCLUDE_INCLUDED, XINCLUDE_NS_URI, XINCLUDE_PARSE_TEXT, XINCLUDE_PARSE_XML, XPOINTER
 
Fields inherited from interface org.apache.xerces.xpointer.XPointerProcessor
EVENT_ELEMENT_EMPTY, EVENT_ELEMENT_END, EVENT_ELEMENT_START
 
Fields inherited from interface org.apache.xerces.xni.XMLDTDHandler
CONDITIONAL_IGNORE, CONDITIONAL_INCLUDE
 
Constructor Summary
XPointerHandler()
           
XPointerHandler(SymbolTable symbolTable, XMLErrorHandler errorHandler, XMLErrorReporter errorReporter)
           
 
Method Summary
 void characters(XMLString text, Augmentations augs)
          Character content.
 void comment(XMLString text, Augmentations augs)
          If the comment is a child of a matched element, then pass else return.
 void emptyElement(QName element, XMLAttributes attributes, Augmentations augs)
          An empty element.
 void endCDATA(Augmentations augs)
          The end of a CDATA section.
 void endElement(QName element, Augmentations augs)
          The end of an element.
 java.util.Vector getPointerParts()
          Returns a Vector of XPointerPart objects
 XPointerPart getXPointerPart()
          Returns the pointer part used to resolve the document fragment.
 void ignorableWhitespace(XMLString text, Augmentations augs)
          Ignorable whitespace.
 boolean isChildFragmentResolved()
          Returns true if the XPointer expression resolves to a non-element child of the current resource fragment.
 boolean isFragmentResolved()
          Returns true if the Node fragment is resolved.
 boolean isXPointerResolved()
          Returns true if the XPointer successfully found a sub-resource .
 void parseXPointer(java.lang.String xpointer)
          Parses the XPointer framework expression and delegates scheme specific parsing.
 void processingInstruction(java.lang.String target, XMLString data, Augmentations augs)
          A processing instruction.
 boolean resolveXPointer(QName element, XMLAttributes attributes, Augmentations augs, int event)
          Evaluates an XML resource with respect to an XPointer expressions by checking if it's element and attributes parameters match the criteria specified in the xpointer expression.
 void setDocumentHandler(XMLDocumentHandler handler)
          Sets the document handler.
 void setProperty(java.lang.String propertyId, java.lang.Object value)
           Sets the value of a property.
 void startCDATA(Augmentations augs)
          The start of a CDATA section.
 void startElement(QName element, XMLAttributes attributes, Augmentations augs)
          The start of an element.
 
Methods inherited from class org.apache.xerces.xinclude.XIncludeHandler
attributeDecl, doctypeDecl, elementDecl, endAttlist, endConditional, endDocument, endDTD, endExternalSubset, endGeneralEntity, endParameterEntity, externalEntityDecl, getBaseURI, getDocumentHandler, getDocumentSource, getDTDHandler, getDTDSource, getFeatureDefault, getLanguage, getPropertyDefault, getRecognizedFeatures, getRecognizedProperties, getRelativeURI, ignoredCharacters, internalEntityDecl, notationDecl, reset, restoreLanguage, setDocumentSource, setDTDHandler, setDTDSource, setFeature, startAttlist, startConditional, startDocument, startDTD, startExternalSubset, startGeneralEntity, startParameterEntity, textDecl, unparsedEntityDecl, xmlDecl
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XPointerHandler

public XPointerHandler()

XPointerHandler

public XPointerHandler(SymbolTable symbolTable,
                       XMLErrorHandler errorHandler,
                       XMLErrorReporter errorReporter)
Method Detail

setDocumentHandler

public void setDocumentHandler(XMLDocumentHandler handler)
Description copied from interface: XMLDocumentSource
Sets the document handler.

Specified by:
setDocumentHandler in interface XMLDocumentSource
Overrides:
setDocumentHandler in class XIncludeHandler

parseXPointer

public void parseXPointer(java.lang.String xpointer)
                   throws XNIException
Parses the XPointer framework expression and delegates scheme specific parsing.

Specified by:
parseXPointer in interface XPointerProcessor
Parameters:
xpointer - A String representing the xpointer expression.
Throws:
XNIException - Thrown if the xpointer string does not conform to the XPointer Framework syntax or the syntax of the pointer part does not conform to its definition for its scheme.
See Also:
XPointerProcessor.parseXPointer(java.lang.String)

resolveXPointer

public boolean resolveXPointer(QName element,
                               XMLAttributes attributes,
                               Augmentations augs,
                               int event)
                        throws XNIException
Description copied from interface: XPointerProcessor
Evaluates an XML resource with respect to an XPointer expressions by checking if it's element and attributes parameters match the criteria specified in the xpointer expression.

Specified by:
resolveXPointer in interface XPointerProcessor
Parameters:
element - - The name of the element.
attributes - - The element attributes.
augs - - Additional information that may include infoset augmentations
event - - An integer indicating 0 - The start of an element 1 - The end of an element 2 - An empty element call
Returns:
true if the element was resolved by the xpointer
Throws:
XNIException - Thrown to signal an error
See Also:
XPointerProcessor.resolveXPointer(org.apache.xerces.xni.QName, org.apache.xerces.xni.XMLAttributes, org.apache.xerces.xni.Augmentations, int event)

isFragmentResolved

public boolean isFragmentResolved()
                           throws XNIException
Returns true if the Node fragment is resolved.

Specified by:
isFragmentResolved in interface XPointerProcessor
Returns:
True if the xpointer expression matches a node/fragment in the resource else returns false.
Throws:
XNIException - Thrown to signal an error
See Also:
XPointerProcessor.isFragmentResolved()

isChildFragmentResolved

public boolean isChildFragmentResolved()
                                throws XNIException
Returns true if the XPointer expression resolves to a non-element child of the current resource fragment.

Throws:
XNIException
See Also:
XPointerPart.isChildFragmentResolved()

isXPointerResolved

public boolean isXPointerResolved()
                           throws XNIException
Returns true if the XPointer successfully found a sub-resource .

Specified by:
isXPointerResolved in interface XPointerProcessor
Returns:
True if the xpointer expression matches a fragment in the resource else returns false.
Throws:
XNIException - Thrown to signal an error
See Also:
XPointerProcessor.isFragmentResolved()

getXPointerPart

public XPointerPart getXPointerPart()
Returns the pointer part used to resolve the document fragment.

Returns:
String - The pointer part used to resolve the document fragment.

getPointerParts

public java.util.Vector getPointerParts()
Returns a Vector of XPointerPart objects

Returns:
A Vector of XPointerPart objects.

comment

public void comment(XMLString text,
                    Augmentations augs)
             throws XNIException
If the comment is a child of a matched element, then pass else return.

Specified by:
comment in interface XMLDocumentHandler
Specified by:
comment in interface XMLDTDHandler
Overrides:
comment in class XIncludeHandler
Parameters:
text - The text in the comment.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by application to signal an error.

processingInstruction

public void processingInstruction(java.lang.String target,
                                  XMLString data,
                                  Augmentations augs)
                           throws XNIException
A processing instruction. Processing instructions consist of a target name and, optionally, text data. The data is only meaningful to the application.

Typically, a processing instruction's data will contain a series of pseudo-attributes. These pseudo-attributes follow the form of element attributes but are not parsed or presented to the application as anything other than text. The application is responsible for parsing the data.

Specified by:
processingInstruction in interface XMLDocumentHandler
Specified by:
processingInstruction in interface XMLDTDHandler
Overrides:
processingInstruction in class XIncludeHandler
Parameters:
target - The target.
data - The data or null if none specified.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

startElement

public void startElement(QName element,
                         XMLAttributes attributes,
                         Augmentations augs)
                  throws XNIException
The start of an element.

Specified by:
startElement in interface XMLDocumentHandler
Overrides:
startElement in class XIncludeHandler
Parameters:
element - The name of the element.
attributes - The element attributes.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

emptyElement

public void emptyElement(QName element,
                         XMLAttributes attributes,
                         Augmentations augs)
                  throws XNIException
An empty element.

Specified by:
emptyElement in interface XMLDocumentHandler
Overrides:
emptyElement in class XIncludeHandler
Parameters:
element - The name of the element.
attributes - The element attributes.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

characters

public void characters(XMLString text,
                       Augmentations augs)
                throws XNIException
Character content.

Specified by:
characters in interface XMLDocumentHandler
Overrides:
characters in class XIncludeHandler
Parameters:
text - The content.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

ignorableWhitespace

public void ignorableWhitespace(XMLString text,
                                Augmentations augs)
                         throws XNIException
Ignorable whitespace. For this method to be called, the document source must have some way of determining that the text containing only whitespace characters should be considered ignorable. For example, the validator can determine if a length of whitespace characters in the document are ignorable based on the element content model.

Specified by:
ignorableWhitespace in interface XMLDocumentHandler
Overrides:
ignorableWhitespace in class XIncludeHandler
Parameters:
text - The ignorable whitespace.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

endElement

public void endElement(QName element,
                       Augmentations augs)
                throws XNIException
The end of an element.

Specified by:
endElement in interface XMLDocumentHandler
Overrides:
endElement in class XIncludeHandler
Parameters:
element - The name of the element.
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

startCDATA

public void startCDATA(Augmentations augs)
                throws XNIException
The start of a CDATA section.

Specified by:
startCDATA in interface XMLDocumentHandler
Overrides:
startCDATA in class XIncludeHandler
Parameters:
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

endCDATA

public void endCDATA(Augmentations augs)
              throws XNIException
The end of a CDATA section.

Specified by:
endCDATA in interface XMLDocumentHandler
Overrides:
endCDATA in class XIncludeHandler
Parameters:
augs - Additional information that may include infoset augmentations
Throws:
XNIException - Thrown by handler to signal an error.

setProperty

public void setProperty(java.lang.String propertyId,
                        java.lang.Object value)
                 throws XMLConfigurationException

Sets the value of a property. This method is called by the component manager any time after reset when a property changes value.

Note: Components should silently ignore properties that do not affect the operation of the component.

Specified by:
setProperty in interface XMLComponent
Overrides:
setProperty in class XIncludeHandler
Parameters:
propertyId - The property identifier.
value - The value of the property.
Throws:
XMLConfigurationException - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.