public class DatatypeFactoryImpl extends DatatypeFactory
Factory that creates new javax.xml.datatype Objects that map XML to/from Java Objects.
DatatypeFactory.newInstance() is used to create a new DatatypeFactory.
The following implementation resolution mechanisms are used in the following order:
DatatypeFactory.DATATYPEFACTORY_PROPERTY, "javax.xml.datatype.DatatypeFactory",
exists, a class with the name of the property's value is instantiated.
Any Exception thrown during the instantiation process is wrapped as a DatatypeConfigurationException.
Properties Object.
The Properties Object is then queried for the property as documented in the prior step
and processed as documented in the prior step.
META-INF/services/java.xml.datatype.DatatypeFactory.
Any Exception thrown during the instantiation process is wrapped as a DatatypeConfigurationException.
Class specified by
DatatypeFactory.DATATYPEFACTORY_IMPLEMENTATION_CLASS, "javax.xml.datatype.DatatypeFactoryImpl".
Any Exception thrown during the instantiation process is wrapped as a DatatypeConfigurationException.
DATATYPEFACTORY_IMPLEMENTATION_CLASS, DATATYPEFACTORY_PROPERTY| Constructor and Description |
|---|
DatatypeFactoryImpl()
Public constructor is empty..
|
| Modifier and Type | Method and Description |
|---|---|
Duration |
newDuration(boolean isPositive,
BigInteger years,
BigInteger months,
BigInteger days,
BigInteger hours,
BigInteger minutes,
BigDecimal seconds)
Obtain a new instance of a
Duration
specifying the Duration as isPositive, years, months, days, hours, minutes, seconds. |
Duration |
newDuration(long durationInMilliseconds)
Obtain a new instance of a
Duration
specifying the Duration as milliseconds. |
Duration |
newDuration(String lexicalRepresentation)
Obtain a new instance of a
Duration
specifying the Duration as its string representation, "PnYnMnDTnHnMnS",
as defined in XML Schema 1.0 section 3.2.6.1. |
Duration |
newDurationDayTime(boolean isPositive,
BigInteger day,
BigInteger hour,
BigInteger minute,
BigInteger second)
Create a
Duration of type xdt:dayTimeDuration using the specified
day, hour, minute and second as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration. |
Duration |
newDurationDayTime(boolean isPositive,
int day,
int hour,
int minute,
int second)
Create a
Duration of type xdt:dayTimeDuration using the specified
day, hour, minute and second as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration. |
Duration |
newDurationDayTime(long durationInMilliseconds)
Create a
Duration of type xdt:dayTimeDuration using the specified milliseconds as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration. |
Duration |
newDurationDayTime(String lexicalRepresentation)
Create a
Duration of type xdt:dayTimeDuration by parsing its String representation,
"PnDTnHnMnS",
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration. |
Duration |
newDurationYearMonth(boolean isPositive,
BigInteger year,
BigInteger month)
Create a
Duration of type xdt:yearMonthDuration using the specified
year and month as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration. |
Duration |
newDurationYearMonth(boolean isPositive,
int year,
int month)
Create a
Duration of type xdt:yearMonthDuration using the specified
year and month as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration. |
Duration |
newDurationYearMonth(long durationInMilliseconds)
Create a
Duration of type xdt:yearMonthDuration using the specified milliseconds as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration. |
Duration |
newDurationYearMonth(String lexicalRepresentation)
Create a
Duration of type xdt:yearMonthDuration by parsing its String representation,
"PnYnM",
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration. |
XMLGregorianCalendar |
newXMLGregorianCalendar()
Create a new instance of an
XMLGregorianCalendar. |
XMLGregorianCalendar |
newXMLGregorianCalendar(BigInteger year,
int month,
int day,
int hour,
int minute,
int second,
BigDecimal fractionalSecond,
int timezone)
Constructor allowing for complete value spaces allowed by
W3C XML Schema 1.0 recommendation for xsd:dateTime and related
builtin datatypes.
|
XMLGregorianCalendar |
newXMLGregorianCalendar(GregorianCalendar cal)
Create an
XMLGregorianCalendar from a GregorianCalendar. |
XMLGregorianCalendar |
newXMLGregorianCalendar(String lexicalRepresentation)
Create a new XMLGregorianCalendar by parsing the String as a lexical representation.
|
newDuration, newInstance, newInstance, newXMLGregorianCalendar, newXMLGregorianCalendarDate, newXMLGregorianCalendarTime, newXMLGregorianCalendarTime, newXMLGregorianCalendarTimepublic DatatypeFactoryImpl()
Public constructor is empty..
Use DatatypeFactory.newInstance() to create a DatatypeFactory.
public Duration newDuration(String lexicalRepresentation)
Obtain a new instance of a Duration
specifying the Duration as its string representation, "PnYnMnDTnHnMnS",
as defined in XML Schema 1.0 section 3.2.6.1.
XML Schema Part 2: Datatypes, 3.2.6 duration, defines duration as:
duration represents a duration of time. The value space of duration is a six-dimensional space where the coordinates designate the Gregorian year, month, day, hour, minute, and second components defined in Section 5.5.3.2 of [ISO 8601], respectively. These components are ordered in their significance by their order of appearance i.e. as year, month, day, hour, minute, and second.
All six values are set and availabe from the created Duration
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
newDuration in class DatatypeFactorylexicalRepresentation - String representation of a Duration.Duration created from parsing the lexicalRepresentation.IllegalArgumentException - If lexicalRepresentation is not a valid representation of a Duration.UnsupportedOperationException - If implementation cannot support requested values.NullPointerException - if lexicalRepresentation is null.public Duration newDuration(long durationInMilliseconds)
Obtain a new instance of a Duration
specifying the Duration as milliseconds.
XML Schema Part 2: Datatypes, 3.2.6 duration, defines duration as:
duration represents a duration of time. The value space of duration is a six-dimensional space where the coordinates designate the Gregorian year, month, day, hour, minute, and second components defined in Section 5.5.3.2 of [ISO 8601], respectively. These components are ordered in their significance by their order of appearance i.e. as year, month, day, hour, minute, and second.
All six values are set by computing their values from the specified milliseconds
and are availabe using the get methods of the created Duration.
The values conform to and are defined by:
XMLGregorianCalendar Date/Time Datatype Field Mapping Between XML Schema 1.0 and Java RepresentationThe default start instance is defined by GregorianCalendar's use of the start of the epoch: i.e.,
Calendar.YEAR = 1970,
Calendar.MONTH = Calendar.JANUARY,
Calendar.DATE = 1, etc.
This is important as there are variations in the Gregorian Calendar,
e.g. leap years have different days in the month = Calendar.FEBRUARY
so the result of Duration.getMonths() and Duration.getDays() can be influenced.
newDuration in class DatatypeFactorydurationInMilliseconds - Duration in milliseconds to create.Duration representing durationInMilliseconds.public Duration newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)
Obtain a new instance of a Duration
specifying the Duration as isPositive, years, months, days, hours, minutes, seconds.
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
newDuration in class DatatypeFactoryisPositive - Set to false to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.years - of this Durationmonths - of this Durationdays - of this Durationhours - of this Durationminutes - of this Durationseconds - of this DurationDuration created from the specified values.IllegalArgumentException - If values are not a valid representation of a Duration.UnsupportedOperationException - If implementation cannot support requested values.NullPointerException - If any values are null.newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days,
BigInteger hours, BigInteger minutes, BigDecimal seconds)public Duration newDurationYearMonth(boolean isPositive, BigInteger year, BigInteger month)
Create a Duration of type xdt:yearMonthDuration using the specified
year and month as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration.
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
A null value indicates that field is not set.
newDurationYearMonth in class DatatypeFactoryisPositive - Set to false to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.year - Year of Duration.month - Month of Duration.Duration created using the specified year and month.IllegalArgumentException - If the values are not a valid representation of a
Duration: if all of the fields (year, month) are null or
if any of the fields is negative.UnsupportedOperationException - If implementation cannot support requested values.public Duration newDurationYearMonth(boolean isPositive, int year, int month)
Create a Duration of type xdt:yearMonthDuration using the specified
year and month as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration.
A DatatypeConstants.FIELD_UNDEFINED value indicates that field is not set.
newDurationYearMonth in class DatatypeFactoryisPositive - Set to false to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.year - Year of Duration.month - Month of Duration.Duration created using the specified year and month.IllegalArgumentException - If the values are not a valid representation of a
Duration: if any of the fields (year, month) is negative.public Duration newDurationYearMonth(String lexicalRepresentation)
Create a Duration of type xdt:yearMonthDuration by parsing its String representation,
"PnYnM",
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration.
The datatype xdt:yearMonthDuration is a subtype of xs:duration
whose lexical representation contains only year and month components.
This datatype resides in the namespace XMLConstants.W3C_XPATH_DATATYPE_NS_URI.
Both values are set and availabe from the created Duration
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
newDurationYearMonth in class DatatypeFactorylexicalRepresentation - Lexical representation of a duration.Duration created using the specified lexicalRepresentation.IllegalArgumentException - If lexicalRepresentation is not a valid representation of a Duration expressed only in terms of years and months.UnsupportedOperationException - If implementation cannot support requested values.NullPointerException - If lexicalRepresentation is null.public Duration newDurationYearMonth(long durationInMilliseconds)
Create a Duration of type xdt:yearMonthDuration using the specified milliseconds as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration.
The datatype xdt:yearMonthDuration is a subtype of xs:duration
whose lexical representation contains only year and month components.
This datatype resides in the namespace XMLConstants.W3C_XPATH_DATATYPE_NS_URI.
Both values are set by computing their values from the specified milliseconds
and are availabe using the get methods of the created Duration.
The values conform to and are defined by:
XMLGregorianCalendar Date/Time Datatype Field Mapping Between XML Schema 1.0 and Java RepresentationThe default start instance is defined by GregorianCalendar's use of the start of the epoch: i.e.,
Calendar.YEAR = 1970,
Calendar.MONTH = Calendar.JANUARY,
Calendar.DATE = 1, etc.
This is important as there are variations in the Gregorian Calendar,
e.g. leap years have different days in the month = Calendar.FEBRUARY
so the result of Duration.getMonths() can be influenced.
Any remaining milliseconds after determining the year and month are discarded.
newDurationYearMonth in class DatatypeFactorydurationInMilliseconds - Milliseconds of Duration to create.Duration created using the specified durationInMilliseconds.public Duration newDurationDayTime(String lexicalRepresentation)
Create a Duration of type xdt:dayTimeDuration by parsing its String representation,
"PnDTnHnMnS",
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration.
The datatype xdt:dayTimeDuration is a subtype of xs:duration
whose lexical representation contains only day, hour, minute, and second components.
This datatype resides in the namespace http://www.w3.org/2003/11/xpath-datatypes.
All four values are set and availabe from the created Duration
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
newDurationDayTime in class DatatypeFactorylexicalRepresentation - Lexical representation of a duration.Duration created using the specified lexicalRepresentation.IllegalArgumentException - If lexicalRepresentation is not a valid representation of a Duration expressed only in terms of days and time.UnsupportedOperationException - If implementation cannot support requested values.NullPointerException - If lexicalRepresentation is null.public Duration newDurationDayTime(long durationInMilliseconds)
Create a Duration of type xdt:dayTimeDuration using the specified milliseconds as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration.
The datatype xdt:dayTimeDuration is a subtype of xs:duration
whose lexical representation contains only day, hour, minute, and second components.
This datatype resides in the namespace http://www.w3.org/2003/11/xpath-datatypes.
All four values are set by computing their values from the specified milliseconds
and are availabe using the get methods of the created Duration.
The values conform to and are defined by:
XMLGregorianCalendar Date/Time Datatype Field Mapping Between XML Schema 1.0 and Java RepresentationThe default start instance is defined by GregorianCalendar's use of the start of the epoch: i.e.,
Calendar.YEAR = 1970,
Calendar.MONTH = Calendar.JANUARY,
Calendar.DATE = 1, etc.
This is important as there are variations in the Gregorian Calendar,
e.g. leap years have different days in the month = Calendar.FEBRUARY
so the result of Duration.getDays() can be influenced.
Any remaining milliseconds after determining the day, hour, minute and second are discarded.
newDurationDayTime in class DatatypeFactorydurationInMilliseconds - Milliseconds of Duration to create.Duration created with the specified durationInMilliseconds.public Duration newDurationDayTime(boolean isPositive, BigInteger day, BigInteger hour, BigInteger minute, BigInteger second)
Create a Duration of type xdt:dayTimeDuration using the specified
day, hour, minute and second as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration.
The datatype xdt:dayTimeDuration is a subtype of xs:duration
whose lexical representation contains only day, hour, minute, and second components.
This datatype resides in the namespace http://www.w3.org/2003/11/xpath-datatypes.
The XML Schema specification states that values can be of an arbitrary size.
Implementations may chose not to or be incapable of supporting arbitrarily large and/or small values.
An UnsupportedOperationException will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
A null value indicates that field is not set.
newDurationDayTime in class DatatypeFactoryisPositive - Set to false to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.day - Day of Duration.hour - Hour of Duration.minute - Minute of Duration.second - Second of Duration.Duration created with the specified day, hour, minute
and second.IllegalArgumentException - If the values are not a valid representation of a
Duration: if all the fields (day, hour, ...) are null or
if any of the fields is negative.UnsupportedOperationException - If implementation cannot support requested values.public Duration newDurationDayTime(boolean isPositive, int day, int hour, int minute, int second)
Create a Duration of type xdt:dayTimeDuration using the specified
day, hour, minute and second as defined in
XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration.
The datatype xdt:dayTimeDuration is a subtype of xs:duration
whose lexical representation contains only day, hour, minute, and second components.
This datatype resides in the namespace http://www.w3.org/2003/11/xpath-datatypes.
A DatatypeConstants.FIELD_UNDEFINED value indicates that field is not set.
newDurationDayTime in class DatatypeFactoryisPositive - Set to false to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.day - Day of Duration.hour - Hour of Duration.minute - Minute of Duration.second - Second of Duration.Duration created with the specified day, hour, minute
and second.IllegalArgumentException - If the values are not a valid representation of a
Duration: if any of the fields (day, hour, ...) is negative.public XMLGregorianCalendar newXMLGregorianCalendar()
Create a new instance of an XMLGregorianCalendar.
All date/time datatype fields set to DatatypeConstants.FIELD_UNDEFINED or null.
newXMLGregorianCalendar in class DatatypeFactoryXMLGregorianCalendar with all date/time datatype fields set to
DatatypeConstants.FIELD_UNDEFINED or null.public XMLGregorianCalendar newXMLGregorianCalendar(String lexicalRepresentation)
Create a new XMLGregorianCalendar by parsing the String as a lexical representation.
Parsing the lexical string representation is defined in XML Schema 1.0 Part 2, Section 3.2.[7-14].1, Lexical Representation.
The string representation may not have any leading and trailing whitespaces.
The parsing is done field by field so that the following holds for any lexically correct String x:
newXMLGregorianCalendar(x).toXMLFormat().equals(x)
Except for the noted lexical/canonical representation mismatches listed in XML Schema 1.0 errata, Section 3.2.7.2.
newXMLGregorianCalendar in class DatatypeFactorylexicalRepresentation - Lexical representation of one the eight XML Schema date/time datatypes.XMLGregorianCalendar created from the lexicalRepresentation.IllegalArgumentException - If the lexicalRepresentation is not a valid XMLGregorianCalendar.NullPointerException - If lexicalRepresentation is null.public XMLGregorianCalendar newXMLGregorianCalendar(GregorianCalendar cal)
Create an XMLGregorianCalendar from a GregorianCalendar.
Field by Field Conversion from
GregorianCalendar to an XMLGregorianCalendar
|
|
|---|---|
java.util.GregorianCalendar field |
javax.xml.datatype.XMLGregorianCalendar field |
ERA == GregorianCalendar.BC ? -YEAR : YEAR |
XMLGregorianCalendar.setYear(int year) |
MONTH + 1 |
XMLGregorianCalendar.setMonth(int month) |
DAY_OF_MONTH |
XMLGregorianCalendar.setDay(int day) |
HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND |
XMLGregorianCalendar.setTime(int hour, int minute, int second, BigDecimal fractional) |
(ZONE_OFFSET + DST_OFFSET) / (60*1000)(in minutes) |
XMLGregorianCalendar.setTimezone(int offset)*
|
*conversion loss of information. It is not possible to represent
a java.util.GregorianCalendar daylight savings timezone id in the
XML Schema 1.0 date/time datatype representation.
To compute the return value's TimeZone field,
this.getTimezone() != FIELD_UNDEFINED,
create a java.util.TimeZone with a custom timezone id
using the this.getTimezone().GregorianCalendar default timezone value
for the host is defined as specified by
java.util.TimeZone.getDefault().newXMLGregorianCalendar in class DatatypeFactorycal - java.util.GregorianCalendar used to create XMLGregorianCalendarXMLGregorianCalendar created from java.util.GregorianCalendarNullPointerException - If cal is null.public XMLGregorianCalendar newXMLGregorianCalendar(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, int timezone)
Constructor allowing for complete value spaces allowed by
W3C XML Schema 1.0 recommendation for xsd:dateTime and related
builtin datatypes. Note that year parameter supports
arbitrarily large numbers and fractionalSecond has infinite
precision.
newXMLGregorianCalendar in class DatatypeFactoryyear - of XMLGregorianCalendar to be created.month - of XMLGregorianCalendar to be created.day - of XMLGregorianCalendar to be created.hour - of XMLGregorianCalendar to be created.minute - of XMLGregorianCalendar to be created.second - of XMLGregorianCalendar to be created.fractionalSecond - of XMLGregorianCalendar to be created.timezone - of XMLGregorianCalendar to be created.XMLGregorianCalendar created from specified values.IllegalArgumentException - If any individual parameter's value is outside the maximum value constraint for the field
as determined by the Date/Time Data Mapping table in XMLGregorianCalendar
or if the composite values constitute an invalid XMLGregorianCalendar instance
as determined by XMLGregorianCalendar.isValid().NullPointerException - If any parameters are null.Copyright © 2018–2021 mhoffrogge. All rights reserved.