You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlbeans-user@xml.apache.org by Radhakrishnan J <ra...@tavant.com> on 2004/07/29 15:23:38 UTC

DateTime format question

Hi,

Whats wrong with this code snippet ?
		
		XmlOptions options = new XmlOptions();
		Collection errors = new ArrayList();
		XmlDateTime dateTime =
XmlDateTime.Factory.parse("<xml-fragment>1979-10-12T10:10:10.10+5:30</xml-fr
agment>");
		System.out.println(dateTime);
		dateTime.validate(options);		
		System.out.println(errors);

This code prints

<xml-fragment>
1979-10-12T10:10:10.10+5:30
</xml-fragment>
[error: Date value is malformed: 1979-10-12T10:10:10.10+5:30]

I rigged it up the xml fragment having read the XML Schema -Datatypes
specification. Am I missing something ? Also, I had a problem with the date
formats. One of our schema components is a date-time type definition defined
as follows :

	<xs:simpleType name="Date">
		<xs:restriction base="xs:date">
			<xs:pattern value="\d\d\d\d-\d\d-\d\d"/>
<!-- restrics the year to 4 digit and does not accept time-zone info -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DateTime">
		<xs:restriction base="xs:dateTime">
			<xs:pattern
value="\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(Z|(\+|-)\d\d:\d\d)"/>	<!--
restricts the year to 4 digit and does not accept fractional seconds -->
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DateTimeAny">
		<xs:union memberTypes="Date DateTime"/>
	</xs:simpleType>

The XmlBean generated java type for DateTimeAny is 'java.util.Calendar'.
When a 'Calendar.getInstance()' is passed as an argument to the setter, it
triggers the followoing validation error :

[error: Union '2004-07-29+05:30' does not match any members of DateTimeAny
in namespace http://www.openapplications.org/oagis]

Following one of the earlier mail threads on this topic, I resorted to the
'Calendar.clear(Calendar.ZONE_OFFSET)' before passing the calendar to the
setter. This makes things work fine. However, I would like to retain the
time zone information. Got some questions :

(a) How is the string '2004-07-29+05:30' arrived at ? At the outset seems
like a 'xs:date' type although the calendar instance has all information to
construct a 'xs:dateTime' as well.
(b) Are the above extensions OK ? These schemas have been defined by another
workgroup. Based on the feedback to this question, I might negotiate to
remove the restrictions ( I still don't know why they are there in the first
place ).
(c) If not, How can I get rid of the validation error ?

Thanks,
Radhakrishnan 
Extn  367

http://kwiki-infra.india.tavant.com/kwiki/



- ---------------------------------------------------------------------
To unsubscribe, e-mail:   xmlbeans-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-user-help@xml.apache.org
Apache XMLBeans Project -- URL: http://xml.apache.org/xmlbeans/