Package com.ctc.wstx.io
Class WstxInputData
java.lang.Object
com.ctc.wstx.io.WstxInputData
- Direct Known Subclasses:
StreamScanner
Base class used by readers (specifically, by
StreamScanner, and its sub-classes)
to encapsulate input buffer portion of the class. Philosophically
this should probably be done via containment (composition), not
sub-classing but for performance reason, this "core" class is generally
extended from instead.
Main reason for the input data portion to be factored out of main class is that this way it can also be passed to nested input handling Objects, which can then manipulate input buffers of the caller, efficiently.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final charNull-character is used as return value from some method(s), since it is not a legal character in an XML document.static final charstatic final charstatic final charstatic final intThis constant defines the highest Unicode character allowed in XML content.protected longNumber of characters that were contained in previous blocks (blocks that were already processed prior to the current buffer).protected intCurrent row location of current point in input buffer, starting from 1protected intCurrent index of the first character of the current row in input buffer.protected char[]Current buffer from which data is read; generally data is read into buffer from input source, but not always (especially when using nested input contexts when expanding parsed entity references etc).protected intIndex of character after last available one in the buffer.protected intPointer to next available character in bufferprotected booleanFlag that indicates whether XML content is to be treated as per XML 1.1 specification or not (if not, it'll use xml 1.0).private static final byteprivate static final byteprivate static final byteprivate static final byteprivate static final byte[]private static final byte[]private static final intWe will only use validity array for first 256 characters, mostly because after those characters it's easier to do fairly simple block checks.private static final intPublic identifiers only use 7-bit ascii range. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidNote: Only public due to sub-classes needing to call this on base class instance from different package (confusing?)static final intfindIllegalNameChar(String name, boolean nsAware, boolean xml11) Method that can be called to check whether given String contains any characters that are not legal XML names.static final intfindIllegalNmtokenChar(String nmtoken, boolean nsAware, boolean xml11) static StringgetCharDesc(char c) protected final booleanisNameChar(char c) Method that can be used to check whether specified character is a valid character of an XML 1.0/1.1 name as any other char than the first one; except that colon (:) is not recognized as valid here: caller has to verify it separately (since it generally affects namespace mapping of a qualified name).static final booleanisNameChar(char c, boolean nsAware, boolean xml11) protected final booleanisNameStartChar(char c) Method that can be used to check whether specified character is a valid first character of an XML 1.0/1.1 name; except that colon (:) is not recognized as a start char here: caller has to verify it separately (since it generally affects namespace mapping of a qualified name).static final booleanisNameStartChar(char c, boolean nsAware, boolean xml11) static final booleanisSpaceChar(char c)
-
Field Details
-
CHAR_NULL
public static final char CHAR_NULLNull-character is used as return value from some method(s), since it is not a legal character in an XML document.- See Also:
-
INT_NULL
public static final char INT_NULL- See Also:
-
CHAR_SPACE
public static final char CHAR_SPACE- See Also:
-
INT_SPACE
public static final char INT_SPACE- See Also:
-
MAX_UNICODE_CHAR
public static final int MAX_UNICODE_CHARThis constant defines the highest Unicode character allowed in XML content.- See Also:
-
VALID_CHAR_COUNT
private static final int VALID_CHAR_COUNTWe will only use validity array for first 256 characters, mostly because after those characters it's easier to do fairly simple block checks.- See Also:
-
NAME_CHAR_INVALID_B
private static final byte NAME_CHAR_INVALID_B- See Also:
-
NAME_CHAR_ALL_VALID_B
private static final byte NAME_CHAR_ALL_VALID_B- See Also:
-
NAME_CHAR_VALID_NONFIRST_B
private static final byte NAME_CHAR_VALID_NONFIRST_B- See Also:
-
sCharValidity
private static final byte[] sCharValidity -
VALID_PUBID_CHAR_COUNT
private static final int VALID_PUBID_CHAR_COUNTPublic identifiers only use 7-bit ascii range.- See Also:
-
sPubidValidity
private static final byte[] sPubidValidity -
PUBID_CHAR_VALID_B
private static final byte PUBID_CHAR_VALID_B- See Also:
-
mXml11
protected boolean mXml11Flag that indicates whether XML content is to be treated as per XML 1.1 specification or not (if not, it'll use xml 1.0). -
mInputBuffer
protected char[] mInputBufferCurrent buffer from which data is read; generally data is read into buffer from input source, but not always (especially when using nested input contexts when expanding parsed entity references etc). -
mInputPtr
protected int mInputPtrPointer to next available character in buffer -
mInputEnd
protected int mInputEndIndex of character after last available one in the buffer. -
mCurrInputProcessed
protected long mCurrInputProcessedNumber of characters that were contained in previous blocks (blocks that were already processed prior to the current buffer). -
mCurrInputRow
protected int mCurrInputRowCurrent row location of current point in input buffer, starting from 1 -
mCurrInputRowStart
protected int mCurrInputRowStartCurrent index of the first character of the current row in input buffer. Needed to calculate column position, if necessary; benefit of not having column itself is that this only has to be updated once per line.
-
-
Constructor Details
-
WstxInputData
protected WstxInputData()
-
-
Method Details
-
copyBufferStateFrom
Note: Only public due to sub-classes needing to call this on base class instance from different package (confusing?) -
isNameStartChar
protected final boolean isNameStartChar(char c) Method that can be used to check whether specified character is a valid first character of an XML 1.0/1.1 name; except that colon (:) is not recognized as a start char here: caller has to verify it separately (since it generally affects namespace mapping of a qualified name). -
isNameChar
protected final boolean isNameChar(char c) Method that can be used to check whether specified character is a valid character of an XML 1.0/1.1 name as any other char than the first one; except that colon (:) is not recognized as valid here: caller has to verify it separately (since it generally affects namespace mapping of a qualified name). -
isNameStartChar
public static final boolean isNameStartChar(char c, boolean nsAware, boolean xml11) -
isNameChar
public static final boolean isNameChar(char c, boolean nsAware, boolean xml11) -
findIllegalNameChar
Method that can be called to check whether given String contains any characters that are not legal XML names.- Returns:
- Index of the first illegal xml name characters, if any; -1 if the name is completely legal
-
findIllegalNmtokenChar
-
isSpaceChar
public static final boolean isSpaceChar(char c) -
getCharDesc
-