You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by el...@apache.org on 2001/10/11 23:05:29 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes Base64BinaryDatatypeValidator.java DateTimeValidator.java DecimalDatatypeValidator.java DoubleDatatypeValidator.java FloatDatatypeValidator.java HexBinaryDatatypeValidator.java ListDatatypeValidator.java StringDatatypeValidator.java UnionDatatypeValidator.java

elena       01/10/11 14:05:29

  Modified:    java/src/org/apache/xerces/impl/v2 XSDAbstractTraverser.java
                        XSDSimpleTypeTraverser.java
               java/src/org/apache/xerces/impl/v2/datatypes
                        Base64BinaryDatatypeValidator.java
                        DateTimeValidator.java
                        DecimalDatatypeValidator.java
                        DoubleDatatypeValidator.java
                        FloatDatatypeValidator.java
                        HexBinaryDatatypeValidator.java
                        ListDatatypeValidator.java
                        StringDatatypeValidator.java
                        UnionDatatypeValidator.java
  Log:
  fixes to bugs in simpletype and datatypes
  
  Revision  Changes    Path
  1.26      +3 -5      xml-xerces/java/src/org/apache/xerces/impl/v2/XSDAbstractTraverser.java
  
  Index: XSDAbstractTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDAbstractTraverser.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- XSDAbstractTraverser.java	2001/10/11 17:53:22	1.25
  +++ XSDAbstractTraverser.java	2001/10/11 21:05:29	1.26
  @@ -77,7 +77,7 @@
    * @author Elena Litani, IBM
    * @author Rahul Srivastava, Sun Microsystems Inc.
    *
  - * @version $Id: XSDAbstractTraverser.java,v 1.25 2001/10/11 17:53:22 lmartin Exp $
  + * @version $Id: XSDAbstractTraverser.java,v 1.26 2001/10/11 21:05:29 elena Exp $
    */
   abstract class XSDAbstractTraverser {
   
  @@ -473,11 +473,9 @@
           if (content == null) {
               return content;
           }
  -
  -        if (content.getLocalName().equals(SchemaSymbols.ELT_ANNOTATION)) {
  -
  +        String tag = content.getLocalName();
  +        if (tag != null && tag.equals(SchemaSymbols.ELT_ANNOTATION)) {
               traverseAnnotationDecl(content, parentAttrs, false, schemaDoc);
  -
               content = DOMUtil.getNextSiblingElement(content);
           }
   
  
  
  
  1.22      +14 -8     xml-xerces/java/src/org/apache/xerces/impl/v2/XSDSimpleTypeTraverser.java
  
  Index: XSDSimpleTypeTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDSimpleTypeTraverser.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- XSDSimpleTypeTraverser.java	2001/10/11 15:13:33	1.21
  +++ XSDSimpleTypeTraverser.java	2001/10/11 21:05:29	1.22
  @@ -109,7 +109,7 @@
    * </union>
    *
    * @author Elena Litani, IBM
  - * @version $Id: XSDSimpleTypeTraverser.java,v 1.21 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: XSDSimpleTypeTraverser.java,v 1.22 2001/10/11 21:05:29 elena Exp $
    */
   class XSDSimpleTypeTraverser extends XSDAbstractTraverser {
   
  @@ -432,20 +432,26 @@
       // also throws an error if the base type won't allow itself to be used in this context.
       // REVISIT: can this code be re-used?
       private DatatypeValidator findDTValidator (Element elm, QName baseTypeStr, int baseRefContext ) {
  -        if (baseTypeStr.uri.equals(SchemaSymbols.URI_SCHEMAFORSCHEMA) &&
  +        if (baseTypeStr.uri !=null &&  baseTypeStr.uri.equals(SchemaSymbols.URI_SCHEMAFORSCHEMA) &&
               baseTypeStr.localpart.equals(SchemaSymbols.ATTVAL_ANYSIMPLETYPE) &&
               baseRefContext == SchemaSymbols.RESTRICTION) {
  -            //REVISIT
  -            //reportSchemaError(SchemaMessageProvider.UnknownBaseDatatype,
  -            //                  new Object [] { DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_BASE),
  -            //                      DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_NAME)});
  -            return null;
  +            String base = baseTypeStr.localpart;
  +            fErrorReporter.reportError(XSMessageFormatter.SCHEMA_DOMAIN,
  +                                       "UnknownBaseDatatype",
  +                                       new Object[] {
  +                                       DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_NAME), DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_BASE)}, 
  +                                       XMLErrorReporter.SEVERITY_ERROR);
  +
  +            return  (DatatypeValidator)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_STRING);
           }
           DatatypeValidator baseValidator = null;
           baseValidator = (DatatypeValidator)fSchemaHandler.getGlobalDecl(fSchemaDoc, fSchemaHandler.TYPEDECL_TYPE, baseTypeStr);
           if (baseValidator != null) {
               if ((baseValidator.getFinalSet() & baseRefContext) != 0) {
  -                reportGenericSchemaError("the base type " + baseTypeStr.rawname + " does not allow itself to be used as the base for a restriction and/or as a type in a list and/or union");
  +                fErrorReporter.reportError(XSMessageFormatter.SCHEMA_DOMAIN,
  +                                           "RestrictionBaseFinal",
  +                                           new Object[] { baseTypeStr.rawname }, 
  +                                           XMLErrorReporter.SEVERITY_ERROR);
               }
           }
           return baseValidator;
  
  
  
  1.4       +2 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/Base64BinaryDatatypeValidator.java
  
  Index: Base64BinaryDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/Base64BinaryDatatypeValidator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Base64BinaryDatatypeValidator.java	2001/10/11 15:13:33	1.3
  +++ Base64BinaryDatatypeValidator.java	2001/10/11 21:05:29	1.4
  @@ -73,7 +73,7 @@
    * @author Kito D. Mann, Virtua Communications Corp.
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: Base64BinaryDatatypeValidator.java,v 1.3 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: Base64BinaryDatatypeValidator.java,v 1.4 2001/10/11 21:05:29 elena Exp $
    */
   public class Base64BinaryDatatypeValidator extends AbstractStringValidator{
       
  @@ -91,9 +91,7 @@
       }
   
       protected void assignAdditionalFacets(String key, Hashtable facets)  throws InvalidDatatypeFacetException{
  -        String msg = getErrorString(
  -            DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_STRING_FACET],
  -            new Object[] { key });
  +        String msg = "base64Binary datatype, facet "+key+" with value "+(String)facets.get(key);
           throw new InvalidDatatypeFacetException(msg);    
       }
   
  
  
  
  1.5       +2 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DateTimeValidator.java
  
  Index: DateTimeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DateTimeValidator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateTimeValidator.java	2001/10/11 15:13:33	1.4
  +++ DateTimeValidator.java	2001/10/11 21:05:29	1.5
  @@ -74,7 +74,7 @@
    * @author Elena Litani
    * @author Len Berman  
    *
  - * @version $Id: DateTimeValidator.java,v 1.4 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: DateTimeValidator.java,v 1.5 2001/10/11 21:05:29 elena Exp $
    */
   
   public abstract class DateTimeValidator extends AbstractNumericFacetValidator {
  @@ -157,9 +157,7 @@
       }
   
       protected void assignAdditionalFacets(String key,  Hashtable facets ) throws InvalidDatatypeFacetException{        
  -        String msg = getErrorString(
  -            DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_DATETIME_FACET],
  -            new Object[] { key });
  +        String msg = "date/time datatypes, facet "+key+" with value "+(String)facets.get(key);
           throw new InvalidDatatypeFacetException(msg);
       }
       
  
  
  
  1.5       +26 -26    xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DecimalDatatypeValidator.java
  
  Index: DecimalDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DecimalDatatypeValidator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DecimalDatatypeValidator.java	2001/10/11 15:13:33	1.4
  +++ DecimalDatatypeValidator.java	2001/10/11 21:05:29	1.5
  @@ -75,7 +75,7 @@
    * @author Ted Leung
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: DecimalDatatypeValidator.java,v 1.4 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: DecimalDatatypeValidator.java,v 1.5 2001/10/11 21:05:29 elena Exp $
    */
   
   public class DecimalDatatypeValidator extends AbstractNumericValidator {
  @@ -83,7 +83,7 @@
       protected int                 fTotalDigits;
       protected int                 fFractionDigits;
   
  -    public DecimalDatatypeValidator ()   {
  +    public DecimalDatatypeValidator () {
           this( null, null, false, null ); // Native, No Facets defined, Restriction
       }
   
  @@ -167,37 +167,37 @@
   
       protected void assignAdditionalFacets(String key,  Hashtable facets ) throws InvalidDatatypeFacetException{
   
  -        String value = null;
  -        try {
  -            if (key.equals(SchemaSymbols.ELT_TOTALDIGITS)) {
  -                value = ((String) facets.get(key ));
  -                fFacetsDefined |= DatatypeValidator.FACET_TOTALDIGITS;
  +        String value = ((String) facets.get(key ));
  +
  +        String msg = "decimal datatype, facet "+key+" with value "+value;
  +        if (key.equals(SchemaSymbols.ELT_TOTALDIGITS)) {
  +            fFacetsDefined |= DatatypeValidator.FACET_TOTALDIGITS;
  +            try {
                   fTotalDigits      = Integer.parseInt(value );
  -                // check 4.3.11.c0 must: totalDigits > 0
  -                if (fTotalDigits <= 0)
  -                    throw new InvalidDatatypeFacetException("totalDigits value '"+fTotalDigits+"' must be a positiveInteger.");
  -            }
  -            else if (key.equals(SchemaSymbols.ELT_FRACTIONDIGITS)) {
  -                value = ((String) facets.get(key ));
  -                fFacetsDefined |= DatatypeValidator.FACET_FRACTIONDIGITS;
  +            }
  +            catch (Exception e) {
  +                throw new InvalidDatatypeFacetException(msg);
  +            }
  +            // check 4.3.11.c0 must: totalDigits > 0
  +            if (fTotalDigits <= 0)
  +                throw new InvalidDatatypeFacetException("totalDigits value '"+fTotalDigits+"' must be a positiveInteger.");
  +        }
  +        else if (key.equals(SchemaSymbols.ELT_FRACTIONDIGITS)) {
  +            fFacetsDefined |= DatatypeValidator.FACET_FRACTIONDIGITS;
  +            try {
                   fFractionDigits          = Integer.parseInt( value );
  -                // check 4.3.12.c0 must: fractionDigits > 0
  -                if (fFractionDigits < 0)
  -                    throw new InvalidDatatypeFacetException("fractionDigits value '"+fFractionDigits+"' must be a positiveInteger.");
  -            }
  -            else {
  -                String msg = getErrorString(
  -                                           DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_DECIMAL_FACET],
  -                                           new Object [] { value, key});
  +            }
  +            catch (Exception e) {
                   throw new InvalidDatatypeFacetException(msg);
               }
  +            // check 4.3.12.c0 must: fractionDigits > 0
  +            if (fFractionDigits < 0)
  +                throw new InvalidDatatypeFacetException("fractionDigits value '"+fFractionDigits+"' must be a positiveInteger.");
           }
  -        catch (Exception ex) {
  -            String msg = getErrorString(
  -                                       DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_FACET_VALUE],
  -                                       new Object [] { value, key});
  +        else {
               throw new InvalidDatatypeFacetException(msg);
           }
  +
       }
   
       protected int compareValues (Object value1, Object value2) {
  
  
  
  1.5       +2 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DoubleDatatypeValidator.java
  
  Index: DoubleDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/DoubleDatatypeValidator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DoubleDatatypeValidator.java	2001/10/11 15:13:33	1.4
  +++ DoubleDatatypeValidator.java	2001/10/11 21:05:29	1.5
  @@ -70,7 +70,7 @@
    * @author Ted Leung
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: DoubleDatatypeValidator.java,v 1.4 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: DoubleDatatypeValidator.java,v 1.5 2001/10/11 21:05:29 elena Exp $
    */
   
   public class DoubleDatatypeValidator extends AbstractNumericValidator {
  @@ -98,9 +98,7 @@
       }
   
       protected void assignAdditionalFacets(String key,  Hashtable facets ) throws InvalidDatatypeFacetException{        
  -        String msg = getErrorString(
  -            DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_DOUBLE_FACET],
  -            new Object[] { key});
  +        String msg = "double datatype, facet "+key+" with value "+(String)facets.get(key);
           throw new InvalidDatatypeFacetException(msg);
       }
       /**
  
  
  
  1.5       +2 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/FloatDatatypeValidator.java
  
  Index: FloatDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/FloatDatatypeValidator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FloatDatatypeValidator.java	2001/10/11 15:13:33	1.4
  +++ FloatDatatypeValidator.java	2001/10/11 21:05:29	1.5
  @@ -74,7 +74,7 @@
    * @author Ted Leung
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version  $Id: FloatDatatypeValidator.java,v 1.4 2001/10/11 15:13:33 elena Exp $
  + * @version  $Id: FloatDatatypeValidator.java,v 1.5 2001/10/11 21:05:29 elena Exp $
    */
   
   public class FloatDatatypeValidator extends AbstractNumericValidator {
  @@ -102,9 +102,7 @@
       }
   
       protected void assignAdditionalFacets(String key,  Hashtable facets ) throws InvalidDatatypeFacetException{        
  -        String msg = getErrorString(
  -            DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_FLOAT_FACET],
  -            new Object[] { key });
  +        String msg = "float datatype, facet "+key+" with value "+(String)facets.get(key);
           throw new InvalidDatatypeFacetException(msg);
       }
   
  
  
  
  1.4       +3 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/HexBinaryDatatypeValidator.java
  
  Index: HexBinaryDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/HexBinaryDatatypeValidator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- HexBinaryDatatypeValidator.java	2001/10/11 15:13:33	1.3
  +++ HexBinaryDatatypeValidator.java	2001/10/11 21:05:29	1.4
  @@ -73,7 +73,7 @@
    * @author Kito D. Mann, Virtua Communications Corp.
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: HexBinaryDatatypeValidator.java,v 1.3 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: HexBinaryDatatypeValidator.java,v 1.4 2001/10/11 21:05:29 elena Exp $
    */
   public class HexBinaryDatatypeValidator extends AbstractStringValidator{
       
  @@ -90,9 +90,8 @@
       }
   
       protected void assignAdditionalFacets(String key, Hashtable facets)  throws InvalidDatatypeFacetException{
  -        String msg = getErrorString(
  -            DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_STRING_FACET],
  -            new Object[] { key });
  +        String msg = "hexBinary datatype, facet "+key+" with value "+(String)facets.get(key);
  +
           throw new InvalidDatatypeFacetException(msg);    
       }
   
  
  
  
  1.4       +3 -5      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/ListDatatypeValidator.java
  
  Index: ListDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/ListDatatypeValidator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ListDatatypeValidator.java	2001/10/11 15:13:33	1.3
  +++ ListDatatypeValidator.java	2001/10/11 21:05:29	1.4
  @@ -72,7 +72,7 @@
    * @author  Elena Litani
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: ListDatatypeValidator.java,v 1.3 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: ListDatatypeValidator.java,v 1.4 2001/10/11 21:05:29 elena Exp $
    */
   public class ListDatatypeValidator extends AbstractDatatypeValidator {
   
  @@ -139,10 +139,8 @@
                               fRegex = new RegularExpression(fPattern, "X");
                       }
                       else {
  -                        String msg = getErrorString(
  -                                                   DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_LIST_FACET],
  -                                                   new Object[] { key});
  -                        throw new InvalidDatatypeFacetException();
  +                        String msg = "list datatype, facet "+key+" with value "+(String)facets.get(key);
  +                        throw new InvalidDatatypeFacetException(msg);
                       }
                   }
                   if (((fFacetsDefined & DatatypeValidator.FACET_LENGTH ) != 0 )) {
  
  
  
  1.4       +2 -4      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/StringDatatypeValidator.java
  
  Index: StringDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/StringDatatypeValidator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StringDatatypeValidator.java	2001/10/11 15:13:33	1.3
  +++ StringDatatypeValidator.java	2001/10/11 21:05:29	1.4
  @@ -74,7 +74,7 @@
    * @author Kito D. Mann, Virtua Communications Corp.
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: StringDatatypeValidator.java,v 1.3 2001/10/11 15:13:33 elena Exp $
  + * @version $Id: StringDatatypeValidator.java,v 1.4 2001/10/11 21:05:29 elena Exp $
    */
   public class StringDatatypeValidator extends AbstractStringValidator {
   
  @@ -115,9 +115,7 @@
               }
           }
           else {
  -            String msg = getErrorString(
  -                    DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_STRING_FACET],
  -                    new Object[] { key });
  +            String msg = "string datatype, facet "+key+" with value "+(String)facets.get(key);
                   throw new InvalidDatatypeFacetException(msg);
           }
       }
  
  
  
  1.4       +1 -3      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/UnionDatatypeValidator.java
  
  Index: UnionDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/UnionDatatypeValidator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UnionDatatypeValidator.java	2001/10/11 15:13:33	1.3
  +++ UnionDatatypeValidator.java	2001/10/11 21:05:29	1.4
  @@ -111,9 +111,7 @@
   
                   }
                   else {
  -                    String msg = getErrorString(
  -                        DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_UNION_FACET],
  -                        new Object[] { key });
  +                    String msg = "union datatype, facet "+key+" with value "+(String)facets.get(key);
                       throw new InvalidDatatypeFacetException(msg);                }
               } //end for
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org