文字
分享


JavaTM 2 Platform
Standard Ed. 6

javax.xml.bind
类 DatatypeConverter

1

2

java.lang.Object

  <img src="../../../resources/inherit.gif" alt="继承者 "><b>javax.xml.bind.DatatypeConverter</b>


1

public final class <b>DatatypeConverter</b>

extends Object

可以使用 javaType 绑定声明来自定义 XML 模式数据类型到 Java 数据类型的绑定。自定义可能涉及编写分别用来解析和打印 XML 模式数据类型的词汇表示形式的 parse 和 print 方法。不过,编写 parse 和 print 方法需要了解词汇表示形式( XML Schema Part2: Datatypes 规范),因此可能很难编写。

此类使编写 parse 和 print 方法变得更容易。它定义了静态 parse 和 print 方法,以便访问 JAXB 提供者的 parse 和 print 方法的实现。这些方法由自定义 parse 和 print 方法调用。例如,可以使用如下 parse 和 print 方法来自定义 xsd:dateTime 到 long 值的绑定:

1

2

3

4

5

6

7

8

9

10

11

12

13

// 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 中有分别对应于每个 parse 和 print 方法的静态 parse 和 print 方法。

在该类中定义的静态方法还可以用于指定 javaType 绑定声明中的 parse 和 print 方法。

JAXB 提供者需要在第一次执行编组或解组操作之前(可能是在调用 JAXBContext.newInstance 期间)的某个时间点调用 setDatatypeConverter API。要配置用于执行打印和解析功能的转换器,这一步是必需的。

XML 模式数据类型的 print 方法可以输出对于 XML 模式数据类型有效的任何词汇表示形式。如果在转换期间发生错误,则该方法将抛出 IllegalArgumentException,或者抛出 IllegalArgumentException 的子类。

从以下版本开始:
JAXB1.0
另请参见:
DatatypeConverterInterface, ParseConversionEvent, PrintConversionEvent

方法摘要
static String parseAnySimpleType(String lexicalXSDAnySimpleType)
           返回包含简单类型的词汇表示形式的字符串。
static byte[] parseBase64Binary(String lexicalXSDBase64Binary)
           将字符串参数转换为一个字节数组。
static boolean parseBoolean(String lexicalXSDBoolean)
           将字符串参数转换为一个 boolean 值。
static byte parseByte(String lexicalXSDByte)
           将字符串参数转换为一个 byte 值。
static Calendar parseDate(String lexicalXSDDate)
           将字符串参数转换为一个 Calendar 值。
static Calendar parseDateTime(String lexicalXSDDateTime)
           将字符串参数转换为一个 Calendar 值。
static BigDecimal parseDecimal(String lexicalXSDDecimal)
           将字符串参数转换为一个 BigDecimal 值。
static double parseDouble(String lexicalXSDDouble)
           将字符串参数转换为一个 double 值。
static float parseFloat(String lexicalXSDFloat)
           将字符串参数转换为一个 float 值。
static byte[] parseHexBinary(String lexicalXSDHexBinary)
           将字符串参数转换为一个字节数组。
static int parseInt(String lexicalXSDInt)
           将字符串参数转换为一个 int 值。
static BigInteger parseInteger(String lexicalXSDInteger)
           将字符串参数转换为一个 BigInteger 值。
static long parseLong(String lexicalXSDLong)
           将字符串参数转换为一个 long 值。
static QName parseQName(String lexicalXSDQName, NamespaceContext nsc)
           将字符串参数转换为一个 byte 值。
static short parseShort(String lexicalXSDShort)
           将字符串参数转换为一个 short 值。
static String parseString(String lexicalXSDString)
           将词汇 XSD 字符串参数转换为一个 String 值。
static Calendar parseTime(String lexicalXSDTime)
           将字符串参数转换为一个 Calendar 值。
static long parseUnsignedInt(String lexicalXSDUnsignedInt)
           将字符串参数转换为一个 long 值。
static int parseUnsignedShort(String lexicalXSDUnsignedShort)
           将字符串参数转换为一个 int 值。
static String printAnySimpleType(String val)
           将字符串值转换为一个字符串。
static String printBase64Binary(byte[] val)
           将字节数组转换为一个字符串。
static String printBoolean(boolean val)
           将 boolean 值转换为一个字符串。
static String printByte(byte val)
           将 byte 值转换为一个字符串。
