gareth      2002/12/02 05:25:52

  Modified:    c/src/xercesc/validators/datatype
                        DatatypeValidatorFactory.cpp
  Log:
  Fix for bug #12188. Create NMTOKEN, ID, IDREF, ENTITY, NAME, NCNAME with appropriate 
base types. Some reordering of creation was required where dependencies resulted.
  
  Revision  Changes    Path
  1.7       +35 -20    
xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
  
  Index: DatatypeValidatorFactory.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DatatypeValidatorFactory.cpp      21 Nov 2002 23:43:19 -0000      1.6
  +++ DatatypeValidatorFactory.cpp      2 Dec 2002 13:25:51 -0000       1.7
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.7  2002/12/02 13:25:51  gareth
  + * Fix for bug #12188. Create NMTOKEN, ID, IDREF, ENTITY, NAME, NCNAME with 
appropriate base types. Some reordering of creation was required where dependencies 
resulted.
  + *
    * Revision 1.6  2002/11/21 23:43:19  peiyongz
    * Schema Errata: E2-25 language
    *
  @@ -425,10 +428,6 @@
                              new AnyURIDatatypeValidator());
               fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_QNAME,
                              new QNameDatatypeValidator());
  -            fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_NAME,
  -                           new NameDatatypeValidator());
  -            fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_NCNAME,
  -                           new NCNameDatatypeValidator());
   
               fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_DATETIME,
                              new DateTimeDatatypeValidator());
  @@ -456,21 +455,7 @@
   
               RefHashTableOf<KVStringPair>* facets = new 
RefHashTableOf<KVStringPair>(3);
   
  -            // Create 'NMTOKEN' datatype validator
  -            facets->put((void*) SchemaSymbols::fgELT_PATTERN ,
  -                            new 
KVStringPair(SchemaSymbols::fgELT_PATTERN,fgTokPattern));
  -            facets->put((void*) SchemaSymbols::fgELT_WHITESPACE,
  -                            new KVStringPair(SchemaSymbols::fgELT_WHITESPACE, 
SchemaSymbols::fgWS_COLLAPSE));
  -
  -            createDatatypeValidator(XMLUni::fgNmTokenString,
  -                            
getDatatypeValidator(SchemaSymbols::fgDT_STRING),facets, 0, false, 0, false);
  -
  -            // Create 'NMTOKENS' datatype validator
  -            createDatatypeValidator(XMLUni::fgNmTokensString,
  -                              getDatatypeValidator(XMLUni::fgNmTokenString), 0, 0, 
true, 0, false);
  -
               // Create 'normalizedString' datatype validator
  -            facets = new RefHashTableOf<KVStringPair>(3);
               facets->put((void*) SchemaSymbols::fgELT_WHITESPACE,
                           new KVStringPair(SchemaSymbols::fgELT_WHITESPACE, 
SchemaSymbols::fgWS_REPLACE));
   
  @@ -480,7 +465,6 @@
   
               // Create 'token' datatype validator
               facets = new RefHashTableOf<KVStringPair>(3);
  -
               facets->put((void*) SchemaSymbols::fgELT_WHITESPACE,
                           new KVStringPair(SchemaSymbols::fgELT_WHITESPACE, 
SchemaSymbols::fgWS_COLLAPSE));
   
  @@ -488,6 +472,27 @@
                             
getDatatypeValidator(SchemaSymbols::fgDT_NORMALIZEDSTRING),
                             facets, 0, false, 0, false);
   
  +            fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_NAME,
  +                           new 
NameDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_TOKEN), 0, 0, 0));
  +            fBuiltInRegistry->put((void*) SchemaSymbols::fgDT_NCNAME,
  +                           new 
NCNameDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_TOKEN), 0, 0, 0));
  +
  +
  +            // Create 'NMTOKEN' datatype validator
  +            facets = new RefHashTableOf<KVStringPair>(3);
  +
  +            facets->put((void*) SchemaSymbols::fgELT_PATTERN ,
  +                            new 
KVStringPair(SchemaSymbols::fgELT_PATTERN,fgTokPattern));
  +            facets->put((void*) SchemaSymbols::fgELT_WHITESPACE,
  +                            new KVStringPair(SchemaSymbols::fgELT_WHITESPACE, 
SchemaSymbols::fgWS_COLLAPSE));
  +
  +            createDatatypeValidator(XMLUni::fgNmTokenString,
  +                            getDatatypeValidator(SchemaSymbols::fgDT_TOKEN),facets, 
0, false, 0, false);
  +
  +            // Create 'NMTOKENS' datatype validator
  +            createDatatypeValidator(XMLUni::fgNmTokensString,
  +                              getDatatypeValidator(XMLUni::fgNmTokenString), 0, 0, 
true, 0, false);
  +
               // Create 'language' datatype validator
               facets = new RefHashTableOf<KVStringPair>(3);
   
  @@ -646,12 +651,22 @@
           fUserDefinedRegistry = new RefHashTableOf<DatatypeValidator>(29);
   
       if (!getDatatypeValidator(XMLUni::fgIDRefsString)) {
  -        fUserDefinedRegistry->put((void*) XMLUni::fgIDString,
  +        /*        fUserDefinedRegistry->put((void*) XMLUni::fgIDString,
                              new IDDatatypeValidator());
           fUserDefinedRegistry->put((void*) XMLUni::fgIDRefString,
                              new IDREFDatatypeValidator());
           fUserDefinedRegistry->put((void*) XMLUni::fgEntityString,
                              new ENTITYDatatypeValidator());
  +        */
  +
  +
  +        fUserDefinedRegistry->put((void*) XMLUni::fgIDString,
  +                           new 
IDDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0));
  +        fUserDefinedRegistry->put((void*) XMLUni::fgIDRefString,
  +                           new 
IDREFDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0));
  +        fUserDefinedRegistry->put((void*) XMLUni::fgEntityString,
  +                           new 
ENTITYDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0));
  +        
   
           // Create 'IDREFS' datatype validator
         createDatatypeValidator(XMLUni::fgIDRefsString,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to