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 のサブクラスをスローする必要があります。
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 プロバイダのみによって使用されます。
|
public static void setDatatypeConverter(DatatypeConverterInterface converter)
JAXB プロバイダは、JAXB クライアントの整列化または非整列化操作の実行が許可される前のある時点で、このメソッドを呼び出す必要があります。これは、出力および解析変換を実行する上で使用すべきデータ型コンバータを設定するために必要になります。
この API を繰り返し呼び出しても効果はありません。最初の呼び出しに渡された DatatypeConverterInterface インスタンスが、それ以降使用されるインスタンスです。
converter
- DatatypeConverterInterface クラスを実装するクラスのインスタンス。このパラメータは null であってはならない。IllegalArgumentException
- パラメータが null の場合SecurityException
- 対応する SecurityManager
によって、データ型コンバータを設定するためのアクセスが拒否された場合。JAXBPermission
public 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 仕様の QNames で指定されている字句値領域に準拠している必要があります。
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 の場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.