mmidy 00/08/24 13:27:43
Modified: java/src/org/apache/xalan/transformer TransformerImpl.java
Log:
Catch invalid attribute values for xsl:sort
Revision Changes Path
1.18 +14 -0
xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- TransformerImpl.java 2000/08/17 20:13:46 1.17
+++ TransformerImpl.java 2000/08/24 20:27:41 1.18
@@ -1300,6 +1300,12 @@
sourceNodeContext,
xslInstruction,
new StringBuffer());
+ if (dataTypeString.indexOf(":") >= 0 )
+ System.out.println("TODO: Need to write the hooks for QNAME sort
data type");
+ else if
(!(dataTypeString.equalsIgnoreCase(Constants.ATTRVAL_DATATYPE_TEXT)) &&
+
!(dataTypeString.equalsIgnoreCase(Constants.ATTRVAL_DATATYPE_NUMBER)) )
+
xslInstruction.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new
Object[] {Constants.ATTRNAME_DATATYPE, dataTypeString});
+
boolean treatAsNumbers
= ((null != dataTypeString)&&
dataTypeString.equals(Constants.ATTRVAL_DATATYPE_NUMBER)) ?
@@ -1308,6 +1314,10 @@
= sort.getOrder().evaluate(xctxt, sourceNodeContext,
xslInstruction,
new StringBuffer());
+ if
(!(orderString.equalsIgnoreCase(Constants.ATTRVAL_ORDER_ASCENDING)) &&
+
!(orderString.equalsIgnoreCase(Constants.ATTRVAL_ORDER_DESCENDING)))
+
xslInstruction.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new
Object[] {Constants.ATTRNAME_ORDER, orderString});
+
boolean descending = ((null != orderString) &&
orderString.equals(Constants.ATTRVAL_ORDER_DESCENDING))?
true : false;
@@ -1321,6 +1331,10 @@
sourceNodeContext,
xslInstruction,
new StringBuffer());
+ if
(!(caseOrderString.equalsIgnoreCase(Constants.ATTRVAL_CASEORDER_UPPER)) &&
+
!(caseOrderString.equalsIgnoreCase(Constants.ATTRVAL_CASEORDER_LOWER)))
+
xslInstruction.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new
Object[] {Constants.ATTRNAME_CASEORDER, caseOrderString});
+
caseOrderUpper = ((null != caseOrderString)&&
caseOrderString.equals(Constants.ATTRVAL_CASEORDER_UPPER)) ?
true : false;