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]

Reply via email to