You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mm...@locus.apache.org on 2000/02/04 16:59:43 UTC

cvs commit: xml-xalan/src/org/apache/xalan/xslt/res XSLTErrorResources.java

mmidy       00/02/04 07:59:43

  Modified:    src/org/apache/xalan/xslt ElemSort.java
               src/org/apache/xalan/xslt/res XSLTErrorResources.java
  Log:
  Check for bad attribute values on xsl:sort
  
  Revision  Changes    Path
  1.4       +20 -4     xml-xalan/src/org/apache/xalan/xslt/ElemSort.java
  
  Index: ElemSort.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/ElemSort.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ElemSort.java	2000/01/31 20:52:30	1.3
  +++ ElemSort.java	2000/02/04 15:59:42	1.4
  @@ -98,18 +98,34 @@
         }
         else if(aname.equals(Constants.ATTRNAME_DATATYPE))
         {
  -        dataType_avt = new AVT(aname, atts.getType(i), atts.getValue(i),
  +		  String valType = atts.getValue(i); 
  +		  if (valType.equalsIgnoreCase(Constants.ATTRVAL_DATATYPE_TEXT) || 
  +			  valType.equalsIgnoreCase(Constants.ATTRVAL_DATATYPE_NUMBER))
  +			dataType_avt = new AVT(aname, atts.getType(i), valType,
                                this, m_stylesheet, processor);
  +		  else
  +			  processor.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new Object[] {aname, valType}); 
         }
         else if(aname.equals(Constants.ATTRNAME_ORDER))
         {
  -        order_avt = new AVT(aname, atts.getType(i), atts.getValue(i),
  +        String valOrder = atts.getValue(i); 
  +		if (valOrder.equalsIgnoreCase(Constants.ATTRVAL_ORDER_ASCENDING) || 
  +		    valOrder.equalsIgnoreCase(Constants.ATTRVAL_ORDER_DESCENDING))			
  +		  order_avt = new AVT(aname, atts.getType(i), valOrder,
                                this, m_stylesheet, processor);
  +		else
  +			  processor.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new Object[] {aname, valOrder});       
         }
         else if(aname.equals(Constants.ATTRNAME_CASEORDER))
         {
  -        caseOrder_avt = new AVT(aname, atts.getType(i), atts.getValue(i),
  +		String valCase = atts.getValue(i); 
  +		if (valCase.equalsIgnoreCase(Constants.ATTRVAL_CASEORDER_UPPER) || 
  +		    valCase.equalsIgnoreCase(Constants.ATTRVAL_CASEORDER_LOWER))			
  +		  
  +			caseOrder_avt = new AVT(aname, atts.getType(i), valCase,
                                this, m_stylesheet, processor);
  +		else
  +			  processor.error(XSLTErrorResources.ER_ILLEGAL_ATTRIBUTE_VALUE, new Object[] {aname, valCase});             
         }
         else if(!isAttrOK(aname, atts, i))
         {
  @@ -126,7 +142,7 @@
         order_avt = new AVT(Constants.ATTRNAME_ORDER, "CDATA", "ascending",
                             this, m_stylesheet, processor);
       }
  -	  if(null == caseOrder_avt)
  +	if(null == caseOrder_avt)
       {
         caseOrder_avt = new AVT(Constants.ATTRNAME_CASEORDER, "CDATA", Constants.ATTRVAL_CASEORDER_LOWER,
                             this, m_stylesheet, processor);
  
  
  
  1.14      +6 -1      xml-xalan/src/org/apache/xalan/xslt/res/XSLTErrorResources.java
  
  Index: XSLTErrorResources.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/src/org/apache/xalan/xslt/res/XSLTErrorResources.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- XSLTErrorResources.java	2000/01/31 07:54:28	1.13
  +++ XSLTErrorResources.java	2000/02/04 15:59:43	1.14
  @@ -20,7 +20,7 @@
   public static final String ERROR_SUFFIX = "ER";  
   public static final String WARNING_SUFFIX = "WR";
   
  -public static final int MAX_CODE = 92;                  // this is needed to keep track of the number of messages          
  +public static final int MAX_CODE = 93;                  // this is needed to keep track of the number of messages          
   public static final int MAX_WARNING = 23;             // this is needed to keep track of the number of warnings
   public static final int MAX_OTHERS = 41;
   public static final int MAX_MESSAGES = MAX_CODE + MAX_WARNING +1;
  @@ -519,6 +519,11 @@
   public static final int ER_STYLESHEET_REQUIRES_VERSION_ATTRIB = 92;
   static {contents[ER_STYLESHEET_REQUIRES_VERSION_ATTRIB][1] 
             = "xsl:stylesheet requires a 'version' attribute!";
  +}
  +
  +public static final int ER_ILLEGAL_ATTRIBUTE_VALUE = 93;
  +static {contents[ER_ILLEGAL_ATTRIBUTE_VALUE][1] 
  +			= "Attribute: {0} has an illegal value: {1}";
   }
   
   // Warnings...