}
myFacets[code] = dig;
break;
case SchemaType.FACET_FRACTION_DIGITS:
XmlNonNegativeInteger fdig = StscTranslator.buildNnInteger(facet.getValue());
if (fdig == null)
{
state.error("Must be a nonnegative integer", XmlErrorCodes.FACET_VALUE_MALFORMED, facet);
break;
}
if (fixedFacets[code] && !myFacets[code].valueEquals(fdig))
{
state.error(XmlErrorCodes.FACET_FIXED, new Object[] { facetName }, facet);
continue;
}
if (myFacets[SchemaType.FACET_FRACTION_DIGITS] != null)
{
if (fdig.compareValue(myFacets[SchemaType.FACET_FRACTION_DIGITS]) > 0)
state.error(XmlErrorCodes.DATATYPE_FRACTION_DIGITS_RESTRICTION, null, facet);
}
if (myFacets[SchemaType.FACET_TOTAL_DIGITS] != null)
{
if (fdig.compareValue(myFacets[SchemaType.FACET_TOTAL_DIGITS]) > 0)
state.error(XmlErrorCodes.DATATYPE_FRACTION_DIGITS_LE_TOTAL_DIGITS, null, facet);
}
myFacets[code] = fdig;
break;