Class InputEntity


  • public class InputEntity
    extends Object
    This is how the parser talks to its input entities, of all kinds. The entities are in a stack.

    For internal entities, the character arrays are referenced here, and read from as needed (they're read-only). External entities have mutable buffers, that are read into as needed.

    Note: This maps CRLF (and CR) to LF without regard for whether it's in an external (parsed) entity or not. The XML 1.0 spec is inconsistent in explaining EOL handling; this is the sensible way.

    Version:
    1.4 00/08/05
    Author:
    David Brownell, Janet Koenig
    • Method Detail

      • isInternal

        public boolean isInternal()
      • isDocument

        public boolean isDocument()
      • isParameterEntity

        public boolean isParameterEntity()
      • getName

        public String getName()
      • getEncoding

        public String getEncoding()
        Returns the name of the encoding in use, else null; the name returned is in as standard a form as we can get.
      • getNameChar

        public char getNameChar()
                         throws IOException,
                                SAXException
        returns the next name char, or NUL ... faster than getc(), and the common "name or nmtoken must be next" case won't need ungetc().
        Throws:
        IOException
        SAXException
      • ungetc

        public void ungetc()
        two character pushback is guaranteed
      • parsedContent

        public boolean parsedContent​(DTDEventListener docHandler)
                              throws IOException,
                                     SAXException
        normal content; whitespace in markup may be handled specially if the parser uses the content model.

        content terminates with markup delimiter characters, namely ampersand (&) and left angle bracket (<).

        the document handler's characters() method is called on all the content found

        Throws:
        IOException
        SAXException
      • unparsedContent

        public boolean unparsedContent​(DTDEventListener docHandler,
                                       boolean ignorableWhitespace,
                                       String whitespaceInvalidMessage)
                                throws IOException,
                                       SAXException
        CDATA -- character data, terminated by "]]>" and optionally including unescaped markup delimiters (ampersand and left angle bracket). This should otherwise be exactly like character data, modulo differences in error report details.

        The document handler's characters() or ignorableWhitespace() methods are invoked on all the character data found

        Parameters:
        docHandler - gets callbacks for character data
        ignorableWhitespace - if true, whitespace characters will be reported using docHandler.ignorableWhitespace(); implicitly, non-whitespace characters will cause validation errors
        whitespaceInvalidMessage - if true, ignorable whitespace causes a validity error report as well as a callback
        Throws:
        IOException
        SAXException
      • peek

        public boolean peek​(String next,
                            char[] chars)
                     throws IOException,
                            SAXException
        returns false iff 'next' string isn't as provided, else skips that text and returns true.

        NOTE: two alternative string representations are both passed in, since one is faster.

        Throws:
        IOException
        SAXException
      • startRemembering

        public void startRemembering()
      • rememberText

        public String rememberText()
      • getPublicId

        public String getPublicId()
        Returns the public ID of this input source, if known
      • getSystemId

        public String getSystemId()
        Returns the system ID of this input source, if known
      • getLineNumber

        public int getLineNumber()
        Returns the current line number in this input source
      • getColumnNumber

        public int getColumnNumber()
        returns -1; maintaining column numbers hurts performance
      • close

        public void close()