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, 2014, Oracle and/or its affiliates. All rights reserved.