JavaTM 2 Platform
Standard Ed. 6

javax.xml.bind
類別 DatatypeConverter

java.lang.Object
  繼承者 javax.xml.bind.DatatypeConverter

public final class DatatypeConverter
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 值的綁定:

// 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

public static void setDatatypeConverter(DatatypeConverterInterface converter)
此方法僅適用於 JAXB 提供者。

JAXB 提供者需要在允許執行任何 JAXB 客戶端編組或解組操作之前的某個時間點調用此方法。要配置用於執行列印和解析功能的轉換器,這一步是必需的。

重複調用此 API 是無效的,傳入第一次調用中的 DatatypeConverterInterface 實例將始終用於後續調用。

參數:
converter - 實作 DatatypeConverterInterface 類別的類別實例,此參數不能為 null。
拋出:
IllegalArgumentException - 如果參數為 null

parseString

public static String parseString(String lexicalXSDString)

將詞彙 XSD 字元串參數轉換為一個 String 值。

參數:
lexicalXSDString - 套件含 xsd:string 的詞彙表示形式的字元串。
返回:
字元串參數表示的 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 的詞彙表示形式的字元串。
返回:
字元串參數表示的 int 值。
拋出:
NumberFormatException - 如果 lexicalXSDInt 不是 int 值的有效字元串表示形式。

parseLong

public static long parseLong(String lexicalXSDLong)

將字元串參數轉換為一個 long 值。

參數:
lexicalXSDLong - 套件含 xsd:long 的詞彙表示形式的字元串。
返回:
字元串參數表示的 long 值。
拋出:
NumberFormatException - 如果 lexicalXSDLong 不是 long 值的有效字元串表示形式。

parseShort

public static short parseShort(String lexicalXSDShort)

將字元串參數轉換為一個 short 值。

參數:
lexicalXSDShort - 套件含 xsd:short 的詞彙表示形式的字元串。
返回:
字元串參數表示的 short 值。
拋出:
NumberFormatException - 如果 lexicalXSDShort 不是 short 值的有效字元串表示形式。

parseDecimal

public static BigDecimal parseDecimal(String lexicalXSDDecimal)

將字元串參數轉換為一個 BigDecimal 值。

參數:
lexicalXSDDecimal - 套件含 xsd:decimal 的詞彙表示形式的字元串。
返回:
字元串參數表示的 BigDecimal 值。
拋出:
NumberFormatException - 如果 lexicalXSDDecimal 不是 BigDecimal 的有效字元串表示形式。

parseFloat

public static float parseFloat(String lexicalXSDFloat)

將字元串參數轉換為一個 float 值。

參數:
lexicalXSDFloat - 套件含 xsd:float 的詞彙表示形式的字元串。
返回:
字元串參數表示的 float 值。
拋出:
NumberFormatException - 如果 lexicalXSDFloat 不是 float 值的有效字元串表示形式。

parseDouble

public static double parseDouble(String lexicalXSDDouble)

將字元串參數轉換為一個 double 值。

參數:
lexicalXSDDouble - 套件含 xsd:double 的詞彙表示形式的字元串。
返回:
字元串參數表示的 double 值。
拋出:
NumberFormatException - 如果 lexicalXSDDouble 不是 double 值的有效字元串表示形式。

parseBoolean

public static boolean parseBoolean(String lexicalXSDBoolean)

將字元串參數轉換為一個 boolean 值。

參數:
lexicalXSDBoolean - 套件含 xsd:boolean 的詞彙表示形式的字元串。
返回:
字元串參數表示的 boolean 值。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 中為 xsd:boolean 定義的詞彙值空間。

parseByte

public static byte parseByte(String lexicalXSDByte)

將字元串參數轉換為一個 byte 值。

參數:
lexicalXSDByte - 套件含 xsd:byte 的詞彙表示形式的字元串。
返回:
字元串參數表示的 byte 值。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 xsd:byte 定義的詞彙值空間。

parseQName

