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;
                   }
  -                */
   
               }
           }