public class XMLDocumentFragmentScannerImpl extends XMLScanner implements XMLDocumentScanner, XMLComponent, XMLEntityHandler
This component requires the following features and properties from the component manager that uses it:
Modifier and Type | Class and Description |
---|---|
protected static interface |
XMLDocumentFragmentScannerImpl.Dispatcher
This interface defines an XML "event" dispatching model.
|
protected static class |
XMLDocumentFragmentScannerImpl.ElementStack
Element stack.
|
protected class |
XMLDocumentFragmentScannerImpl.FragmentContentDispatcher
Dispatcher to handle content scanning.
|
Modifier and Type | Field and Description |
---|---|
protected static boolean |
DEBUG_CONTENT_SCANNING
Debug content dispatcher scanning.
|
protected static String |
ENTITY_RESOLVER
Property identifier: entity resolver.
|
protected QName |
fAttributeQName
Attribute QName.
|
protected XMLAttributesImpl |
fAttributes
Element attributes.
|
protected XMLDocumentFragmentScannerImpl.Dispatcher |
fContentDispatcher
Content dispatcher.
|
protected QName |
fCurrentElement
Current element.
|
protected XMLDocumentFragmentScannerImpl.Dispatcher |
fDispatcher
Active dispatcher.
|
protected XMLDocumentHandler |
fDocumentHandler
Document handler.
|
protected QName |
fElementQName
Element QName.
|
protected XMLDocumentFragmentScannerImpl.ElementStack |
fElementStack
Element stack.
|
protected int[] |
fEntityStack
Entity stack.
|
protected ExternalSubsetResolver |
fExternalSubsetResolver
External subset resolver.
|
protected boolean |
fHasExternalDTD
has external dtd
|
protected boolean |
fInScanContent
SubScanner state: inside scanContent method.
|
protected boolean |
fIsEntityDeclaredVC
True if [Entity Declared] is a VC; false if it is a WFC.
|
protected int |
fMarkupDepth
Markup depth.
|
protected boolean |
fNotifyBuiltInRefs
Notify built-in references.
|
protected int |
fScannerState
Scanner state.
|
protected boolean |
fStandalone
Standalone.
|
protected XMLString |
fTempString
String.
|
protected XMLString |
fTempString2
String.
|
protected static String |
NAMESPACES
Feature identifier: namespaces.
|
protected static String |
NOTIFY_BUILTIN_REFS
Feature identifier: notify built-in refereces.
|
protected static int |
SCANNER_STATE_CDATA
Scanner state: CDATA section.
|
protected static int |
SCANNER_STATE_COMMENT
Scanner state: comment.
|
protected static int |
SCANNER_STATE_CONTENT
Scanner state: content.
|
protected static int |
SCANNER_STATE_DOCTYPE
Scanner state: DOCTYPE.
|
protected static int |
SCANNER_STATE_END_OF_INPUT
Scanner state: end of input.
|
protected static int |
SCANNER_STATE_PI
Scanner state: processing instruction.
|
protected static int |
SCANNER_STATE_REFERENCE
Scanner state: reference.
|
protected static int |
SCANNER_STATE_ROOT_ELEMENT
Scanner state: root element.
|
protected static int |
SCANNER_STATE_START_OF_MARKUP
Scanner state: start of markup.
|
protected static int |
SCANNER_STATE_TERMINATED
Scanner state: terminated.
|
protected static int |
SCANNER_STATE_TEXT_DECL
Scanner state: Text declaration.
|
DEBUG_ATTR_NORMALIZATION, ENTITY_MANAGER, ERROR_REPORTER, fAmpSymbol, fAposSymbol, fCharRefLiteral, fEncodingSymbol, fEntityDepth, fEntityManager, fEntityScanner, fErrorReporter, fGtSymbol, fLtSymbol, fNamespaces, fNotifyCharRefs, fParserSettings, fQuotSymbol, fReportEntity, fResourceIdentifier, fScanningAttribute, fStandaloneSymbol, fSymbolTable, fValidation, fVersionSymbol, NOTIFY_CHAR_REFS, PARSER_SETTINGS, SYMBOL_TABLE, VALIDATION
Constructor and Description |
---|
XMLDocumentFragmentScannerImpl()
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected XMLDocumentFragmentScannerImpl.Dispatcher |
createContentDispatcher()
Creates a content dispatcher.
|
void |
endEntity(String name,
Augmentations augs)
This method notifies the end of an entity.
|
String |
getDispatcherName(XMLDocumentFragmentScannerImpl.Dispatcher dispatcher)
Returns the dispatcher name.
|
XMLDocumentHandler |
getDocumentHandler()
Returns the document handler
|
Boolean |
getFeatureDefault(String featureId)
Returns the default state for a feature, or null if this
component does not want to report a default value for this
feature.
|
Object |
getPropertyDefault(String propertyId)
Returns the default state for a property, or null if this
component does not want to report a default value for this
property.
|
String[] |
getRecognizedFeatures()
Returns a list of feature identifiers that are recognized by
this component.
|
String[] |
getRecognizedProperties()
Returns a list of property identifiers that are recognized by
this component.
|
protected String |
getScannerStateName(int state)
Returns the scanner state name.
|
protected int |
handleEndElement(QName element,
boolean isEmpty)
Handles the end element.
|
void |
reset(XMLComponentManager componentManager)
Resets the component.
|
protected void |
scanAttribute(XMLAttributes attributes)
Scans an attribute.
|
protected boolean |
scanCDATASection(boolean complete)
Scans a CDATA section.
|
protected void |
scanCharReference()
Scans a character reference.
|
protected void |
scanComment()
Scans a comment.
|
protected int |
scanContent()
Scans element content.
|
boolean |
scanDocument(boolean complete)
Scans a document.
|
protected int |
scanEndElement()
Scans an end element.
|
protected void |
scanEntityReference()
Scans an entity reference.
|
protected void |
scanPIData(String target,
XMLString data)
Scans a processing data.
|
protected boolean |
scanStartElement()
Scans a start element.
|
protected boolean |
scanStartElementAfterName()
Scans the remainder of a start or empty tag after the element name.
|
protected void |
scanStartElementName()
Scans the name of an element in a start or empty tag.
|
protected void |
scanXMLDeclOrTextDecl(boolean scanningTextDecl)
Scans an XML or text declaration.
|
protected void |
setDispatcher(XMLDocumentFragmentScannerImpl.Dispatcher dispatcher)
Sets the dispatcher.
|
void |
setDocumentHandler(XMLDocumentHandler documentHandler)
setDocumentHandler
|
void |
setFeature(String featureId,
boolean state)
Sets the state of a feature.
|
void |
setInputSource(XMLInputSource inputSource)
Sets the input source.
|
void |
setProperty(String propertyId,
Object value)
Sets the value of a property.
|
protected void |
setScannerState(int state)
Sets the scanner state.
|
void |
startEntity(String name,
XMLResourceIdentifier identifier,
String encoding,
Augmentations augs)
This method notifies of the start of an entity.
|
getFeature, getVersionNotSupportedKey, isInvalid, isInvalidLiteral, isUnchangedByNormalization, isValidNameChar, isValidNameStartChar, isValidNameStartHighSurrogate, isValidNCName, normalizeWhitespace, normalizeWhitespace, reportFatalError, reset, scanAttributeValue, scanCharReferenceValue, scanComment, scanExternalID, scanPI, scanPseudoAttribute, scanPubidLiteral, scanSurrogates, scanXMLDeclOrTextDecl, versionSupported
protected static final int SCANNER_STATE_START_OF_MARKUP
protected static final int SCANNER_STATE_COMMENT
protected static final int SCANNER_STATE_PI
protected static final int SCANNER_STATE_DOCTYPE
protected static final int SCANNER_STATE_ROOT_ELEMENT
protected static final int SCANNER_STATE_CONTENT
protected static final int SCANNER_STATE_REFERENCE
protected static final int SCANNER_STATE_END_OF_INPUT
protected static final int SCANNER_STATE_TERMINATED
protected static final int SCANNER_STATE_CDATA
protected static final int SCANNER_STATE_TEXT_DECL
protected static final String NAMESPACES
protected static final String NOTIFY_BUILTIN_REFS
protected static final String ENTITY_RESOLVER
protected static final boolean DEBUG_CONTENT_SCANNING
protected XMLDocumentHandler fDocumentHandler
protected int[] fEntityStack
protected int fMarkupDepth
protected int fScannerState
protected boolean fInScanContent
protected boolean fHasExternalDTD
protected boolean fStandalone
protected boolean fIsEntityDeclaredVC
protected ExternalSubsetResolver fExternalSubsetResolver
protected QName fCurrentElement
protected final XMLDocumentFragmentScannerImpl.ElementStack fElementStack
protected boolean fNotifyBuiltInRefs
protected XMLDocumentFragmentScannerImpl.Dispatcher fDispatcher
protected final XMLDocumentFragmentScannerImpl.Dispatcher fContentDispatcher
protected final QName fElementQName
protected final QName fAttributeQName
protected final XMLAttributesImpl fAttributes
protected final XMLString fTempString
protected final XMLString fTempString2
public XMLDocumentFragmentScannerImpl()
public void setInputSource(XMLInputSource inputSource) throws IOException
setInputSource
in interface XMLDocumentScanner
inputSource
- The input source.IOException
- Thrown on i/o error.public boolean scanDocument(boolean complete) throws IOException, XNIException
scanDocument
in interface XMLDocumentScanner
complete
- True if the scanner should scan the document
completely, pushing all events to the registered
document handler. A value of false indicates that
that the scanner should only scan the next portion
of the document and return. A scanner instance is
permitted to completely scan a document if it does
not support this "pull" scanning model.IOException
XNIException
public void reset(XMLComponentManager componentManager) throws XMLConfigurationException
reset
in interface XMLComponent
reset
in class XMLScanner
componentManager
- The component manager.SAXException
- Thrown by component on initialization error.
For example, if a feature or property is
required for the operation of the component, the
component manager may throw a
SAXNotRecognizedException or a
SAXNotSupportedException.XMLConfigurationException
public String[] getRecognizedFeatures()
getRecognizedFeatures
in interface XMLComponent
public void setFeature(String featureId, boolean state) throws XMLConfigurationException
Note: Components should silently ignore features that do not affect the operation of the component.
setFeature
in interface XMLComponent
setFeature
in class XMLScanner
featureId
- The feature identifier.state
- The state of the feature.SAXNotRecognizedException
- The component should not throw
this exception.SAXNotSupportedException
- The component should not throw
this exception.XMLConfigurationException
- Thrown for configuration error.
In general, components should
only throw this exception if
it is really
a critical error.public String[] getRecognizedProperties()
getRecognizedProperties
in interface XMLComponent
public void setProperty(String propertyId, Object value) throws XMLConfigurationException
Note: Components should silently ignore properties that do not affect the operation of the component.
setProperty
in interface XMLComponent
setProperty
in class XMLScanner
propertyId
- The property identifier.value
- The value of the property.SAXNotRecognizedException
- The component should not throw
this exception.SAXNotSupportedException
- The component should not throw
this exception.XMLConfigurationException
- Thrown for configuration error.
In general, components should
only throw this exception if
it is really
a critical error.public Boolean getFeatureDefault(String featureId)
getFeatureDefault
in interface XMLComponent
featureId
- The feature identifier.public Object getPropertyDefault(String propertyId)
getPropertyDefault
in interface XMLComponent
propertyId
- The property identifier.public void setDocumentHandler(XMLDocumentHandler documentHandler)
setDocumentHandler
in interface XMLDocumentSource
documentHandler
- public XMLDocumentHandler getDocumentHandler()
getDocumentHandler
in interface XMLDocumentSource
public void startEntity(String name, XMLResourceIdentifier identifier, String encoding, Augmentations augs) throws XNIException
startEntity
in interface XMLEntityHandler
startEntity
in class XMLScanner
name
- The name of the entity.identifier
- The resource identifier.encoding
- The auto-detected IANA encoding name of the entity
stream. This value will be null in those situations
where the entity encoding is not auto-detected (e.g.
internal entities or a document entity that is
parsed from a java.io.Reader).augs
- Additional information that may include infoset augmentationsXNIException
- Thrown by handler to signal an error.public void endEntity(String name, Augmentations augs) throws XNIException
endEntity
in interface XMLEntityHandler
endEntity
in class XMLScanner
name
- The name of the entity.augs
- Additional information that may include infoset augmentationsXNIException
- Thrown by handler to signal an error.protected XMLDocumentFragmentScannerImpl.Dispatcher createContentDispatcher()
protected void scanXMLDeclOrTextDecl(boolean scanningTextDecl) throws IOException, XNIException
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>' [24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ") [80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'" ) [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* [32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
scanningTextDecl
- True if a text declaration is to
be scanned instead of an XML
declaration.IOException
XNIException
protected void scanPIData(String target, XMLString data) throws IOException, XNIException
scanPIData
in class XMLScanner
target
- The PI targetdata
- The string to fill in with the dataIOException
XNIException
protected void scanComment() throws IOException, XNIException
[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
Note: Called after scanning past '<!--'
IOException
XNIException
protected boolean scanStartElement() throws IOException, XNIException
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [40] STag ::= '<' Name (S Attribute)* S? '>'
Note: This method assumes that the leading '<' character has been consumed.
Note: This method uses the fElementQName and fAttributes variables. The contents of these variables will be destroyed. The caller should copy important information out of these variables before calling this method.
IOException
XNIException
protected void scanStartElementName() throws IOException, XNIException
IOException
XNIException
scanStartElement()
protected boolean scanStartElementAfterName() throws IOException, XNIException
IOException
XNIException
scanStartElement()
protected void scanAttribute(XMLAttributes attributes) throws IOException, XNIException
[41] Attribute ::= Name Eq AttValue
Note: This method assumes that the next character on the stream is the first character of the attribute name.
Note: This method uses the fAttributeQName and fQName variables. The contents of these variables will be destroyed.
attributes
- The attributes list for the scanned attribute.IOException
XNIException
protected int scanContent() throws IOException, XNIException
IOException
XNIException
protected boolean scanCDATASection(boolean complete) throws IOException, XNIException
Note: This method uses the fTempString and fStringBuffer variables.
complete
- True if the CDATA section is to be scanned
completely.IOException
XNIException
protected int scanEndElement() throws IOException, XNIException
[42] ETag ::= '</' Name S? '>'
Note: This method uses the fElementQName variable. The contents of this variable will be destroyed. The caller should copy the needed information out of this variable before calling this method.
IOException
XNIException
protected void scanCharReference() throws IOException, XNIException
[66] CharRef ::= '' [0-9]+ ';' | '' [0-9a-fA-F]+ ';'
IOException
XNIException
protected void scanEntityReference() throws IOException, XNIException
IOException
- Thrown if i/o error occurs.XNIException
- Thrown if handler throws exception upon
notification.protected int handleEndElement(QName element, boolean isEmpty) throws XNIException
Note: This method uses the fQName variable. The contents of this variable will be destroyed.
element
- The element.XNIException
- Thrown if the handler throws a SAX exception
upon notification.protected final void setScannerState(int state)
state
- The new scanner state.protected final void setDispatcher(XMLDocumentFragmentScannerImpl.Dispatcher dispatcher)
dispatcher
- The new dispatcher.protected String getScannerStateName(int state)
public String getDispatcherName(XMLDocumentFragmentScannerImpl.Dispatcher dispatcher)
Copyright © 2021 JBoss by Red Hat. All rights reserved.