JavaTM Platform
Standard Ed. 6

javax.xml.bind
クラス DatatypeConverter

java.lang.Object
  上位を拡張 javax.xml.bind.DatatypeConverter

public final class DatatypeConverter
extends Object

Java 型バインディング宣言は、XML スキーマデータ型と Java データ型のバインディングをカスタマイズするために使用できます。カスタマイズには、XML スキーマデータ型の字句表現を解析したり出力するための、解析メソッドおよび出力メソッドをそれぞれ記述することが含まれます。ただし、解析メソッドおよび出力メソッドを記述するには、その字句表現を理解する必要があるため (『XML Schema Part2: Datatypes』仕様)、難易度が高いことがあります。

このクラスにより、解析メソッドおよび出力メソッドの作成が容易になります。このクラスは、JAXB プロバイダの解析メソッドおよび出力メソッド実装へのアクセスを提供する、static の解析メソッドおよび出力メソッドを定義します。これらのメソッドは、カスタムの解析メソッドおよび出力メソッドによって呼び出されます。たとえば、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 の解析メソッドおよび出力メソッドのそれぞれに対応する、static 解析メソッドおよび出力メソッドがあります。

また、このクラスで定義された static メソッドは、JavaType バインディング宣言内で解析メソッドおよび出力メソッドを指定するために使用できます。

JAXB プロバイダは、最初の整列化または非整列化操作を呼び出す前のある時点で (おそらく、JAXBContext.newInstance の呼び出し中)、setDatatypeConverter API を呼び出す必要があります。このステップは、出力および解析機能を実行する上で使用すべきコンバータを設定するために必要になります。

XML スキーマデータ型の出力メソッドは、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)
           文字列引数を Qname 値に変換します。
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 - lexicalXSDIntegerBigInteger 値の文字列表現として無効である場合

parseInt

public static int parseInt(String lexicalXSDInt)

文字列引数を int 値に変換します。

パラメータ:
lexicalXSDInt - xsd:int の字句表現を含む文字列
戻り値:
文字列引数が表す int 値
例外:
NumberFormatException - lexicalXSDIntint 値の文字列表現として無効である場合

parseLong

public static long parseLong(String lexicalXSDLong)

文字列引数を long 値に変換します。

パラメータ:
lexicalXSDLong - xsd:long の字句表現を含む文字列
戻り値:
文字列引数が表す long 値
例外:
NumberFormatException - lexicalXSDLonglong 値の文字列表現として無効である場合

parseShort

public static short parseShort(String lexicalXSDShort)

文字列引数を short 値に変換します。

パラメータ:
lexicalXSDShort - xsd:short の字句表現を含む文字列
戻り値:
文字列引数が表す short 値
例外:
NumberFormatException - lexicalXSDShortshort 値の文字列表現として無効である場合

parseDecimal

public static BigDecimal parseDecimal(String lexicalXSDDecimal)

文字列引数を BigDecimal 値に変換します。

パラメータ:
lexicalXSDDecimal - xsd:decimal の字句表現を含む文字列
戻り値:
文字列引数が表す BigDecimal 値
例外:
NumberFormatException - lexicalXSDDecimalBigDecimal の文字列表現として無効である場合

parseFloat

public static float parseFloat(String lexicalXSDFloat)

文字列引数を float 値に変換します。

パラメータ:
lexicalXSDFloat - xsd:float の字句表現を含む文字列
戻り値:
文字列引数が表す float 値
例外:
NumberFormatException - lexicalXSDFloatfloat 値の文字列表現として無効である場合

parseDouble

public static double parseDouble(String lexicalXSDDouble)

文字列引数を double 値に変換します。

パラメータ:
lexicalXSDDouble - xsd:double の字句表現を含む文字列
戻り値:
文字列引数が表す double 値
例外:
NumberFormatException - lexicalXSDDoubledouble 値の文字列表現として無効である場合

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)

文字列引数を Qname 値に変換します。

文字列パラメータ lexicalXSDQname は、『XML Schema Part 2:Datatypes specification:QNames』で指定されている字句値領域に準拠している必要があります。

パラメータ:
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 Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。