- java.lang.Object
-
- javax.xml.bind.DatatypeConverter
-
public final class DatatypeConverter extends Object
可以使用javaType绑定声明来自定义XML模式数据类型与Java数据类型的绑定。 自定义可以包括编写解析和打印方法,以分析和打印XML模式数据类型的词法表示。 然而,写解析和打印方法需要知道词汇表示( XML Schema Part2: Datatypes specification ),因此可能难以编写。
这个类可以更容易地编写解析和打印方法。 它定义了静态解析和打印方法,可以访问JAXB提供程序的解析和打印方法的实现。 这些方法通过自定义解析和打印方法来调用。 例如,可以使用解析和打印方法将xsd:dateTime绑定到long,如下所示:
// 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; }在
DatatypeConverterInterface中分别有与每个解析和打印方法相对应的静态解析和打印方法。类中定义的静态方法也可用于在javaType绑定声明中指定解析或打印方法。
JAXB提供商需要在第一个元帅或解散操作之前的某个时刻(也许在调用JAXBContext.newInstance)期间调用
setDatatypeConverterapi。 此步骤是配置应用于执行打印和解析功能的转换器所必需的。XML模式数据类型的打印方法可以输出关于XML模式数据类型有效的任何词法表示。 如果在转换期间遇到错误,则该方法必须抛出IllegalArgumentException或IllegalArgumentException的子类。
- 从以下版本开始:
- 1.6,JAXB 1.0
- 另请参见:
-
DatatypeConverterInterface,ParseConversionEvent,PrintConversionEvent
-
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static StringparseAnySimpleType(String lexicalXSDAnySimpleType)返回一个包含简单类型的词法表示的字符串。static byte[]parseBase64Binary(String lexicalXSDBase64Binary)将字符串参数转换为字节数组。static booleanparseBoolean(String lexicalXSDBoolean)将字符串参数转换为布尔值。static byteparseByte(String lexicalXSDByte)将字符串参数转换为字节值。static CalendarparseDate(String lexicalXSDDate)将字符串参数转换为日历值。static CalendarparseDateTime(String lexicalXSDDateTime)将字符串参数转换为日历值。static BigDecimalparseDecimal(String lexicalXSDDecimal)将字符串参数转换为BigDecimal值。static doubleparseDouble(String lexicalXSDDouble)将字符串参数转换为双精度值。static floatparseFloat(String lexicalXSDFloat)将字符串参数转换为浮点值。static byte[]parseHexBinary(String lexicalXSDHexBinary)将字符串参数转换为字节数组。static intparseInt(String lexicalXSDInt)将字符串参数转换为int值。static BigIntegerparseInteger(String lexicalXSDInteger)将字符串参数转换为BigInteger值。static longparseLong(String lexicalXSDLong)将字符串参数转换为长整型值。static QNameparseQName(String lexicalXSDQName, NamespaceContext nsc)将字符串参数转换为字节值。static shortparseShort(String lexicalXSDShort)将字符串参数转换为短值。static StringparseString(String lexicalXSDString)将词法XSD字符串参数转换为字符串值。static CalendarparseTime(String lexicalXSDTime)将字符串参数转换为日历值。static longparseUnsignedInt(String lexicalXSDUnsignedInt)将字符串参数转换为长整型值。static intparseUnsignedShort(String lexicalXSDUnsignedShort)将字符串参数转换为int值。static StringprintAnySimpleType(String val)将字符串值转换为字符串。static StringprintBase64Binary(byte[] val)将字节数组转换为字符串。static StringprintBoolean(boolean val)将布尔值转换为字符串。static StringprintByte(byte val)将字节值转换为字符串。static StringprintDate(Calendar val)将日历值转换为字符串。static StringprintDateTime(Calendar val)将日历值转换为字符串。static StringprintDecimal(BigDecimal val)将BigDecimal值转换为字符串。static StringprintDouble(double val)将double值转换为字符串。static StringprintFloat(float val)将float值转换为字符串。static StringprintHexBinary(byte[] val)将字节数组转换为字符串。static StringprintInt(int val)将int值转换为字符串。static StringprintInteger(BigInteger val)将BigInteger值转换为字符串。static StringprintLong(long val)将长整型值转换为字符串。static StringprintQName(QName val, NamespaceContext nsc)将QName实例转换为字符串。static StringprintShort(short val)将一个简短的值转换成一个字符串。static StringprintString(String val)将字符串参数转换为字符串。static StringprintTime(Calendar val)将日历值转换为字符串。static StringprintUnsignedInt(long val)将一个长的值转换成一个字符串。static StringprintUnsignedShort(int val)将int值转换为字符串。static voidsetDatatypeConverter(DatatypeConverterInterface converter)此方法仅供JAXB提供者使用。
-
-
-
方法详细信息
-
setDatatypeConverter
public static void setDatatypeConverter(DatatypeConverterInterface converter)
此方法仅供JAXB提供者使用。在允许任何JAXB客户端组织或解组操作发生之前,需要JAXB提供程序在某一时刻调用此方法。 这是配置应用于执行打印和解析转换的数据类型转换器所必需的。
重复调用此api将无效 - 传入第一次调用的DatatypeConverterInterface实例是从那时起使用的。
- 参数
-
converter- 实现DatatypeConverterInterface类的类的实例 - 此参数不能为空。 - 异常
-
IllegalArgumentException- 如果参数为空 -
SecurityException- 如果SecurityManager负责拒绝访问设置数据类型转换器。 - 另请参见:
-
JAXBPermission
-
parseString
public static String parseString(String lexicalXSDString)
将词法XSD字符串参数转换为字符串值。
- 参数
-
lexicalXSDString- 包含xsd:string的词法表示形式的字符串。 - 结果
- 由字符串参数表示的字符串值。
-
parseInteger
public static BigInteger parseInteger(String lexicalXSDInteger)
将字符串参数转换为BigInteger值。
- 参数
-
lexicalXSDInteger- 包含xsd:integer的词法表示形式的字符串。 - 结果
- 由字符串参数表示的BigInteger值。
- 异常
-
NumberFormatException-lexicalXSDInteger不是BigInteger值的有效字符串表示。
-
parseInt
public static int parseInt(String lexicalXSDInt)
将字符串参数转换为int值。
- 参数
-
lexicalXSDInt- 包含xsd:int的词法表示形式的字符串。 - 结果
- 由string参数表示的int值。
- 异常
-
NumberFormatException-lexicalXSDInt不是int值的有效字符串表示。
-
parseLong
public static long parseLong(String lexicalXSDLong)
将字符串参数转换为长整型值。
- 参数
-
lexicalXSDLong- 包含xsd:long的词法表示形式的字符串。 - 结果
- 由字符串参数表示的长值。
- 异常
-
NumberFormatException-lexicalXSDLong不是long值的有效字符串表示。
-
parseShort
public static short parseShort(String lexicalXSDShort)
将字符串参数转换为短值。
- 参数
-
lexicalXSDShort- 包含xsd:short的词法表示形式的字符串。 - 结果
- 由字符串参数表示的短值。
- 异常
-
NumberFormatException-lexicalXSDShort不是short值的有效字符串表示。
-
parseDecimal
public static BigDecimal parseDecimal(String lexicalXSDDecimal)
将字符串参数转换为BigDecimal值。
- 参数
-
lexicalXSDDecimal- 包含xsd:decimal的词法表示形式的字符串。 - 结果
- 由字符串参数表示的BigDecimal值。
- 异常
-
NumberFormatException-lexicalXSDDecimal不是lexicalXSDDecimal的有效字符串表示形式 。
-
parseFloat
public static float parseFloat(String lexicalXSDFloat)
将字符串参数转换为浮点值。
- 参数
-
lexicalXSDFloat- 包含xsd:float的词法表示形式的字符串。 - 结果
- 由字符串参数表示的浮点值。
- 异常
-
NumberFormatException-lexicalXSDFloat不是float值的有效字符串表示。
-
parseDouble
public static double parseDouble(String lexicalXSDDouble)
将字符串参数转换为双精度值。
- 参数
-
lexicalXSDDouble- 包含xsd:double的词法表示形式的字符串。 - 结果
- 由字符串参数表示的double值。
- 异常
-
NumberFormatException-lexicalXSDDouble不是double值的有效字符串表示。
-
parseBoolean
public static boolean parseBoolean(String lexicalXSDBoolean)
将字符串参数转换为布尔值。
- 参数
-
lexicalXSDBoolean- 包含xsd:boolean的词法表示形式的字符串。 - 结果
- 由字符串参数表示的布尔值。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式中定义的词法值空间第2部分:xsd:boolean的数据类型。
-
parseByte
public static byte parseByte(String lexicalXSDByte)
将字符串参数转换为字节值。
- 参数
-
lexicalXSDByte- 包含xsd:byte的词法表示形式的字符串。 - 结果
- 由字符串参数表示的字节值。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML Schema第2部分定义的词法值空间:xsd:byte的数据类型。
-
parseQName
public static QName parseQName(String lexicalXSDQName, NamespaceContext nsc)
将字符串参数转换为字节值。
字符串参数
lexicalXSDQname必须符合XML Schema Part 2:Datatypes specification:QNames指定的词汇值空间- 参数
-
lexicalXSDQName- 包含xsd:QName的词法表示形式的字符串。 -
nsc- 用于解释QName中的前缀的命名空间上下文。 - 结果
- 由字符串参数表示的QName值。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式第2部分规范,或者名称空间前缀为lexicalXSDQname未绑定到NamespaceContext中的URInsc。
-
parseDateTime
public static Calendar parseDateTime(String lexicalXSDDateTime)
将字符串参数转换为日历值。
- 参数
-
lexicalXSDDateTime- 包含xsd:datetime的词法表示形式的字符串。 - 结果
- 由字符串参数表示的日历对象。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式第2部分中定义的词法值空间:xsd:datetime的数据类型。
-
parseBase64Binary
public static byte[] parseBase64Binary(String lexicalXSDBase64Binary)
将字符串参数转换为字节数组。
- 参数
-
lexicalXSDBase64Binary- 包含xsd:base64Binary的词法表示形式的字符串。 - 结果
- 由字符串参数表示的字节数组。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式中定义的词法值空间第2部分:xsd的数据类型:base64Binary
-
parseHexBinary
public static byte[] parseHexBinary(String lexicalXSDHexBinary)
将字符串参数转换为字节数组。
- 参数
-
lexicalXSDHexBinary- 包含xsd:hexBinary的词法表示形式的字符串。 - 结果
- 由字符串参数表示的字节数组。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式中定义的词法值空间第2部分:xsd的数据类型:hexBinary。
-
parseUnsignedInt
public static long parseUnsignedInt(String lexicalXSDUnsignedInt)
将字符串参数转换为长整型值。
- 参数
-
lexicalXSDUnsignedInt- 包含xsd:unsignedInt的词法表示形式的字符串。 - 结果
- 由字符串参数表示的长值。
- 异常
-
NumberFormatException- 如果字符串参数无法解析为long值。
-
parseUnsignedShort
public static int parseUnsignedShort(String lexicalXSDUnsignedShort)
将字符串参数转换为int值。
- 参数
-
lexicalXSDUnsignedShort- 包含xsd:unsignedShort的词法表示形式的字符串。 - 结果
- 由string参数表示的int值。
- 异常
-
NumberFormatException- 如果字符串参数无法解析为int值。
-
parseTime
public static Calendar parseTime(String lexicalXSDTime)
将字符串参数转换为日历值。
- 参数
-
lexicalXSDTime- 包含xsd:time的词法表示形式的字符串。 - 结果
- 由字符串参数表示的日历值。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML Schema第2部分定义的词法值空间:xsd:Time的数据类型。
-
parseDate
public static Calendar parseDate(String lexicalXSDDate)
将字符串参数转换为日历值。
- 参数
-
lexicalXSDDate- 包含xsd:Date的词法表示形式的字符串。 - 结果
- 由字符串参数表示的日历值。
- 异常
-
IllegalArgumentException- 如果字符串参数不符合XML模式第2部分定义的词法值空间:xsd:Date的数据类型。
-
parseAnySimpleType
public static String parseAnySimpleType(String lexicalXSDAnySimpleType)
返回一个包含简单类型的词法表示的字符串。
- 参数
-
lexicalXSDAnySimpleType- 一个包含简单类型的词法表示的字符串。 - 结果
- 包含简单类型的词法表示的字符串。
-
printString
public static String printString(String val)
将字符串参数转换为字符串。
- 参数
-
val- 字符串值。 - 结果
- 包含xsd:string的词法表示形式的字符串。
-
printInteger
public static String printInteger(BigInteger val)
将BigInteger值转换为字符串。
- 参数
-
val- BigInteger值 - 结果
- 包含xsd:integer的词法表示形式的字符串
- 异常
-
IllegalArgumentException-val为null。
-
printInt
public static String printInt(int val)
将int值转换为字符串。
- 参数
-
val- 一个int值 - 结果
- 包含xsd:int的词法表示形式的字符串
-
printLong
public static String printLong(long val)
将长整型值转换为字符串。
- 参数
-
val- 一个长的价值 - 结果
- 包含xsd:long的词法表示的字符串
-
printShort
public static String printShort(short val)
将一个简短的值转换成一个字符串。
- 参数
-
val- 一个简短的数值 - 结果
- 包含xsd:short的词法表示形式的字符串
-
printDecimal
public static String printDecimal(BigDecimal val)
将BigDecimal值转换为字符串。
- 参数
-
val- 一个BigDecimal值 - 结果
- 包含xsd:decimal的词法表示形式的字符串
- 异常
-
IllegalArgumentException-val为空。
-
printFloat
public static String printFloat(float val)
将float值转换为字符串。
- 参数
-
val- 浮点值 - 结果
- 包含xsd:float的词法表示形式的字符串
-
printDouble
public static String printDouble(double val)
将double值转换为字符串。
- 参数
-
val- 双重值 - 结果
- 包含xsd:double的词法表示形式的字符串
-
printBoolean
public static String printBoolean(boolean val)
将布尔值转换为字符串。
- 参数
-
val- 一个布尔值 - 结果
- 包含xsd:boolean的词法表示的字符串
-
printByte
public static String printByte(byte val)
将字节值转换为字符串。
- 参数
-
val- 一个字节值 - 结果
- 包含xsd:byte的词法表示形式的字符串
-
printQName
public static String printQName(QName val, NamespaceContext nsc)
将QName实例转换为字符串。
- 参数
-
val- QName值 -
nsc- 用于解释QName中的前缀的命名空间上下文。 - 结果
- 一个包含QName的词法表示的字符串
- 异常
-
IllegalArgumentException- 如果val为空,或者如果nsc为非空,或nsc.getPrefix(nsprefixFromVal)为空。
-
printDateTime
public static String printDateTime(Calendar val)
将日历值转换为字符串。
- 参数
-
val- 日历值 - 结果
- 包含xsd:dateTime的词法表示形式的字符串
- 异常
-
IllegalArgumentException- 如果val为空。
-
printBase64Binary
public static String printBase64Binary(byte[] val)
将字节数组转换为字符串。
- 参数
-
val- 字节数组 - 结果
- 包含xsd:base64Binary的词法表示形式的字符串
- 异常
-
IllegalArgumentException- 如果val为空。
-
printHexBinary
public static String printHexBinary(byte[] val)
将字节数组转换为字符串。
- 参数
-
val- 一个字节数组 - 结果
- 包含xsd:hexBinary的词法表示形式的字符串
- 异常
-
IllegalArgumentException- 如果val为空。
-
printUnsignedInt
public static String printUnsignedInt(long val)
将一个长的值转换成一个字符串。
- 参数
-
val- 一个长的价值 - 结果
- 包含xsd:unsignedInt的词法表示形式的字符串
-
printUnsignedShort
public static String printUnsignedShort(int val)
将int值转换为字符串。
- 参数
-
val- 一个int值 - 结果
- 包含xsd:unsignedShort的词法表示形式的字符串
-
printTime
public static String printTime(Calendar val)
将日历值转换为字符串。
- 参数
-
val- 日历值 - 结果
- 包含xsd:time的词法表示形式的字符串
- 异常
-
IllegalArgumentException- 如果val为空。
-
printDate
public static String printDate(Calendar val)
将日历值转换为字符串。
- 参数
-
val- 日历值 - 结果
- 包含xsd:date的词法表示形式的字符串
- 异常
-
IllegalArgumentException- 如果val为空。
-
-