Класс DatatypeConverter
- java.lang.Object
-
- javax.xml.bind.DatatypeConverter
public final class DatatypeConverter extends Object
Декларация привязки javaType может использоваться для настройки привязки типа данных XML-схемы к типу данных Java. Настройка может включать в себя написание методов parse и print для парсинга и вывода лексических представлений типа данных XML-схемы соответственно. Однако, написание методов parse и print требует знания лексических представлений (спецификация XML Schema Part2: Datatypes) и поэтому может быть сложным.
Этот класс упрощает написание методов parse и print. Он определяет статические методы parse и print, которые предоставляют доступ к реализации методов parse и print поставщика JAXB. Эти методы вызываются пользовательскими методами parse и print. Например, привязку xsd:dateTime к long можно настроить с помощью методов parse и print следующим образом:
// 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;
} Существует статический метод parse и print, соответствующий каждому методу parse и print в DatatypeConverterInterface.
Статические методы, определенные в классе, также могут использоваться для указания метода parse или print в декларации привязки javaType.
Поставщикам JAXB требуется вызвать метод setDatatypeConverter в какой-то момент перед первой операцией маршализации или размаршализации (возможно, во время вызова JAXBContext.newInstance). Этот шаг необходим для конфигурации преобразователя, который должен использоваться для выполнения функций print и parse.
Метод print для типа данных 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) Преобразует строковый аргумент в значение 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. |
Методы, унаследованные от класса 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 -
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-lexicalXSDIntegerне является допустимым строковым представлением значенияBigInteger.
parseInt
public static int parseInt(String lexicalXSDInt)
Преобразует строковый аргумент в значение int.
- Параметры:
-
lexicalXSDInt- строка, содержащая лексическое представление xsd:int. - Возвращает:
- Значение int, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDIntне является допустимым строковым представлением значенияint.
parseLong
public static long parseLong(String lexicalXSDLong)
Преобразует строковый аргумент в значение long.
- Параметры:
-
lexicalXSDLong- строка, содержащая лексическое представление xsd:long. - Возвращает:
- Значение long, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDLongне является допустимым строковым представлением значенияlong.
parseShort
public static short parseShort(String lexicalXSDShort)
Преобразует строковый аргумент в значение short.
- Параметры:
-
lexicalXSDShort- строка, содержащая лексическое представление xsd:short. - Возвращает:
- Значение short, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDShortне является допустимым строковым представлением значенияshort.
parseDecimal
public static BigDecimal parseDecimal(String lexicalXSDDecimal)
Преобразует строковый аргумент в значение BigDecimal.
- Параметры:
-
lexicalXSDDecimal- строка, содержащая лексическое представление xsd:decimal. - Возвращает:
- Значение BigDecimal, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDDecimalне является допустимым строковым представлениемBigDecimal.
parseFloat
public static float parseFloat(String lexicalXSDFloat)
Преобразует строковый аргумент в значение float.
- Параметры:
-
lexicalXSDFloat- строка, содержащая лексическое представление xsd:float. - Возвращает:
- Значение float, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDFloatне является допустимым строковым представлением значенияfloat.
parseDouble
public static double parseDouble(String lexicalXSDDouble)
Преобразует строковый аргумент в значение double.
- Параметры:
-
lexicalXSDDouble- строка, содержащая лексическое представление xsd:double. - Возвращает:
- Значение double, представленное строковым аргументом.
- Исключения:
-
NumberFormatException-lexicalXSDDoubleне является допустимым строковым представлением значенияdouble.
parseBoolean
public static boolean parseBoolean(String lexicalXSDBoolean)
Преобразует строковый аргумент в булево значение.
- Параметры:
-
lexicalXSDBoolean- строка, содержащая лексическое представление xsd: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не привязан к URI в NamespaceContextnsc.
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- значение String. - Возвращает:
- Строка, содержащая лексическое представление 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
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.