public final class ReaderConfig extends Object implements InputConfigFlags
In addition to its main task as a configuration container, this class also acts as a wrapper around simple buffer recycling functionality. The reason is that while conceptually this is a separate concern, there are enough commonalities with the life-cycle of this object to make this a very convenience place to add that functionality... (that is: conceptually this is not right, but from pragmatic viewpoint it just makes sense)
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_MAX_ATTRIBUTE_LENGTH |
static int |
DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT |
static int |
DEFAULT_MAX_DTD_DEPTH |
static int |
DEFAULT_MAX_ELEMENT_DEPTH |
static int |
DEFAULT_MAX_ENTITY_COUNT |
static int |
DEFAULT_MAX_ENTITY_DEPTH |
protected static String |
IMPL_NAME |
protected static String |
IMPL_VERSION
This is "major.minor" version used for purposes of determining
the feature set.
|
protected URL |
mBaseURL
Base URL to use as the resolution context for relative entity
references
|
protected int |
mConfigFlagMods
Bitset that indicates explicit changes to
mConfigFlags
through calls; empty bit means that the corresponding property
has its default value, set bit that an explicit call has been
made. |
protected int |
mConfigFlags
Bitset that contains state of on/off properties; initialized
to defaults, but can be set/cleared.
|
protected int |
mInputBufferLen |
protected boolean |
mIsJ2MESubset |
protected int |
mMaxAttributeSize |
protected int |
mMaxAttributesPerElement |
protected long |
mMaxCharacters |
protected int |
mMaxChildrenPerElement |
protected int |
mMaxDtdDepth |
protected long |
mMaxElementCount |
protected int |
mMaxElementDepth |
protected long |
mMaxEntityCount |
protected int |
mMaxEntityDepth |
protected int |
mMaxTextLength |
protected int |
mMinTextSegmentLen |
protected WstxInputProperties.ParsingMode |
mParsingMode
Parsing mode can be changed from the default xml compliant
behavior to one of alternate modes (fragment processing,
multiple document processing).
|
protected boolean |
mReturnNullForDefaultNamespace
As per [WSTX-277], can specify whether prefix for the
"default namespace" is return as null (true) or empty String (false)
|
protected SymbolTable |
mSymbols |
protected boolean |
mXml11
This boolean flag is set if the input document requires
xml 1.1 (or above) compliant processing: default is xml 1.0
compliant.
|
static int |
PROP_EVENT_ALLOCATOR |
CFG_ALLOW_XML11_ESCAPED_CHARS_IN_XML10, CFG_AUTO_CLOSE_INPUT, CFG_CACHE_DTDS, CFG_CACHE_DTDS_BY_PUBLIC_ID, CFG_COALESCE_TEXT, CFG_INTERN_NAMES, CFG_INTERN_NS_URIS, CFG_JAXP_FEATURE_SECURE_PROCESSING, CFG_LAZY_PARSING, CFG_NAMESPACE_AWARE, CFG_NORMALIZE_LFS, CFG_PRESERVE_LOCATION, CFG_REPLACE_ENTITY_REFS, CFG_REPORT_CDATA, CFG_REPORT_PROLOG_WS, CFG_SUPPORT_DTD, CFG_SUPPORT_DTDPP, CFG_SUPPORT_EXTERNAL_ENTITIES, CFG_TREAT_CHAR_REFS_AS_ENTS, CFG_VALIDATE_AGAINST_DTD, CFG_XMLID_TYPING, CFG_XMLID_UNIQ_CHECKS
Modifier and Type | Method and Description |
---|---|
protected boolean |
_hasConfigFlag(int flag) |
protected boolean |
_hasExplicitConfigFlag(int flag)
Method similar to
_hasConfigFlag(int) , but that will only
return true if in addition to being set, flag has been explicitly
modified (i.e. |
byte[] |
allocFullBBuffer(int minSize) |
char[] |
allocFullCBuffer(int minSize) |
char[] |
allocMediumCBuffer(int minSize) |
char[] |
allocSmallCBuffer(int minSize) |
void |
clearConfigFlag(int flag) |
void |
configureForConvenience()
Method to call to make Reader created be as "convenient" to use
as possible; ie try to avoid having to deal with some of things
like segmented text chunks.
|
void |
configureForLowMemUsage()
Method to call to minimize the memory usage of the stream/event reader;
both regarding Objects created, and the temporary memory usage during
parsing.
|
void |
configureForRoundTripping()
Method to call to make Reader try to preserve as much of input
formatting as possible, so that round-tripping would be as lossless
as possible.
|
void |
configureForSpeed()
Method to call to make the Reader created be as fast as possible reading
documents, especially for long-running processes where caching is
likely to help.
|
void |
configureForXmlConformance()
Method to call to make Reader created conform as closely to XML
standard as possible, doing all checks and transformations mandated
(linefeed conversions, attr value normalizations).
|
static ReaderConfig |
createFullDefaults() |
static ReaderConfig |
createJ2MEDefaults() |
ReaderConfig |
createNonShared(SymbolTable sym) |
void |
doAllowXml11EscapedCharsInXml10(boolean state) |
void |
doAutoCloseInput(boolean state) |
void |
doCacheDTDs(boolean state) |
void |
doCacheDTDsByPublicId(boolean state) |
void |
doCoalesceText(boolean state) |
boolean |
doesSupportXml11() |
boolean |
doesSupportXmlId() |
void |
doInternNames(boolean state) |
void |
doInternNsURIs(boolean state) |
void |
doNormalizeLFs(boolean state) |
void |
doParseLazily(boolean state) |
void |
doPreserveLocation(boolean state) |
void |
doProcessSecurely(boolean value)
Method called when {code XMLConstants.FEATURE_SECURE_PROCESSING} is being
enabled or disabled.
|
void |
doReplaceEntityRefs(boolean state) |
void |
doReportCData(boolean state) |
void |
doReportPrologWhitespace(boolean state) |
void |
doSupportDTDPP(boolean state) |
void |
doSupportDTDs(boolean state) |
void |
doSupportExternalEntities(boolean state) |
void |
doSupportNamespaces(boolean state) |
void |
doTreatCharRefsAsEnts(boolean state) |
void |
doValidateWithDTD(boolean state) |
void |
doXmlIdTyping(boolean state) |
void |
doXmlIdUniqChecks(boolean state) |
void |
enableXml11(boolean state)
Method called to enable or disable 1.1 compliant processing; if
disabled, defaults to xml 1.0 compliant processing.
|
EntityDecl |
findCustomInternalEntity(String id) |
protected int |
findPropertyId(String propName) |
protected int |
findStdPropertyId(String propName) |
void |
freeFullBBuffer(byte[] buffer) |
void |
freeFullCBuffer(char[] buffer) |
void |
freeMediumCBuffer(char[] buffer) |
void |
freeSmallCBuffer(char[] buffer) |
URL |
getBaseURL() |
int |
getConfigFlags() |
Map<String,EntityDecl> |
getCustomInternalEntities() |
int |
getDtdCacheSize()
In future this property could/should be made configurable?
|
DTDEventListener |
getDTDEventListener() |
org.codehaus.stax2.validation.DTDValidationSchema |
getDTDOverride() |
XMLResolver |
getDtdResolver() |
XMLResolver |
getEntityResolver() |
static String |
getImplName()
Method used to figure out the official implementation name
for input/output/validation factories.
|
static String |
getImplVersion()
Method used to figure out the official implementation version
for input/output/validation factories.
|
int |
getInputBufferLength() |
WstxInputProperties.ParsingMode |
getInputParsingMode() |
int |
getMaxAttributeSize() |
int |
getMaxAttributesPerElement() |
long |
getMaxCharacters() |
int |
getMaxChildrenPerElement() |
int |
getMaxDtdDepth() |
long |
getMaxElementCount() |
int |
getMaxElementDepth() |
long |
getMaxEntityCount() |
int |
getMaxEntityDepth() |
long |
getMaxTextLength() |
Object |
getProperty(int id) |
Object |
getProperty(String propName) |
int |
getShortestReportedTextSegment() |
protected Object |
getStdProperty(int id) |
SymbolTable |
getSymbols() |
XMLResolver |
getUndeclaredEntityResolver() |
XMLReporter |
getXMLReporter() |
XMLResolver |
getXMLResolver() |
boolean |
hasInternNamesBeenEnabled()
Special accessor to use to verify whether name interning has
explicitly been enabled; true if call was been made to set
it to true; false otherwise (default, or set to false)
|
boolean |
hasInternNsURIsBeenEnabled() |
boolean |
inputParsingModeDocuments() |
boolean |
inputParsingModeFragment() |
boolean |
isCoalescingExplicitlyDisabled()
Checks if the user explicitly set coalescing to false.
|
boolean |
isPropertySupported(String propName) |
boolean |
isXml11() |
protected void |
reportUnknownProperty(String propName) |
void |
resetState()
Unlike name suggests there is also some limited state information
associated with the config object.
|
boolean |
returnNullForDefaultNamespace() |
Object |
safeGetProperty(String propName) |
void |
setBaseURL(URL baseURL) |
void |
setConfigFlag(int flag) |
void |
setCustomInternalEntities(Map<String,?> m) |
void |
setDTDEventListener(DTDEventListener l) |
void |
setDTDOverride(org.codehaus.stax2.validation.DTDValidationSchema schema) |
void |
setDtdResolver(XMLResolver r) |
void |
setEntityResolver(XMLResolver r) |
void |
setInputBufferLength(int value) |
void |
setInputParsingMode(WstxInputProperties.ParsingMode mode) |
void |
setMaxAttributeSize(int value) |
void |
setMaxAttributesPerElement(int value) |
void |
setMaxCharacters(long value) |
void |
setMaxChildrenPerElement(int value) |
void |
setMaxDtdDepth(int value) |
void |
setMaxElementCount(long value) |
void |
setMaxElementDepth(int value) |
void |
setMaxEntityCount(long value) |
void |
setMaxEntityDepth(int value) |
void |
setMaxTextLength(int value) |
boolean |
setProperty(String propName,
int id,
Object value) |
boolean |
setProperty(String propName,
Object value) |
void |
setShortestReportedTextSegment(int value) |
protected boolean |
setStdProperty(String propName,
int id,
Object value) |
void |
setUndeclaredEntityResolver(XMLResolver r) |
void |
setXMLReporter(XMLReporter r) |
void |
setXMLResolver(XMLResolver r)
Note: for better granularity, you should call
setEntityResolver(javax.xml.stream.XMLResolver)
and setDtdResolver(javax.xml.stream.XMLResolver) instead. |
boolean |
willAllowXml11EscapedCharsInXml10() |
boolean |
willAutoCloseInput() |
boolean |
willCacheDTDs() |
boolean |
willCacheDTDsByPublicId() |
boolean |
willCoalesceText() |
boolean |
willDoXmlIdTyping() |
boolean |
willDoXmlIdUniqChecks() |
boolean |
willInternNames() |
boolean |
willInternNsURIs() |
boolean |
willNormalizeLFs() |
boolean |
willParseLazily() |
boolean |
willPreserveLocation() |
boolean |
willProcessSecurely() |
boolean |
willReplaceEntityRefs() |
boolean |
willReportCData() |
boolean |
willReportPrologWhitespace() |
boolean |
willSupportDTDPP() |
boolean |
willSupportDTDs() |
boolean |
willSupportExternalEntities() |
boolean |
willSupportNamespaces() |
boolean |
willTreatCharRefsAsEnts() |
boolean |
willValidateWithDTD() |
public static final int DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT
public static final int DEFAULT_MAX_ATTRIBUTE_LENGTH
public static final int DEFAULT_MAX_ELEMENT_DEPTH
public static final int DEFAULT_MAX_ENTITY_DEPTH
public static final int DEFAULT_MAX_ENTITY_COUNT
public static final int DEFAULT_MAX_DTD_DEPTH
public static final int PROP_EVENT_ALLOCATOR
protected final boolean mIsJ2MESubset
protected final SymbolTable mSymbols
protected int mConfigFlags
protected int mConfigFlagMods
mConfigFlags
through calls; empty bit means that the corresponding property
has its default value, set bit that an explicit call has been
made.protected int mInputBufferLen
protected int mMinTextSegmentLen
protected int mMaxAttributesPerElement
protected int mMaxAttributeSize
protected int mMaxChildrenPerElement
protected int mMaxElementDepth
protected long mMaxElementCount
protected long mMaxCharacters
protected int mMaxTextLength
protected int mMaxEntityDepth
protected long mMaxEntityCount
protected int mMaxDtdDepth
protected URL mBaseURL
protected WstxInputProperties.ParsingMode mParsingMode
protected boolean mXml11
protected static final String IMPL_NAME
protected static final String IMPL_VERSION
protected boolean mReturnNullForDefaultNamespace
public static ReaderConfig createJ2MEDefaults()
public static ReaderConfig createFullDefaults()
public ReaderConfig createNonShared(SymbolTable sym)
public void resetState()
protected int findPropertyId(String propName)
public SymbolTable getSymbols()
public int getDtdCacheSize()
public int getConfigFlags()
public boolean willCoalesceText()
public boolean willSupportNamespaces()
public boolean willReplaceEntityRefs()
public boolean willSupportExternalEntities()
public boolean willSupportDTDs()
public boolean willValidateWithDTD()
public boolean willReportCData()
public boolean willParseLazily()
public boolean willInternNames()
public boolean willInternNsURIs()
public boolean willPreserveLocation()
public boolean willAutoCloseInput()
public boolean willProcessSecurely()
public boolean willReportPrologWhitespace()
public boolean willCacheDTDs()
public boolean willCacheDTDsByPublicId()
public boolean willDoXmlIdTyping()
public boolean willDoXmlIdUniqChecks()
public boolean willSupportDTDPP()
public boolean willNormalizeLFs()
public boolean willTreatCharRefsAsEnts()
public boolean willAllowXml11EscapedCharsInXml10()
public int getInputBufferLength()
public int getShortestReportedTextSegment()
public int getMaxAttributesPerElement()
public int getMaxAttributeSize()
public int getMaxChildrenPerElement()
public int getMaxElementDepth()
public long getMaxElementCount()
public int getMaxEntityDepth()
public long getMaxEntityCount()
public int getMaxDtdDepth()
public long getMaxCharacters()
public long getMaxTextLength()
public Map<String,EntityDecl> getCustomInternalEntities()
public EntityDecl findCustomInternalEntity(String id)
public XMLReporter getXMLReporter()
public XMLResolver getXMLResolver()
public XMLResolver getDtdResolver()
public XMLResolver getEntityResolver()
public XMLResolver getUndeclaredEntityResolver()
public URL getBaseURL()
public WstxInputProperties.ParsingMode getInputParsingMode()
public boolean inputParsingModeDocuments()
public boolean inputParsingModeFragment()
public boolean isXml11()
public DTDEventListener getDTDEventListener()
public org.codehaus.stax2.validation.DTDValidationSchema getDTDOverride()
public boolean hasInternNamesBeenEnabled()
public boolean hasInternNsURIsBeenEnabled()
public boolean isCoalescingExplicitlyDisabled()
public void setConfigFlag(int flag)
public void clearConfigFlag(int flag)
public void doCoalesceText(boolean state)
public void doSupportNamespaces(boolean state)
public void doReplaceEntityRefs(boolean state)
public void doSupportExternalEntities(boolean state)
public void doSupportDTDs(boolean state)
public void doValidateWithDTD(boolean state)
public void doProcessSecurely(boolean value)
Note that disabling (passing {code false} as argument) does not actually change any settings.
Calls made when true
is passed (that is, secure processing enabled):
doSupportExternalEntities(false)
public void doInternNames(boolean state)
public void doInternNsURIs(boolean state)
public void doReportPrologWhitespace(boolean state)
public void doReportCData(boolean state)
public void doCacheDTDs(boolean state)
public void doCacheDTDsByPublicId(boolean state)
public void doParseLazily(boolean state)
public void doXmlIdTyping(boolean state)
public void doXmlIdUniqChecks(boolean state)
public void doPreserveLocation(boolean state)
public void doAutoCloseInput(boolean state)
public void doSupportDTDPP(boolean state)
public void doTreatCharRefsAsEnts(boolean state)
public void doAllowXml11EscapedCharsInXml10(boolean state)
public void doNormalizeLFs(boolean state)
public void setInputBufferLength(int value)
public void setShortestReportedTextSegment(int value)
public void setMaxAttributesPerElement(int value)
public void setMaxAttributeSize(int value)
public void setMaxChildrenPerElement(int value)
public void setMaxElementDepth(int value)
public void setMaxElementCount(long value)
public void setMaxCharacters(long value)
public void setMaxTextLength(int value)
public void setMaxEntityDepth(int value)
public void setMaxEntityCount(long value)
public void setMaxDtdDepth(int value)
public void setXMLReporter(XMLReporter r)
public void setXMLResolver(XMLResolver r)
setEntityResolver(javax.xml.stream.XMLResolver)
and setDtdResolver(javax.xml.stream.XMLResolver)
instead.public void setDtdResolver(XMLResolver r)
public void setEntityResolver(XMLResolver r)
public void setUndeclaredEntityResolver(XMLResolver r)
public void setBaseURL(URL baseURL)
public void setInputParsingMode(WstxInputProperties.ParsingMode mode)
public void enableXml11(boolean state)
public void setDTDEventListener(DTDEventListener l)
public void setDTDOverride(org.codehaus.stax2.validation.DTDValidationSchema schema)
public void configureForXmlConformance()
XMLInputFactory2.configureForXmlConformance()
for
required settings for standard StAX/StAX properties.
In addition to the standard settings, following Woodstox-specific settings are also done:
Notes: Does NOT change 'performance' settings (buffer sizes, DTD caching, coalescing, interning, accurate location info).
public void configureForConvenience()
XMLInputFactory2.configureForConvenience()
for
required settings for standard StAX/StAX properties.
In addition to the standard settings, following Woodstox-specific settings are also done:
XMLStreamFactory2.P_LAZY_PARSING
(to allow for synchronous
error notification by forcing full XML events to be completely
parsed when reader's next()
is called)
public void configureForSpeed()
XMLInputFactory2.configureForSpeed()
for
required settings for standard StAX/StAX properties.
In addition to the standard settings, following Woodstox-specific settings are also done:
P_CACHE_DTDS
.
XMLStremaFactory2.P_LAZY_PARSING
(can improve performance
especially when skipping text segments)
P_MIN_TEXT_SEGMENT
, to allow
reader to optimize segment length it uses (and possibly avoids
one copy operation in the process)
P_INPUT_BUFFER_LENGTH
a bit from default,
to allow for longer consequtive read operations; also reduces cases
where partial text segments are on input buffer boundaries.
public void configureForLowMemUsage()
See XMLInputFactory2.configureForLowMemUsage()
for
required settings for standard StAX/StAX properties.
In addition to the standard settings, following Woodstox-specific settings are also done:
P_CACHE_DTDS
P_PARSE_LAZILY
P_MIN_TEXT_SEGMENT
to the (somewhat low)
default value.
P_INPUT_BUFFER_LENGTH
a bit from the default
public void configureForRoundTripping()
See XMLInputFactory2.configureForLowMemUsage()
for
required settings for standard StAX/StAX properties.
In addition to the standard settings, following Woodstox-specific settings are also done:
P_MIN_TEXT_SEGMENT
to the maximum value so
that all original text segment chunks are reported without
segmentation (but without coalescing with adjacent CDATA segments)
P_TREAT_CHAR_REFS_AS_ENTS
to true, so the all the
original character references are reported with their position,
original text, and the replacement text.
public char[] allocSmallCBuffer(int minSize)
public void freeSmallCBuffer(char[] buffer)
public char[] allocMediumCBuffer(int minSize)
public void freeMediumCBuffer(char[] buffer)
public char[] allocFullCBuffer(int minSize)
public void freeFullCBuffer(char[] buffer)
public byte[] allocFullBBuffer(int minSize)
public void freeFullBBuffer(byte[] buffer)
public Object getProperty(int id)
protected boolean _hasConfigFlag(int flag)
protected boolean _hasExplicitConfigFlag(int flag)
_hasConfigFlag(int)
, but that will only
return true if in addition to being set, flag has been explicitly
modified (i.e. setProperty has been called to modify it)public boolean isPropertySupported(String propName)
public boolean setProperty(String propName, Object value)
protected void reportUnknownProperty(String propName)
public static String getImplName()
public static String getImplVersion()
public boolean doesSupportXml11()
public boolean doesSupportXmlId()
public boolean returnNullForDefaultNamespace()
protected int findStdPropertyId(String propName)
protected boolean setStdProperty(String propName, int id, Object value)
propName
- Name of standard property to setid
- Internal id matching the namevalue
- Value to set the standard property toprotected Object getStdProperty(int id)
Copyright © 2023 FasterXML. All rights reserved.