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...