public class SAXBufferProcessor extends AbstractProcessor implements org.xml.sax.XMLReader
XMLStreamBuffer
that that reads the XML infoset as
XMLReader
.Modifier and Type | Field and Description |
---|---|
protected AttributesHolder |
_attributes |
protected org.xml.sax.ContentHandler |
_contentHandler
Reference to content handler.
|
protected org.xml.sax.DTDHandler |
_dtdHandler
Reference to dtd handler.
|
protected org.xml.sax.EntityResolver |
_entityResolver
Reference to entity resolver.
|
protected org.xml.sax.ErrorHandler |
_errorHandler
Reference to error handler.
|
protected org.xml.sax.ext.LexicalHandler |
_lexicalHandler
Reference to lexical handler.
|
protected int[] |
_namespaceAttributesStack |
protected int |
_namespaceAttributesStackIndex |
protected int[] |
_namespaceAttributesStartingStack |
protected java.lang.String[] |
_namespacePrefixes |
protected boolean |
_namespacePrefixesFeature
SAX Namespace attributes features
|
protected int |
_namespacePrefixesIndex |
private static DefaultWithLexicalHandler |
DEFAULT_LEXICAL_HANDLER |
_buffer, _fragmentMode, _qNameBuffer, _stringInterningFeature, _treeCount, STATE_ATTRIBUTE_LN, STATE_ATTRIBUTE_LN_OBJECT, STATE_ATTRIBUTE_P_U_LN, STATE_ATTRIBUTE_P_U_LN_OBJECT, STATE_ATTRIBUTE_U_LN, STATE_ATTRIBUTE_U_LN_OBJECT, STATE_ATTRIBUTE_U_LN_QN, STATE_ATTRIBUTE_U_LN_QN_OBJECT, STATE_COMMENT_AS_CHAR_ARRAY_COPY, STATE_COMMENT_AS_CHAR_ARRAY_MEDIUM, STATE_COMMENT_AS_CHAR_ARRAY_SMALL, STATE_COMMENT_AS_STRING, STATE_DOCUMENT, STATE_DOCUMENT_FRAGMENT, STATE_ELEMENT_LN, STATE_ELEMENT_P_U_LN, STATE_ELEMENT_U_LN, STATE_ELEMENT_U_LN_QN, STATE_END, STATE_ILLEGAL, STATE_NAMESPACE_ATTRIBUTE, STATE_NAMESPACE_ATTRIBUTE_P, STATE_NAMESPACE_ATTRIBUTE_P_U, STATE_NAMESPACE_ATTRIBUTE_U, STATE_PROCESSING_INSTRUCTION, STATE_TEXT_AS_CHAR_ARRAY_COPY, STATE_TEXT_AS_CHAR_ARRAY_MEDIUM, STATE_TEXT_AS_CHAR_ARRAY_SMALL, STATE_TEXT_AS_OBJECT, STATE_TEXT_AS_STRING
_contentCharactersBuffer, _contentCharactersBufferPtr, _contentObjects, _contentObjectsPtr, _currentContentCharactersBufferFragment, _currentContentObjectFragment, _currentStructureFragment, _currentStructureStringFragment, _structure, _structurePtr, _structureStrings, _structureStringsPtr, CHAR_ARRAY_LENGTH_MEDIUM, CHAR_ARRAY_LENGTH_MEDIUM_SIZE, CHAR_ARRAY_LENGTH_SMALL, CHAR_ARRAY_LENGTH_SMALL_SIZE, CONTENT_TYPE_CHAR_ARRAY, CONTENT_TYPE_CHAR_ARRAY_COPY, CONTENT_TYPE_OBJECT, CONTENT_TYPE_STRING, FLAG_DOCUMENT_FRAGMENT, FLAG_PREFIX, FLAG_QUALIFIED_NAME, FLAG_URI, T_ATTRIBUTE, T_ATTRIBUTE_LN, T_ATTRIBUTE_LN_OBJECT, T_ATTRIBUTE_P_U_LN, T_ATTRIBUTE_P_U_LN_OBJECT, T_ATTRIBUTE_U_LN, T_ATTRIBUTE_U_LN_OBJECT, T_ATTRIBUTE_U_LN_QN, T_ATTRIBUTE_U_LN_QN_OBJECT, T_COMMENT, T_COMMENT_AS_CHAR_ARRAY, T_COMMENT_AS_CHAR_ARRAY_COPY, T_COMMENT_AS_CHAR_ARRAY_MEDIUM, T_COMMENT_AS_CHAR_ARRAY_SMALL, T_COMMENT_AS_STRING, T_DOCUMENT, T_DOCUMENT_FRAGMENT, T_ELEMENT, T_ELEMENT_LN, T_ELEMENT_P_U_LN, T_ELEMENT_U_LN, T_ELEMENT_U_LN_QN, T_END, T_END_OF_BUFFER, T_NAMESPACE_ATTRIBUTE, T_NAMESPACE_ATTRIBUTE_P, T_NAMESPACE_ATTRIBUTE_P_U, T_NAMESPACE_ATTRIBUTE_U, T_PROCESSING_INSTRUCTION, T_TEXT, T_TEXT_AS_CHAR_ARRAY, T_TEXT_AS_CHAR_ARRAY_COPY, T_TEXT_AS_CHAR_ARRAY_MEDIUM, T_TEXT_AS_CHAR_ARRAY_SMALL, T_TEXT_AS_OBJECT, T_TEXT_AS_STRING, T_UNEXPANDED_ENTITY_REFERENCE, TYPE_MASK, VALUE_TYPE_OBJECT, VALUE_TYPE_STRING
Constructor and Description |
---|
SAXBufferProcessor() |
SAXBufferProcessor(XMLStreamBuffer buffer)
Deprecated.
|
SAXBufferProcessor(XMLStreamBuffer buffer,
boolean produceFragmentEvent) |
Modifier and Type | Method and Description |
---|---|
private void |
cacheNamespacePrefix(java.lang.String prefix) |
private void |
cacheNamespacePrefixIndex() |
private void |
cacheNamespacePrefixStartingIndex() |
private static java.lang.String |
fixNull(java.lang.String s) |
org.xml.sax.ContentHandler |
getContentHandler() |
org.xml.sax.DTDHandler |
getDTDHandler() |
org.xml.sax.EntityResolver |
getEntityResolver() |
org.xml.sax.ErrorHandler |
getErrorHandler() |
boolean |
getFeature(java.lang.String name) |
org.xml.sax.ext.LexicalHandler |
getLexicalHandler() |
java.lang.Object |
getProperty(java.lang.String name) |
private boolean |
isInscope() |
void |
parse(org.xml.sax.InputSource input) |
void |
parse(java.lang.String systemId) |
void |
process()
Parse the sub-tree (or a whole document) that
XMLStreamBuffer
points to, and sends events to handlers. |
void |
process(XMLStreamBuffer buffer)
Deprecated.
|
void |
process(XMLStreamBuffer buffer,
boolean produceFragmentEvent)
Short-hand for
setXMLStreamBuffer(XMLStreamBuffer,boolean) then process() . |
private void |
processAttributes(int item) |
private void |
processComment(char[] ch,
int start,
int length) |
private void |
processComment(java.lang.String s) |
private void |
processCommentAsCharArrayCopy() |
private void |
processCommentAsCharArrayMedium() |
private void |
processCommentAsCharArraySmall() |
private void |
processDocument() |
protected void |
processElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
boolean inscope) |
private void |
processEndPrefixMapping() |
private void |
processNamespaceAttribute(java.lang.String prefix,
java.lang.String uri) |
private int |
processNamespaceAttributes(int item,
boolean collectPrefixes,
java.util.Set<java.lang.String> prefixSet) |
private void |
processProcessingInstruction(java.lang.String target,
java.lang.String data) |
private void |
readInscopeNamespaces(java.util.Set<java.lang.String> prefixSet) |
private org.xml.sax.SAXParseException |
reportFatalError(java.lang.String msg)
Report a fatal error and abort.
|
void |
setContentHandler(org.xml.sax.ContentHandler handler) |
void |
setDTDHandler(org.xml.sax.DTDHandler handler) |
void |
setEntityResolver(org.xml.sax.EntityResolver resolver) |
void |
setErrorHandler(org.xml.sax.ErrorHandler handler) |
void |
setFeature(java.lang.String name,
boolean value) |
void |
setLexicalHandler(org.xml.sax.ext.LexicalHandler handler) |
void |
setProperty(java.lang.String name,
java.lang.Object value) |
void |
setXMLStreamBuffer(XMLStreamBuffer buffer)
Deprecated.
|
void |
setXMLStreamBuffer(XMLStreamBuffer buffer,
boolean produceFragmentEvent)
Resets the parser to read from the beginning of the given
XMLStreamBuffer . |
getAIIState, getEIIState, getNIIState, getPrefixFromQName, getQName, peekStructure, readContentCharactersBuffer, readContentCharactersCopy, readContentObject, readContentString, readEiiState, readStructure, readStructure16, readStructureString, setBuffer, setBuffer
protected org.xml.sax.EntityResolver _entityResolver
protected org.xml.sax.DTDHandler _dtdHandler
protected org.xml.sax.ContentHandler _contentHandler
protected org.xml.sax.ErrorHandler _errorHandler
protected org.xml.sax.ext.LexicalHandler _lexicalHandler
protected boolean _namespacePrefixesFeature
protected AttributesHolder _attributes
protected java.lang.String[] _namespacePrefixes
protected int _namespacePrefixesIndex
protected int[] _namespaceAttributesStartingStack
protected int[] _namespaceAttributesStack
protected int _namespaceAttributesStackIndex
private static final DefaultWithLexicalHandler DEFAULT_LEXICAL_HANDLER
public SAXBufferProcessor()
public SAXBufferProcessor(XMLStreamBuffer buffer)
SAXBufferProcessor(XMLStreamBuffer, boolean)
public SAXBufferProcessor(XMLStreamBuffer buffer, boolean produceFragmentEvent)
produceFragmentEvent
- True to generate fragment SAX events without start/endDocument.
False to generate a full document SAX events.public boolean getFeature(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
getFeature
in interface org.xml.sax.XMLReader
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void setFeature(java.lang.String name, boolean value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
setFeature
in interface org.xml.sax.XMLReader
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public java.lang.Object getProperty(java.lang.String name) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
getProperty
in interface org.xml.sax.XMLReader
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void setProperty(java.lang.String name, java.lang.Object value) throws org.xml.sax.SAXNotRecognizedException, org.xml.sax.SAXNotSupportedException
setProperty
in interface org.xml.sax.XMLReader
org.xml.sax.SAXNotRecognizedException
org.xml.sax.SAXNotSupportedException
public void setEntityResolver(org.xml.sax.EntityResolver resolver)
setEntityResolver
in interface org.xml.sax.XMLReader
public org.xml.sax.EntityResolver getEntityResolver()
getEntityResolver
in interface org.xml.sax.XMLReader
public void setDTDHandler(org.xml.sax.DTDHandler handler)
setDTDHandler
in interface org.xml.sax.XMLReader
public org.xml.sax.DTDHandler getDTDHandler()
getDTDHandler
in interface org.xml.sax.XMLReader
public void setContentHandler(org.xml.sax.ContentHandler handler)
setContentHandler
in interface org.xml.sax.XMLReader
public org.xml.sax.ContentHandler getContentHandler()
getContentHandler
in interface org.xml.sax.XMLReader
public void setErrorHandler(org.xml.sax.ErrorHandler handler)
setErrorHandler
in interface org.xml.sax.XMLReader
public org.xml.sax.ErrorHandler getErrorHandler()
getErrorHandler
in interface org.xml.sax.XMLReader
public void setLexicalHandler(org.xml.sax.ext.LexicalHandler handler)
public org.xml.sax.ext.LexicalHandler getLexicalHandler()
public void parse(org.xml.sax.InputSource input) throws java.io.IOException, org.xml.sax.SAXException
parse
in interface org.xml.sax.XMLReader
java.io.IOException
org.xml.sax.SAXException
public void parse(java.lang.String systemId) throws java.io.IOException, org.xml.sax.SAXException
parse
in interface org.xml.sax.XMLReader
java.io.IOException
org.xml.sax.SAXException
public final void process(XMLStreamBuffer buffer) throws org.xml.sax.SAXException
process(XMLStreamBuffer, boolean)
setXMLStreamBuffer(XMLStreamBuffer)
then process()
.org.xml.sax.SAXException
public final void process(XMLStreamBuffer buffer, boolean produceFragmentEvent) throws org.xml.sax.SAXException
setXMLStreamBuffer(XMLStreamBuffer,boolean)
then process()
.produceFragmentEvent
- True to generate fragment SAX events without start/endDocument.
False to generate a full document SAX events.org.xml.sax.SAXException
public void setXMLStreamBuffer(XMLStreamBuffer buffer)
setXMLStreamBuffer(XMLStreamBuffer, boolean)
.XMLStreamBuffer
.public void setXMLStreamBuffer(XMLStreamBuffer buffer, boolean produceFragmentEvent)
XMLStreamBuffer
.produceFragmentEvent
- True to generate fragment SAX events without start/endDocument.
False to generate a full document SAX events.public final void process() throws org.xml.sax.SAXException
XMLStreamBuffer
points to, and sends events to handlers.
TODO: We probably need two modes for a sub-tree event generation. One for firing a sub-tree as if it's a whole document (in which case start/endDocument and appropriate additional namespace bindings are necessary), and the other mode for firing a subtree as a subtree, like it does today. A stream buffer SAX feature could be used to specify this.
org.xml.sax.SAXException
- Follow the same semantics as XMLReader.parse(InputSource)
.private void processCommentAsCharArraySmall() throws org.xml.sax.SAXException
org.xml.sax.SAXException
private org.xml.sax.SAXParseException reportFatalError(java.lang.String msg) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private boolean isInscope()
private void processDocument() throws org.xml.sax.SAXException
org.xml.sax.SAXException
protected void processElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, boolean inscope) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void readInscopeNamespaces(java.util.Set<java.lang.String> prefixSet) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private static java.lang.String fixNull(java.lang.String s)
private void processCommentAsCharArrayCopy() throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processCommentAsCharArrayMedium() throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processEndPrefixMapping() throws org.xml.sax.SAXException
org.xml.sax.SAXException
private int processNamespaceAttributes(int item, boolean collectPrefixes, java.util.Set<java.lang.String> prefixSet) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processAttributes(int item) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processNamespaceAttribute(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void cacheNamespacePrefix(java.lang.String prefix)
private void cacheNamespacePrefixIndex()
private void cacheNamespacePrefixStartingIndex()
private void processComment(java.lang.String s) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processComment(char[] ch, int start, int length) throws org.xml.sax.SAXException
org.xml.sax.SAXException
private void processProcessingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
org.xml.sax.SAXException