dbertoni 02/05/08 14:02:15
Modified: c/src/XSLT ElemForEach.cpp
Log:
Better error checking.
Revision Changes Path
1.23 +44 -4 xml-xalan/c/src/XSLT/ElemForEach.cpp
Index: ElemForEach.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/ElemForEach.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- ElemForEach.cpp 16 Apr 2002 05:45:50 -0000 1.22
+++ ElemForEach.cpp 8 May 2002 21:02:14 -0000 1.23
@@ -261,8 +261,34 @@
avt->evaluate(scratchString, sourceNodeContext,
*this, executionContext);
}
- const bool treatAsNumbers =
!isEmpty(scratchString) && equals(scratchString,
Constants::ATTRVAL_DATATYPE_NUMBER) ?
- true : false;
+ bool treatAsNumbers = false;
+
+ if (isEmpty(scratchString) == false)
+ {
+ if (equals(scratchString,
Constants::ATTRVAL_DATATYPE_NUMBER) == true)
+ {
+ treatAsNumbers = true;
+ }
+ else if (equals(scratchString,
Constants::ATTRVAL_DATATYPE_TEXT) == false)
+ {
+ const XalanQNameByValue
theQName(scratchString, this);
+
+ if (theQName.getNamespace().length() ==
0)
+ {
+ executionContext.error(
+ "xsl:sort data-type
must be 'text', 'number' or a prefixed name",
+ sourceNodeContext,
+ sort->getLocator());
+ }
+ else
+ {
+ executionContext.warn(
+ "xsl:sort has an
unknown data-type. The data-type will be 'text'",
+ sourceNodeContext,
+ sort->getLocator());
+ }
+ }
+ }
clear(scratchString);
@@ -273,8 +299,22 @@
avt->evaluate(scratchString, sourceNodeContext,
*this, executionContext);
}
- const bool descending = !isEmpty(scratchString) &&
equals(scratchString, Constants::ATTRVAL_ORDER_DESCENDING) ?
- true : false;
+ bool descending = false;
+
+ if (isEmpty(scratchString) == false)
+ {
+ if (equals(scratchString,
Constants::ATTRVAL_ORDER_DESCENDING) == true)
+ {
+ descending = true;
+ }
+ else if (equals(scratchString,
Constants::ATTRVAL_ORDER_ASCENDING) == false)
+ {
+ executionContext.error(
+ "xsl:sort order must be
'ascending' or 'descending'",
+ sourceNodeContext,
+ sort->getLocator());
+ }
+ }
clear(scratchString);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]