Class XPointerHandler

  • All Implemented Interfaces:
    org.apache.xerces.xni.parser.XMLComponent, org.apache.xerces.xni.parser.XMLDocumentFilter, org.apache.xerces.xni.parser.XMLDocumentSource, org.apache.xerces.xni.parser.XMLDTDFilter, org.apache.xerces.xni.parser.XMLDTDSource, org.apache.xerces.xni.XMLDocumentHandler, org.apache.xerces.xni.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.

    INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.
    Version:
    $Id: XPointerHandler.java 603808 2007-12-13 03:44:48Z mrglavas $
    • Field Detail

      • fXPointerParts

        protected java.util.ArrayList fXPointerParts
      • fFoundMatchingPtrPart

        protected boolean fFoundMatchingPtrPart
      • fErrorHandler

        protected org.apache.xerces.xni.parser.XMLErrorHandler fErrorHandler
      • fIsXPointerResolved

        protected boolean fIsXPointerResolved
      • fFixupBase

        protected boolean fFixupBase
      • fFixupLang

        protected boolean fFixupLang
    • Constructor Detail

      • XPointerHandler

        public XPointerHandler()
      • XPointerHandler

        public XPointerHandler​(SymbolTable symbolTable,
                               org.apache.xerces.xni.parser.XMLErrorHandler errorHandler,
                               XMLErrorReporter errorReporter)
    • Method Detail

      • setDocumentHandler

        public void setDocumentHandler​(org.apache.xerces.xni.XMLDocumentHandler handler)
        Description copied from interface: org.apache.xerces.xni.parser.XMLDocumentSource
        Sets the document handler.
        Specified by:
        setDocumentHandler in interface org.apache.xerces.xni.parser.XMLDocumentSource
        Overrides:
        setDocumentHandler in class XIncludeHandler
      • parseXPointer

        public void parseXPointer​(java.lang.String xpointer)
                           throws org.apache.xerces.xni.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:
        org.apache.xerces.xni.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​(org.apache.xerces.xni.QName element,
                                       org.apache.xerces.xni.XMLAttributes attributes,
                                       org.apache.xerces.xni.Augmentations augs,
                                       int event)
                                throws org.apache.xerces.xni.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:
        org.apache.xerces.xni.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 org.apache.xerces.xni.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:
        org.apache.xerces.xni.XNIException - Thrown to signal an error
        See Also:
        XPointerProcessor.isFragmentResolved()
      • isChildFragmentResolved

        public boolean isChildFragmentResolved()
                                        throws org.apache.xerces.xni.XNIException
        Returns true if the XPointer expression resolves to a non-element child of the current resource fragment.
        Throws:
        org.apache.xerces.xni.XNIException
        See Also:
        XPointerPart.isChildFragmentResolved()
      • isXPointerResolved

        public boolean isXPointerResolved()
                                   throws org.apache.xerces.xni.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:
        org.apache.xerces.xni.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.
      • initErrorReporter

        protected void initErrorReporter()
        Initializes error handling objects
      • init

        protected void init()
        Initializes the XPointer Processor;
      • getPointerParts

        public java.util.ArrayList getPointerParts()
        Returns an ArrayList of XPointerPart objects
        Returns:
        An ArrayList of XPointerPart objects.
      • comment

        public void comment​(org.apache.xerces.xni.XMLString text,
                            org.apache.xerces.xni.Augmentations augs)
                     throws org.apache.xerces.xni.XNIException
        If the comment is a child of a matched element, then pass else return.
        Specified by:
        comment in interface org.apache.xerces.xni.XMLDocumentHandler
        Specified by:
        comment in interface org.apache.xerces.xni.XMLDTDHandler
        Overrides:
        comment in class XIncludeHandler
        Parameters:
        text - The text in the comment.
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by application to signal an error.
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          org.apache.xerces.xni.XMLString data,
                                          org.apache.xerces.xni.Augmentations augs)
                                   throws org.apache.xerces.xni.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 org.apache.xerces.xni.XMLDocumentHandler
        Specified by:
        processingInstruction in interface org.apache.xerces.xni.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:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • startElement

        public void startElement​(org.apache.xerces.xni.QName element,
                                 org.apache.xerces.xni.XMLAttributes attributes,
                                 org.apache.xerces.xni.Augmentations augs)
                          throws org.apache.xerces.xni.XNIException
        The start of an element.
        Specified by:
        startElement in interface org.apache.xerces.xni.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:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • emptyElement

        public void emptyElement​(org.apache.xerces.xni.QName element,
                                 org.apache.xerces.xni.XMLAttributes attributes,
                                 org.apache.xerces.xni.Augmentations augs)
                          throws org.apache.xerces.xni.XNIException
        An empty element.
        Specified by:
        emptyElement in interface org.apache.xerces.xni.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:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • characters

        public void characters​(org.apache.xerces.xni.XMLString text,
                               org.apache.xerces.xni.Augmentations augs)
                        throws org.apache.xerces.xni.XNIException
        Character content.
        Specified by:
        characters in interface org.apache.xerces.xni.XMLDocumentHandler
        Overrides:
        characters in class XIncludeHandler
        Parameters:
        text - The content.
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • ignorableWhitespace

        public void ignorableWhitespace​(org.apache.xerces.xni.XMLString text,
                                        org.apache.xerces.xni.Augmentations augs)
                                 throws org.apache.xerces.xni.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 org.apache.xerces.xni.XMLDocumentHandler
        Overrides:
        ignorableWhitespace in class XIncludeHandler
        Parameters:
        text - The ignorable whitespace.
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • endElement

        public void endElement​(org.apache.xerces.xni.QName element,
                               org.apache.xerces.xni.Augmentations augs)
                        throws org.apache.xerces.xni.XNIException
        The end of an element.
        Specified by:
        endElement in interface org.apache.xerces.xni.XMLDocumentHandler
        Overrides:
        endElement in class XIncludeHandler
        Parameters:
        element - The name of the element.
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • startCDATA

        public void startCDATA​(org.apache.xerces.xni.Augmentations augs)
                        throws org.apache.xerces.xni.XNIException
        The start of a CDATA section.
        Specified by:
        startCDATA in interface org.apache.xerces.xni.XMLDocumentHandler
        Overrides:
        startCDATA in class XIncludeHandler
        Parameters:
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • endCDATA

        public void endCDATA​(org.apache.xerces.xni.Augmentations augs)
                      throws org.apache.xerces.xni.XNIException
        The end of a CDATA section.
        Specified by:
        endCDATA in interface org.apache.xerces.xni.XMLDocumentHandler
        Overrides:
        endCDATA in class XIncludeHandler
        Parameters:
        augs - Additional information that may include infoset augmentations
        Throws:
        org.apache.xerces.xni.XNIException - Thrown by handler to signal an error.
      • setProperty

        public void setProperty​(java.lang.String propertyId,
                                java.lang.Object value)
                         throws org.apache.xerces.xni.parser.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 org.apache.xerces.xni.parser.XMLComponent
        Overrides:
        setProperty in class XIncludeHandler
        Parameters:
        propertyId - The property identifier.
        value - The value of the property.
        Throws:
        org.apache.xerces.xni.parser.XMLConfigurationException - Thrown for configuration error. In general, components should only throw this exception if it is really a critical error.