Hi,
 
I have found a bug and here is how to 'patch' :]  (Xerces 1.4 release, maybe it is already Ok in CVS, but I have no access (sitting behind firewall :] ))
 
in
org.apache.xerces.validators.datatype.DatatypeMessageProvider,
 
there are two values changed: (FRACTION_EXCEEDED and TOTALDIGITS_EXCEEDED):
 
 
 
    private static int counter = 0;
    public static final int
    MSG_BAD_MAJORCODE  = counter++,              //  majorCode parameter to createMessage was out of bounds
    MSG_FORMAT_FAILURE = counter++,             //  exception thrown during messageFormat call
    NOT_BOOLEAN        = counter++,
    NOT_DECIMAL        = counter++,
    NOT_FLOAT          = counter++,
    NOT_DOUBLE         = counter++,
    INVALID_ENUM_VALUE = counter++,
    OUT_OF_BOUNDS      = counter++,
    NOT_ENUM_VALUE      = counter++,
    FRACTION_GREATER_TOTALDIGITS   = counter++,
*********** this two lines have to be swaped (according to String declaration, see below)
    FRACTION_EXCEEDED      = counter++,
    TOTALDIGITS_EXCEEDED   = counter++,
***********
    ILLEGAL_FACET_VALUE    = counter++,
    ILLEGAL_ANYURI_FACET   = counter++,
    ILLEGAL_BOOLEAN_FACET  = counter++,
    ILLEGAL_BASE64_FACET   = counter++,
    ILLEGAL_DATETIME_FACET = counter++,
    ILLEGAL_DECIMAL_FACET  = counter++,
    ILLEGAL_DOUBLE_FACET   = counter++,
    ILLEGAL_FLOAT_FACET    = counter++,
    ILLEGAL_HEXBINARY_FACET  = counter++,
    ILLEGAL_NOTATION_FACET   = counter++,
    ILLEGAL_QNAME_FACET      = counter++,
    ILLEGAL_STRING_FACET     = counter++,
    ILLEGAL_LIST_FACET       = counter++,
    ILLEGAL_UNION_FACET      = counter++,
 
    MSG_MAX_CODE = counter;
 
    //
    // Minor Codes
    //
    public static final int
    MSG_NONE = 0;
 
    public static final String[] fgMessageKeys = {
        "BadMajorCode",                
        "FormatFailed",                
        "NotBoolean",                          
        "NotDecimal",                  
        "NotFloat",                    
        "NotDouble",                    
        "InvalidEnumValue",           
        "OutOfBounds",                 
        "NotAnEnumValue",              
        "FractionDigitsLargerThanTotalDigits",     
*********************
        "TotalDigitsExceeded",           
        "FractionDigitsExceeded",                
***********************
        "IllegalFacetValue",           
        "IllegalAnyURIFacet",          
        "IllegalBooleanFacet",
        "IllegalBase64Facet",
        "IllegalDateTimeFacet",
        "IllegalDecimalFacet",
        "IllegalDoubleFacet",
        "IllegalFloatFacet",
        "IllegalHexBinaryFacet",
        "IllegalNotationFacet",
        "IllegalQNameFacet",
        "IllegalStringFacet",
        "IllegalListFacet",
        "IllegalUnionFacet"
    };
 
 
 
Bye,
 
Roman Filkorn

Reply via email to