static String printDate(Calendar val)
           将 Calendar 值转换为一个字符串。
static String printDateTime(Calendar val)
           将 Calendar 值转换为一个字符串。
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)
           将 long 值转换为一个字符串。
static String printQName(QName val, NamespaceContext nsc)
           将 QName 实例转换为一个字符串。
static String printShort(short val)
           将 short 值转换为一个字符串。
static String printString(String val)
           将字符串参数转换为一个字符串。
static String printTime(Calendar val)
           将 Calendar 值转换为一个字符串。
static String printUnsignedInt(long val)
           将 long 值转换为一个字符串。
static String printUnsignedShort(int val)
           将 int 值转换为一个字符串。
static void setDatatypeConverter(DatatypeConverterInterface converter)
          此方法仅适用于 JAXB 提供者。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

setDatatypeConverter

1

public static void <b>setDatatypeConverter</b>(DatatypeConverterInterface converter)

此方法仅适用于 JAXB 提供者。

JAXB 提供者需要在允许执行任何 JAXB 客户端编组或解组操作之前的某个时间点调用此方法。要配置用于执行打印和解析功能的转换器,这一步是必需的。

重复调用此 API 是无效的,传入第一次调用中的 DatatypeConverterInterface 实例将始终用于后续调用。

参数:
converter - 实现 DatatypeConverterInterface 类的类实例,此参数不能为 null。
抛出:
IllegalArgumentException - 如果参数为 null

parseString

1

public static String <b>parseString</b>(String lexicalXSDString)

将词汇 XSD 字符串参数转换为一个 String 值。

参数:
lexicalXSDString - 包含 xsd:string 的词汇表示形式的字符串。
返回:
字符串参数表示的 String 值。

parseInteger

1

public static BigInteger <b>parseInteger</b>(String lexicalXSDInteger)

将字符串参数转换为一个 BigInteger 值。

参数:
lexicalXSDInteger - 包含 xsd:integer 的词汇表示形式的字符串。
返回:
字符串参数表示的 BigInteger 值。
抛出:
NumberFormatException - 如果 lexicalXSDInteger 不是 BigInteger 值的有效字符串表示形式。

parseInt

1

public static int <b>parseInt</b>(String lexicalXSDInt)

将字符串参数转换为一个 int 值。

参数:
lexicalXSDInt - 包含 xsd:int 的词汇表示形式的字符串。
返回:
字符串参数表示的 int 值。
抛出:
NumberFormatException - 如果 lexicalXSDInt 不是 int 值的有效字符串表示形式。

parseLong

1

public static long <b>parseLong</b>(String lexicalXSDLong)

将字符串参数转换为一个 long 值。

参数:
lexicalXSDLong - 包含 xsd:long 的词汇表示形式的字符串。
返回:
字符串参数表示的 long 值。
抛出:
NumberFormatException - 如果 lexicalXSDLong 不是 long 值的有效字符串表示形式。

parseShort

1

public static short <b>parseShort</b>(String lexicalXSDShort)

将字符串参数转换为一个 short 值。

参数:
lexicalXSDShort - 包含 xsd:short 的词汇表示形式的字符串。
返回:
字符串参数表示的 short 值。
抛出:
NumberFormatException - 如果 lexicalXSDShort 不是 short 值的有效字符串表示形式。

parseDecimal

1

public static BigDecimal <b>parseDecimal</b>(String lexicalXSDDecimal)

将字符串参数转换为一个 BigDecimal 值。

参数:
lexicalXSDDecimal - 包含 xsd:decimal 的词汇表示形式的字符串。
返回:
字符串参数表示的 BigDecimal 值。
抛出:
NumberFormatException - 如果 lexicalXSDDecimal 不是 BigDecimal 的有效字符串表示形式。

parseFloat

1

public static float <b>parseFloat</b>(String lexicalXSDFloat)

将字符串参数转换为一个 float 值。

参数:
lexicalXSDFloat - 包含 xsd:float 的词汇表示形式的字符串。
返回:
字符串参数表示的 float 值。
抛出:
NumberFormatException - 如果 lexicalXSDFloat 不是 float 值的有效字符串表示形式。

parseDouble

1

public static double <b>parseDouble</b>(String lexicalXSDDouble)

将字符串参数转换为一个 double 值。

