You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by je...@locus.apache.org on 2000/08/19 02:02:31 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/validators/datatype ENTITYDatatypeValidator.java
jeffreyr 00/08/18 17:02:31
Modified: java/src/org/apache/xerces/validators/datatype
ENTITYDatatypeValidator.java
Log:
Entities consolidation - Fixed Entities
Revision Changes Path
1.5 +25 -6 xml-xerces/java/src/org/apache/xerces/validators/datatype/ENTITYDatatypeValidator.java
Index: ENTITYDatatypeValidator.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/validators/datatype/ENTITYDatatypeValidator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ENTITYDatatypeValidator.java 2000/08/18 18:34:25 1.4
+++ ENTITYDatatypeValidator.java 2000/08/19 00:02:31 1.5
@@ -59,6 +59,7 @@
import java.util.Hashtable;
import java.util.Locale;
+import java.util.StringTokenizer;
import org.apache.xerces.readers.DefaultEntityHandler;
import org.apache.xerces.utils.XMLMessages;
import org.apache.xerces.utils.StringPool;
@@ -104,7 +105,7 @@
* standalone code as well as plugins to the validator architecture.
*
* @author Jeffrey Rodriguez-
- * @version $Id: ENTITYDatatypeValidator.java,v 1.4 2000/08/18 18:34:25 jeffreyr Exp $
+ * @version $Id: ENTITYDatatypeValidator.java,v 1.5 2000/08/19 00:02:31 jeffreyr Exp $
* @see org.apache.xerces.validators.datatype.DatatypeValidator
* @see org.apache.xerces.validators.datatype.DatatypeValidatorFactoryImpl
* @see org.apache.xerces.validators.datatype.DatatypeValidatorFactory
@@ -190,15 +191,33 @@
throw error;
}
} else {
- /*
- if (!this.fEntityHandler.isUnparsedEntity() ) {
+ StringTokenizer listOfEntities = new StringTokenizer(content);
+ StringBuffer sb = new StringBuffer(content.length());
+ boolean ok = true;
+ if (listOfEntities.hasMoreTokens()) {
+ while (true) {
+ String nextEntity = listOfEntities.nextToken();
+
+ // ENTITIES - check that each value is an unparsed entity name (V_TAGa)
+
+ if ( this.fEntityHandler.isUnparsedEntity(this.fStringPool.addSymbol(nextEntity) ) == false ) {
+ ok = false;
+ }
+ sb.append(nextEntity);
+ if (!listOfEntities.hasMoreTokens()) {
+ break;
+ }
+ sb.append(' ');
+ }
+ }
+ String errorContent = sb.toString();
+ if (!ok || errorContent.length() == 0) {
InvalidDatatypeValueException error =
- new InvalidDatatypeValueException( "ENTITY '"+ content +"' is not valid" );//Need Message
- error.setMinorCode(XMLMessages.MSG_ENTITY_INVALID );
+ new InvalidDatatypeValueException( errorContent );
+ error.setMinorCode(XMLMessages.MSG_ENTITIES_INVALID );
error.setMajorCode(XMLMessages.VC_ENTITY_NAME);
throw error;
}
- */
}
}