XMLGregorianCalendarImpl should parse "24:00:00"
------------------------------------------------

                 Key: XERCESJ-1418
                 URL: https://issues.apache.org/jira/browse/XERCESJ-1418
             Project: Xerces2-J
          Issue Type: Bug
          Components: JAXP (javax.xml.datatype)
    Affects Versions: 2.9.1
         Environment: any
            Reporter: Michele Vivoda
             Fix For: 2.10.0
         Attachments: TestTime24.java

The lexical value of a xs:dateTime and a xs:time allow the
time to be in the form "(24:00:00(\.0+)?)". In short if it is
a xs:dateTime that lexical represents "00:00:00" of the day after
while if is a xs:time it is the same as "00:00:00"

References:

http://www.w3.org/TR/xmlschema-2/#dateTime
http://www.w3.org/TR/xmlschema11-2/#rf-lexicalMappings-datetime
http://www.w3.org/TR/xpath-functions/#date-time-values

Xerces reports "24:00:00" as unparsable, 
internal.xerces (java4 & java6) parses it but then 
the hour field is 24, that should not be correct.

Probably related to 

https://issues.apache.org/jira/browse/XERCESJ-683
http://marc.info/?l=xerces-cvs&m=105578736117117&w=2


The fix I propose is for XMLGregorianCalendarImpl.Parser#parse(), the flow is:

-in parsing loop:
  - possibly retain y,m,d to set them at the end
  - possibly check if 24h is present, in case set flag and use 0 as hour.
-at the end of loop:
  - if 24h flag is set, check min,sec are zero
  - if has date 
   - Add one day if 24h flag set
   - set date components


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to