参数:
lexicalXSDDouble - 包含 xsd:double 的词汇表示形式的字符串。
返回:
字符串参数表示的 double 值。
抛出:
NumberFormatException - 如果 lexicalXSDDouble 不是 double 值的有效字符串表示形式。

parseBoolean

1

public static boolean <b>parseBoolean</b>(String lexicalXSDBoolean)

将字符串参数转换为一个 boolean 值。

参数:
lexicalXSDBoolean - 包含 xsd:boolean 的词汇表示形式的字符串。
返回:
字符串参数表示的 boolean 值。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 中为 xsd:boolean 定义的词汇值空间。

parseByte

1

public static byte <b>parseByte</b>(String lexicalXSDByte)

将字符串参数转换为一个 byte 值。

参数:
lexicalXSDByte - 包含 xsd:byte 的词汇表示形式的字符串。
返回:
字符串参数表示的 byte 值。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:byte 定义的词汇值空间。

parseQName

1

2

public static QName <b>parseQName</b>(String lexicalXSDQName,

                               NamespaceContext nsc)

将字符串参数转换为一个 byte 值。

字符串参数 lexicalXSDQname 必须符合 XML Schema Part 2: Datatypes 规范:QName 中指定的词汇值空间。

参数:
lexicalXSDQName - 包含 xsd:QName 的词汇表示形式的字符串。
nsc - 解释 QName 中前缀的名称空间上下文。
返回:
字符串参数表示的 QName 值。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2 规范,或者 lexicalXSDQname 的名称空间前缀未绑定到 NamespaceContext nsc 中的 URI。

parseDateTime

1

public static Calendar <b>parseDateTime</b>(String lexicalXSDDateTime)

将字符串参数转换为一个 Calendar 值。

参数:
lexicalXSDDateTime - 包含 xsd:datetime 的词汇表示形式的字符串。
返回:
字符串参数表示的 Calendar 对象。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:dateTime 定义的词汇值空间。

parseBase64Binary

1

public static byte[] <b>parseBase64Binary</b>(String lexicalXSDBase64Binary)

将字符串参数转换为一个字节数组。

参数:
lexicalXSDBase64Binary - 包含 xsd:base64Binary 的词汇表示形式的字符串。
返回:
字符串参数表示的字节数组。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:base64Binary 定义的词汇值空间。

parseHexBinary

1

public static byte[] <b>parseHexBinary</b>(String lexicalXSDHexBinary)

将字符串参数转换为一个字节数组。

参数:
lexicalXSDHexBinary - 包含 xsd:hexBinary 的词汇表示形式的字符串。
返回:
字符串参数表示的字节数组。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:hexBinary 定义的词汇值空间。

parseUnsignedInt

1

public static long <b>parseUnsignedInt</b>(String lexicalXSDUnsignedInt)

将字符串参数转换为一个 long 值。

参数:
lexicalXSDUnsignedInt - 包含 xsd:unsignedInt 的词汇表示形式的字符串。
返回:
字符串参数表示的 long 值。
抛出:
NumberFormatException - 如果不能将字符串参数解析为 long 值。

parseUnsignedShort

1

public static int <b>parseUnsignedShort</b>(String lexicalXSDUnsignedShort)

将字符串参数转换为一个 int 值。

参数:
lexicalXSDUnsignedShort - 包含 xsd:unsignedShort 的词汇表示形式的字符串。
返回:
字符串参数表示的 int 值。
抛出:
NumberFormatException - 如果不能将字符串参数解析为 int 值。

parseTime

1

public static Calendar <b>parseTime</b>(String lexicalXSDTime)

将字符串参数转换为一个 Calendar 值。

参数:
lexicalXSDTime - 包含 xsd:time 的词汇表示形式的字符串。
返回:
字符串参数表示的 Calendar 值。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:Time 定义的词汇值空间。

parseDate

1

public static Calendar <b>parseDate</b>(String lexicalXSDDate)

将字符串参数转换为一个 Calendar 值。

参数:
lexicalXSDDate - 包含 xsd:Date 的词汇表示形式的字符串。
返回:
字符串参数表示的 Calendar 值。
抛出:
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:Date 定义的词汇值空间。

parseAnySimpleType

1

public static String <b>parseAnySimpleType</b>(String lexicalXSDAnySimpleType)

返回包含简单类型的词汇表示形式的字符串。

参数:
lexicalXSDAnySimpleType - 包含简单类型的词汇表示形式的字符串。
返回:
包含简单类型的词汇表示形式的字符串。

