モジュール java.xml.bind
パッケージ 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のサブクラスをスローする必要があります。

    導入されたバージョン:
    1.6, JAXB 1.0
    関連項目:
    DatatypeConverterInterfaceParseConversionEventPrintConversionEvent
    • メソッドの詳細

      • setDatatypeConverter

        public static void setDatatypeConverter​(DatatypeConverterInterface converter)
        このメソッドは、JAXBプロバイダのみによって使用されます。

        JAXBプロバイダは、JAXBクライアントの整列化または非整列化操作の実行が許可される前のある時点で、このメソッドを呼び出す必要があります。 これは、出力および解析変換を実行する上で使用すべきデータ型コンバータを設定するために必要になります。

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

        パラメータ:
        converter - DatatypeConverterInterfaceクラスを実装するクラスのインスタンス。このパラメータはnullであってはならない。
        例外:
        IllegalArgumentException - パラメータがnullの場合
        SecurityException - 対応するSecurityManagerによって、データ型コンバータを設定するためのアクセスが拒否された場合。
        関連項目:
        JAXBPermission
      • 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)

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

        文字列パラメータlexicalXSDQnameは、XML Schema Part 2:Datatypes仕様の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の字句表現を含む文字列