javax.xml.bind
Class DatatypeConverter

java.lang.Object
  extended byjavax.xml.bind.DatatypeConverter

public final class DatatypeConverter
extends java.lang.Object

The javaType binding declaration can be used to customize the binding of an XML schema datatype to a Java datatype. Customizations can involve writing a parse and print method for parsing and printing lexical representations of a XML schema datatype respectively. However, writing parse and print methods requires knowledge of the lexical representations ( XML Schema Part2: Datatypes specification ) and hence may be difficult to write.

This class makes it easier to write parse and print methods. It defines static parse and print methods that provide access to a JAXB provider's implementation of parse and print methods. These methods are invoked by custom parse and print methods. For example, the binding of xsd:dateTime to a long can be customized using parse and print methods as follows:

    // Customized parse method 
    public long myParseCal( String dateTimeString ) {
        java.util.Calendar cal = DatatypeConverter.parseDateTime(dateTimeString);
        long longval = convert_calendar_to_long(cal); //application specific
        return longval;
    }
     
    // Customized print method
    public String myPrintCal( Long longval ) {
        java.util.Calendar cal = convert_long_to_calendar(longval) ; //application specific
        String dateTimeString = DatatypeConverter.printDateTime(cal);
        return dateTimeString;
    }
    

There is a static parse and print method corresponding to each parse and print method respectively in the DatatypeConverterInterface.

The static methods defined in the class can also be used to specify a parse or a print method in a javaType binding declaration.

JAXB Providers are required to call the setDatatypeConverter api at some point before the first marshal or unmarshal operation (perhaps during the call to JAXBContext.newInstance). This step is necessary to configure the converter that should be used to perform the print and parse functionality.

Since:
JAXB1.0
See Also:
DatatypeConverterInterface, ParseConversionEvent, PrintConversionEvent

Method Summary
static java.lang.String parseAnySimpleType(java.lang.String lexicalAnySimpleType)
           Return a string containing the lexical representation of the simple type.
static byte[] parseBase64Binary(java.lang.String lexicalXSDBase64Binary)
           Converts the string argument into an array of bytes.
static boolean parseBoolean(java.lang.String lexicalXSDBoolean)
           Converts the string argument into a boolean value.
static byte parseByte(java.lang.String lexicalXSDByte)
           Converts the string argument into a byte value.
static java.util.Calendar parseDate(java.lang.String lexicalXSDDate)
           Converts the string argument into a Calendar value.
static java.util.Calendar parseDateTime(java.lang.String lexicalXSDDateTime)
           Converts the string argument into a Calendar value.
static java.math.BigDecimal parseDecimal(java.lang.String lexicalXSDDecimal)
           Converts the string argument into a BigDecimal value.
static double parseDouble(java.lang.String lexicalXSDDouble)
           Converts the string argument into a double value.
static float parseFloat(java.lang.String lexicalXSDFloat)
           Converts the string argument into a float value.
static byte[] parseHexBinary(java.lang.String lexicalXSDHexBinary)
           Converts the string argument into an array of bytes.
static int parseInt(java.lang.String lexicalXSDInt)
           Convert the string argument into an int value.
static java.math.BigInteger parseInteger(java.lang.String lexicalXSDInteger)
           Convert the string argument into a BigInteger value.
static long parseLong(java.lang.String lexicalXSLong)
           Converts the string argument into a long value.
static QName parseQName(java.lang.String lexicalXSDQName, NamespaceContext nsc)
           Converts the string argument into a byte value.
static short parseShort(java.lang.String lexicalXSShort)
           Converts the string argument into a short value.
static java.lang.String parseString(java.lang.String lexicalXSDString)
           Convert the lexical XSD string argument into a String value.
static java.util.Calendar parseTime(java.lang.String lexicalXSDTime)
           Converts the string argument into a Calendar value.
static long parseUnsignedInt(java.lang.String lexicalXSDUnsignedInt)
           Converts the string argument into a long value.
static int parseUnsignedShort(java.lang.String lexicalXSDUnsignedShort)
           Converts the string argument into an int value.
static java.lang.String printAnySimpleType(java.lang.String val)
           Converts a string value into a string.
static java.lang.String printBase64Binary(byte[] val)
           Converts an array of bytes into a string.
static java.lang.String printBoolean(boolean val)
           Converts a boolean value into a string.
static java.lang.String printByte(byte val)
           Converts a byte value into a string.
static java.lang.String printDate(java.util.Calendar val)
           Converts a Calendar value into a string.
static java.lang.String printDateTime(java.util.Calendar val)
           Converts a Calendar value into a string.
static java.lang.String printDecimal(java.math.BigDecimal val)
           Converts a BigDecimal value into a string.
static java.lang.String printDouble(double val)
           Converts a double value into a string.
static java.lang.String printFloat(float val)
           Converts a float value into a string.
static java.lang.String printHexBinary(byte[] val)
           Converts an array of bytes into a string.
static java.lang.String printInt(int val)
           Converts an int value into a string.
