DatatypeFactoryImplpublic class DatatypeFactoryImpl extends DatatypeFactory Factory that creates new javax.xml.datatype Object s that map XML to/from Java Object s.
{@link #newInstance()} is used to create a new DatatypeFactory .
The following implementation resolution mechanisms are used in the following order:
-
If the system property specified by {@link #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 {@link DatatypeConfigurationException}.
-
If the file ${JAVA_HOME}/lib/jaxp.properties exists, it is loaded in a {@link java.util.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.
-
The services resolution mechanism is used, e.g.
META-INF/services/java.xml.datatype.DatatypeFactory .
Any Exception thrown during the instantiation process is wrapped as a {@link DatatypeConfigurationException}.
-
The final mechanism is to attempt to instantiate the
Class specified by
{@link #DATATYPEFACTORY_IMPLEMENTATION_CLASS}, "javax.xml.datatype.DatatypeFactoryImpl ".
Any Exception thrown during the instantiation process is wrapped as a {@link DatatypeConfigurationException}.
|
Constructors Summary |
---|
public DatatypeFactoryImpl()Public constructor is empty..
Use {@link DatatypeFactory#newInstance()} to create a DatatypeFactory .
|
Methods Summary |
---|
public javax.xml.datatype.Duration | newDuration(java.lang.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 {@link 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 {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
return new DurationImpl(lexicalRepresentation);
| public javax.xml.datatype.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 {@link Duration}.
The values conform to and are defined by:
The default start instance is defined by {@link GregorianCalendar}'s use of the start of the epoch: i.e.,
{@link java.util.Calendar#YEAR} = 1970,
{@link java.util.Calendar#MONTH} = {@link java.util.Calendar#JANUARY},
{@link java.util.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 = {@link java.util.Calendar#FEBRUARY}
so the result of {@link Duration#getMonths()} and {@link Duration#getDays()} can be influenced.
return new DurationImpl(durationInMilliseconds);
| public javax.xml.datatype.Duration | newDuration(boolean isPositive, java.math.BigInteger years, java.math.BigInteger months, java.math.BigInteger days, java.math.BigInteger hours, java.math.BigInteger minutes, java.math.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 {@link UnsupportedOperationException} will be thrown with a message indicating implementation limits
if implementation capacities are exceeded.
return new DurationImpl(
isPositive,
years,
months,
days,
hours,
minutes,
seconds
);
| public javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar()Create a new instance of an XMLGregorianCalendar .
All date/time datatype fields set to {@link DatatypeConstants#FIELD_UNDEFINED} or null.
return new XMLGregorianCalendarImpl();
| public javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(java.lang.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.
return new XMLGregorianCalendarImpl(lexicalRepresentation);
| public javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(java.util.GregorianCalendar cal)Create an XMLGregorianCalendar from a {@link GregorianCalendar}.
Field by Field Conversion from
{@link GregorianCalendar} to an {@link XMLGregorianCalendar}
|
java.util.GregorianCalendar field |
javax.xml.datatype.XMLGregorianCalendar field |
ERA == GregorianCalendar.BC ? -YEAR : YEAR |
{@link XMLGregorianCalendar#setYear(int year)} |
MONTH + 1 |
{@link XMLGregorianCalendar#setMonth(int month)} |
DAY_OF_MONTH |
{@link XMLGregorianCalendar#setDay(int day)} |
HOUR_OF_DAY, MINUTE, SECOND, MILLISECOND |
{@link XMLGregorianCalendar#setTime(int hour, int minute, int second, BigDecimal fractional)} |
(ZONE_OFFSET + DST_OFFSET) / (60*1000)
(in minutes)
|
{@link 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,
| public javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone)Constructor of value spaces that a
java.util.GregorianCalendar instance would need to convert to an
XMLGregorianCalendar instance.
XMLGregorianCalendar eon and
fractionalSecond are set to null
A {@link DatatypeConstants#FIELD_UNDEFINED} value indicates that field isnot set.
return XMLGregorianCalendarImpl.createDateTime(
year,
month,
day,
hour,
minute,
second,
millisecond,
timezone);
| public javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(java.math.BigInteger year, int month, int day, int hour, int minute, int second, java.math.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.
return new XMLGregorianCalendarImpl(
year,
month,
day,
hour,
minute,
second,
fractionalSecond,
timezone
);
|
|