public static QName parseQName(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

public static Calendar parseDateTime(String lexicalXSDDateTime)

將字元串參數轉換為一個 Calendar 值。

參數:
lexicalXSDDateTime - 套件含 xsd:datetime 的詞彙表示形式的字元串。
返回:
字元串參數表示的 Calendar 物件。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 xsd:dateTime 定義的詞彙值空間。

parseBase64Binary

public static byte[] parseBase64Binary(String lexicalXSDBase64Binary)

將字元串參數轉換為一個位元組陣列。

參數:
lexicalXSDBase64Binary - 套件含 xsd:base64Binary 的詞彙表示形式的字元串。
返回:
字元串參數表示的位元組陣列。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 xsd:base64Binary 定義的詞彙值空間。

parseHexBinary

public static byte[] parseHexBinary(String lexicalXSDHexBinary)

將字元串參數轉換為一個位元組陣列。

參數:
lexicalXSDHexBinary - 套件含 xsd:hexBinary 的詞彙表示形式的字元串。
返回:
字元串參數表示的位元組陣列。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 xsd:hexBinary 定義的詞彙值空間。

parseUnsignedInt

public static long parseUnsignedInt(String lexicalXSDUnsignedInt)

將字元串參數轉換為一個 long 值。

參數:
lexicalXSDUnsignedInt - 套件含 xsd:unsignedInt 的詞彙表示形式的字元串。
返回:
字元串參數表示的 long 值。
拋出:
NumberFormatException - 如果不能將字元串參數解析為 long 值。

parseUnsignedShort

public static int parseUnsignedShort(String lexicalXSDUnsignedShort)

將字元串參數轉換為一個 int 值。

參數:
lexicalXSDUnsignedShort - 套件含 xsd:unsignedShort 的詞彙表示形式的字元串。
返回:
字元串參數表示的 int 值。
拋出:
NumberFormatException - 如果不能將字元串參數解析為 int 值。

parseTime

public static Calendar parseTime(String lexicalXSDTime)

將字元串參數轉換為一個 Calendar 值。

參數:
lexicalXSDTime - 套件含 xsd:time 的詞彙表示形式的字元串。
返回:
字元串參數表示的 Calendar 值。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 xsd:Time 定義的詞彙值空間。

parseDate

public static Calendar parseDate(String lexicalXSDDate)

將字元串參數轉換為一個 Calendar 值。

參數:
lexicalXSDDate - 套件含 xsd:Date 的詞彙表示形式的字元串。
返回:
字元串參數表示的 Calendar 值。
拋出:
IllegalArgumentException - 如果字元串參數不符合 XML Schema Part 2: Datatypes 為 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)

將 long 值轉換為一個字元串。

參數:
val - 一個 long 值
返回:
包含 xsd:long 的詞彙表示形式的字元串

printShort

public static String printShort(short val)

將 short 值轉換為一個字元串。

參數:
val - 一個 short 值
返回:
包含 xsd:short 的詞彙表示形式的字元串

printDecimal

public static String printDecimal(BigDecimal val)

將 BigDecimal 值轉換為一個字元串。

參數:
val - 一個 BigDecimal 值
返回:
包含 xsd:decimal 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printFloat

public static String printFloat(float val)

將 float 值轉換為一個字元串。

參數:
val - 一個 float 值
返回:
包含 xsd:float 的詞彙表示形式的字元串

printDouble

public static String printDouble(double val)

將 double 值轉換為一個字元串。

參數:
val - 一個 double 值
返回:
包含 xsd:double 的詞彙表示形式的字元串

printBoolean

public static String printBoolean(boolean val)

將 boolean 值轉換為一個字元串。

參數:
val - 一個 boolean 值
返回:
包含 xsd:boolean 的詞彙表示形式的字元串

printByte

public static String printByte(byte val)

將 byte 值轉換為一個字元串。

參數:
val - 一個 byte 值
返回:
包含 xsd:byte 的詞彙表示形式的字元串

printQName

public static String printQName(QName val,
                                NamespaceContext nsc)

將 QName 實例轉換為一個字元串。

參數:
val - 一個 QName 值
nsc - 解釋 QName 中前綴的名稱空間上下文。
返回:
包含 QName 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null、nsc 為非 null 或 nsc.getPrefix(nsprefixFromVal) 為 null。

printDateTime

public static String printDateTime(Calendar val)

將 Calendar 值轉換為一個字元串。

參數:
val - 一個 Calendar 值
返回:
包含 xsd:dateTime 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printBase64Binary

public static String printBase64Binary(byte[] val)

將位元組陣列轉換為一個字元串。

參數:
val - 一個位元組陣列
返回:
包含 xsd:base64Binary 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printHexBinary

public static String printHexBinary(byte[] val)

將位元組陣列轉換為一個字元串。

參數:
val - 一個位元組陣列
返回:
包含 xsd:hexBinary 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printUnsignedInt

public static String printUnsignedInt(long val)

將 long 值轉換為一個字元串。

參數:
val - 一個 long 值
返回:
包含 xsd:unsignedInt 的詞彙表示形式的字元串

printUnsignedShort

public static String printUnsignedShort(int val)

將 int 值轉換為一個字元串。

參數:
val - 一個 int 值
返回:
包含 xsd:unsignedShort 的詞彙表示形式的字元串

printTime

public static String printTime(Calendar val)

將 Calendar 值轉換為一個字元串。

參數:
val - 一個 Calendar 值
返回:
包含 xsd:time 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printDate

public static String printDate(Calendar val)

將 Calendar 值轉換為一個字元串。

參數:
val - 一個 Calendar 值
返回:
包含 xsd:date 的詞彙表示形式的字元串
拋出:
IllegalArgumentException - 如果 val 為 null。

printAnySimpleType

public static String printAnySimpleType(String val)

將字元串值轉換為一個字元串。

參數:
val - 字元串值
返回:
包含 xsd:AnySimpleType 的詞彙表示形式的字元串

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only