所有类


javax.xml.datatype
类 DatatypeFactory

java.lang.Object
  继承者 javax.xml.datatype.DatatypeFactory

public abstract class DatatypeFactory
   
   
   
   
extends Object

创建新 javax.xml.datatypeObject 的工厂,该对象将 XML 映射到 Java Object 或从 Java Object 映射。

newInstance() 用于创建新的 DatatypeFactory。按以下顺序使用下面的实现解析机制:

  1. 如果 DATATYPEFACTORY_PROPERTY 指定的系统属性 "javax.xml.datatype.DatatypeFactory" 存在,则实例化具有属性值名称的类。将实例化进程中抛出的任何异常包装为 DatatypeConfigurationException
  2. 如果文件 ${JAVA_HOME}/lib/jaxp.properties 存在,则在 PropertiesObject 中装载它。然后查询 PropertiesObject,以获取前面步骤中的文档介绍的属性,并按照前面步骤中文档的介绍进行处理。
  3. 使用服务解析机制,例如 META-INF/services/java.xml.datatype.DatatypeFactory。将实例化进程中抛出的任何异常包装为 DatatypeConfigurationException
  4. 最终机制将尝试实例化 DATATYPEFACTORY_IMPLEMENTATION_CLASSjavax.xml.datatype.DatatypeFactoryImpl)指定的 Class。将实例化进程中抛出的任何异常包装为 DatatypeConfigurationException

从以下版本开始:
1.5

字段摘要
static StringDATATYPEFACTORY_IMPLEMENTATION_CLASS
          JSR 206 中定义的默认实现类名:Java(TM) API for XML Processing (JAXP) 1.3。
static StringDATATYPEFACTORY_PROPERTY
          JSR 206 中定义的默认属性名称:Java(TM) API for XML Processing (JAXP) 1.3。
 
构造方法摘要
protected DatatypeFactory()
          受到保护的构造方法,以防止包外实例化。
 
方法摘要
abstract  DurationnewDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)
          获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。
 DurationnewDuration(boolean isPositive, int years, int months, int days, int hours, int minutes, int seconds)
          获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。
abstract  DurationnewDuration(long durationInMilliSeconds)
          获取新的 Duration 实例,它将 Duration 指定为毫秒。
abstract  DurationnewDuration(String lexicalRepresentation)
          获取新的 Duration 实例,它根据 XML Schema 1.0 第 3.2.6.1 节中的定义将 Duration 指定为其字符串表示形式 "PnYnMnDTnHnMnS"。
 DurationnewDurationDayTime(boolean isPositive, BigInteger day, BigInteger hour, BigInteger minute, BigInteger second)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定 dayhourminutesecond 创建类型为 xdt:dayTimeDurationDuration
 DurationnewDurationDayTime(boolean isPositive, int day, int hour, int minute, int second)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定 dayhourminutesecond 创建类型为 xdt:dayTimeDurationDuration
 DurationnewDurationDayTime(long durationInMilliseconds)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定毫秒创建类型为 xdt:dayTimeDurationDuration
 DurationnewDurationDayTime(String lexicalRepresentation)
          通过解析其 String 表示形式 "PnDTnHnMnS"(XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration)创建类型为 xdt:dayTimeDurationDuration
 DurationnewDurationYearMonth(boolean isPositive, BigInteger year, BigInteger month)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定 yearmonth 创建类型为 xdt:yearMonthDurationDuration
 DurationnewDurationYearMonth(boolean isPositive, int year, int month)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定 yearmonth 创建类型为 xdt:yearMonthDurationDuration
 DurationnewDurationYearMonth(long durationInMilliseconds)
          使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定毫秒创建类型为 xdt:yearMonthDurationDuration
 DurationnewDurationYearMonth(String lexicalRepresentation)
          通过解析其 String 表示形式 "PnYnM"(XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration)创建类型为 xdt:yearMonthDurationDuration
static DatatypeFactorynewInstance()
          获取新的 DatatypeFactory 实例。
abstract  XMLGregorianCalendarnewXMLGregorianCalendar()
          创建新的 XMLGregorianCalendar 实例。