static java.lang.String printInteger(java.math.BigInteger val)
           Converts a BigInteger value into a string.
static java.lang.String printLong(long val)
           Converts A long value into a string.
static java.lang.String printQName(QName val, NamespaceContext nsc)
           Converts a QName instance into a string.
static java.lang.String printShort(short val)
           Converts a short value into a string.
static java.lang.String printString(java.lang.String val)
           Converts the string argument into a string.
static java.lang.String printTime(java.util.Calendar val)
           Converts a Calendar value into a string.
static java.lang.String printUnsignedInt(long val)
           Converts a long value into a string.
static java.lang.String printUnsignedShort(int val)
           Converts an int value into a string.
static void setDatatypeConverter(DatatypeConverterInterface converter)
          This method is for JAXB provider use only.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

setDatatypeConverter

public static void setDatatypeConverter(DatatypeConverterInterface converter)
This method is for JAXB provider use only.

JAXB Providers are required to call this method at some point before allowing any of the JAXB client marshal or unmarshal operations to occur. This is necessary to configure the datatype converter that should be used to perform the print and parse conversions.

Calling this api repeatedly will have no effect - the DatatypeConverterInterface instance passed into the first invocation is the one that will be used from then on.

Parameters:
converter - an instance of a class that implements the DatatypeConverterInterface class - this parameter must not be null.
Throws:
java.lang.IllegalArgumentException - if the parameter is null

parseString

public static java.lang.String parseString(java.lang.String lexicalXSDString)

Convert the lexical XSD string argument into a String value.

Parameters:
lexicalXSDString - A string containing a lexical representation of xsd:string.
Returns:
A String value represented by the string argument.

parseInteger

public static java.math.BigInteger parseInteger(java.lang.String lexicalXSDInteger)

Convert the string argument into a BigInteger value.

Parameters:
lexicalXSDInteger - A string containing a lexical representation of xsd:integer.
Returns:
A BigInteger value represented by the string argument.

parseInt

public static int parseInt(java.lang.String lexicalXSDInt)

Convert the string argument into an int value.

Parameters:
lexicalXSDInt - A string containing a lexical representation of xsd:int.
Returns:
A int value represented by the string argument.

parseLong

public static long parseLong(java.lang.String lexicalXSLong)

Converts the string argument into a long value.

Returns:
A long value represented by the string argument.

parseShort

public static short parseShort(java.lang.String lexicalXSShort)

Converts the string argument into a short value.

Returns:
A short value represented by the string argument.

parseDecimal

public static java.math.BigDecimal parseDecimal(java.lang.String lexicalXSDDecimal)

Converts the string argument into a BigDecimal value.

Parameters:
lexicalXSDDecimal - A string containing lexical representation of xsd:decimal.
Returns:
A BigDecimal value represented by the string argument.

parseFloat

public static float parseFloat(java.lang.String lexicalXSDFloat)

Converts the string argument into a float value.

Parameters:
lexicalXSDFloat - A string containing lexical representation of xsd:float.
Returns:
A float value represented by the string argument.

parseDouble

public static double parseDouble(java.lang.String lexicalXSDDouble)

Converts the string argument into a double value.

Parameters:
lexicalXSDDouble - A string containing lexical representation of xsd:double.
Returns:
A double value represented by the string argument.

parseBoolean

public static boolean parseBoolean(java.lang.String lexicalXSDBoolean)

Converts the string argument into a boolean value.

Parameters:
lexicalXSDBoolean - A string containing lexical representation of xsd:boolean.
Returns:
A boolean value represented by the string argument.

parseByte

public static byte parseByte(java.lang.String lexicalXSDByte)

Converts the string argument into a byte value.

Parameters:
lexicalXSDByte - A string containing lexical representation of xsd:byte.
Returns:
A byte value represented by the string argument.

parseQName

public static QName parseQName(java.lang.String lexicalXSDQName,
                               NamespaceContext nsc)

Converts the string argument into a byte value.

Parameters:
lexicalXSDQName - A string containing lexical representation of xsd:QName.
nsc - A namespace context for interpreting a prefix within a QName.
Returns:
A QName value represented by the string argument.

parseDateTime

public static java.util.Calendar parseDateTime(java.lang.String lexicalXSDDateTime)

Converts the string argument into a Calendar value.

Parameters:
lexicalXSDDateTime - A string containing lexical representation of xsd:datetime.
Returns:
A Calendar object represented by the string argument.

parseBase64Binary

public static byte[] parseBase64Binary(java.lang.String lexicalXSDBase64Binary)

Converts the string argument into an array of bytes.

Parameters:
lexicalXSDBase64Binary - A string containing lexical representation of xsd:base64Binary.
Returns:
An array of bytes represented by the string argument.

parseHexBinary

public static byte[] parseHexBinary(java.lang.String lexicalXSDHexBinary)

Converts the string argument into an array of bytes.

Parameters:
lexicalXSDHexBinary - A string containing lexical representation of xsd:hexBinary.
Returns:
An array of bytes represented by the string argument.

parseUnsignedInt

