Class InputEntity
- java.lang.Object
-
- com.sun.xml.dtdparser.InputEntity
-
public class InputEntity extends java.lang.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 Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
char
getc()
gets the next Java character -- might be part of an XML text character represented by a surrogate pair, or be the end of the entity.int
getColumnNumber()
returns -1; maintaining column numbers hurts performancejava.lang.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.static InputEntity
getInputEntity(DTDEventListener h, java.util.Locale l)
int
getLineNumber()
Returns the current line number in this input sourcejava.lang.String
getName()
char
getNameChar()
returns the next name char, or NUL ...java.lang.String
getPublicId()
Returns the public ID of this input source, if knownjava.lang.String
getSystemId()
Returns the system ID of this input source, if knownboolean
ignorableWhitespace(DTDEventListener handler)
whitespace in markup (flagged to app, discardable)void
init(char[] b, java.lang.String name, InputEntity stack, boolean isPE)
void
init(org.xml.sax.InputSource in, java.lang.String name, InputEntity stack, boolean isPE)
boolean
isDocument()
boolean
isEOF()
returns true iff there's no more data to consume ...boolean
isInternal()
boolean
isParameterEntity()
boolean
maybeWhitespace()
optional grammatical whitespace (discarded)boolean
parsedContent(DTDEventListener docHandler)
normal content; whitespace in markup may be handled specially if the parser uses the content model.boolean
peek(java.lang.String next, char[] chars)
returns false iff 'next' string isn't as provided, else skips that text and returns true.boolean
peekc(char c)
lookahead one characterInputEntity
pop()
java.lang.String
rememberText()
void
startRemembering()
void
ungetc()
two character pushback is guaranteedboolean
unparsedContent(DTDEventListener docHandler, boolean ignorableWhitespace, java.lang.String whitespaceInvalidMessage)
CDATA -- character data, terminated by "]]>" and optionally including unescaped markup delimiters (ampersand and left angle bracket).
-
-
-
Method Detail
-
getInputEntity
public static InputEntity getInputEntity(DTDEventListener h, java.util.Locale l)
-
isInternal
public boolean isInternal()
-
isDocument
public boolean isDocument()
-
isParameterEntity
public boolean isParameterEntity()
-
getName
public java.lang.String getName()
-
init
public void init(org.xml.sax.InputSource in, java.lang.String name, InputEntity stack, boolean isPE) throws java.io.IOException, org.xml.sax.SAXException
- Throws:
java.io.IOException
org.xml.sax.SAXException
-
init
public void init(char[] b, java.lang.String name, InputEntity stack, boolean isPE) throws org.xml.sax.SAXException
- Throws:
org.xml.sax.SAXException
-
pop
public InputEntity pop() throws java.io.IOException
- Throws:
java.io.IOException
-
isEOF
public boolean isEOF() throws java.io.IOException, org.xml.sax.SAXException
returns true iff there's no more data to consume ...- Throws:
java.io.IOException
org.xml.sax.SAXException
-
getEncoding
public java.lang.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 java.io.IOException, org.xml.sax.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:
java.io.IOException
org.xml.sax.SAXException
-
getc
public char getc() throws java.io.IOException, org.xml.sax.SAXException
gets the next Java character -- might be part of an XML text character represented by a surrogate pair, or be the end of the entity.- Throws:
java.io.IOException
org.xml.sax.SAXException
-
peekc
public boolean peekc(char c) throws java.io.IOException, org.xml.sax.SAXException
lookahead one character- Throws:
java.io.IOException
org.xml.sax.SAXException
-
ungetc
public void ungetc()
two character pushback is guaranteed
-
maybeWhitespace
public boolean maybeWhitespace() throws java.io.IOException, org.xml.sax.SAXException
optional grammatical whitespace (discarded)- Throws:
java.io.IOException
org.xml.sax.SAXException
-
parsedContent
public boolean parsedContent(DTDEventListener docHandler) throws java.io.IOException, org.xml.sax.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:
java.io.IOException
org.xml.sax.SAXException
-
unparsedContent
public boolean unparsedContent(DTDEventListener docHandler, boolean ignorableWhitespace, java.lang.String whitespaceInvalidMessage) throws java.io.IOException, org.xml.sax.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 dataignorableWhitespace
- if true, whitespace characters will be reported using docHandler.ignorableWhitespace(); implicitly, non-whitespace characters will cause validation errorswhitespaceInvalidMessage
- if true, ignorable whitespace causes a validity error report as well as a callback- Throws:
java.io.IOException
org.xml.sax.SAXException
-
ignorableWhitespace
public boolean ignorableWhitespace(DTDEventListener handler) throws java.io.IOException, org.xml.sax.SAXException
whitespace in markup (flagged to app, discardable)the document handler's ignorableWhitespace() method is called on all the whitespace found
- Throws:
java.io.IOException
org.xml.sax.SAXException
-
peek
public boolean peek(java.lang.String next, char[] chars) throws java.io.IOException, org.xml.sax.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:
java.io.IOException
org.xml.sax.SAXException
-
startRemembering
public void startRemembering()
-
rememberText
public java.lang.String rememberText()
-
getPublicId
public java.lang.String getPublicId()
Returns the public ID of this input source, if known
-
getSystemId
public java.lang.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()
-
-