You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by el...@apache.org on 2003/05/28 00:09:24 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/parsers DOMBuilderImpl.java
elena 2003/05/27 15:09:22
Modified: java/src/org/apache/xerces/parsers DOMBuilderImpl.java
Log:
The DOM schema-location property was not mapped correctly to the JAXP schemaSource
we should use array of Objects if more than one schema is specified.
See: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=19106
Revision Changes Path
1.35 +26 -6 xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java
Index: DOMBuilderImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DOMBuilderImpl.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- DOMBuilderImpl.java 8 May 2003 20:11:58 -0000 1.34
+++ DOMBuilderImpl.java 27 May 2003 22:09:21 -0000 1.35
@@ -59,6 +59,8 @@
import java.io.StringReader;
import java.util.Stack;
+import java.util.StringTokenizer;
+import java.util.Vector;
import org.apache.xerces.dom.DOMErrorImpl;
import org.apache.xerces.dom.DOMMessageFormatter;
@@ -143,6 +145,9 @@
protected boolean fBusy = false;
protected final static boolean DEBUG = false;
+
+ private Vector fSchemaLocations = new Vector();
+ private String fSchemaLocation = null;
//
// Constructors
@@ -257,6 +262,7 @@
if (fSkippedElemStack!=null) {
fSkippedElemStack.removeAllElements();
}
+ fSchemaLocations.clear();
fRejectedElement.clear();
fFilterReject = false;
fSchemaType = null;
@@ -431,10 +437,25 @@
if (value instanceof String) {
try {
if (fSchemaType == Constants.NS_XMLSCHEMA) {
+ fSchemaLocation = (String)value;
// map DOM schema-location to JAXP schemaSource property
- fConfiguration.setProperty(
- Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE,
- value);
+ // tokenize location string
+ StringTokenizer t = new StringTokenizer(fSchemaLocation, " \n\t\r");
+ if (t.hasMoreTokens()){
+ fSchemaLocations.clear();
+ fSchemaLocations.add(t.nextToken ());
+ while (t.hasMoreTokens()) {
+ fSchemaLocations.add(t.nextToken ());
+ }
+ fConfiguration.setProperty(
+ Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE,
+ fSchemaLocations.toArray());
+ }
+ else {
+ fConfiguration.setProperty(
+ Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE,
+ value);
+ }
}
else {
// REVISIT: allow pre-parsing DTD grammars
@@ -587,8 +608,7 @@
Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE);
}
else if (name.equals(Constants.DOM_SCHEMA_LOCATION)) {
- return fConfiguration.getProperty(
- Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_SOURCE);
+ return fSchemaLocation;
}
else if (name.equals(SYMBOL_TABLE)){
return fConfiguration.getProperty(SYMBOL_TABLE);
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org