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]