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/06/02 07:39:08 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/validators/schema SchemaGrammar.java TraverseSchema.java

jeffreyr    00/06/01 22:39:08

  Modified:    java/src/org/apache/xerces/validators/schema
                        SchemaGrammar.java TraverseSchema.java
  Log:
  Changes for new datatype factory architecture
  
  Revision  Changes    Path
  1.6       +5 -5      xml-xerces/java/src/org/apache/xerces/validators/schema/SchemaGrammar.java
  
  Index: SchemaGrammar.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/validators/schema/SchemaGrammar.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- SchemaGrammar.java	2000/05/24 23:45:49	1.5
  +++ SchemaGrammar.java	2000/06/02 05:39:07	1.6
  @@ -56,7 +56,7 @@
    * <http://www.apache.org/>.
    */
    /*
  - * @version $Id: SchemaGrammar.java,v 1.5 2000/05/24 23:45:49 ericye Exp $
  + * @version $Id: SchemaGrammar.java,v 1.6 2000/06/02 05:39:07 jeffreyr Exp $
    */
   package org.apache.xerces.validators.schema;
   
  @@ -64,7 +64,7 @@
   import org.apache.xerces.utils.QName;
   import org.apache.xerces.framework.XMLContentSpec;
   import org.apache.xerces.validators.datatype.DatatypeValidator;
  -import org.apache.xerces.validators.datatype.DatatypeValidatorRegistry;
  +import org.apache.xerces.validators.datatype.DatatypeValidatorFactoryImpl;
   import org.apache.xerces.validators.common.XMLAttributeDecl;
   import org.apache.xerces.validators.common.XMLContentModel;
   import org.apache.xerces.validators.common.XMLElementDecl;
  @@ -112,7 +112,7 @@
       //ComplexType and SimpleTypeRegistries
       private Hashtable fComplexTypeRegistry = null;
       private Hashtable fAttributeDeclRegistry = null;
  -    private DatatypeValidatorRegistry fDatatypeRegistry = null;
  +    private DatatypeValidatorFactoryImpl fDatatypeRegistry = null;
   
       Hashtable topLevelGroupDecls = new Hashtable();
       Hashtable topLevelAttrDecls  = new Hashtable();
  @@ -129,7 +129,7 @@
           return fComplexTypeRegistry;
       }
   
  -    public DatatypeValidatorRegistry getDatatypeRegistry(){
  +    public DatatypeValidatorFactoryImpl getDatatypeRegistry(){
           return fDatatypeRegistry;
       }
   
  @@ -198,7 +198,7 @@
           fComplexTypeRegistry = cTypeReg;
       }
   
  -    protected void setDatatypeRegistry(DatatypeValidatorRegistry dTypeReg){
  +    protected void setDatatypeRegistry(DatatypeValidatorFactoryImpl dTypeReg){
           fDatatypeRegistry = dTypeReg;
       }
   
  
  
  
  1.11      +25 -14    xml-xerces/java/src/org/apache/xerces/validators/schema/TraverseSchema.java
  
  Index: TraverseSchema.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/validators/schema/TraverseSchema.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- TraverseSchema.java	2000/06/01 20:43:07	1.10
  +++ TraverseSchema.java	2000/06/02 05:39:07	1.11
  @@ -66,7 +66,7 @@
   import  org.apache.xerces.validators.schema.SchemaSymbols;
   import  org.apache.xerces.validators.schema.XUtil;
   import  org.apache.xerces.validators.datatype.DatatypeValidator;
  -import  org.apache.xerces.validators.datatype.DatatypeValidatorRegistry;
  +import  org.apache.xerces.validators.datatype.DatatypeValidatorFactoryImpl;
   import  org.apache.xerces.validators.datatype.InvalidDatatypeValueException;
   import  org.apache.xerces.utils.StringPool;
   import  org.w3c.dom.Element;
  @@ -80,9 +80,7 @@
   //Unit Test 
   import  org.apache.xerces.parsers.DOMParser;
   import  org.apache.xerces.validators.common.XMLValidator;
  -import  org.apache.xerces.validators.datatype.*;
  -
  -import  org.apache.xerces.validators.datatype.DatatypeValidator;
  +import  org.apache.xerces.validators.datatype.DatatypeValidator.*;
   import  org.apache.xerces.validators.datatype.InvalidDatatypeValueException;
   import  org.apache.xerces.framework.XMLContentSpec;
   import  org.apache.xerces.utils.QName;
  @@ -376,7 +374,7 @@
    *         Eric Ye
    * @see                  org.apache.xerces.validators.common.Grammar
    *
  - * @version $Id: TraverseSchema.java,v 1.10 2000/06/01 20:43:07 ericye Exp $
  + * @version $Id: TraverseSchema.java,v 1.11 2000/06/02 05:39:07 jeffreyr Exp $
    */
   
   public class TraverseSchema implements 
  @@ -399,9 +397,10 @@
       private SchemaGrammar fSchemaGrammar = null;
   
       private Element fSchemaRootElement;
  +
  +    private DatatypeValidatorFactoryImpl fDatatypeRegistry =  
  +                          DatatypeValidatorFactoryImpl.getDatatypeRegistry();
   
  -    private DatatypeValidatorRegistry fDatatypeRegistry =
  -                                             DatatypeValidatorRegistry.getDatatypeRegistry();
       private Hashtable fComplexTypeRegistry = new Hashtable();
       private Hashtable fAttributeDeclRegistry = new Hashtable();
   
  @@ -1027,10 +1026,21 @@
   
           // create & register validator for "generated" type if it doesn't exist
           try {
  -            DatatypeValidator newValidator = (DatatypeValidator) baseValidator.getClass().newInstance();
  -           if (numFacets > 0)
  -               newValidator.setFacets(facetData, varietyProperty );
  -           fDatatypeRegistry.addValidator(fStringPool.toString(newSimpleTypeName),newValidator);
  +           String nameOfType = 
  +                            fStringPool.toString( newSimpleTypeName );
  +
  +           DatatypeValidator newValidator =
  +                 fDatatypeRegistry.getDatatypeValidator( nameOfType );
  +
  +           if( newValidator == null ) { // not previously registered
  +               boolean  derivedByList = 
  +                    varietyProperty.equals( SchemaSymbols.ATTVAL_LIST ) ? true:false;
  +
  +               fDatatypeRegistry.createDatatypeValidator( nameOfType, baseValidator,
  +                              facetData, derivedByList ); 
  +              
  +               }
  +            
              } catch (Exception e) {
                  //e.printStackTrace(System.err);
                  reportSchemaError(SchemaMessageProvider.DatatypeError,new Object [] { e.getMessage() });
  @@ -1302,8 +1312,9 @@
               }
   
               // overide the facets of the baseTypeValidator
  -            if (numFacets > 0)
  -                baseTypeValidator.setFacets(facetData, derivedBy );
  +            // Talk with Eric - This is not allowed in the new Architecture
  +            //if (numFacets > 0)
  +            //    baseTypeValidator.setFacets(facetData, derivedBy );
   
               // now we are ready with our own simpleTypeValidator
               simpleTypeValidator = baseTypeValidator;
  @@ -1945,7 +1956,7 @@
                       dv = fDatatypeRegistry.getDatatypeValidator(datatype);
                       if (dv != null) 
                           //REVISIT
  -                        dv.validate(fStringPool.toString(attDefaultValue));
  +                        dv.validate(fStringPool.toString(attDefaultValue), null);
                       else
                           reportSchemaError(SchemaMessageProvider.NoValidatorFor,
                                             new Object [] { datatype });