Class XMLFragmentReader

  • All Implemented Interfaces:
    XMLReader

    public class XMLFragmentReader
    extends DOMReader
    Internal:

    Purpose: An implementation of XMLReader for parsing XMLFragment Nodes into SAX events.

    Responsibilities:

    • Walk the XMLFragment node's DOM tree and report sax events to the provided content handler
    • Report lexical events to the lexical handler if it's provided
    • Constructor Detail

      • XMLFragmentReader

        public XMLFragmentReader​(NamespaceResolver namespaceResolver)
    • Method Detail

      • endPrefixMappings

        protected void endPrefixMappings​(Element elem)
                                  throws SAXException
        If there is a temporary namespace resolver for a given element, each entry contains a prefix that requires an endPrefixMapping event to be triggered
        Overrides:
        endPrefixMappings in class DOMReader
        Throws:
        SAXException
      • getTempResolver

        protected NamespaceResolver getTempResolver​(Element elem)
        Returns the namespace resolver in the map of temporary namespace resolvers for a given element
        Parameters:
        elem -
        Returns:
        the namespace resolver in the map for elem, or a new resolver if none exists
      • cleanupNamespaceResolvers

        protected void cleanupNamespaceResolvers​(Element elem)
        Remove any temporary namespace resolvers created while processing a given element.
        Parameters:
        elem -
      • resolveNamespacePrefix

        protected String resolveNamespacePrefix​(String prefix)
        Convenience method that iterates over each namespace resolver in the resolver list until it locates a uri for 'prefix' or the final resolver is reached w/o success.
        Parameters:
        prefix -
        Returns:
        true if a URI exists in one of the resolvers in the list, false otherwise
      • processParentNamespaces

        protected void processParentNamespaces​(Element element)
                                        throws SAXException
        Process namespace declarations on parent elements if not the root. For each parent node from current to root place puch each onto a stack, then pop each off, calling startPrefixMapping for each XMLNS attribute. Using a stack ensures that the parent nodes are processed top down.
        Overrides:
        processParentNamespaces in class DOMReader
        Parameters:
        element -
        Throws:
        SAXException