sandygao 2003/01/16 10:34:04 Modified: java/src/org/apache/xerces/impl/dv/xs AbstractDateTimeDV.java DateDV.java DayDV.java MonthDayDV.java MonthDV.java TimeDV.java YearDV.java YearMonthDV.java Log: Generate correct canonical lexical representation for date-time types. Revision Changes Path 1.8 +33 -8 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java Index: AbstractDateTimeDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/AbstractDateTimeDV.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- AbstractDateTimeDV.java 18 Nov 2002 23:10:10 -0000 1.7 +++ AbstractDateTimeDV.java 16 Jan 2003 18:34:03 -0000 1.8 @@ -690,21 +690,46 @@ protected String dateToString(int[] date) { StringBuffer message = new StringBuffer(25); - message.append(date[CY]); + append(message, date[CY], 4); message.append('-'); - message.append(date[M]); + append(message, date[M], 2); message.append('-'); - message.append(date[D]); + append(message, date[D], 2); message.append('T'); - message.append(date[h]); + append(message, date[h], 2); message.append(':'); - message.append(date[m]); + append(message, date[m], 2); message.append(':'); - message.append(date[s]); + append(message, date[s], 2); message.append('.'); message.append(date[ms]); - message.append((char)date[utc]); + append(message, (char)date[utc], 0); return message.toString(); + } + + protected void append(StringBuffer message, int value, int nch) { + if (value < 0) { + message.append('-'); + value = -value; + } + if (nch == 4) { + if (value < 10) + message.append("000"); + else if (value < 100) + message.append("00"); + else if (value < 1000) + message.append("0"); + message.append(value); + } + else if (nch == 2) { + if (value < 10) + message.append('0'); + message.append(value); + } + else { + if (value != 0) + message.append((char)value); + } } // 1.8 +12 -1 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DateDV.java Index: DateDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DateDV.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- DateDV.java 20 Nov 2002 00:49:47 -0000 1.7 +++ DateDV.java 16 Jan 2003 18:34:04 -0000 1.8 @@ -105,4 +105,15 @@ return date; } + protected String dateToString(int[] date) { + StringBuffer message = new StringBuffer(25); + append(message, date[CY], 4); + message.append('-'); + append(message, date[M], 2); + message.append('-'); + append(message, date[D], 2); + append(message, (char)date[utc], 0); + return message.toString(); + } + } 1.7 +3 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DayDV.java Index: DayDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/DayDV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- DayDV.java 18 Nov 2002 23:10:10 -0000 1.6 +++ DayDV.java 16 Jan 2003 18:34:04 -0000 1.7 @@ -135,8 +135,8 @@ message.append('-'); message.append('-'); message.append('-'); - message.append(date[D]); - message.append((char)date[utc]); + append(message, date[D], 2); + append(message, (char)date[utc], 0); return message.toString(); } 1.7 +4 -4 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDayDV.java Index: MonthDayDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDayDV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- MonthDayDV.java 18 Nov 2002 23:10:10 -0000 1.6 +++ MonthDayDV.java 16 Jan 2003 18:34:04 -0000 1.7 @@ -146,10 +146,10 @@ StringBuffer message = new StringBuffer(8); message.append('-'); message.append('-'); - message.append(date[M]); + append(message, date[M], 2); message.append('-'); - message.append(date[D]); - message.append((char)date[utc]); + append(message, date[D], 2); + append(message, (char)date[utc], 0); return message.toString(); } 1.9 +3 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDV.java Index: MonthDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/MonthDV.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MonthDV.java 18 Nov 2002 23:10:10 -0000 1.8 +++ MonthDV.java 16 Jan 2003 18:34:04 -0000 1.9 @@ -185,8 +185,8 @@ StringBuffer message = new StringBuffer(5); message.append('-'); message.append('-'); - message.append(date[M]); - message.append((char)date[utc]); + append(message, date[M], 2); + append(message, (char)date[utc], 0); return message.toString(); } 1.7 +5 -5 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/TimeDV.java Index: TimeDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/TimeDV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- TimeDV.java 18 Nov 2002 23:10:10 -0000 1.6 +++ TimeDV.java 16 Jan 2003 18:34:04 -0000 1.7 @@ -124,14 +124,14 @@ */ protected String dateToString(int[] date) { StringBuffer message = new StringBuffer(16); - message.append(date[h]); + append(message, date[h], 2); message.append(':'); - message.append(date[m]); + append(message, date[m], 2); message.append(':'); - message.append(date[s]); + append(message, date[s], 2); message.append('.'); message.append(date[ms]); - message.append((char)date[utc]); + append(message, (char)date[utc], 0); return message.toString(); } 1.7 +3 -3 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearDV.java Index: YearDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearDV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- YearDV.java 18 Nov 2002 23:10:11 -0000 1.6 +++ YearDV.java 16 Jan 2003 18:34:04 -0000 1.7 @@ -134,8 +134,8 @@ */ protected String dateToString(int[] date) { StringBuffer message = new StringBuffer(5); - message.append(date[CY]); - message.append((char)date[utc]); + append(message, date[CY], 4); + append(message, (char)date[utc], 0); return message.toString(); } 1.7 +10 -1 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearMonthDV.java Index: YearMonthDV.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/YearMonthDV.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- YearMonthDV.java 18 Nov 2002 23:10:11 -0000 1.6 +++ YearMonthDV.java 16 Jan 2003 18:34:04 -0000 1.7 @@ -113,6 +113,15 @@ return date; } + protected String dateToString(int[] date) { + StringBuffer message = new StringBuffer(25); + append(message, date[CY], 4); + message.append('-'); + append(message, date[M], 2); + append(message, (char)date[utc], 0); + return message.toString(); + } + }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]