Class XML11DocumentScannerImpl

  • All Implemented Interfaces:
    XMLEntityHandler, XMLComponent, XMLDocumentScanner, XMLDocumentSource
    Direct Known Subclasses:
    XML11NSDocumentScannerImpl

    public class XML11DocumentScannerImpl
    extends XMLDocumentScannerImpl
    This class is responsible for scanning XML document structure and content. The scanner acts as the source for the document information which is communicated to the document handler.

    This component requires the following features and properties from the component manager that uses it:

    • http://xml.org/sax/features/namespaces
    • http://xml.org/sax/features/validation
    • http://apache.org/xml/features/nonvalidating/load-external-dtd
    • http://apache.org/xml/features/scanner/notify-char-refs
    • http://apache.org/xml/features/scanner/notify-builtin-refs
    • http://apache.org/xml/properties/internal/symbol-table
    • http://apache.org/xml/properties/internal/error-reporter
    • http://apache.org/xml/properties/internal/entity-manager
    • http://apache.org/xml/properties/internal/dtd-scanner
    Version:
    $Id$
    Author:
    Glenn Marcy, IBM, Andy Clark, IBM, Arnaud Le Hors, IBM, Eric Ye, IBM
    • Constructor Detail

      • XML11DocumentScannerImpl

        public XML11DocumentScannerImpl()
        Default constructor.
    • Method Detail

      • scanAttributeValue

        protected boolean scanAttributeValue​(XMLString value,
                                             XMLString nonNormalizedValue,
                                             String atName,
                                             boolean checkEntities,
                                             String eleName)
                                      throws IOException,
                                             XNIException
        Scans an attribute value and normalizes whitespace converting all whitespace characters to space characters. [10] AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
        Overrides:
        scanAttributeValue in class XMLScanner
        Parameters:
        value - The XMLString to fill in with the value.
        nonNormalizedValue - The XMLString to fill in with the non-normalized value.
        atName - The name of the attribute being parsed (for error msgs).
        checkEntities - true if undeclared entities should be reported as VC violation, false if undeclared entities should be reported as WFC violation.
        eleName - The name of element to which this attribute belongs.
        Returns:
        true if the non-normalized and normalized value are the same Note: This method uses fStringBuffer2, anything in it at the time of calling is lost.
        Throws:
        IOException
        XNIException
      • scanPubidLiteral

        protected boolean scanPubidLiteral​(XMLString literal)
                                    throws IOException,
                                           XNIException
        Scans public ID literal. [12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'" [13] PubidChar::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] The returned string is normalized according to the following rule, from http://www.w3.org/TR/REC-xml#dt-pubid: Before a match is attempted, all strings of white space in the public identifier must be normalized to single space characters (#x20), and leading and trailing white space must be removed.
        Overrides:
        scanPubidLiteral in class XMLScanner
        Parameters:
        literal - The string to fill in with the public ID literal.
        Returns:
        True on success. Note: This method uses fStringBuffer, anything in it at the time of calling is lost.
        Throws:
        IOException
        XNIException
      • normalizeWhitespace

        protected void normalizeWhitespace​(XMLString value)
        Normalize whitespace in an XMLString converting all whitespace characters to space characters.
        Overrides:
        normalizeWhitespace in class XMLScanner
      • normalizeWhitespace

        protected void normalizeWhitespace​(XMLString value,
                                           int fromIndex)
        Normalize whitespace in an XMLString converting all whitespace characters to space characters.
        Overrides:
        normalizeWhitespace in class XMLScanner
      • isUnchangedByNormalization

        protected int isUnchangedByNormalization​(XMLString value)
        Checks whether this string would be unchanged by normalization.
        Overrides:
        isUnchangedByNormalization in class XMLScanner
        Returns:
        -1 if the value would be unchanged by normalization, otherwise the index of the first whitespace character which would be transformed.
      • isInvalid

        protected boolean isInvalid​(int value)
        Overrides:
        isInvalid in class XMLScanner