Class DatatypeFactoryImpl

java.lang.Object
javax.xml.datatype.DatatypeFactory
org.apache.jena.ext.xerces.jaxp.datatype.DatatypeFactoryImpl

public class DatatypeFactoryImpl extends DatatypeFactory
  • Constructor Details

  • Method Details

    • newDuration

      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.

      Specified by:
      newDuration in class DatatypeFactory
      Parameters:
      lexicalRepresentation - String representation of a Duration.
      Returns:
      New Duration created from parsing the lexicalRepresentation.
      Throws:
      IllegalArgumentException - If lexicalRepresentation is not a valid representation of a Duration.
      UnsupportedOperationException - If implementation cannot support requested values.
      NullPointerException - if lexicalRepresentation is null.
    • newDuration

      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:

      The 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.

      Specified by:
      newDuration in class DatatypeFactory
      Parameters:
      durationInMilliseconds - Duration in milliseconds to create.
      Returns:
      New Duration representing durationInMilliseconds.
    • newDuration

      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.

      Specified by:
      newDuration in class DatatypeFactory
      Parameters:
      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
      Returns:
      New Duration created from the specified values.
      Throws:
      IllegalArgumentException - If values are not a valid representation of a Duration.
      UnsupportedOperationException - If implementation cannot support requested values.
      NullPointerException - If any values are null.
      See Also:
    • newXMLGregorianCalendar

      public XMLGregorianCalendar newXMLGregorianCalendar()

      Create a new instance of an XMLGregorianCalendar.

      All date/time datatype fields set to DatatypeConstants.FIELD_UNDEFINED or null.

      Specified by:
      newXMLGregorianCalendar in class DatatypeFactory
      Returns:
      New XMLGregorianCalendar with all date/time datatype fields set to DatatypeConstants.FIELD_UNDEFINED or null.
    • newXMLGregorianCalendar

      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.

      Specified by:
      newXMLGregorianCalendar in class DatatypeFactory
      Parameters:
      lexicalRepresentation - Lexical representation of one the eight XML Schema date/time datatypes.
      Returns:
      XMLGregorianCalendar created from the lexicalRepresentation.
      Throws:
      IllegalArgumentException - If the lexicalRepresentation is not a valid XMLGregorianCalendar.
      NullPointerException - If lexicalRepresentation is null.
    • newXMLGregorianCalendar

      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,

      • 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().
      Specified by:
      newXMLGregorianCalendar in class DatatypeFactory
      Parameters:
      cal - java.util.GregorianCalendar used to create XMLGregorianCalendar
      Returns:
      XMLGregorianCalendar created from java.util.GregorianCalendar
      Throws:
      NullPointerException - If cal is null.
    • newXMLGregorianCalendar

      public 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 DatatypeConstants.FIELD_UNDEFINED value indicates that field isnot set.

      Overrides:
      newXMLGregorianCalendar in class DatatypeFactory
      Parameters:
      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.
      millisecond - of XMLGregorianCalendar to be created.
      timezone - of XMLGregorianCalendar to be created.
      Returns:
      XMLGregorianCalendar created from specified values.
      Throws:
      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().
    • newXMLGregorianCalendar

      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.

      Specified by:
      newXMLGregorianCalendar in class DatatypeFactory
      Parameters:
      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.
      Returns:
      XMLGregorianCalendar created from specified values.
      Throws:
      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.