- 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)期间调用
setDatatypeConverter
api。 此步骤是配置应用于执行打印和解析功能的转换器所必需的。XML模式数据类型的打印方法可以输出关于XML模式数据类型有效的任何词法表示。 如果在转换期间遇到错误,则该方法必须抛出IllegalArgumentException或IllegalArgumentException的子类。
- 从以下版本开始:
- 1.6,JAXB 1.0
- 另请参见:
-
DatatypeConverterInterface
,ParseConversionEvent
,PrintConversionEvent
-
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 static String
parseAnySimpleType(String lexicalXSDAnySimpleType)
返回一个包含简单类型的词法表示的字符串。static byte[]
parseBase64Binary(String lexicalXSDBase64Binary)
将字符串参数转换为字节数组。static boolean
parseBoolean(String lexicalXSDBoolean)
将字符串参数转换为布尔值。static byte
parseByte(String lexicalXSDByte)
将字符串参数转换为字节值。static Calendar
parseDate(String lexicalXSDDate)
将字符串参数转换为日历值。static Calendar
parseDateTime(String lexicalXSDDateTime)
将字符串参数转换为日历值。static BigDecimal
parseDecimal(String lexicalXSDDecimal)
将字符串参数转换为BigDecimal值。static double
parseDouble(String lexicalXSDDouble)
将字符串参数转换为双精度值。static float
parseFloat(String lexicalXSDFloat)
将字符串参数转换为浮点值。static byte[]
parseHexBinary(String lexicalXSDHexBinary)
将字符串参数转换为字节数组。static int
parseInt(String lexicalXSDInt)
将字符串参数转换为int值。static BigInteger
parseInteger(String lexicalXSDInteger)
将字符串参数转换为BigInteger值。static long
parseLong(String lexicalXSDLong)
将字符串参数转换为长整型值。static QName
parseQName(String lexicalXSDQName, NamespaceContext nsc)
将字符串参数转换为字节值。static short
parseShort(String lexicalXSDShort)
将字符串参数转换为短值。static String
parseString(String lexicalXSDString)
将词法XSD字符串参数转换为字符串值。static Calendar
parseTime(String lexicalXSDTime)
将字符串参数转换为日历值。static long
parseUnsignedInt(String lexicalXSDUnsignedInt)
将字符串参数转换为长整型值。static int
parseUnsignedShort(String lexicalXSDUnsignedShort)
将字符串参数转换为int值。static String
printAnySimpleType(String val)
将字符串值转换为字符串。static String
printBase64Binary(byte[] val)
将字节数组转换为字符串。static String
printBoolean(boolean val)
将布尔值转换为字符串。static String
printByte(byte val)
将字节值转换为字符串。static String
printDate(Calendar val)
将日历值转换为字符串。static String
printDateTime(Calendar val)
将日历值转换为字符串。static String
printDecimal(BigDecimal val)
将BigDecimal值转换为字符串。static String
printDouble(double val)
将double值转换为字符串。static String
printFloat(float val)
将float值转换为字符串。static String
printHexBinary(byte[] val)
将字节数组转换为字符串。static String
printInt(int val)
将int值转换为字符串。static String
printInteger(BigInteger val)
将BigInteger值转换为字符串。static String
printLong(long val)
将长整型值转换为字符串。static String
printQName(QName val, NamespaceContext nsc)
将QName实例转换为字符串。static String
printShort(short val)
将一个简短的值转换成一个字符串。static String
printString(String val)
将字符串参数转换为字符串。static String
printTime(Calendar val)
将日历值转换为字符串。static String
printUnsignedInt(long val)
将一个长的值转换成一个字符串。static String
printUnsignedShort(int val)
将int值转换为字符串。static void
setDatatypeConverter(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
为空。
-
-