パッケージ jakarta.xml.bind

クラス DatatypeConverter


  • public final class DatatypeConverter
    extends ObjectSE

    javaType バインディング宣言を使用すると、XML スキーマデータ型の Java データ型へのバインディングをカスタマイズできます。カスタマイズには、XML スキーマデータ型の字句表現を解析および出力するための解析メソッドと出力メソッドの記述が含まれます。ただし、解析メソッドと出力メソッドの記述には字句表現 (XML スキーマ Part2: データ型の仕様) の知識が必要なため、記述が難しい場合があります。

    このクラスを使用すると、解析メソッドと出力メソッドの記述が容易になります。このクラスは、Jakarta XML Binding プロバイダーの解析メソッドと出力メソッドの実装へのアクセスを提供する静的解析メソッドと出力メソッドを定義します。これらのメソッドは、カスタム解析メソッドと出力メソッドによって呼び出されます。例: 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 バインディング宣言で解析メソッドまたは出力メソッドを指定するためにも使用できます。

    Jakarta XML Binding Providers は、最初のマーシャルまたはアンマーシャル操作の前のある時点で(おそらく、JAXBContext.newInstance の呼び出し中に)setDatatypeConverter API を呼び出す必要があります。この手順は、出力および解析機能を実行するために使用する必要があるコンバーターを構成するために必要です。

    XML スキーマデータ型の print メソッドは、XML スキーマデータ型に関して有効な任意の字句表現を出力できます。変換中にエラーが発生した場合は、IllegalArgumentException または IllegalArgumentException のサブクラスをメソッドでスローする必要があります。

    導入:
    1.6、JAXB 1.0
    作成者:
    • Sekhar Vajjhala, Sun Microsystems, Inc.
    • Joe Fialli, Sun Microsystems Inc.
    • Kohsuke Kawaguchi, Sun Microsystems, Inc.
    • Ryan Shoemaker,Sun Microsystems Inc.
    関連事項:
    DatatypeConverterInterface, ParseConversionEvent, PrintConversionEvent
    • メソッドの詳細

      • setDatatypeConverter

        public static void setDatatypeConverter​(DatatypeConverterInterface converter)
        この方法は、Jakarta XML Binding プロバイダー専用です。

        Jakarta XML Binding Providers は、Jakarta XML Binding クライアントのマーシャルまたはアンマーシャル操作の実行を許可する前に、ある時点でこのメソッドを呼び出す必要があります。これは、出力および解析変換を実行するために使用する必要があるデータ型コンバーターを構成するために必要です。

        この API を繰り返し呼び出しても効果はありません。最初の呼び出しに渡された DatatypeConverterInterface インスタンスは、それ以降に使用されるインスタンスです。

        パラメーター:
        converter - DatatypeConverterInterface クラスを実装するクラスのインスタンス - このパラメーターは null であってはなりません。
        例外:
        IllegalArgumentExceptionSE - パラメーターが null の場合
        SecurityExceptionSE - 担当の SecurityManagerSE がデータ型コンバーターを設定するためのアクセスを拒否した場合。
        関連事項:
        JAXBPermission
      • parseString

        public static StringSE parseString​(StringSE lexicalXSDString)

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

        パラメーター:
        lexicalXSDString - xsd:string の字句表現を含む文字列。
        戻り値:
        文字列引数で表される文字列値。
      • parseInteger

        public static BigIntegerSE parseInteger​(StringSE lexicalXSDInteger)

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

        パラメーター:
        lexicalXSDInteger - xsd:integer の字句表現を含む文字列。
        戻り値:
        文字列引数で表される BigInteger 値。
        例外:
        NumberFormatExceptionSE - lexicalXSDInteger は、BigIntegerSE 値の有効な文字列表現ではありません。
      • parseInt

        public static int parseInt​(StringSE lexicalXSDInt)

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

        パラメーター:
        lexicalXSDInt - xsd:int の字句表現を含む文字列。
        戻り値:
        文字列引数で表される int 値。
        例外:
        NumberFormatExceptionSE - lexicalXSDInt は、int 値の有効な文字列表現ではありません。
      • parseLong

        public static long parseLong​(StringSE lexicalXSDLong)

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

        パラメーター:
        lexicalXSDLong - xsd:long の字句表現を含む文字列。
        戻り値:
        文字列引数で表される長い値。
        例外:
        NumberFormatExceptionSE - lexicalXSDLong は、long 値の有効な文字列表現ではありません。
      • parseShort

        public static short parseShort​(StringSE lexicalXSDShort)

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

        パラメーター:
        lexicalXSDShort - xsd:short の字句表現を含む文字列。
        戻り値:
        文字列引数で表される短い値。
        例外:
        NumberFormatExceptionSE - lexicalXSDShort は、short 値の有効な文字列表現ではありません。
      • parseDecimal

        public static BigDecimalSE parseDecimal​(StringSE lexicalXSDDecimal)

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

        パラメーター:
        lexicalXSDDecimal - xsd:decimal の字句表現を含む文字列。
        戻り値:
        文字列引数で表される BigDecimal 値。
        例外:
        NumberFormatExceptionSE - lexicalXSDDecimal は、BigDecimalSE の有効な文字列表現ではありません。
      • parseFloat

        public static float parseFloat​(StringSE lexicalXSDFloat)

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

        パラメーター:
        lexicalXSDFloat - xsd:float の字句表現を含む文字列。
        戻り値:
        文字列引数で表される浮動小数点値。
        例外:
        NumberFormatExceptionSE - lexicalXSDFloat は、float 値の有効な文字列表現ではありません。
      • parseDouble

        public static double parseDouble​(StringSE lexicalXSDDouble)

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

        パラメーター:
        lexicalXSDDouble - xsd:double の字句表現を含む文字列。
        戻り値:
        文字列引数で表される double 値。
        例外:
        NumberFormatExceptionSE - lexicalXSDDouble は、double 値の有効な文字列表現ではありません。
      • parseBoolean

        public static boolean parseBoolean​(StringSE lexicalXSDBoolean)

        文字列引数をブール値に変換します。

        パラメーター:
        lexicalXSDBoolean - xsd:boolean の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるブール値。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2 で定義されている字句値スペースに準拠していない場合: xsd:boolean のデータ型。
      • parseByte

        public static byte parseByte​(StringSE lexicalXSDByte)

        文字列引数をバイト値に変換します。

        パラメーター:
        lexicalXSDByte - xsd:byte の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるバイト値。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2 で定義されている字句値スペースに準拠していない場合: xsd:byte のデータ型。
      • parseQName

        public static QNameSE parseQName​(StringSE lexicalXSDQName,
                                       NamespaceContextSE nsc)

        文字列引数をバイト値に変換します。

        文字列パラメーター lexicalXSDQname は、XML スキーマパート 2: データ型の仕様: QNames で指定された字句値スペースに準拠している必要があります

        パラメーター:
        lexicalXSDQName - xsd:QName の字句表現を含む文字列。
        nsc - QName 内のプレフィックスを解釈するための名前空間コンテキスト。
        戻り値:
        文字列引数で表される QName 値。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2 仕様に準拠していない場合、または lexicalXSDQname の名前空間プレフィックスが NamespaceContext nsc の URI にバインドされていない場合。
      • parseDateTime

        public static CalendarSE parseDateTime​(StringSE lexicalXSDDateTime)

        文字列引数をカレンダー値に変換します。

        パラメーター:
        lexicalXSDDateTime - xsd:datetime の字句表現を含む文字列。
        戻り値:
        文字列引数で表される Calendar オブジェクト。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが、XML スキーマパート 2: xsd:dateTime のデータ型で定義されている字句値空間に準拠していない場合。
      • parseBase64Binary

        public static byte[] parseBase64Binary​(StringSE lexicalXSDBase64Binary)

        文字列引数をバイトの配列に変換します。

        パラメーター:
        lexicalXSDBase64Binary - xsd:base64Binary の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるバイトの配列。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2 で定義された字句値スペースに準拠していない場合: xsd:base64Binary のデータ型
      • parseHexBinary

        public static byte[] parseHexBinary​(StringSE lexicalXSDHexBinary)

        文字列引数をバイトの配列に変換します。

        パラメーター:
        lexicalXSDHexBinary - xsd:hexBinary の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるバイトの配列。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが、XML スキーマパート 2: xsd:hexBinary のデータ型で定義されている字句値空間に準拠していない場合。
      • parseUnsignedInt

        public static long parseUnsignedInt​(StringSE lexicalXSDUnsignedInt)

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

        パラメーター:
        lexicalXSDUnsignedInt - xsd:unsignedInt の字句表現を含む文字列。
        戻り値:
        文字列引数で表される長い値。
        例外:
        NumberFormatExceptionSE - 文字列パラメーターを解析して long 値にできない場合。
      • parseUnsignedShort

        public static int parseUnsignedShort​(StringSE lexicalXSDUnsignedShort)

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

        パラメーター:
        lexicalXSDUnsignedShort - xsd:unsignedShort の字句表現を含む文字列。
        戻り値:
        文字列引数で表される int 値。
        例外:
        NumberFormatExceptionSE - 文字列パラメーターを解析して int 値にできない場合。
      • parseTime

        public static CalendarSE parseTime​(StringSE lexicalXSDTime)

        文字列引数をカレンダー値に変換します。

        パラメーター:
        lexicalXSDTime - xsd:time の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるカレンダ値。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2 で定義されている字句値スペースに準拠していない場合: xsd:Time のデータ型。
      • parseDate

        public static CalendarSE parseDate​(StringSE lexicalXSDDate)

        文字列引数をカレンダー値に変換します。

        パラメーター:
        lexicalXSDDate - xsd:Date の字句表現を含む文字列。
        戻り値:
        文字列引数で表されるカレンダ値。
        例外:
        IllegalArgumentExceptionSE - 文字列パラメーターが XML スキーマパート 2:xsd:Date のデータ型で定義されている字句値スペースに準拠していない場合。
      • parseAnySimpleType

        public static StringSE parseAnySimpleType​(StringSE lexicalXSDAnySimpleType)

        単純型の字句表現を含む文字列を返します。

        パラメーター:
        lexicalXSDAnySimpleType - 単純型の字句表現を含む文字列。
        戻り値:
        単純型の字句表現を含む文字列。
      • printString

        public static StringSE printString​(StringSE val)

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

        パラメーター:
        val - 文字列値。
        戻り値:
        xsd:string の字句表現を含む文字列。
      • printInteger

        public static StringSE printInteger​(BigIntegerSE val)

        BigInteger 値を文字列に変換します。

        パラメーター:
        val - BigInteger 値
        戻り値:
        xsd:integer の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null です。
      • printInt

        public static StringSE printInt​(int val)

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

        パラメーター:
        val - int 値
        戻り値:
        xsd:int の字句表現を含む文字列
      • printLong

        public static StringSE printLong​(long val)

        長い値を文字列に変換します。

        パラメーター:
        val - 長い値
        戻り値:
        xsd:long の字句表現を含む文字列
      • printShort

        public static StringSE printShort​(short val)

        短い値を文字列に変換します。

        パラメーター:
        val - 短い値
        戻り値:
        xsd:short の字句表現を含む文字列
      • printDecimal

        public static StringSE printDecimal​(BigDecimalSE val)

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

        パラメーター:
        val - BigDecimal 値
        戻り値:
        xsd:decimal の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null です。
      • printFloat

        public static StringSE printFloat​(float val)

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

        パラメーター:
        val - 浮動小数点値
        戻り値:
        xsd:float の字句表現を含む文字列
      • printDouble

        public static StringSE printDouble​(double val)

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

        パラメーター:
        val - 二重値
        戻り値:
        xsd:double の字句表現を含む文字列
      • printBoolean

        public static StringSE printBoolean​(boolean val)

        ブール値を文字列に変換します。

        パラメーター:
        val - ブール値
        戻り値:
        xsd:boolean の字句表現を含む文字列
      • printByte

        public static StringSE printByte​(byte val)

        バイト値を文字列に変換します。

        パラメーター:
        val - バイト値
        戻り値:
        xsd:byte の字句表現を含む文字列
      • printQName

        public static StringSE printQName​(QNameSE val,
                                        NamespaceContextSE nsc)

        QName インスタンスを文字列に変換します。

        パラメーター:
        val - QName 値
        nsc - QName 内のプレフィックスを解釈するための名前空間コンテキスト。
        戻り値:
        QName の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合、または nsc が null でない場合、nsc.getPrefix(nsprefixFromVal) が null の場合。
      • printDateTime

        public static StringSE printDateTime​(CalendarSE val)

        カレンダー値を文字列に変換します。

        パラメーター:
        val - カレンダー値
        戻り値:
        xsd:dateTime の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合。
      • printBase64Binary

        public static StringSE printBase64Binary​(byte[] val)

        バイトの配列を文字列に変換します。

        パラメーター:
        val - バイトの配列
        戻り値:
        xsd:base64Binary の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合。
      • printHexBinary

        public static StringSE printHexBinary​(byte[] val)

        バイトの配列を文字列に変換します。

        パラメーター:
        val - バイトの配列
        戻り値:
        xsd:hexBinary の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合。
      • printUnsignedInt

        public static StringSE printUnsignedInt​(long val)

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

        パラメーター:
        val - 長い値
        戻り値:
        xsd:unsignedInt の字句表現を含む文字列
      • printUnsignedShort

        public static StringSE printUnsignedShort​(int val)

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

        パラメーター:
        val - int 値
        戻り値:
        xsd:unsignedShort の字句表現を含む文字列
      • printTime

        public static StringSE printTime​(CalendarSE val)

        カレンダー値を文字列に変換します。

        パラメーター:
        val - カレンダー値
        戻り値:
        xsd:time の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合。
      • printDate

        public static StringSE printDate​(CalendarSE val)

        カレンダー値を文字列に変換します。

        パラメーター:
        val - カレンダー値
        戻り値:
        xsd:date の字句表現を含む文字列
        例外:
        IllegalArgumentExceptionSE - val が null の場合。
      • printAnySimpleType

        public static StringSE printAnySimpleType​(StringSE val)

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

        パラメーター:
        val - 文字列値
        戻り値:
        xsd:AnySimpleType の字句表現を含む文字列