|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.xml.datatype
类 DatatypeFactory
java.lang.Object javax.xml.datatype.DatatypeFactory
-
public abstract class DatatypeFactory
- extends Object
创建新 javax.xml.datatype
Object
的工厂,该对象将 XML 映射到 Java Object
或从 Java Object
映射。
newInstance()
用于创建新的 DatatypeFactory
。按以下顺序使用下面的实现解析机制:
- 如果
DATATYPEFACTORY_PROPERTY
指定的系统属性 "javax.xml.datatype.DatatypeFactory
" 存在,则实例化具有属性值名称的类。将实例化进程中抛出的任何异常包装为DatatypeConfigurationException
。 - 如果文件 ${JAVA_HOME}/lib/jaxp.properties 存在,则在
Properties
Object
中装载它。然后查询Properties
Object
,以获取前面步骤中的文档介绍的属性,并按照前面步骤中文档的介绍进行处理。 - 使用服务解析机制,例如
META-INF/services/java.xml.datatype.DatatypeFactory
。将实例化进程中抛出的任何异常包装为DatatypeConfigurationException
。 - 最终机制将尝试实例化
DATATYPEFACTORY_IMPLEMENTATION_CLASS
(javax.xml.datatype.DatatypeFactoryImpl
)指定的Class
。将实例化进程中抛出的任何异常包装为DatatypeConfigurationException
。
- 从以下版本开始:
- 1.5
字段摘要 | |
---|---|
static String |
DATATYPEFACTORY_IMPLEMENTATION_CLASS JSR 206 中定义的默认实现类名:Java(TM) API for XML Processing (JAXP) 1.3。 |
static String |
DATATYPEFACTORY_PROPERTY JSR 206 中定义的默认属性名称:Java(TM) API for XML Processing (JAXP) 1.3。 |
构造方法摘要 | |
---|---|
protected |
DatatypeFactory() 受到保护的构造方法,以防止包外实例化。 |
方法摘要 | |
---|---|
abstract Duration |
newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds) 获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。 |
Duration |
newDuration(boolean isPositive, int years, int months, int days, int hours, int minutes, int seconds) 获取 Duration 的新实例,它将 Duration 指定为正数的年、月、日、时、分、秒。 |
abstract Duration |
newDuration(long durationInMilliSeconds) 获取新的 Duration 实例,它将 Duration 指定为毫秒。 |
abstract Duration |
newDuration(String lexicalRepresentation) 获取新的 Duration 实例,它根据 XML Schema 1.0 第 3.2.6.1 节中的定义将 Duration 指定为其字符串表示形式 "PnYnMnDTnHnMnS"。 |
Duration |
newDurationDayTime(boolean isPositive, BigInteger day, BigInteger hour, BigInteger minute, BigInteger second) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定 day 、hour 、minute 和 second 创建类型为 xdt:dayTimeDuration 的 Duration 。 |
Duration |
newDurationDayTime(boolean isPositive, int day, int hour, int minute, int second) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定 day 、hour 、minute 和 second 创建类型为 xdt:dayTimeDuration 的 Duration 。 |
Duration |
newDurationDayTime(long durationInMilliseconds) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 中定义的指定毫秒创建类型为 xdt:dayTimeDuration 的 Duration 。 |
Duration |
newDurationDayTime(String lexicalRepresentation) 通过解析其 String 表示形式 "PnDTnHnMnS"(XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration)创建类型为 xdt:dayTimeDuration 的 Duration 。 |
Duration |
newDurationYearMonth(boolean isPositive, BigInteger year, BigInteger month) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定 year 和 month 创建类型为 xdt:yearMonthDuration 的 Duration 。 |
Duration |
newDurationYearMonth(boolean isPositive, int year, int month) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定 year 和 month 创建类型为 xdt:yearMonthDuration 的 Duration 。 |
Duration |
newDurationYearMonth(long durationInMilliseconds) 使用 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 中定义的指定毫秒创建类型为 xdt:yearMonthDuration 的 Duration 。 |
Duration |
newDurationYearMonth(String lexicalRepresentation) 通过解析其 String 表示形式 "PnYnM"(XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration)创建类型为 xdt:yearMonthDuration 的 Duration 。 |
static DatatypeFactory |
newInstance() 获取新的 DatatypeFactory 实例。 |
abstract XMLGregorianCalendar |
newXMLGregorianCalendar() 创建新的 XMLGregorianCalendar 实例。 |
abstract XMLGregorianCalendar |
newXMLGregorianCalendar(BigInteger year, int month, int day, int hour, int minute, int second, BigDecimal fractionalSecond, int timezone) W3C XML Schema 1.0 推荐考虑完整值空间的构造方法,该方法用于 xsd:dateTime 和相关的内置数据类型。 |
abstract XMLGregorianCalendar |
newXMLGregorianCalendar(GregorianCalendar cal) 从 GregorianCalendar 创建 XMLGregorianCalendar 。 |
XMLGregorianCalendar |
newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone) java.util.GregorianCalendar 实例需要转换为 XMLGregorianCalendar 实例的值空间的构造方法。 |
abstract XMLGregorianCalendar |
newXMLGregorianCalendar(String lexicalRepresentation) 通过将字符串解析为词汇表示形式,创建新的 XMLGregorianCalendar。 |
XMLGregorianCalendar |
newXMLGregorianCalendarDate(int year, int month, int day, int timezone) 创建 XML Schema 内置数据类型 date 或 g* 的 Java 表示形式。 |
XMLGregorianCalendar |
newXMLGregorianCalendarTime(int hours, int minutes, int seconds, BigDecimal fractionalSecond, int timezone) 创建 XML Schema 内置数据类型 time 的 Java 实例。 |
XMLGregorianCalendar |
newXMLGregorianCalendarTime(int hours, int minutes, int seconds, int timezone) 创建 XML Schema 内置数据类型 time 的 Java 实例。 |
XMLGregorianCalendar |
newXMLGregorianCalendarTime(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
-Duration
的String
表示形式。- 返回:
-
通过解析
lexicalRepresentation
创建的新Duration
。 - 抛出:
IllegalArgumentException
- 如果lexicalRepresentation
不是Duration
的有效表示形式。UnsupportedOperationException
- 如果实现无法支持请求值。NullPointerException
- 如果lexicalRepresentation
为null
。
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)排序。
通过计算指定毫秒的值设置所有六个值,并可以使用创建的
Duration
的get
方法来使用它们。该值符合以下规范并由其定义:- ISO 8601:2000(E) Section 5.5.3.2 Alternative format
- W3C XML Schema 1.0 Part 2, Appendix D, ISO 8601 Date and Time Formats
XMLGregorianCalendar
Date/Time Datatype Field Mapping Between XML Schema 1.0 and Java Representation
由
GregorianCalendar
使用的历元开始时间定义默认开始实例:即Calendar.YEAR
= 1970、Calendar.MONTH
=Calendar.JANUARY
、Calendar.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:dayTimeDuration
的Duration
。数据类型
xdt:dayTimeDuration
是xs:duration
的子类型,其词汇表示形式仅包含 day、hour、minute 和 second 组件。此数据类型位于名称空间http://www.w3.org/2003/11/xpath-datatypes
中。从创建的
Duration
设置并使用所有四个值。XML Schema 规范说明值可以为任意大小。实现可以选择不(或不能)支持任意大和/或小的值。如果超过实现容量,则抛出
UnsupportedOperationException
和指示实现限制的消息。 -
- 参数:
lexicalRepresentation
- Duration 的词汇表示形式。- 返回:
-
使用指定
lexicalRepresentation
创建的新Duration
。 - 抛出:
IllegalArgumentException
- 如果给定的字符串不符合上述规范。UnsupportedOperationException
- 如果实现无法支持请求值。NullPointerException
- 如果lexicalRepresentation
为null
。