elena 2002/09/04 12:02:05
Modified: java/src/org/apache/xerces/dom
DOMImplementationSourceImpl.java
Log:
Patch: the current version in the Apache repository does not support request
such as "XML 2.0 LS-Load 3.0".
Submitted by: Philippe Le Hegaret
Applied by: Elena Litani
Revision Changes Path
1.7 +37 -6
xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationSourceImpl.java
Index: DOMImplementationSourceImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMImplementationSourceImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DOMImplementationSourceImpl.java 23 Aug 2002 20:14:38 -0000 1.6
+++ DOMImplementationSourceImpl.java 4 Sep 2002 19:02:05 -0000 1.7
@@ -108,12 +108,43 @@
}
boolean testImpl(DOMImplementation impl, String features) {
+
StringTokenizer st = new StringTokenizer(features);
- while (st.hasMoreTokens()) {
- String feature = st.nextToken();
- if (!impl.hasFeature(feature, null)) {
- return false;
- }
+ String feature = null;
+ String version = null;
+
+ if (st.hasMoreTokens()) {
+ feature = st.nextToken();
+ }
+ while (feature != null) {
+ boolean isVersion = false;
+ if (st.hasMoreTokens()) {
+ char c;
+ version = st.nextToken();
+ c = version.charAt(0);
+ switch (c) {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ isVersion = true;
+ }
+ } else {
+ version = null;
+ }
+ if (isVersion) {
+ if (!impl.hasFeature(feature, version)) {
+ return false;
+ }
+ if (st.hasMoreTokens()) {
+ feature = st.nextToken();
+ } else {
+ feature = null;
+ }
+ } else {
+ if (!impl.hasFeature(feature, null)) {
+ return false;
+ }
+ feature = version;
+ }
}
return true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]