Class AbstractSAXParser

    • Field Detail

      • ALLOW_UE_AND_NOTATION_EVENTS

        protected static final String ALLOW_UE_AND_NOTATION_EVENTS
        Feature identifier: allow notation and unparsed entity events to be sent out of order.
        See Also:
        Constant Field Values
      • DECLARATION_HANDLER

        protected static final String DECLARATION_HANDLER
        Property id: declaration handler.
        See Also:
        Constant Field Values
      • fNamespaces

        protected boolean fNamespaces
        Namespaces.
      • fNamespacePrefixes

        protected boolean fNamespacePrefixes
        Namespace prefixes.
      • fLexicalHandlerParameterEntities

        protected boolean fLexicalHandlerParameterEntities
        Lexical handler parameter entities.
      • fStandalone

        protected boolean fStandalone
        Standalone document declaration.
      • fResolveDTDURIs

        protected boolean fResolveDTDURIs
        Resolve DTD URIs.
      • fUseEntityResolver2

        protected boolean fUseEntityResolver2
        Use EntityResolver2.
      • fXMLNSURIs

        protected boolean fXMLNSURIs
        XMLNS URIs: Namespace declarations in the http://www.w3.org/2000/xmlns/ namespace.
      • fContentHandler

        protected ContentHandler fContentHandler
        Content handler.
      • fDocumentHandler

        protected DocumentHandler fDocumentHandler
        Document handler.
      • fNamespaceContext

        protected NamespaceContext fNamespaceContext
        Namespace context
      • fDTDHandler

        protected DTDHandler fDTDHandler
        DTD handler.
      • fDeclHandler

        protected DeclHandler fDeclHandler
        Decl handler.
      • fLexicalHandler

        protected LexicalHandler fLexicalHandler
        Lexical handler.
      • fQName

        protected final QName fQName
      • fParseInProgress

        protected boolean fParseInProgress
        True if a parse is in progress. This state is needed because some features/properties cannot be set while parsing (e.g. validation and namespaces).
      • fVersion

        protected String fVersion
      • fDeclaredAttrs

        protected SymbolHash fDeclaredAttrs
    • Constructor Detail

    • Method Detail

      • startDocument

        public void startDocument​(XMLLocator locator,
                                  String encoding,
                                  NamespaceContext namespaceContext,
                                  Augmentations augs)
                           throws XNIException
        The start of the document.
        Specified by:
        startDocument in interface XMLDocumentHandler
        Overrides:
        startDocument in class AbstractXMLDocumentParser
        Parameters:
        locator - The document locator, or null if the document location cannot be reported during the parsing of this document. However, it is strongly recommended that a locator be supplied that can at least report the system identifier of the document.
        encoding - The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal entities or a document entity that is parsed from a java.io.Reader).
        namespaceContext - The namespace context in effect at the start of this document. This object represents the current context. Implementors of this class are responsible for copying the namespace bindings from the the current context (and its parent contexts) if that information is important.
        augs - Additional information that may include infoset augmentations
        Throws:
        XNIException - Thrown by handler to signal an error.
      • xmlDecl

        public void xmlDecl​(String version,
                            String encoding,
                            String standalone,
                            Augmentations augs)
                     throws XNIException
        Notifies of the presence of an XMLDecl line in the document. If present, this method will be called immediately following the startDocument call.
        Specified by:
        xmlDecl in interface XMLDocumentHandler
        Overrides:
        xmlDecl in class AbstractXMLDocumentParser
        Parameters:
        version - The XML version.
        encoding - The IANA encoding name of the document, or null if not specified.
        standalone - The standalone value, or null if not specified.
        augs - Additional information that may include infoset augmentations
        Throws:
        XNIException - Thrown by handler to signal an error.
      • doctypeDecl

        public void doctypeDecl​(String rootElement,
                                String publicId,
                                String systemId,
                                Augmentations augs)
                         throws XNIException
        Notifies of the presence of the DOCTYPE line in the document.
        Specified by:
        doctypeDecl in interface XMLDocumentHandler
        Overrides:
        doctypeDecl in class AbstractXMLDocumentParser
        Parameters:
        rootElement - The name of the root element.
        publicId - The public identifier if an external DTD or null if the external DTD is specified using SYSTEM.
        systemId - The system identifier if an external DTD, null otherwise.
        augs - Additional information that may include infoset augmentations
        Throws:
        XNIException - Thrown by handler to signal an error.
      • startGeneralEntity

        public void startGeneralEntity​(String name,
                                       XMLResourceIdentifier identifier,
                                       String encoding,
                                       Augmentations augs)
                                throws XNIException
        This method notifies of the start of an entity. The DTD has the pseudo-name of "[dtd]" parameter entity names start with '%'; and general entity names are just the entity name.

        Note: Since the document is an entity, the handler will be notified of the start of the document entity by calling the startEntity method with the entity name "[xml]" before calling the startDocument method. When exposing entity boundaries through the SAX API, the document entity is never reported, however.

        Note: This method is not called for entity references appearing as part of attribute values.

        Specified by:
        startGeneralEntity in interface XMLDocumentHandler
        Overrides:
        startGeneralEntity in class AbstractXMLDocumentParser
        Parameters:
        name - The name of the entity.
        identifier - The resource identifier.
        encoding - The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal parameter entities).
        augs - Additional information that may include infoset augmentations
        Throws:
        XNIException - Thrown by handler to signal an error.
      • endGeneralEntity

        public void endGeneralEntity​(String name,
                                     Augmentations augs)
                              throws XNIException
        This method notifies the end of an entity. The DTD has the pseudo-name of "[dtd]" parameter entity names start with '%'; and general entity names are just the entity name.

        Note: Since the document is an entity, the handler will be notified of the end of the document entity by calling the endEntity method with the entity name "[xml]" after calling the endDocument method. When exposing entity boundaries through the SAX API, the document entity is never reported, however.

        Note: This method is not called for entity references appearing as part of attribute values.

        Specified by:
        endGeneralEntity in interface XMLDocumentHandler
        Overrides:
        endGeneralEntity in class AbstractXMLDocumentParser
        Parameters:
        name - The name of the entity.
        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. If the document specifies the start element by using an empty tag, then the startElement method will immediately be followed by the endElement method, with no intervening methods.
        Specified by:
        startElement in interface XMLDocumentHandler
        Overrides:
        startElement in class AbstractXMLDocumentParser
        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.
      • 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 AbstractXMLDocumentParser
        Parameters:
        text - The ignorable whitespace.
        augs - Additional information that may include infoset augmentations
        Throws:
        XNIException - Thrown by handler to signal an error.
      • processingInstruction

        public void processingInstruction​(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 AbstractXMLDocumentParser
        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.
      • startParameterEntity

        public void startParameterEntity​(String name,
                                         XMLResourceIdentifier identifier,
                                         String encoding,
                                         Augmentations augs)
                                  throws XNIException
        This method notifies of the start of parameter entity. The DTD has the pseudo-name of "[dtd]" parameter entity names start with '%'; and general entity names are just the entity name.

        Note: Since the document is an entity, the handler will be notified of the start of the document entity by calling the startEntity method with the entity name "[xml]" before calling the startDocument method. When exposing entity boundaries through the SAX API, the document entity is never reported, however.

        Note: This method is not called for entity references appearing as part of attribute values.

        Specified by:
        startParameterEntity in interface XMLDTDHandler
        Overrides:
        startParameterEntity in class AbstractXMLDocumentParser
        Parameters:
        name - The name of the parameter entity.
        identifier - The resource identifier.
        encoding - The auto-detected IANA encoding name of the entity stream. This value will be null in those situations where the entity encoding is not auto-detected (e.g. internal parameter entities).
        augs - Additional information that may include infoset augmentations.
        Throws:
        XNIException - Thrown by handler to signal an error.
      • endParameterEntity

        public void endParameterEntity​(String name,
                                       Augmentations augs)
                                throws XNIException
        This method notifies the end of an entity. The DTD has the pseudo-name of "[dtd]" parameter entity names start with '%'; and general entity names are just the entity name.

        Note: Since the document is an entity, the handler will be notified of the end of the document entity by calling the endEntity method with the entity name "[xml]" after calling the endDocument method. When exposing entity boundaries through the SAX API, the document entity is never reported, however.

        Note: This method is not called for entity references appearing as part of attribute values.

        Specified by:
        endParameterEntity in interface XMLDTDHandler
        Overrides:
        endParameterEntity in class AbstractXMLDocumentParser
        Parameters:
        name - The name of the parameter entity.
        augs - Additional information that may include infoset augmentations.
        Throws:
        XNIException - Thrown by handler to signal an error.
      • attributeDecl

        public void attributeDecl​(String elementName,
                                  String attributeName,
                                  String type,
                                  String[] enumeration,
                                  String defaultType,
                                  XMLString defaultValue,
                                  XMLString nonNormalizedDefaultValue,
                                  Augmentations augs)
                           throws XNIException
        An attribute declaration.
        Specified by:
        attributeDecl in interface XMLDTDHandler
        Overrides:
        attributeDecl in class AbstractXMLDocumentParser
        Parameters:
        elementName - The name of the element that this attribute is associated with.
        attributeName - The name of the attribute.
        type - The attribute type. This value will be one of the following: "CDATA", "ENTITY", "ENTITIES", "ENUMERATION", "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", or "NOTATION".
        enumeration - If the type has the value "ENUMERATION" or "NOTATION", this array holds the allowed attribute values; otherwise, this array is null.
        defaultType - The attribute default type. This value will be one of the following: "#FIXED", "#IMPLIED", "#REQUIRED", or null.
        defaultValue - The attribute default value, or null if no default value is specified.
        nonNormalizedDefaultValue - The attribute default value with no normalization performed, or null if no default value is specified.
        augs - Additional information that may include infoset augmentations.
        Throws:
        XNIException - Thrown by handler to signal an error.
      • internalEntityDecl

        public void internalEntityDecl​(String name,
                                       XMLString text,
                                       XMLString nonNormalizedText,
                                       Augmentations augs)
                                throws XNIException
        An internal entity declaration.
        Specified by:
        internalEntityDecl in interface XMLDTDHandler
        Overrides:
        internalEntityDecl in class AbstractXMLDocumentParser
        Parameters:
        name - The name of the entity. Parameter entity names start with '%', whereas the name of a general entity is just the entity name.
        text - The value of the entity.
        nonNormalizedText - The non-normalized value of the entity. This value contains the same sequence of characters that was in the internal entity declaration, without any entity references expanded.
        augs - Additional information that may include infoset augmentations.
        Throws:
        XNIException - Thrown by handler to signal an error.
      • parse

        public void parse​(String systemId)
                   throws SAXException,
                          IOException
        Parses the input source specified by the given system identifier.

        This method is equivalent to the following:

             parse(new InputSource(systemId));
         
        Specified by:
        parse in interface Parser
        Specified by:
        parse in interface XMLReader
        Parameters:
        systemId - The system identifier (URI).
        Throws:
        SAXException - Throws exception on SAX error.
        IOException - Throws exception on i/o error.
      • setEntityResolver

        public void setEntityResolver​(EntityResolver resolver)
        Sets the resolver used to resolve external entities. The EntityResolver interface supports resolution of public and system identifiers.
        Specified by:
        setEntityResolver in interface Parser
        Specified by:
        setEntityResolver in interface XMLReader
        Parameters:
        resolver - The new entity resolver. Passing a null value will uninstall the currently installed resolver.
      • setErrorHandler

        public void setErrorHandler​(ErrorHandler errorHandler)
        Allow an application to register an error event handler.

        If the application does not register an error handler, all error events reported by the SAX parser will be silently ignored; however, normal processing may not continue. It is highly recommended that all SAX applications implement an error handler to avoid unexpected bugs.

        Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

        Specified by:
        setErrorHandler in interface Parser
        Specified by:
        setErrorHandler in interface XMLReader
        Parameters:
        errorHandler - The error handler.
        See Also:
        getErrorHandler()
      • setLocale

        public void setLocale​(Locale locale)
                       throws SAXException
        Set the locale to use for messages.
        Specified by:
        setLocale in interface Parser
        Parameters:
        locale - The locale object to use for localization of messages.
        Throws:
        SAXException - An exception thrown if the parser does not support the specified locale.
        See Also:
        Parser
      • setDTDHandler

        public void setDTDHandler​(DTDHandler dtdHandler)
        Allow an application to register a DTD event handler.

        If the application does not register a DTD handler, all DTD events reported by the SAX parser will be silently ignored.

        Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

        Specified by:
        setDTDHandler in interface Parser
        Specified by:
        setDTDHandler in interface XMLReader
        Parameters:
        dtdHandler - The DTD handler.
        See Also:
        getDTDHandler()
      • setDocumentHandler

        public void setDocumentHandler​(DocumentHandler documentHandler)
        Allow an application to register a document event handler.

        If the application does not register a document handler, all document events reported by the SAX parser will be silently ignored (this is the default behaviour implemented by HandlerBase).

        Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

        Specified by:
        setDocumentHandler in interface Parser
        Parameters:
        documentHandler - The document handler.
      • setContentHandler

        public void setContentHandler​(ContentHandler contentHandler)
        Allow an application to register a content event handler.

        If the application does not register a content handler, all content events reported by the SAX parser will be silently ignored.

        Applications may register a new or different handler in the middle of a parse, and the SAX parser must begin using the new handler immediately.

        Specified by:
        setContentHandler in interface XMLReader
        Parameters:
        contentHandler - The content handler.
        See Also:
        getContentHandler()
      • setFeature

        public void setFeature​(String featureId,
                               boolean state)
                        throws SAXNotRecognizedException,
                               SAXNotSupportedException
        Set the state of any feature in a SAX2 parser. The parser might not recognize the feature, and if it does recognize it, it might not be able to fulfill the request.
        Specified by:
        setFeature in interface XMLReader
        Parameters:
        featureId - The unique identifier (URI) of the feature.
        state - The requested state of the feature (true or false).
        Throws:
        SAXNotRecognizedException - If the requested feature is not known.
        SAXNotSupportedException - If the requested feature is known, but the requested state is not supported.
      • setProperty

        public void setProperty​(String propertyId,
                                Object value)
                         throws SAXNotRecognizedException,
                                SAXNotSupportedException
        Set the value of any property in a SAX2 parser. The parser might not recognize the property, and if it does recognize it, it might not support the requested value.
        Specified by:
        setProperty in interface XMLReader
        Parameters:
        propertyId - The unique identifier (URI) of the property being set.
        value - The value to which the property is being set.
        Throws:
        SAXNotRecognizedException - If the requested property is not known.
        SAXNotSupportedException - If the requested property is known, but the requested value is not supported.
      • startNamespaceMapping

        protected final void startNamespaceMapping()
                                            throws SAXException
        Send startPrefixMapping events
        Throws:
        SAXException
      • endNamespaceMapping

        protected final void endNamespaceMapping()
                                          throws SAXException
        Send endPrefixMapping events
        Throws:
        SAXException
      • getElementPSVI

        public ElementPSVI getElementPSVI()
        Description copied from interface: PSVIProvider
        Provides the post schema validation item for the current element information item. The method must be called by an application while in the scope of the methods which report the start and end of an element. For example, for SAX the method must be called within the scope of the document handler's startElement or endElement call. If the method is called outside of the specified scope, the return value is undefined.
        Specified by:
        getElementPSVI in interface PSVIProvider
        Returns:
        The post schema validation infoset for the current element. If an element information item is valid, then in the post-schema-validation infoset the following properties must be available for the element information item: The following properties are available in the scope of the method that reports the start of an element: {element declaration}, {validation context}, {notation}. The {schema information} property is available for the validation root. The {error codes} property is available if any errors occured during validation. The following properties are available in the scope of the method that reports the end of an element: {nil}, {schema specified}, {normalized value},{ member type definition}, {validity}, {validation attempted} . If the declaration has a value constraint, the property {schema default} is available. The {error codes} property is available if any errors occured during validation. Note: some processors may choose to provide all the PSVI properties in the scope of the method that reports the end of an element.
      • getAttributePSVI

        public AttributePSVI getAttributePSVI​(int index)
        Description copied from interface: PSVIProvider
        Provides AttributePSVI given the index of an attribute information item in the current element's attribute list. The method must be called by an application while in the scope of the methods which report the start and end of an element at a point where the attribute list is available. For example, for SAX the method must be called while in the scope of the document handler's startElement call. If the method is called outside of the specified scope, the return value is undefined.
        Specified by:
        getAttributePSVI in interface PSVIProvider
        Parameters:
        index - The attribute index.
        Returns:
        The post schema validation properties of the attribute.
      • getAttributePSVIByName

        public AttributePSVI getAttributePSVIByName​(String uri,
                                                    String localname)
        Description copied from interface: PSVIProvider
        Provides AttributePSVI given the namespace name and the local name of an attribute information item in the current element's attribute list. The method must be called by an application while in the scope of the methods which report the start and end of an element at a point where the attribute list is available. For example, for SAX the method must be called while in the scope of the document handler's startElement call. If the method is called outside of the specified scope, the return value is undefined.
        Specified by:
        getAttributePSVIByName in interface PSVIProvider
        Parameters:
        uri - The namespace name of an attribute.
        localname - The local name of an attribute.
        Returns:
        The post schema validation properties of the attribute.