Package net.sf.saxon.type
Class StringConverter
- java.lang.Object
-
- net.sf.saxon.type.Converter
-
- net.sf.saxon.type.StringConverter
-
- Direct Known Subclasses:
Converter.StringToBase64BinaryConverter
,Converter.TwoPhaseConverter
,StringConverter.IdentityConverter
,StringConverter.StringToAnyURI
,StringConverter.StringToBoolean
,StringConverter.StringToDate
,StringConverter.StringToDateTime
,StringConverter.StringToDayTimeDuration
,StringConverter.StringToDecimal
,StringConverter.StringToDerivedStringSubtype
,StringConverter.StringToDouble
,StringConverter.StringToDuration
,StringConverter.StringToExternalObjectType
,StringConverter.StringToFloat
,StringConverter.StringToGDayConverter
,StringConverter.StringToGMonth
,StringConverter.StringToGMonthDay
,StringConverter.StringToGYear
,StringConverter.StringToGYearMonth
,StringConverter.StringToHexBinary
,StringConverter.StringToInteger
,StringConverter.StringToIntegerSubtype
,StringConverter.StringToLanguage
,StringConverter.StringToNCName
,StringConverter.StringToNMTOKEN
,StringConverter.StringToNonStringDerivedType
,StringConverter.StringToNormalizedString
,StringConverter.StringToNotation
,StringConverter.StringToQName
,StringConverter.StringToString
,StringConverter.StringToStringSubtype
,StringConverter.StringToTime
,StringConverter.StringToToken
,StringConverter.StringToUnionConverter
,StringConverter.StringToUntypedAtomic
,StringConverter.StringToYearMonthDuration
public abstract class StringConverter extends Converter
AConverter
that accepts a string as input. This subclass of Converter is provided to avoid having to wrap the string into a StringValue prior to conversion. Every Converter whose source type is xs:string must be an instance of this subclass.The input to a StringConverter can also be an xs:untypedAtomic value, since the conversion semantics are always the same as from a string.
A StringConverter also provides a method to validate that a string is valid against the target type, without actually performing the conversion.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StringConverter.IdentityConverter
Converter that does nothing - it returns the input unchangedstatic class
StringConverter.StringToAnyURI
Converts string to anyURIstatic class
StringConverter.StringToBoolean
Converts a string to a booleanstatic class
StringConverter.StringToDate
Converts a string to a datestatic class
StringConverter.StringToDateTime
Converts a string to a dateTimestatic class
StringConverter.StringToDayTimeDuration
Converts a string to a dayTimeDurationstatic class
StringConverter.StringToDecimal
Converts a string to an xs:decimalstatic class
StringConverter.StringToDerivedStringSubtype
Converts from xs;string to a user-defined type derived from a built-in subtype of xs:stringstatic class
StringConverter.StringToDouble
Converts a string to a double.static class
StringConverter.StringToDuration
Converts a string to a durationstatic class
StringConverter.StringToExternalObjectType
static class
StringConverter.StringToFloat
Converts a string to xs:floatstatic class
StringConverter.StringToGDayConverter
Converts a string to a gDaystatic class
StringConverter.StringToGMonth
Converts a string to a gMonthstatic class
StringConverter.StringToGMonthDay
Converts a string to a gMonthDaystatic class
StringConverter.StringToGYear
Converts a string to a gYearstatic class
StringConverter.StringToGYearMonth
Converts a string to a gYearMonthstatic class
StringConverter.StringToHexBinary
Converts a string to hexBinarystatic class
StringConverter.StringToInteger
Converts a string to an integerstatic class
StringConverter.StringToIntegerSubtype
Converts a string to a built-in subtype of integerstatic class
StringConverter.StringToLanguage
Converts from xs:string to xs:languagestatic class
StringConverter.StringToName
Converts from xs:string to xs:Namestatic class
StringConverter.StringToNCName
Converts from xs:string to xs:NCName, xs:ID, xs:IDREF, or xs:ENTITYstatic class
StringConverter.StringToNMTOKEN
Converts from xs:string to xs:NMTOKENstatic class
StringConverter.StringToNonStringDerivedType
Converter from string to a derived type (derived from a type other than xs:string), where the derived type needs to retain the original string for validating against lexical facets such as pattern.static class
StringConverter.StringToNormalizedString
Converts from xs:string to xs:normalizedStringstatic class
StringConverter.StringToNotation
Converts String to NOTATIONstatic class
StringConverter.StringToQName
Converts String to QNamestatic class
StringConverter.StringToString
Converts from xs:string or xs:untypedAtomic to xs:Stringstatic class
StringConverter.StringToStringSubtype
Converts from xs;string to a user-defined type derived directly from xs:stringstatic class
StringConverter.StringToTime
Converts a string to a timestatic class
StringConverter.StringToToken
Converts from xs:string to xs:tokenstatic class
StringConverter.StringToUnionConverter
Converter from string to plain union typesstatic class
StringConverter.StringToUntypedAtomic
Converts from xs:string or xs:untypedAtomic to xs:untypedAtomicstatic class
StringConverter.StringToYearMonthDuration
Converts a string to a yearMonthDuration-
Nested classes/interfaces inherited from class net.sf.saxon.type.Converter
Converter.Base64BinaryToHexBinary, Converter.BooleanToDecimal, Converter.BooleanToDouble, Converter.BooleanToFloat, Converter.BooleanToInteger, Converter.DateTimeToDate, Converter.DateTimeToGDay, Converter.DateTimeToGMonth, Converter.DateTimeToGMonthDay, Converter.DateTimeToGYear, Converter.DateTimeToGYearMonth, Converter.DateTimeToTime, Converter.DateToDateTime, Converter.DecimalToInteger, Converter.DoubleToDecimal, Converter.DoubleToInteger, Converter.DownCastingConverter, Converter.DurationToDayTimeDuration, Converter.DurationToYearMonthDuration, Converter.FloatToDecimal, Converter.FloatToInteger, Converter.HexBinaryToBase64Binary, Converter.IntegerToDecimal, Converter.NotationToQName, Converter.NumericToBoolean, Converter.NumericToDecimal, Converter.NumericToDouble, Converter.NumericToFloat, Converter.NumericToInteger, Converter.PromoterToDouble, Converter.PromoterToFloat, Converter.QNameToNotation, Converter.StringToBase64BinaryConverter, Converter.ToStringConverter, Converter.ToUntypedAtomicConverter, Converter.TwoPhaseConverter, Converter.UpCastingConverter
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.type.Converter
BASE64_BINARY_TO_HEX_BINARY, BOOLEAN_TO_DECIMAL, BOOLEAN_TO_DOUBLE, BOOLEAN_TO_FLOAT, BOOLEAN_TO_INTEGER, DATE_TIME_TO_DATE, DATE_TIME_TO_G_DAY, DATE_TIME_TO_G_MONTH, DATE_TIME_TO_G_MONTH_DAY, DATE_TIME_TO_G_YEAR, DATE_TIME_TO_G_YEAR_MONTH, DATE_TIME_TO_TIME, DATE_TO_DATE_TIME, DECIMAL_TO_INTEGER, DOUBLE_TO_DECIMAL, DOUBLE_TO_INTEGER, DURATION_TO_DAY_TIME_DURATION, DURATION_TO_YEAR_MONTH_DURATION, FLOAT_TO_DECIMAL, FLOAT_TO_INTEGER, HEX_BINARY_TO_BASE64_BINARY, IDENTITY_CONVERTER, INTEGER_TO_DECIMAL, NOTATION_TO_QNAME, NUMERIC_TO_BOOLEAN, NUMERIC_TO_DECIMAL, NUMERIC_TO_DOUBLE, NUMERIC_TO_FLOAT, NUMERIC_TO_INTEGER, QNAME_TO_NOTATION, TO_STRING, TO_UNTYPED_ATOMIC
-
-
Constructor Summary
Constructors Constructor Description StringConverter()
Create a StringConverterStringConverter(ConversionRules rules)
Create a StringConverter
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description ConversionResult
convert(AtomicValue input)
Convert an atomic value from the source type to the target typeabstract ConversionResult
convertString(java.lang.CharSequence input)
Convert a string to the target type of this converter.static StringConverter
getStringConverter(AtomicType targetType, ConversionRules rules)
Static factory method to get a StringConverter for a specific target typeValidationFailure
validate(java.lang.CharSequence input)
Validate a string for conformance to the target type, without actually performing the conversion-
Methods inherited from class net.sf.saxon.type.Converter
convert, getConversionRules, getConverter, getNamespaceResolver, isAlwaysSuccessful, isXPath30Conversion, setConversionRules, setNamespaceResolver
-
-
-
-
Field Detail
-
STRING_TO_STRING
public static final StringConverter.StringToString STRING_TO_STRING
-
STRING_TO_LANGUAGE
public static final StringConverter.StringToLanguage STRING_TO_LANGUAGE
-
STRING_TO_NORMALIZED_STRING
public static final StringConverter.StringToNormalizedString STRING_TO_NORMALIZED_STRING
-
STRING_TO_TOKEN
public static final StringConverter.StringToToken STRING_TO_TOKEN
-
STRING_TO_DECIMAL
public static final StringConverter.StringToDecimal STRING_TO_DECIMAL
-
STRING_TO_INTEGER
public static final StringConverter.StringToInteger STRING_TO_INTEGER
-
STRING_TO_DURATION
public static final StringConverter.StringToDuration STRING_TO_DURATION
-
STRING_TO_DAY_TIME_DURATION
public static final StringConverter.StringToDayTimeDuration STRING_TO_DAY_TIME_DURATION
-
STRING_TO_YEAR_MONTH_DURATION
public static final StringConverter.StringToYearMonthDuration STRING_TO_YEAR_MONTH_DURATION
-
STRING_TO_TIME
public static final StringConverter.StringToTime STRING_TO_TIME
-
STRING_TO_BOOLEAN
public static final StringConverter.StringToBoolean STRING_TO_BOOLEAN
-
STRING_TO_HEX_BINARY
public static final StringConverter.StringToHexBinary STRING_TO_HEX_BINARY
-
STRING_TO_BASE64_BINARY
public static final Converter.StringToBase64BinaryConverter STRING_TO_BASE64_BINARY
-
STRING_TO_UNTYPED_ATOMIC
public static final StringConverter.StringToUntypedAtomic STRING_TO_UNTYPED_ATOMIC
-
-
Constructor Detail
-
StringConverter
public StringConverter()
Create a StringConverter
-
StringConverter
public StringConverter(ConversionRules rules)
Create a StringConverter- Parameters:
rules
- the conversion rules to be applied
-
-
Method Detail
-
convertString
public abstract ConversionResult convertString(java.lang.CharSequence input)
Convert a string to the target type of this converter.- Parameters:
input
- the string to be converted- Returns:
- either an
AtomicValue
of the appropriate type for this converter (if conversion succeeded), or aValidationFailure
if conversion failed.
-
validate
public ValidationFailure validate(java.lang.CharSequence input)
Validate a string for conformance to the target type, without actually performing the conversion- Parameters:
input
- the string to be validated- Returns:
- null if validation is successful, or a ValidationFailure indicating the reasons for failure if unsuccessful
-
convert
public ConversionResult convert(AtomicValue input)
Description copied from class:Converter
Convert an atomic value from the source type to the target type- Specified by:
convert
in classConverter
- Parameters:
input
- the atomic value to be converted, which the caller guarantees to be of the appropriate type for the converter- Returns:
- the result of the conversion, as an
AtomicValue
, if conversion succeeds, or aValidationFailure
object describing the reasons for failure if conversion is not possible. Note that the ValidationFailure object is not (and does not contain) an exception, because it does not necessarily result in an error being thrown, and creating exceptions on non-failure paths is expensive.
-
getStringConverter
public static StringConverter getStringConverter(AtomicType targetType, ConversionRules rules)
Static factory method to get a StringConverter for a specific target type- Parameters:
targetType
- the target type of the conversionrules
- the conversion rules in use- Returns:
- a StringConverter that can be used to convert strings to the target type, or to validate strings against the target type
-
-