|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.xml.bind.DatatypeConverter
public final class DatatypeConverter
可以使用 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 值的绑定:
// 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 的子类。
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 |
| 方法详细信息 |
|---|
public static void setDatatypeConverter(DatatypeConverterInterface converter)
JAXB 提供者需要在允许执行任何 JAXB 客户端编组或解组操作之前的某个时间点调用此方法。要配置用于执行打印和解析功能的转换器,这一步是必需的。
重复调用此 API 是无效的,传入第一次调用中的 DatatypeConverterInterface 实例将始终用于后续调用。
converter - 实现 DatatypeConverterInterface 类的类实例,此参数不能为 null。
IllegalArgumentException - 如果参数为 nullpublic static String parseString(String lexicalXSDString)
将词汇 XSD 字符串参数转换为一个 String 值。
lexicalXSDString - 包含 xsd:string 的词汇表示形式的字符串。
public static BigInteger parseInteger(String lexicalXSDInteger)
将字符串参数转换为一个 BigInteger 值。
lexicalXSDInteger - 包含 xsd:integer 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDInteger 不是 BigInteger 值的有效字符串表示形式。public static int parseInt(String lexicalXSDInt)
将字符串参数转换为一个 int 值。
lexicalXSDInt - 包含 xsd:int 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDInt 不是 int 值的有效字符串表示形式。public static long parseLong(String lexicalXSDLong)
将字符串参数转换为一个 long 值。
lexicalXSDLong - 包含 xsd:long 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDLong 不是 long 值的有效字符串表示形式。public static short parseShort(String lexicalXSDShort)
将字符串参数转换为一个 short 值。
lexicalXSDShort - 包含 xsd:short 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDShort 不是 short 值的有效字符串表示形式。public static BigDecimal parseDecimal(String lexicalXSDDecimal)
将字符串参数转换为一个 BigDecimal 值。
lexicalXSDDecimal - 包含 xsd:decimal 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDDecimal 不是 BigDecimal 的有效字符串表示形式。public static float parseFloat(String lexicalXSDFloat)
将字符串参数转换为一个 float 值。
lexicalXSDFloat - 包含 xsd:float 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDFloat 不是 float 值的有效字符串表示形式。public static double parseDouble(String lexicalXSDDouble)
将字符串参数转换为一个 double 值。
lexicalXSDDouble - 包含 xsd:double 的词汇表示形式的字符串。
NumberFormatException - 如果 lexicalXSDDouble 不是 double 值的有效字符串表示形式。public static boolean parseBoolean(String lexicalXSDBoolean)
将字符串参数转换为一个 boolean 值。
lexicalXSDBoolean - 包含 xsd:boolean 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 中为 xsd:boolean 定义的词汇值空间。public static byte parseByte(String lexicalXSDByte)
将字符串参数转换为一个 byte 值。
lexicalXSDByte - 包含 xsd:byte 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:byte 定义的词汇值空间。
public static QName parseQName(String lexicalXSDQName,
NamespaceContext nsc)
将字符串参数转换为一个 byte 值。
字符串参数 lexicalXSDQname 必须符合 XML Schema Part 2: Datatypes 规范:QName 中指定的词汇值空间。
lexicalXSDQName - 包含 xsd:QName 的词汇表示形式的字符串。nsc - 解释 QName 中前缀的名称空间上下文。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2 规范,或者 lexicalXSDQname 的名称空间前缀未绑定到 NamespaceContext nsc 中的 URI。public static Calendar parseDateTime(String lexicalXSDDateTime)
将字符串参数转换为一个 Calendar 值。
lexicalXSDDateTime - 包含 xsd:datetime 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:dateTime 定义的词汇值空间。public static byte[] parseBase64Binary(String lexicalXSDBase64Binary)
将字符串参数转换为一个字节数组。
lexicalXSDBase64Binary - 包含 xsd:base64Binary 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:base64Binary 定义的词汇值空间。public static byte[] parseHexBinary(String lexicalXSDHexBinary)
将字符串参数转换为一个字节数组。
lexicalXSDHexBinary - 包含 xsd:hexBinary 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:hexBinary 定义的词汇值空间。public static long parseUnsignedInt(String lexicalXSDUnsignedInt)
将字符串参数转换为一个 long 值。
lexicalXSDUnsignedInt - 包含 xsd:unsignedInt 的词汇表示形式的字符串。
NumberFormatException - 如果不能将字符串参数解析为 long 值。public static int parseUnsignedShort(String lexicalXSDUnsignedShort)
将字符串参数转换为一个 int 值。
lexicalXSDUnsignedShort - 包含 xsd:unsignedShort 的词汇表示形式的字符串。
NumberFormatException - 如果不能将字符串参数解析为 int 值。public static Calendar parseTime(String lexicalXSDTime)
将字符串参数转换为一个 Calendar 值。
lexicalXSDTime - 包含 xsd:time 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:Time 定义的词汇值空间。public static Calendar parseDate(String lexicalXSDDate)
将字符串参数转换为一个 Calendar 值。
lexicalXSDDate - 包含 xsd:Date 的词汇表示形式的字符串。
IllegalArgumentException - 如果字符串参数不符合 XML Schema Part 2: Datatypes 为 xsd:Date 定义的词汇值空间。public static String parseAnySimpleType(String lexicalXSDAnySimpleType)
返回包含简单类型的词汇表示形式的字符串。
lexicalXSDAnySimpleType - 包含简单类型的词汇表示形式的字符串。
public static String printString(String val)
将字符串参数转换为一个字符串。
val - 字符串值。
public static String printInteger(BigInteger val)
将 BigInteger 值转换为一个字符串。
val - 一个 BigInteger 值
IllegalArgumentException - 如果 val 为 null。public static String printInt(int val)
将 int 值转换为一个字符串。
val - 一个 int 值
public static String printLong(long val)
将 long 值转换为一个字符串。
val - 一个 long 值
public static String printShort(short val)
将 short 值转换为一个字符串。
val - 一个 short 值
public static String printDecimal(BigDecimal val)
将 BigDecimal 值转换为一个字符串。
val - 一个 BigDecimal 值
IllegalArgumentException - 如果 val 为 null。public static String printFloat(float val)
将 float 值转换为一个字符串。
val - 一个 float 值
public static String printDouble(double val)
将 double 值转换为一个字符串。
val - 一个 double 值
public static String printBoolean(boolean val)
将 boolean 值转换为一个字符串。
val - 一个 boolean 值
public static String printByte(byte val)
将 byte 值转换为一个字符串。
val - 一个 byte 值
public static String printQName(QName val,
NamespaceContext nsc)
将 QName 实例转换为一个字符串。
val - 一个 QName 值nsc - 解释 QName 中前缀的名称空间上下文。
IllegalArgumentException - 如果 val 为 null、nsc 为非 null 或 nsc.getPrefix(nsprefixFromVal) 为 null。public static String printDateTime(Calendar val)
将 Calendar 值转换为一个字符串。
val - 一个 Calendar 值
IllegalArgumentException - 如果 val 为 null。public static String printBase64Binary(byte[] val)
将字节数组转换为一个字符串。
val - 一个字节数组
IllegalArgumentException - 如果 val 为 null。public static String printHexBinary(byte[] val)
将字节数组转换为一个字符串。
val - 一个字节数组
IllegalArgumentException - 如果 val 为 null。public static String printUnsignedInt(long val)
将 long 值转换为一个字符串。
val - 一个 long 值
public static String printUnsignedShort(int val)
将 int 值转换为一个字符串。
val - 一个 int 值
public static String printTime(Calendar val)
将 Calendar 值转换为一个字符串。
val - 一个 Calendar 值
IllegalArgumentException - 如果 val 为 null。public static String printDate(Calendar val)
将 Calendar 值转换为一个字符串。
val - 一个 Calendar 值
IllegalArgumentException - 如果 val 为 null。public static String printAnySimpleType(String val)
将字符串值转换为一个字符串。
val - 字符串值
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。