- java.lang.Object
-
- javax.xml.datatype.DatatypeFactory
-
public abstract class DatatypeFactoryextends Object
工厂创建新的javax.xml.datatype
Object
,将XML映射到JavaObject
。通过
newInstance()
方法创建DatatypeFactory
新实例,该方法使用以下实现解析机制来确定实现:- 如果存在由
DATATYPEFACTORY_PROPERTY
“javax.xml.datatype.DatatypeFactory
”指定的系统属性,则实例化具有属性值名称的类。 在实例化过程中抛出的任何异常都包装为DatatypeConfigurationException
。 使用配置文件“jaxp.properties”。 该文件采用标准
Properties
格式,通常位于Java安装的conf
目录中。 它包含实现类的完全限定名称,键是上面定义的系统属性。jaxp.properties文件只能由JAXP实现读取一次,然后缓存其值以供将来使用。 如果在第一次尝试从该文件读取时该文件不存在,则不再进行任何检查以检查其是否存在。 在第一次读取之后,无法更改jaxp.properties中任何属性的值。
使用由
ServiceLoader
类定义的服务提供者加载工具尝试使用default loading mechanism查找和加载服务的实现 :服务提供者加载工具将使用current thread's context class loader尝试加载服务。 如果上下文类加载器为null,则将使用system class loader 。如果是
service configuration error
,将抛出DatatypeConfigurationException
。最后的机制是尝试实例化
类
指定的类 。 在实例化过程中抛出的任何异常都包装为DatatypeConfigurationException
。
- 从以下版本开始:
- 1.5
- 如果存在由
-
-
字段汇总
字段 变量和类型 字段 描述 static String
DATATYPEFACTORY_IMPLEMENTATION_CLASS
JSR 206中定义的默认实现类名 :用于XML处理的Java(TM)API(JAXP)1.3 。static String
DATATYPEFACTORY_PROPERTY
JSR 206中定义的默认属性名称:用于XML处理的Java(TM)API(JAXP)1.3。
-
构造方法摘要
构造方法 变量 构造器 描述 protected
DatatypeFactory()
受保护的构造函数以防止在包外部进行实例化。
-
方法摘要
所有方法 静态方法 实例方法 抽象方法 具体的方法 变量和类型 方法 描述 static DatatypeFactory
newDefaultInstance()
创建DatatypeFactory
builtin system-default implementation的新实例。Duration
newDuration(boolean isPositive, int years, int months, int days, int hours, int minutes, int seconds)
获得的新实例Duration
指定Duration
为isPositive,年,月,日,时,分,秒。abstract Duration
newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)
获得的新实例Duration
指定Duration
为isPositive,年,月,日,时,分,秒。abstract Duration
newDuration(long durationInMilliSeconds)
获得的新实例Duration
指定Duration
为毫秒。abstract Duration
newDuration(String lexicalRepresentation)
获得的新实例Duration
指定Duration
作为它的字符串表示,“PnYnMnDTnHnMnS”,如在XML模式1.0第3.2.6.1节定义。Duration
newDurationDayTime(boolean isPositive, int day, int hour, int minute, int second)
创建Duration
类型的xdt:dayTimeDuration
使用指定的day
,hour
,minute
和second
中定义 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。Duration
newDurationDayTime(boolean isPositive, BigInteger day, BigInteger hour, BigInteger minute, BigInteger second)
创建Duration
类型的xdt:dayTimeDuration
使用指定的day
,hour
,minute
和second
中定义 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。Duration
newDurationDayTime(long durationInMilliseconds)
创建Duration
类型的xdt:dayTimeDuration
使用指定毫秒中定义 XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。Duration
newDurationDayTime(String lexicalRepresentation)
创建Duration
类型xdt:dayTimeDuration
通过分析其String
表示 ,“PnDTnHnMnS”, XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。Duration
newDurationYearMonth(boolean isPositive, int year, int month)
创建Duration
类型的xdt:yearMonthDuration
使用指定year
和month
中定义 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。Duration
newDurationYearMonth(boolean isPositive, BigInteger year, BigInteger month)
创建Duration
类型的xdt:yearMonthDuration
使用指定year
和month
中定义 XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。Duration
newDurationYearMonth(long durationInMilliseconds)
Duration
newDurationYearMonth(String lexicalRepresentation)
创建Duration
类型xdt:yearMonthDuration
通过分析其String
表示 ,“PnYnM”, XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。static DatatypeFactory
newInstance()
获取DatatypeFactory
的新实例。static DatatypeFactory
newInstance(String factoryClassName, ClassLoader classLoader)
从类名获取DatatypeFactory
的新实例。abstract XMLGregorianCalendar
newXMLGregorianCalendar()
创建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)
通过将String解析为词法表示来创建新的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)
创建XMLGregorianCalendar
从GregorianCalendar
。XMLGregorianCalendar
newXMLGregorianCalendarDate(int year, int month, int day, int timezone)
创建XML Schema内置数据类型date
或g*
的Java表示g*
。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内置数据类型时间的Java实例。XMLGregorianCalendar
newXMLGregorianCalendarTime(int hours, int minutes, int seconds, BigDecimal fractionalSecond, int timezone)
创建XML Schema内置数据类型时间的Java实例。
-
-
-
字段详细信息
-
DATATYPEFACTORY_PROPERTY
public static final String DATATYPEFACTORY_PROPERTY
JSR 206中定义的默认属性名称:用于XML处理的Java(TM)API(JAXP)1.3。默认值为
javax.xml.datatype.DatatypeFactory
。- 另请参见:
- 常数字段值
-
DATATYPEFACTORY_IMPLEMENTATION_CLASS
public static final String DATATYPEFACTORY_IMPLEMENTATION_CLASS
JSR 206中定义的默认实现类名:用于XML处理的Java(TM)API(JAXP)1.3 。如果没有其他实现解析机制成功,则实现者应指定要实例化的适当类的名称。
用户不应该参考这个字段; 它仅用于记录工厂实现细节。
-
-
构造方法详细信息
-
DatatypeFactory
protected DatatypeFactory()
受保护的构造函数以防止在包外部进行实例化。使用
newInstance()
创建一个DatatypeFactory
。
-
-
方法详细信息
-
newDefaultInstance
public static DatatypeFactory newDefaultInstance()
创建DatatypeFactory
builtin system-default implementation的新实例。- 结果
-
DatatypeFactory
内置系统默认实现的新实例。 - 从以下版本开始:
- 9
-
newInstance
public static DatatypeFactory newInstance() throws DatatypeConfigurationException
获取DatatypeFactory
的新实例。在
类
的文档中,实现解析机制是defined 。- 结果
-
DatatypeFactory
新实例 - 异常
-
DatatypeConfigurationException
- 如果实现不可用或无法实例化。 - 另请参见:
-
newInstance(String factoryClassName, ClassLoader classLoader)
-
newInstance
public static DatatypeFactory newInstance(String factoryClassName, ClassLoader classLoader) throws DatatypeConfigurationException
从类名获取DatatypeFactory
的新实例。 当类路径中有多个提供程序时,此函数很有用。 它为应用程序提供了更多控制,因为它可以指定应该加载哪个提供程序。一旦应用程序获得对
DatatypeFactory
的引用,它就可以使用工厂来配置和获取数据类型实例。故障排除提示
设置
jaxp.debug
系统属性将导致此方法将大量调试消息打印到System.err
了解它正在做什么以及它在哪里查看。如果您有问题,请尝试:
java -Djaxp.debug=1 YourProgram ....
- 参数
-
factoryClassName
- 提供javax.xml.datatype.DatatypeFactory
实现的完全限定工厂类名称。 -
classLoader
-ClassLoader
用于加载工厂类。 如果null
当前Thread
的上下文classLoader用于加载工厂类。 - 结果
-
DatatypeFactory
新实例 - 异常
-
DatatypeConfigurationException
- 如果factoryClassName
是null
,或者无法加载工厂类,则实例化。 - 从以下版本开始:
- 1.6
- 另请参见:
-
newInstance()
-
newDuration
public abstract Duration newDuration(String lexicalRepresentation)
获得的新实例Duration
指定Duration
作为它的字符串表示,“PnYnMnDTnHnMnS”,如在XML模式1.0第3.2.6.1节定义。XML Schema第2部分:数据类型,3.2.6持续时间,将
duration
定义为: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.
所有六个值都已设置,可从创建的
Duration
获得XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实施容量,将抛出
UnsupportedOperationException
,并显示指示实施限制的消息。- 参数
-
lexicalRepresentation
-String
表示Duration
。 - 结果
- 通过解析
Duration
创建新的lexicalRepresentation
。 - 异常
-
IllegalArgumentException
- 如果lexicalRepresentation
不是lexicalRepresentation
的有效表示Duration
。 -
UnsupportedOperationException
- 如果实现不支持请求的值。 -
NullPointerException
- 如果lexicalRepresentation
是null
。
-
newDuration
public abstract Duration newDuration(long durationInMilliSeconds)
获取Duration
的新实例,指定Duration
作为毫秒。XML Schema第2部分:数据类型,3.2.6持续时间,将
duration
定义为: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.
所有六个值都是通过从指定的毫秒计算它们的值来设置的,并且可以使用创建的
Duration
的get
方法获得 。 这些值符合并定义为:- ISO 8601:2000(E)第5.5.3.2节替代格式
- W3C XML Schema 1.0 Part 2, Appendix D, ISO 8601 Date and Time Formats
-
XMLGregorianCalendar
XML Schema 1.0和Java表示之间的日期/时间数据类型字段映射
默认启动实例由下式定义
GregorianCalendar
的使用历元的开始的:即Calendar.YEAR
= 1970,Calendar.MONTH
=Calendar.JANUARY
,Calendar.DATE
= 1等由于有在格里历的变化,例如,闰年已经这是很重要月中的不同日期=Calendar.FEBRUARY
因此可能会影响Duration.getMonths()
和Duration.getDays()
的结果。- 参数
-
durationInMilliSeconds
- 要创建的持续时间(以毫秒为单位)。 - 结果
- 新的
Duration
代表durationInMilliSeconds
。
-
newDuration
public abstract Duration newDuration(boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)
获得的新实例Duration
指定Duration
为isPositive,年,月,日,时,分,秒。XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实施容量,将抛出
UnsupportedOperationException
,并显示指示实施限制的消息。null
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
years
- 这Duration
-
months
- 其中Duration
-
days
- 这Duration
-
hours
- 这Duration
-
minutes
- 其中Duration
-
seconds
- 其中Duration
- 结果
- 从指定值创建的新
Duration
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果所有字段(年,月,...)为空或任何字段为负数。 -
UnsupportedOperationException
- 如果实现不支持请求的值。
-
newDuration
public Duration newDuration(boolean isPositive, int years, int months, int days, int hours, int minutes, int seconds)
获得的新实例Duration
指定Duration
为isPositive,年,月,日,时,分,秒。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
years
- 其中Duration
-
months
- 这Duration
-
days
- 其中Duration
-
hours
- 这Duration
-
minutes
- 其中Duration
-
seconds
- 这个Duration
- 结果
- 从指定值创建的新
Duration
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果任何字段为负数。 - 另请参见:
-
newDuration( boolean isPositive, BigInteger years, BigInteger months, BigInteger days, BigInteger hours, BigInteger minutes, BigDecimal seconds)
-
newDurationDayTime
public Duration newDurationDayTime(String lexicalRepresentation)
创建Duration
类型xdt:dayTimeDuration
通过分析其String
表示,“PnDTnHnMnS”, XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。数据类型
xdt:dayTimeDuration
是的子类型xs:duration
其词汇表示仅包含日,小时,分,和第二组分。 此数据类型驻留在命名空间http://www.w3.org/2003/11/xpath-datatypes
。所有四个值均已设置,可从创建的
Duration
获得XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实现容量,将抛出
UnsupportedOperationException
,并显示一条指示实施限制的消息。- 参数
-
lexicalRepresentation
- 持续时间的词汇表示。 - 结果
- 新
Duration
使用指定的创建lexicalRepresentation
。 - 异常
-
IllegalArgumentException
- 如果lexicalRepresentation
不是lexicalRepresentation
的有效表示,Duration
表示日期和时间。 -
UnsupportedOperationException
- 如果实现不支持请求的值。 -
NullPointerException
- 如果lexicalRepresentation
是null
。
-
newDurationDayTime
public Duration newDurationDayTime(long durationInMilliseconds)
创建Duration
类型的xdt:dayTimeDuration
使用指定毫秒中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。数据类型
xdt:dayTimeDuration
是的子类型xs:duration
其词汇表示仅包含日,小时,分,和第二组分。 此数据类型驻留在命名空间http://www.w3.org/2003/11/xpath-datatypes
。所有四个值都是通过从指定的毫秒计算它们的值来设置的,并且可以使用创建的
Duration
的get
方法获得 。 这些值符合并定义为:- ISO 8601:2000(E)第5.5.3.2节替代格式
- W3C XML Schema 1.0 Part 2, Appendix D, ISO 8601 Date and Time Formats
-
XMLGregorianCalendar
XML Schema 1.0和Java表示之间的日期/时间数据类型字段映射
默认启动实例由下式定义
GregorianCalendar
的使用历元的开始的:即Calendar.YEAR
= 1970,Calendar.MONTH
=Calendar.JANUARY
,Calendar.DATE
= 1等由于有在格里历的变化,例如,闰年已经这是很重要当月不同天=Calendar.FEBRUARY
这样的结果Duration.getDays()
会受到影响。确定日,小时,分钟和秒后的任何剩余毫秒都将被丢弃。
- 参数
-
durationInMilliseconds
- 要创建的毫秒Duration
。 - 结果
- 新
Duration
使用指定的创建durationInMilliseconds
。 - 另请参见:
- XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration
-
newDurationDayTime
public Duration newDurationDayTime(boolean isPositive, BigInteger day, BigInteger hour, BigInteger minute, BigInteger second)
创建Duration
类型的xdt:dayTimeDuration
使用指定的day
,hour
,minute
和second
中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。数据类型
xdt:dayTimeDuration
是的子类型xs:duration
其词汇表示仅包含日,小时,分,和第二组分。 此数据类型位于命名空间http://www.w3.org/2003/11/xpath-datatypes
。XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实施容量,将抛出
UnsupportedOperationException
,并显示指示实施限制的消息。null
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
day
- 日期Duration
。 -
hour
- 小时Duration
。 -
minute
- 分钟Duration
。 -
second
-second
第二Duration
。 - 结果
- 新
Duration
使用指定的创建day
,hour
,minute
和second
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果所有字段(日,小时,...)为空或者任何字段为负数。 -
UnsupportedOperationException
- 如果实现不支持请求的值。
-
newDurationDayTime
public Duration newDurationDayTime(boolean isPositive, int day, int hour, int minute, int second)
创建Duration
类型的xdt:dayTimeDuration
使用指定的day
,hour
,minute
和second
中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:dayTimeDuration 。数据类型
xdt:dayTimeDuration
是的子类型xs:duration
其词汇表示仅包含日,小时,分,和第二组分。 此数据类型位于命名空间http://www.w3.org/2003/11/xpath-datatypes
。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
day
- 日期Duration
。 -
hour
- 小时Duration
。 -
minute
- 分钟,Duration
。 -
second
- 第二个Duration
。 - 结果
- 新
Duration
使用指定的创建day
,hour
,minute
和second
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果任何字段(日,小时,......)为负数。
-
newDurationYearMonth
public Duration newDurationYearMonth(String lexicalRepresentation)
创建Duration
类型xdt:yearMonthDuration
通过分析其String
表示,“PnYnM”, XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。数据类型
xdt:yearMonthDuration
是一个亚型xs:duration
,其词汇表示仅包含年份和月份组成部分。 此数据类型驻留在命名空间XMLConstants.W3C_XPATH_DATATYPE_NS_URI
中 。这两个值都已设置,可从创建的
Duration
获得XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实施容量,将抛出
UnsupportedOperationException
,并显示指示实施限制的消息。- 参数
-
lexicalRepresentation
- 持续时间的词汇表示。 - 结果
- 新
Duration
使用指定的创建lexicalRepresentation
。 - 异常
-
IllegalArgumentException
- 如果lexicalRepresentation
不是lexicalRepresentation
的有效表示形式,Duration
表示年份和月份。 -
UnsupportedOperationException
- 如果实现不支持请求的值。 -
NullPointerException
- 如果lexicalRepresentation
是null
。
-
newDurationYearMonth
public Duration newDurationYearMonth(long durationInMilliseconds)
创建Duration
类型的xdt:yearMonthDuration
使用指定毫秒中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。数据类型
xdt:yearMonthDuration
是一个亚型xs:duration
,其词汇表示仅包含年份和月份组成部分。 此数据类型驻留在命名空间XMLConstants.W3C_XPATH_DATATYPE_NS_URI
中 。这两个值都是通过从指定的毫秒计算它们的值来设置的,并且可以使用创建的
Duration
的get
方法获得 。 这些值符合并定义为:- ISO 8601:2000(E)第5.5.3.2节替代格式
- W3C XML Schema 1.0 Part 2, Appendix D, ISO 8601 Date and Time Formats
-
XMLGregorianCalendar
XML Schema 1.0和Java表示之间的日期/时间数据类型字段映射
默认启动实例由下式定义
GregorianCalendar
的使用历元的开始的:即Calendar.YEAR
= 1970,Calendar.MONTH
=Calendar.JANUARY
,Calendar.DATE
= 1等由于有在格里历的变化,例如,闰年已经这是很重要当月不同天=Calendar.FEBRUARY
这样的结果Duration.getMonths()
会受到影响。确定年份和月份后的任何剩余毫秒都将被丢弃。
- 参数
-
durationInMilliseconds
- 要创建的毫秒Duration
。 - 结果
- 新
Duration
使用指定的创建durationInMilliseconds
。
-
newDurationYearMonth
public Duration newDurationYearMonth(boolean isPositive, BigInteger year, BigInteger month)
创建Duration
类型的xdt:yearMonthDuration
使用指定year
和month
中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。XML Schema规范声明值可以是任意大小。 实现可以选择不支持或不支持任意大和/或小值。 如果超出实施容量,将抛出
UnsupportedOperationException
,并显示指示实施限制的消息。null
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
year
-Duration
。 -
month
- 月份Duration
。 - 结果
- 新
Duration
使用指定的创建year
和month
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果所有字段(年,月)为空或任何字段为负数。 -
UnsupportedOperationException
- 如果实现不支持请求的值。
-
newDurationYearMonth
public Duration newDurationYearMonth(boolean isPositive, int year, int month)
创建Duration
类型的xdt:yearMonthDuration
使用指定year
和month
中定义XQuery 1.0 and XPath 2.0 Data Model, xdt:yearMonthDuration 。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
isPositive
- 设置为false
以创建负持续时间。 当持续时间的长度为零时,将忽略此参数。 -
year
-Duration
。 -
month
- 月份Duration
。 - 结果
- 新
Duration
使用指定的创建year
和month
。 - 异常
-
IllegalArgumentException
- 如果值不是Duration
的有效表示Duration
:如果任何字段(年,月)为负数。
-
newXMLGregorianCalendar
public abstract XMLGregorianCalendar newXMLGregorianCalendar()
创建XMLGregorianCalendar
的新实例。所有日期/时间数据类型字段设置为
DatatypeConstants.FIELD_UNDEFINED
或null。- 结果
- 新的
XMLGregorianCalendar
,所有日期/时间数据类型字段设置为DatatypeConstants.FIELD_UNDEFINED
或null。
-
newXMLGregorianCalendar
public abstract XMLGregorianCalendar newXMLGregorianCalendar(String lexicalRepresentation)
通过将String解析为词法表示来创建新的XMLGregorianCalendar。解析词法字符串表示在XML Schema 1.0 Part 2, Section 3.2.[7-14].1, Lexical Representation.中定义
字符串表示可能没有任何前导和尾随空格。
解析是逐字段完成的,因此以下适用于任何词法正确的字符串x:
newXMLGregorianCalendar(x).toXMLFormat().equals(x)
除了XML Schema 1.0 errata, Section 3.2.7.2中列出的词汇/规范表示不匹配之外 。
- 参数
-
lexicalRepresentation
- 八种XML Schema日期/时间数据类型之一的词汇表示。 - 结果
-
XMLGregorianCalendar
从创建lexicalRepresentation
。 - 异常
-
IllegalArgumentException
- 如果lexicalRepresentation
不是有效的XMLGregorianCalendar
。 -
NullPointerException
- 如果lexicalRepresentation
是null
。
-
newXMLGregorianCalendar
public abstract XMLGregorianCalendar newXMLGregorianCalendar(GregorianCalendar cal)
创建XMLGregorianCalendar
从GregorianCalendar
。 Field by Field Conversion fromGregorianCalendar
to anXMLGregorianCalendar
java.util.GregorianCalendar
fieldjavax.xml.datatype.XMLGregorianCalendar
fieldERA == 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)
**转换信息丢失。 无法在XML Schema 1.
java.util.GregorianCalendar
期/时间数据类型表示中表示java.util.GregorianCalendar
夏令java.util.GregorianCalendar
区ID。要计算返回值的
TimeZone
字段,- 当
this.getTimezone() != FIELD_UNDEFINED
,使用java.util.TimeZone
创建带有自定义时区ID的this.getTimezone()
。 - 否则使用
GregorianCalendar
主机的默认时区值定义为java.util.TimeZone.getDefault()
。
- 参数
-
cal
-java.util.GregorianCalendar
用于创建XMLGregorianCalendar
- 结果
-
XMLGregorianCalendar
创建于java.util.GregorianCalendar
- 异常
-
NullPointerException
- 如果cal
是null
。
- 当
-
newXMLGregorianCalendar
public 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和相关内置数据类型的建议所允许的完整值空间。 请注意,year
参数支持任意大数,而fractionalSecond具有无限精度。null
值表示未设置该字段。- 参数
-
year
- 即将创建的XMLGregorianCalendar
。 -
month
- 即将创建的XMLGregorianCalendar
。 -
day
- 即将创建的XMLGregorianCalendar
。 -
hour
- 即将创建的XMLGregorianCalendar
。 -
minute
- 即将创建的XMLGregorianCalendar
。 -
second
- 即将创建的XMLGregorianCalendar
。 -
fractionalSecond
- 即将创建的XMLGregorianCalendar
。 -
timezone
- 即将创建的XMLGregorianCalendar
。 - 结果
-
XMLGregorianCalendar
是根据指定值创建的。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。
-
newXMLGregorianCalendar
public XMLGregorianCalendar newXMLGregorianCalendar(int year, int month, int day, int hour, int minute, int second, int millisecond, int timezone)
java.util.GregorianCalendar
实例需要转换为XMLGregorianCalendar
实例的值空间的构造方法。XMLGregorianCalendar eon
和fractionalSecond
设置为null
DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
year
- 要创建的XMLGregorianCalendar
。 -
month
- 即将创建的XMLGregorianCalendar
。 -
day
- 即将创建的XMLGregorianCalendar
。 -
hour
- 即将创建的XMLGregorianCalendar
。 -
minute
- 即将创建的XMLGregorianCalendar
。 -
second
- 即将创建的XMLGregorianCalendar
。 -
millisecond
- 要创建的XMLGregorianCalendar
。 -
timezone
- 即将创建的XMLGregorianCalendar
。 - 结果
-
XMLGregorianCalendar
是根据指定值创建的。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。
-
newXMLGregorianCalendarDate
public XMLGregorianCalendar newXMLGregorianCalendarDate(int year, int month, int day, int timezone)
创建XML Schema内置数据类型date
或g*
的Java表示g*
。例如,可以创建一个
gYear
的实例,调用此工厂,其中month
和day
参数设置为DatatypeConstants.FIELD_UNDEFINED
。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
year
- 即将创建的XMLGregorianCalendar
。 -
month
- 即将创建的XMLGregorianCalendar
。 -
day
- 即将创建的XMLGregorianCalendar
。 -
timezone
- 以分钟为timezone
偏移量。DatatypeConstants.FIELD_UNDEFINED
表示未设置可选字段。 - 结果
-
XMLGregorianCalendar
根据参数值创建。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。 - 另请参见:
-
DatatypeConstants.FIELD_UNDEFINED
-
newXMLGregorianCalendarTime
public XMLGregorianCalendar newXMLGregorianCalendarTime(int hours, int minutes, int seconds, int timezone)
创建XML Schema内置数据类型time
的Java实例。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
hours
- 小时数 -
minutes
- 分钟数 -
seconds
- 秒数 -
timezone
- 以分钟为timezone
偏移量。DatatypeConstants.FIELD_UNDEFINED
表示未设置可选字段。 - 结果
-
XMLGregorianCalendar
从参数值创建。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。 - 另请参见:
-
DatatypeConstants.FIELD_UNDEFINED
-
newXMLGregorianCalendarTime
public XMLGregorianCalendar newXMLGregorianCalendarTime(int hours, int minutes, int seconds, BigDecimal fractionalSecond, int timezone)
- 参数
-
hours
- 小时数 -
minutes
- 分钟数 -
seconds
- 秒数 -
fractionalSecond
- 值null
表示未设置此可选字段。 -
timezone
- 以分钟为timezone
偏移量。DatatypeConstants.FIELD_UNDEFINED
表示未设置可选字段。 - 结果
-
XMLGregorianCalendar
从参数值创建。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。 - 另请参见:
-
DatatypeConstants.FIELD_UNDEFINED
-
newXMLGregorianCalendarTime
public XMLGregorianCalendar newXMLGregorianCalendarTime(int hours, int minutes, int seconds, int milliseconds, int timezone)
创建XML Schema内置数据类型时间的Java实例。DatatypeConstants.FIELD_UNDEFINED
值表示未设置该字段。- 参数
-
hours
- 小时数 -
minutes
- 分钟数 -
seconds
- 秒数 -
milliseconds
- 毫秒数 -
timezone
- 以分钟为timezone
偏移量。DatatypeConstants.FIELD_UNDEFINED
表示未设置可选字段。 - 结果
-
XMLGregorianCalendar
根据参数值创建。 - 异常
-
IllegalArgumentException
- 如果任何单个参数的值超出字段的最大值约束(由XMLGregorianCalendar
中的日期/时间数据映射表确定),或者复合值构成由XMLGregorianCalendar.isValid()
确定的无效XMLGregorianCalendar
实例。 - 另请参见:
-
DatatypeConstants.FIELD_UNDEFINED
-
-