printString

1

public static String <b>printString</b>(String val)

将字符串参数转换为一个字符串。

参数:
val - 字符串值。
返回:
包含 xsd:string 的词汇表示形式的字符串。

printInteger

1

public static String <b>printInteger</b>(BigInteger val)

将 BigInteger 值转换为一个字符串。

参数:
val - 一个 BigInteger 值
返回:
包含 xsd:integer 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printInt

1

public static String <b>printInt</b>(int val)

将 int 值转换为一个字符串。

参数:
val - 一个 int 值
返回:
包含 xsd:int 的词汇表示形式的字符串

printLong

1

public static String <b>printLong</b>(long val)

将 long 值转换为一个字符串。

参数:
val - 一个 long 值
返回:
包含 xsd:long 的词汇表示形式的字符串

printShort

1

public static String <b>printShort</b>(short val)

将 short 值转换为一个字符串。

参数:
val - 一个 short 值
返回:
包含 xsd:short 的词汇表示形式的字符串

printDecimal

1

public static String <b>printDecimal</b>(BigDecimal val)

将 BigDecimal 值转换为一个字符串。

参数:
val - 一个 BigDecimal 值
返回:
包含 xsd:decimal 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printFloat

1

public static String <b>printFloat</b>(float val)

将 float 值转换为一个字符串。

参数:
val - 一个 float 值
返回:
包含 xsd:float 的词汇表示形式的字符串

printDouble

1

public static String <b>printDouble</b>(double val)

将 double 值转换为一个字符串。

参数:
val - 一个 double 值
返回:
包含 xsd:double 的词汇表示形式的字符串

printBoolean

1

public static String <b>printBoolean</b>(boolean val)

将 boolean 值转换为一个字符串。

参数:
val - 一个 boolean 值
返回:
包含 xsd:boolean 的词汇表示形式的字符串

printByte

1

public static String <b>printByte</b>(byte val)

将 byte 值转换为一个字符串。

参数:
val - 一个 byte 值
返回:
包含 xsd:byte 的词汇表示形式的字符串

printQName

1

2

public static String <b>printQName</b>(QName val,

                                NamespaceContext nsc)

将 QName 实例转换为一个字符串。

参数:
val - 一个 QName 值
nsc - 解释 QName 中前缀的名称空间上下文。
返回:
包含 QName 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null、nsc 为非 null 或 nsc.getPrefix(nsprefixFromVal) 为 null。

printDateTime

1

public static String <b>printDateTime</b>(Calendar val)

将 Calendar 值转换为一个字符串。

参数:
val - 一个 Calendar 值
返回:
包含 xsd:dateTime 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printBase64Binary

1

public static String <b>printBase64Binary</b>(byte[] val)

将字节数组转换为一个字符串。

参数:
val - 一个字节数组
返回:
包含 xsd:base64Binary 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printHexBinary

1

public static String <b>printHexBinary</b>(byte[] val)

将字节数组转换为一个字符串。

参数:
val - 一个字节数组
返回:
包含 xsd:hexBinary 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printUnsignedInt

1

public static String <b>printUnsignedInt</b>(long val)

将 long 值转换为一个字符串。

参数:
val - 一个 long 值
返回:
包含 xsd:unsignedInt 的词汇表示形式的字符串

printUnsignedShort

1

public static String <b>printUnsignedShort</b>(int val)

将 int 值转换为一个字符串。

参数:
val - 一个 int 值
返回:
包含 xsd:unsignedShort 的词汇表示形式的字符串

printTime

1

public static String <b>printTime</b>(Calendar val)

将 Calendar 值转换为一个字符串。

参数:
val - 一个 Calendar 值
返回:
包含 xsd:time 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printDate

1

public static String <b>printDate</b>(Calendar val)

将 Calendar 值转换为一个字符串。

参数:
val - 一个 Calendar 值
返回:
包含 xsd:date 的词汇表示形式的字符串
抛出:
IllegalArgumentException - 如果 val 为 null。

printAnySimpleType

1

public static String <b>printAnySimpleType</b>(String val)

将字符串值转换为一个字符串。

参数:
val - 字符串值
返回:
包含 xsd:AnySimpleType 的词汇表示形式的字符串

JavaTM 2 Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。

上一篇:Binder下一篇:DatatypeConverterInterface