abstract  XMLGregorianCalendarnewXMLGregorianCalendar(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, int timezone)
          W3C XML Schema 1.0 推荐考虑完整值空间的构造方法,该方法用于 xsd:dateTime 和相关的内置数据类型。
abstract  XMLGregorianCalendarnewXMLGregorianCalendar(GregorianCalendar cal)
          从 GregorianCalendar 创建 XMLGregorianCalendar
 XMLGregorianCalendarnewXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone)
          java.util.GregorianCalendar 实例需要转换为 XMLGregorianCalendar 实例的值空间的构造方法。
abstract  XMLGregorianCalendarnewXMLGregorianCalendar(String lexicalRepresentation)
          通过将字符串解析为词汇表示形式,创建新的 XMLGregorianCalendar。
 XMLGregorianCalendarnewXMLGregorianCalendarDate(int year, int month, int day, int timezone)
          创建 XML Schema 内置数据类型 dateg* 的 Java 表示形式。
 XMLGregorianCalendarnewXMLGregorianCalendarTime(int hours, int minutes, int seconds, BigDecimal fractionalSecond, int timezone)
          创建 XML Schema 内置数据类型 time 的 Java 实例。
 XMLGregorianCalendarnewXMLGregorianCalendarTime(int hours, int minutes, int seconds, int timezone)
          创建 XML Schema 内置数据类型 time 的 Java 实例。
 XMLGregorianCalendarnewXMLGregorianCalendarTime(int hours, int minutes, int seconds, int milliseconds, int timezone)
          创建 XML Schema 内置数据类型 time 的 Java 实例。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

DATATYPEFACTORY_PROPERTY

public static final String DATATYPEFACTORY_PROPERTY

JSR 206 中定义的默认属性名称:Java(TM) API for XML Processing (JAXP) 1.3。

默认值为 javax.xml.datatype.DatatypeFactory

另请参见:
常量字段值

DATATYPEFACTORY_IMPLEMENTATION_CLASS

public static final String DATATYPEFACTORY_IMPLEMENTATION_CLASS

JSR 206 中定义的默认实现类名:Java(TM) API for XML Processing (JAXP) 1.3。

默认值为 com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl

另请参见:
常量字段值
构造方法详细信息

DatatypeFactory

protected DatatypeFactory()

受到保护的构造方法,以防止包外实例化。

使用 newInstance() 创建 DatatypeFactory

方法详细信息

newInstance

public static DatatypeFactory newInstance()
                                   throws DatatypeConfigurationException

获取新的 DatatypeFactory 实例。

在此 Class 的文档中定义实现解析机制。

返回:
新的 DocumentBuilderFactory 实例
抛出:
DatatypeConfigurationException - 如果该实现不可用,或者无法实例化。

newDuration

public abstract Duration newDuration(String lexicalRepresentation)

获取新的 Duration 实例,它根据 XML Schema 1.0 第 3.2.6.1 节中的定义将 Duration 指定为其字符串表示形式 "PnYnMnDTnHnMnS"。

XML Schema 第二部分 Datatypes 中的 3.2.6 小节 duration 将 duration 定义为:

持续时间表示某一时间段。持续时间的值空间是六维空间,其中坐标分别指定 [ISO 8601] 的第 5.5.3.2 节中定义的 Gregorian year、month、day、hour、minute 和 second 组件。这些组件根据其重要性按其出现顺序(即按 year、month、day、hour、minute 和 second)排序。

从创建的 Duration 设置并使用所有六个值

XML Schema 规范说明值可以为任意大小。实现可以选择不(或不能)支持任意大和/或小的值。如果超过实现容量,则抛出 UnsupportedOperationException 和指示实现限制的消息。

参数:
lexicalRepresentation - DurationString 表示形式。
返回:
通过解析 lexicalRepresentation 创建的新 Duration
抛出:
IllegalArgumentException - 如果 lexicalRepresentation 不是 Duration 的有效表示形式。
UnsupportedOperationException - 如果实现无法支持请求值。
NullPointerException - 如果 lexicalRepresentationnull

