code: private void setNumericAttributes(final String picture,
              final char currencyChar, final boolean decimalPointIsComma) {
  
          setDigitsAndSign(picture, currencyChar, decimalPointIsComma);
  
          if (_fractionDigits == 0) {
              if (_totalDigits < 5) {
                  _xsdType = (_isSigned) ? XsdType.SHORT : XsdType.USHORT;
              } else if (_totalDigits < 10) {
                  _xsdType = (_isSigned) ? XsdType.INT : XsdType.UINT;
              } else if (_totalDigits < 20) {
                  _xsdType = (_isSigned) ? XsdType.LONG : XsdType.ULONG;
              } else {
                  _xsdType = XsdType.INTEGER;
              }
  
          } else {
              _xsdType = XsdType.DECIMAL;
          }
  
          switch (_cobolType) {
          case BINARY_ITEM:
          case NATIVE_BINARY_ITEM:
              if (_totalDigits < 5) {
                  _minStorageLength = 2;
              } else if (_totalDigits < 10) {
                  _minStorageLength = 4;
              } else {
                  _minStorageLength = 8;
              }
              break;
          case PACKED_DECIMAL_ITEM:
              _minStorageLength = (_totalDigits / 2) + 1;
              break;
          default:
              break;
          }
  
      }
docs: Once we have identified the COBOL data item as being numeric, this will
  perform more analysis on the picture clause to extract such info as
  integer part, decimal part and sign.
  <p/>
  The fractionDigits corresponds to digits past the decimal point. The
  totalDigits is the integer part + fractionDigits;
  <p/>
  Once digits are identified we can further refine the choice of XML schema
  type and a set of associated facets.
  
  @param picture a purely numeric picture clause
  @param currencyChar the currency sign
  @param decimalPointIsComma true if decimal point is comma