You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2008/11/03 05:45:27 UTC
svn commit: r710009 -
/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java
Author: mrglavas
Date: Sun Nov 2 20:45:26 2008
New Revision: 710009
URL: http://svn.apache.org/viewvc?rev=710009&view=rev
Log:
Minor performance improvement. If the XMLStreamReader returns true
for the "javax.xml.stream.isInterning" property avoid adding strings
to the SymbolTable where possible.
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java?rev=710009&r1=710008&r2=710009&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/jaxp/validation/StAXValidatorHelper.java Sun Nov 2 20:45:26 2008
@@ -75,6 +75,9 @@
// property identifiers
+ /** Property identifier: string interning. */
+ private static final String STRING_INTERNING = "javax.xml.stream.isInterning";
+
/** Property identifier: error reporter. */
private static final String ERROR_REPORTER =
Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY;
@@ -119,6 +122,9 @@
/** Map for tracking entity declarations. */
private HashMap fEntities = null;
+ /** Flag used to track whether XML names and Namespace URIs have been internalized. */
+ private boolean fStringsInternalized = false;
+
/** Validator helper for XMLStreamReaders. **/
private StreamHelper fStreamHelper;
@@ -244,9 +250,22 @@
/** Fills in a QName object. */
final void fillQName(QName toFill, String uri, String localpart, String prefix) {
- uri = (uri != null && uri.length() > 0) ? fSymbolTable.addSymbol(uri) : null;
- localpart = (localpart != null) ? fSymbolTable.addSymbol(localpart) : XMLSymbols.EMPTY_STRING;
- prefix = (prefix != null && prefix.length() > 0) ? fSymbolTable.addSymbol(prefix) : XMLSymbols.EMPTY_STRING;
+ if (!fStringsInternalized) {
+ uri = (uri != null && uri.length() > 0) ? fSymbolTable.addSymbol(uri) : null;
+ localpart = (localpart != null) ? fSymbolTable.addSymbol(localpart) : XMLSymbols.EMPTY_STRING;
+ prefix = (prefix != null && prefix.length() > 0) ? fSymbolTable.addSymbol(prefix) : XMLSymbols.EMPTY_STRING;
+ }
+ else {
+ if (uri != null && uri.length() == 0) {
+ uri = null;
+ }
+ if (localpart == null) {
+ localpart = XMLSymbols.EMPTY_STRING;
+ }
+ if (prefix == null) {
+ prefix = XMLSymbols.EMPTY_STRING;
+ }
+ }
String raw = localpart;
if (prefix != XMLSymbols.EMPTY_STRING) {
fStringBuffer.clear();
@@ -259,7 +278,7 @@
}
/** Setup for validation. **/
- final void setup(Location location, StAXResult result) {
+ final void setup(Location location, StAXResult result, boolean stringsInternalized) {
fDepth = 0;
fComponentManager.reset();
setupStAXResultHandler(result);
@@ -270,6 +289,7 @@
}
fStAXLocationWrapper.setLocation(location);
fErrorReporter.setDocumentLocator(fStAXLocationWrapper);
+ fStringsInternalized = stringsInternalized;
}
/** Copies entity declarations into a hash map. */
@@ -330,7 +350,7 @@
throw new SAXException(JAXPValidationMessageFormatter.formatMessage(Locale.getDefault(),
"StAXIllegalInitialState", null));
}
- setup(reader.getLocation(), result);
+ setup(reader.getLocation(), result, Boolean.TRUE.equals(reader.getProperty(STRING_INTERNING)));
fSchemaValidator.startDocument(fStAXLocationWrapper, null, fNamespaceContext, null);
do {
switch (eventType) {
@@ -458,7 +478,7 @@
throw new SAXException(JAXPValidationMessageFormatter.formatMessage(Locale.getDefault(),
"StAXIllegalInitialState", null));
}
- setup(null, result);
+ setup(null, result, false);
fSchemaValidator.startDocument(fStAXLocationWrapper, null, fNamespaceContext, null);
loop : while (reader.hasNext()) {
fCurrentEvent = reader.nextEvent();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org