newDuration

public abstract Duration newDuration(long durationInMilliSeconds)

获取新的 Duration 实例,它将 Duration 指定为毫秒。

XML Schema 第二部分 Datatypes 中的 3.2.6 小节将 duration 定义为:

持续时间表示某一时间段。持续时间的值空间是六维空间,其中坐标分别指定 [ISO 8601] 的第 5.5.3.2 节中定义的 Gregorian year、month、day、hour、minute 和 second 组件。这些组件根据其重要性按其出现顺序(即按 year、month、day、hour、minute 和 second)排序。

通过计算指定毫秒的值设置所有六个值,并可以使用创建的 Durationget 方法来使用它们。该值符合以下规范并由其定义:

GregorianCalendar 使用的历元开始时间定义默认开始实例:即 Calendar.YEAR = 1970、Calendar.MONTH = Calendar.JANUARYCalendar.DATE = 1 等。这非常重要,因为阳历中存在变化,即闰年的月 = Calendar.FEBRUARY 会有不同的天数,所以可能影响 Duration.getMonths()Duration.getDays() 的结果。

参数:
durationInMilliSeconds - 要创建的以毫秒为单位的 Duration。
返回:
表示 durationInMilliSeconds 的新 Duration

newDuration

public abstract Duration newDuration(boolean isPositive,
                                     BigInteger years,
                                     BigInteger months,
                                     BigInteger days,
                                     BigInteger hours,
                                     BigInteger minutes,
                                     BigDecimal seconds)

获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。

XML Schema 规范说明值可以为任意大小。实现可以选择不(或不能)支持任意大和/或小的值。如果超过实现容量,则抛出 UnsupportedOperationException 和指示实现限制的消息。

null 值指示不设置字段。

参数:
isPositive - 设置为 false 将创建负的 Duration。当 Duration 的长度为零时,将忽略此参数。
years - 此 Duration 的年
months - 此 Duration 的月
days - 此 Duration 的日
hours - 此 Duration 的时
minutes - 此 Duration 的分
seconds - 此 Duration 的秒
返回:
从指定的值创建的新 Duration
抛出:
IllegalArgumentException - 如果值不是 Duration 的有效表示形式。
UnsupportedOperationException - 如果实现无法支持请求值。

newDuration

public Duration newDuration(boolean isPositive,
                            int years,
                            int months,
                            int days,
                            int hours,
                            int minutes,
                            int seconds)

获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。

DatatypeConstants.FIELD_UNDEFINED 值指示不设置字段。

参数:
isPositive - 设置为 false 将创建负的 Duration。当 Duration 的长度为零时,将忽略此参数。
years - 此 Duration 的年
months - 此 Duration 的月
days - 此 Duration 的日
hours - 此 Duration 的时
minutes - 此 Duration 的分
seconds - 此 Duration 的秒
返回:
从指定的值创建的新 Duration
抛出:
IllegalArgumentException - 如果值不是 Duration 的有效表示形式。
另请参见:
newDuration( boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)

newDurationDayTime

public Duration newDurationDayTime(String lexicalRepresentation)

通过解析其 String 表示形式 "PnDTnHnMnS"(XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration)创建类型为 xdt:dayTimeDurationDuration

数据类型 xdt:dayTimeDurationxs:duration 的子类型,其词汇表示形式仅包含 day、hour、minute 和 second 组件。此数据类型位于名称空间 http://www.w3.org/2003/11/xpath-datatypes 中。

从创建的 Duration 设置并使用所有四个值。

XML Schema 规范说明值可以为任意大小。实现可以选择不(或不能)支持任意大和/或小的值。如果超过实现容量,则抛出 UnsupportedOperationException 和指示实现限制的消息。

参数:
lexicalRepresentation - Duration 的词汇表示形式。
返回:
使用指定 lexicalRepresentation 创建的新 Duration
抛出:
IllegalArgumentException - 如果给定的字符串不符合上述规范。
UnsupportedOperationException - 如果实现无法支持请求值。
NullPointerException - 如果 lexicalRepresentationnull