The only way to fix this is to have a different Java class for date vs dateTime. Do we really want to roll our own DateTime class?
I don't know whether we want to fix it. I just want us all to be aware that we WILL have users run into this issue and that we WILL have to admit that it's broken, and unlikely to be fixed, unless someone wants to create a special class. This problem will exist all over the place, not just here. We don't support xsd:Name, xsd:ID, xsd:NMTOKEN, etc. All of these would probably map to java.lang.String since they're all derived from xsd:string. But that would break roundtripping unless we create a new class for each of these XML types. Ditto for xsd:integer derived types like nonPositiveInteger, nonNegativeInteger, etc. I'd prefer that this were fixed in one place (like the WSDL and/or JAX-RPC specs) rather than haphazardly in our implementation. The specs should not allow many-to-one mappings. Russell Butek [EMAIL PROTECTED] Davanum Srinivas <[EMAIL PROTECTED]> on 03/05/2002 09:12:01 AM Please respond to [EMAIL PROTECTED] To: [EMAIL PROTECTED] cc: Subject: Re: date vs dateTime (was: cvs commit: xml-axis/java/src/org/apache/axis/encoding DefaultTypeMappingImpl.java) Russell, How do i fix it? Any pointers? I ran "all-tests" before checking the code in. Thanks, dims --- Russell Butek <[EMAIL PROTECTED]> wrote: > WARNING!! WARNING!! > > You've just broken WSDL->Java->WSDL roundtripping! > > WSDL date -> Java Date -> WSDL dateTime. > > Last week at the interop meetings we've discovered that we really need > WSDL->Java->WSDL roundtripping for the round III group D tests. You've > introduced a case where a group D scenario won't work. > > I'm not saying we shouldn't support date (breaking round tripping isn't as > bad as not working at all), but we MUST be VERY aware of the hole we're > digging for ourselves. > > Russell Butek > [EMAIL PROTECTED] > ---------------------- Forwarded by Russell Butek/Austin/IBM on 03/05/2002 > 08:26 AM --------------------------- > > > > > > [EMAIL PROTECTED] on 03/05/2002 08:19:57 AM > > Please respond to [EMAIL PROTECTED] > > To: [EMAIL PROTECTED] > cc: > > Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding > DefaultTypeMappingImpl.java > > > > > dims 02/03/05 06:19:57 > > Modified: java/src/org/apache/axis Constants.java > java/src/org/apache/axis/encoding > DefaultTypeMappingImpl.java > Log: > adding support for "http://www.w3.org/2001/XMLSchema:date".; "date" is a > perfectly valid XML Schema data type and .NET and other WS frameworks > handle it. Also see > http://www.w3.org/2001/XMLSchema.xsd.; > > Revision Changes Path > 1.55 +1 -0 xml-axis/java/src/org/apache/axis/Constants.java > > Index: Constants.java > =================================================================== > RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v > retrieving revision 1.54 > retrieving revision 1.55 > diff -u -r1.54 -r1.55 > --- Constants.java 28 Feb 2002 18:47:21 -0000 1.54 > +++ Constants.java 5 Mar 2002 14:19:57 -0000 1.55 > @@ -442,6 +442,7 @@ > public static final QName SOAP_VECTOR = new QName > ("http://xml.apache.org/xml-soap", "Vector"); > > public static QName XSD_DATE = new > QName(Constants.URI_CURRENT_SCHEMA_XSD, "dateTime"); > + public static QName XSD_DATE1 = new > QName(Constants.URI_CURRENT_SCHEMA_XSD, "date"); > public static QName XSD_DATE2= new > QName(Constants.URI_1999_SCHEMA_XSD, "timeInstant"); > public static QName XSD_DATE3= new > QName(Constants.URI_2000_SCHEMA_XSD, "timeInstant"); > > > > > 1.11 +7 -1 > xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java > > Index: DefaultTypeMappingImpl.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DefaultTypeMappingImpl.java,v > > retrieving revision 1.10 > retrieving revision 1.11 > diff -u -r1.10 -r1.11 > --- DefaultTypeMappingImpl.java 12 Feb 2002 16:50:20 -0000 1.10 > +++ DefaultTypeMappingImpl.java 5 Mar 2002 14:19:57 -0000 1.11 > @@ -264,7 +264,13 @@ > new DateDeserializerFactory(java.util.Date.class, > Constants.XSD_DATE3), > true); > - myRegister(Constants.XSD_DATE, java.util.Date.class, > + myRegister(Constants.XSD_DATE1, java.util.Date.class, > + new DateSerializerFactory(java.util.Date.class, > + Constants.XSD_DATE1), > + new DateDeserializerFactory(java.util.Date.class, > + Constants.XSD_DATE1), > + true); > + myRegister(Constants.XSD_DATE, java.util.Date.class, > new DateSerializerFactory(java.util.Date.class, > Constants.XSD_DATE), > new DateDeserializerFactory(java.util.Date.class, > > > > > ===== Davanum Srinivas - http://xml.apache.org/~dims/ __________________________________________________ Do You Yahoo!? Try FREE Yahoo! Mail - the world's greatest free email! http://mail.yahoo.com/