public static long parseUnsignedInt(java.lang.String lexicalXSDUnsignedInt)

Converts the string argument into a long value.

Parameters:
lexicalXSDUnsignedInt - A string containing lexical representation of xsd:unsignedInt.
Returns:
A long value represented by the string argument.

parseUnsignedShort

public static int parseUnsignedShort(java.lang.String lexicalXSDUnsignedShort)

Converts the string argument into an int value.

Parameters:
lexicalXSDUnsignedShort - A string containing lexical representation of xsd:unsignedShort.
Returns:
An int value represented by the string argument.

parseTime

public static java.util.Calendar parseTime(java.lang.String lexicalXSDTime)

Converts the string argument into a Calendar value.

Parameters:
lexicalXSDTime - A string containing lexical representation of xsd:time.
Returns:
A Calendar value represented by the string argument.

parseDate

public static java.util.Calendar parseDate(java.lang.String lexicalXSDDate)

Converts the string argument into a Calendar value.

Parameters:
lexicalXSDDate - A string containing lexical representation of xsd:Date.
Returns:
A Calendar value represented by the string argument.

parseAnySimpleType

public static java.lang.String parseAnySimpleType(java.lang.String lexicalAnySimpleType)

Return a string containing the lexical representation of the simple type.

Returns:
A string containing the lexical representation of the simple type.

printString

public static java.lang.String printString(java.lang.String val)

Converts the string argument into a string.

Parameters:
val - A string value.
Returns:
A string containing a lexical representation of xsd:string.

printInteger

public static java.lang.String printInteger(java.math.BigInteger val)

Converts a BigInteger value into a string.

Parameters:
val - A BigInteger value
Returns:
A string containing a lexical representation of xsd:integer

printInt

public static java.lang.String printInt(int val)

Converts an int value into a string.

Parameters:
val - An int value
Returns:
A string containing a lexical representation of xsd:int

printLong

public static java.lang.String printLong(long val)

Converts A long value into a string.

Parameters:
val - A long value
Returns:
A string containing a lexical representation of xsd:long

printShort

public static java.lang.String printShort(short val)

Converts a short value into a string.

Parameters:
val - A short value
Returns:
A string containing a lexical representation of xsd:short

printDecimal

public static java.lang.String printDecimal(java.math.BigDecimal val)

Converts a BigDecimal value into a string.

Parameters:
val - A BigDecimal value
Returns:
A string containing a lexical representation of xsd:decimal

printFloat

public static java.lang.String printFloat(float val)

Converts a float value into a string.

Parameters:
val - A float value
Returns:
A string containing a lexical representation of xsd:float

printDouble

public static java.lang.String printDouble(double val)

Converts a double value into a string.

Parameters:
val - A double value
Returns:
A string containing a lexical representation of xsd:double

printBoolean

public static java.lang.String printBoolean(boolean val)

Converts a boolean value into a string.

Parameters:
val - A boolean value
Returns:
A string containing a lexical representation of xsd:boolean

printByte

public static java.lang.String printByte(byte val)

Converts a byte value into a string.

Parameters:
val - A byte value
Returns:
A string containing a lexical representation of xsd:byte

printQName

public static java.lang.String printQName(QName val,
                                          NamespaceContext nsc)

Converts a QName instance into a string.

Parameters:
val - A QName value
nsc - A namespace context for interpreting a prefix within a QName.
Returns:
A string containing a lexical representation of QName

printDateTime

public static java.lang.String printDateTime(java.util.Calendar val)

Converts a Calendar value into a string.

Parameters:
val - A Calendar value
Returns:
A string containing a lexical representation of xsd:dateTime

printBase64Binary

public static java.lang.String printBase64Binary(byte[] val)

Converts an array of bytes into a string.

Parameters:
val - An array of bytes
Returns:
A string containing a lexical representation of xsd:base64Binary

printHexBinary

public static java.lang.String printHexBinary(byte[] val)

Converts an array of bytes into a string.

Parameters:
val - An array of bytes
Returns:
A string containing a lexical representation of xsd:hexBinary

printUnsignedInt

public static java.lang.String printUnsignedInt(long val)

Converts a long value into a string.

Parameters:
val - A long value
Returns:
A string containing a lexical representation of xsd:unsignedInt

printUnsignedShort

public static java.lang.String printUnsignedShort(int val)

Converts an int value into a string.

Parameters:
val - An int value
Returns:
A string containing a lexical representation of xsd:unsignedShort

printTime

public static java.lang.String printTime(java.util.Calendar val)

Converts a Calendar value into a string.

Parameters:
val - A Calendar value
Returns:
A string containing a lexical representation of xsd:time

printDate

public static java.lang.String printDate(java.util.Calendar val)

Converts a Calendar value into a string.

Parameters:
val - A Calendar value
Returns:
A string containing a lexical representation of xsd:date

printAnySimpleType

public static java.lang.String printAnySimpleType(java.lang.String val)

Converts a string value into a string.

Parameters:
val - A string value
Returns:
A string containing a lexical representation of xsd:AnySimpleType