org.apache.xerces.jaxp.datatype
Class DatatypeFactoryImpl
java.lang.Object
javax.xml.datatype.DatatypeFactory
org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl
public class DatatypeFactoryImpl
extends javax.xml.datatype.DatatypeFactory
Factory that creates new
javax.xml.datatype
Object
s that map XML to/from Java
Object
s.
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
javax.xml.datatype.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
.
-
If the file ${JAVA_HOME}/lib/jaxp.properties exists, it is loaded in a
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 DatatypeConfigurationException
.
-
The final mechanism is to attempt to instantiate the
Class
specified by
javax.xml.datatype.DatatypeFactory.DATATYPEFACTORY_IMPLEMENTATION_CLASS
, "javax.xml.datatype.DatatypeFactoryImpl
".
Any Exception thrown during the instantiation process is wrapped as a DatatypeConfigurationException
.
$Id: DatatypeFactoryImpl.java 320429 2005-06-06 04:45:59Z mrglavas $
javax.xml.datatype.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.
|
javax.xml.datatype.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.
|
javax.xml.datatype.Duration | newDuration(long durationInMilliseconds) - Obtain a new instance of a
Duration
specifying the Duration as milliseconds.
|
javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar() - Create a new instance of an
XMLGregorianCalendar .
|
javax.xml.datatype.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.
|
javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(GregorianCalendar cal) - Create an
XMLGregorianCalendar from a GregorianCalendar .
|
javax.xml.datatype.XMLGregorianCalendar | newXMLGregorianCalendar(String lexicalRepresentation) - Create a new XMLGregorianCalendar by parsing the String as a lexical representation.
|
newDuration , newDuration , newDuration , newDuration , newDurationDayTime , newDurationDayTime , newDurationDayTime , newDurationDayTime , newDurationYearMonth , newDurationYearMonth , newDurationYearMonth , newDurationYearMonth , newInstance , newXMLGregorianCalendar , newXMLGregorianCalendar , newXMLGregorianCalendar , newXMLGregorianCalendar , newXMLGregorianCalendar , newXMLGregorianCalendarDate , newXMLGregorianCalendarTime , newXMLGregorianCalendarTime , newXMLGregorianCalendarTime |
DatatypeFactoryImpl
public DatatypeFactoryImpl()
Public constructor is empty..
Use
DatatypeFactory.newInstance()
to create a
DatatypeFactory
.
newDuration
public javax.xml.datatype.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 interface javax.xml.datatype.DatatypeFactory
lexicalRepresentation
- String
representation of a Duration
.
- New
Duration
created from parsing the lexicalRepresentation
.
newDuration
public javax.xml.datatype.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 interface javax.xml.datatype.DatatypeFactory
isPositive
- Set to false
to create a negative duration. When the length
of the duration is zero, this parameter will be ignored.years
- of this Duration
months
- of this Duration
days
- of this Duration
hours
- of this Duration
minutes
- of this Duration
seconds
- of this Duration
- New
Duration
created from the specified values.
newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days,
BigInteger hours, BigInteger minutes, BigDecimal seconds)
newDuration
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
Duration
.
The values conform to and are defined by:
The default start instance is defined by
GregorianCalendar
's use of the start of the epoch: i.e.,
java.util.Calendar.YEAR
= 1970,
java.util.Calendar.MONTH
=
java.util.Calendar.JANUARY
,
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 =
java.util.Calendar.FEBRUARY
so the result of
Duration.getMonths()
and
Duration.getDays()
can be influenced.
- newDuration in interface javax.xml.datatype.DatatypeFactory
durationInMilliseconds
- Duration in milliseconds to create.
- New
Duration
representing durationInMilliseconds
.
newXMLGregorianCalendar
public javax.xml.datatype.XMLGregorianCalendar newXMLGregorianCalendar()
Create a new instance of an
XMLGregorianCalendar
.
All date/time datatype fields set to
DatatypeConstants.FIELD_UNDEFINED
or null.
- newXMLGregorianCalendar in interface javax.xml.datatype.DatatypeFactory
- New
XMLGregorianCalendar
with all date/time datatype fields set to
DatatypeConstants.FIELD_UNDEFINED
or null.
newXMLGregorianCalendar
public javax.xml.datatype.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 interface javax.xml.datatype.DatatypeFactory
year
- 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.
newXMLGregorianCalendar
public javax.xml.datatype.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,
- when
this.getTimezone() != FIELD_UNDEFINED
,
create a java.util.TimeZone
with a custom timezone id
using the this.getTimezone()
. - else use the
GregorianCalendar
default timezone value
for the host is defined as specified by
java.util.TimeZone.getDefault()
.
- newXMLGregorianCalendar in interface javax.xml.datatype.DatatypeFactory
cal
- java.util.GregorianCalendar
used to create XMLGregorianCalendar
XMLGregorianCalendar
created from java.util.GregorianCalendar
newXMLGregorianCalendar
public javax.xml.datatype.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 interface javax.xml.datatype.DatatypeFactory
lexicalRepresentation
- Lexical representation of one the eight XML Schema date/time datatypes.
XMLGregorianCalendar
created from the lexicalRepresentation
.
Copyright B) 1999-2006 The Apache Software Foundation. All Rights Reserved.