DOMParserpublic class DOMParser extends AbstractDOMParser This is the main Xerces DOM parser class. It uses the abstract DOM
parser with a document scanner, a dtd scanner, and a validator, as
well as a grammar pool. |
Fields Summary |
---|
protected static final String | SYMBOL_TABLEProperty identifier: symbol table. | protected static final String | XMLGRAMMAR_POOLProperty identifier: XML grammar pool. | private static final String[] | RECOGNIZED_PROPERTIESRecognized properties. |
Constructors Summary |
---|
public DOMParser(XMLParserConfiguration config)Constructs a DOM parser using the specified parser configuration.
//
// Constructors
//
super(config);
| public DOMParser()Constructs a DOM parser using the dtd/xml schema parser configuration.
this(null, null);
| public DOMParser(SymbolTable symbolTable)Constructs a DOM parser using the specified symbol table.
this(symbolTable, null);
| public DOMParser(SymbolTable symbolTable, XMLGrammarPool grammarPool)Constructs a DOM parser using the specified symbol table and
grammar pool.
super((XMLParserConfiguration)ObjectFactory.createObject(
"com.sun.org.apache.xerces.internal.xni.parser.XMLParserConfiguration",
"com.sun.org.apache.xerces.internal.parsers.XIncludeParserConfiguration"
));
// set properties
fConfiguration.addRecognizedProperties(RECOGNIZED_PROPERTIES);
if (symbolTable != null) {
fConfiguration.setProperty(SYMBOL_TABLE, symbolTable);
}
if (grammarPool != null) {
fConfiguration.setProperty(XMLGRAMMAR_POOL, grammarPool);
}
|
Methods Summary |
---|
public org.xml.sax.EntityResolver | getEntityResolver()Return the current entity resolver.
EntityResolver entityResolver = null;
try {
XMLEntityResolver xmlEntityResolver =
(XMLEntityResolver)fConfiguration.getProperty(ENTITY_RESOLVER);
if (xmlEntityResolver != null){
if(xmlEntityResolver instanceof EntityResolverWrapper) {
entityResolver = ((EntityResolverWrapper)xmlEntityResolver).getEntityResolver();
}else if(xmlEntityResolver instanceof EntityResolver2Wrapper){
entityResolver = ((EntityResolver2Wrapper)xmlEntityResolver).getEntityResolver();
}
}
}catch (XMLConfigurationException e) {
// do nothing
}
return entityResolver;
| public org.xml.sax.ErrorHandler | getErrorHandler()Return the current error handler.
ErrorHandler errorHandler = null;
try {
XMLErrorHandler xmlErrorHandler =
(XMLErrorHandler)fConfiguration.getProperty(ERROR_HANDLER);
if (xmlErrorHandler != null &&
xmlErrorHandler instanceof ErrorHandlerWrapper) {
errorHandler = ((ErrorHandlerWrapper)xmlErrorHandler).getErrorHandler();
}
}
catch (XMLConfigurationException e) {
// do nothing
}
return errorHandler;
| public boolean | getFeature(java.lang.String featureId)Query the state of a feature.
Query the current state of any feature in a SAX2 parser. The
parser might not recognize the feature.
try {
return fConfiguration.getFeature(featureId);
}
catch (XMLConfigurationException e) {
String message = e.getMessage();
if (e.getType() == XMLConfigurationException.NOT_RECOGNIZED) {
throw new SAXNotRecognizedException(message);
}
else {
throw new SAXNotSupportedException(message);
}
}
| public java.lang.Object | getProperty(java.lang.String propertyId)Query the value of a property.
Return the current value of a property in a SAX2 parser.
The parser might not recognize the property.
if (propertyId.equals(CURRENT_ELEMENT_NODE)) {
boolean deferred = false;
try {
deferred = getFeature(DEFER_NODE_EXPANSION);
}
catch (XMLConfigurationException e){
// ignore
}
if (deferred) {
throw new SAXNotSupportedException("Current element node cannot be queried when node expansion is deferred.");
}
return (fCurrentNode!=null &&
fCurrentNode.getNodeType() == Node.ELEMENT_NODE)? fCurrentNode:null;
}
try {
return fConfiguration.getProperty(propertyId);
}
catch (XMLConfigurationException e) {
String message = e.getMessage();
if (e.getType() == XMLConfigurationException.NOT_RECOGNIZED) {
throw new SAXNotRecognizedException(message);
}
else {
throw new SAXNotSupportedException(message);
}
}
| public void | parse(java.lang.String systemId)Parses the input source specified by the given system identifier.
This method is equivalent to the following:
parse(new InputSource(systemId));
// parse document
XMLInputSource source = new XMLInputSource(null, systemId, null);
try {
parse(source);
}
// wrap XNI exceptions as SAX exceptions
catch (XMLParseException e) {
Exception ex = e.getException();
if (ex == null) {
// must be a parser exception; mine it for locator info and throw
// a SAXParseException
LocatorImpl locatorImpl = new LocatorImpl();
locatorImpl.setPublicId(e.getPublicId());
locatorImpl.setSystemId(e.getExpandedSystemId());
locatorImpl.setLineNumber(e.getLineNumber());
locatorImpl.setColumnNumber(e.getColumnNumber());
throw new SAXParseException(e.getMessage(), locatorImpl);
}
if (ex instanceof SAXException) {
// why did we create an XMLParseException?
throw (SAXException)ex;
}
if (ex instanceof IOException) {
throw (IOException)ex;
}
throw new SAXException(ex);
}
catch (XNIException e) {
e.printStackTrace();
Exception ex = e.getException();
if (ex == null) {
throw new SAXException(e.getMessage());
}
if (ex instanceof SAXException) {
throw (SAXException)ex;
}
if (ex instanceof IOException) {
throw (IOException)ex;
}
throw new SAXException(ex);
}
| public void | parse(org.xml.sax.InputSource inputSource)parse
// parse document
try {
XMLInputSource xmlInputSource =
new XMLInputSource(inputSource.getPublicId(),
inputSource.getSystemId(),
null);
xmlInputSource.setByteStream(inputSource.getByteStream());
xmlInputSource.setCharacterStream(inputSource.getCharacterStream());
xmlInputSource.setEncoding(inputSource.getEncoding());
parse(xmlInputSource);
}
// wrap XNI exceptions as SAX exceptions
catch (XMLParseException e) {
Exception ex = e.getException();
if (ex == null) {
// must be a parser exception; mine it for locator info and throw
// a SAXParseException
LocatorImpl locatorImpl = new LocatorImpl();
locatorImpl.setPublicId(e.getPublicId());
locatorImpl.setSystemId(e.getExpandedSystemId());
locatorImpl.setLineNumber(e.getLineNumber());
locatorImpl.setColumnNumber(e.getColumnNumber());
throw new SAXParseException(e.getMessage(), locatorImpl);
}
if (ex instanceof SAXException) {
// why did we create an XMLParseException?
throw (SAXException)ex;
}
if (ex instanceof IOException) {
throw (IOException)ex;
}
throw new SAXException(ex);
}
catch (XNIException e) {
Exception ex = e.getException();
if (ex == null) {
throw new SAXException(e.getMessage());
}
if (ex instanceof SAXException) {
throw (SAXException)ex;
}
if (ex instanceof IOException) {
throw (IOException)ex;
}
throw new SAXException(ex);
}
| public void | setEntityResolver(org.xml.sax.EntityResolver resolver)Sets the resolver used to resolve external entities. The EntityResolver
interface supports resolution of public and system identifiers.
try {
if(resolver instanceof EntityResolver2){
fConfiguration.setProperty(ENTITY_RESOLVER, new EntityResolver2Wrapper((EntityResolver2)resolver));
}else{
fConfiguration.setProperty(ENTITY_RESOLVER, new EntityResolverWrapper(resolver));
}
}
catch (XMLConfigurationException e) {
// do nothing
}
| public void | setErrorHandler(org.xml.sax.ErrorHandler errorHandler)Allow an application to register an error event handler.
If the application does not register an error handler, all
error events reported by the SAX parser will be silently
ignored; however, normal processing may not continue. It is
highly recommended that all SAX applications implement an
error handler to avoid unexpected bugs.
Applications may register a new or different handler in the
middle of a parse, and the SAX parser must begin using the new
handler immediately.
try {
fConfiguration.setProperty(ERROR_HANDLER,
new ErrorHandlerWrapper(errorHandler));
}
catch (XMLConfigurationException e) {
// do nothing
}
| public void | setFeature(java.lang.String featureId, boolean state)Set the state of any feature in a SAX2 parser. The parser
might not recognize the feature, and if it does recognize
it, it might not be able to fulfill the request.
try {
fConfiguration.setFeature(featureId, state);
}
catch (XMLConfigurationException e) {
String message = e.getMessage();
if (e.getType() == XMLConfigurationException.NOT_RECOGNIZED) {
throw new SAXNotRecognizedException(message);
}
else {
throw new SAXNotSupportedException(message);
}
}
| public void | setProperty(java.lang.String propertyId, java.lang.Object value)Set the value of any property in a SAX2 parser. The parser
might not recognize the property, and if it does recognize
it, it might not support the requested value.
try {
fConfiguration.setProperty(propertyId, value);
}
catch (XMLConfigurationException e) {
String message = e.getMessage();
if (e.getType() == XMLConfigurationException.NOT_RECOGNIZED) {
throw new SAXNotRecognizedException(message);
}
else {
throw new SAXNotSupportedException(message);
}
}
|
|