You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2001/09/14 22:49:45 UTC
cvs commit: xml-xalan/c/src/XSLT FunctionCurrent.cpp FunctionCurrent.hpp FunctionDocument.cpp FunctionDocument.hpp FunctionElementAvailable.cpp FunctionElementAvailable.hpp FunctionFormatNumber.cpp FunctionFormatNumber.hpp FunctionFunctionAvailable.cpp FunctionFunctionAvailable.hpp FunctionGenerateID.cpp FunctionGenerateID.hpp FunctionKey.cpp FunctionKey.hpp FunctionSystemProperty.cpp FunctionSystemProperty.hpp FunctionUnparsedEntityURI.cpp FunctionUnparsedEntityURI.hpp StylesheetConstructionContext.hpp StylesheetConstructionContextDefault.cpp StylesheetConstructionContextDefault.hpp StylesheetExecutionContext.hpp StylesheetExecutionContextDefault.cpp StylesheetExecutionContextDefault.hpp StylesheetHandler.cpp StylesheetHandler.hpp XSLTEngineImpl.cpp XSLTEngineImpl.hpp XSLTProcessor.hpp XSLTProcessorEnvSupport.hpp XSLTProcessorEnvSupportDefault.cpp XSLTProcessorEnvSupportDefault.hpp
dbertoni 01/09/14 13:49:45
Modified: c/src/XSLT FunctionCurrent.cpp FunctionCurrent.hpp
FunctionDocument.cpp FunctionDocument.hpp
FunctionElementAvailable.cpp
FunctionElementAvailable.hpp
FunctionFormatNumber.cpp FunctionFormatNumber.hpp
FunctionFunctionAvailable.cpp
FunctionFunctionAvailable.hpp
FunctionGenerateID.cpp FunctionGenerateID.hpp
FunctionKey.cpp FunctionKey.hpp
FunctionSystemProperty.cpp
FunctionSystemProperty.hpp
FunctionUnparsedEntityURI.cpp
FunctionUnparsedEntityURI.hpp
StylesheetConstructionContext.hpp
StylesheetConstructionContextDefault.cpp
StylesheetConstructionContextDefault.hpp
StylesheetExecutionContext.hpp
StylesheetExecutionContextDefault.cpp
StylesheetExecutionContextDefault.hpp
StylesheetHandler.cpp StylesheetHandler.hpp
XSLTEngineImpl.cpp XSLTEngineImpl.hpp
XSLTProcessor.hpp XSLTProcessorEnvSupport.hpp
XSLTProcessorEnvSupportDefault.cpp
XSLTProcessorEnvSupportDefault.hpp
Log:
Implemented improved error reporting.
Revision Changes Path
1.11 +8 -62 xml-xalan/c/src/XSLT/FunctionCurrent.cpp
Index: FunctionCurrent.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionCurrent.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- FunctionCurrent.cpp 2000/12/06 21:19:16 1.10
+++ FunctionCurrent.cpp 2001/09/14 20:49:43 1.11
@@ -72,15 +72,18 @@
XObjectPtr
FunctionCurrent::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context)
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const Locator* locator) const
{
assert(executionContext.getCurrentNode() != 0);
if (context == 0)
{
- executionContext.error("The current() function is not allowed in patterns!",
- context);
+ executionContext.error(
+ "The current() function is not allowed in patterns!",
+ context,
+ locator);
return XObjectPtr();
}
@@ -92,62 +95,6 @@
-XObjectPtr
-FunctionCurrent::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionCurrent::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionCurrent::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionCurrent::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -163,6 +110,5 @@
const XalanDOMString
FunctionCurrent::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The current() function does not take any arguments!");
+ return XALAN_STATIC_UCODE_STRING("The current() function does not accept any arguments!");
}
1.8 +3 -30 xml-xalan/c/src/XSLT/FunctionCurrent.hpp
Index: FunctionCurrent.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionCurrent.hpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- FunctionCurrent.hpp 2000/12/06 21:19:18 1.7
+++ FunctionCurrent.hpp 2001/09/14 20:49:43 1.8
@@ -91,38 +91,11 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const Locator* locator) const;
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
1.25 +29 -62 xml-xalan/c/src/XSLT/FunctionDocument.cpp
Index: FunctionDocument.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionDocument.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- FunctionDocument.cpp 2001/06/29 18:52:36 1.24
+++ FunctionDocument.cpp 2001/09/14 20:49:43 1.25
@@ -139,60 +139,57 @@
-XObjectPtr
-FunctionDocument::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
XObjectPtr
FunctionDocument::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1)
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const Locator* locator) const
{
assert(arg1.null() == false);
if (context == 0)
{
- executionContext.error("The document() function requires a non-null context node!",
- context);
+ executionContext.error(
+ "The document() function requires a non-null context node!",
+ context,
+ locator);
return XObjectPtr();
}
-
- XalanDOMString base;
+ else
+ {
+ XalanDOMString base;
- assert(executionContext.getPrefixResolver() != 0);
+ assert(executionContext.getPrefixResolver() != 0);
- base = executionContext.getPrefixResolver()->getURI();
+ base = executionContext.getPrefixResolver()->getURI();
- return execute(executionContext, context, arg1, &base, 1);
+ return doExecute(executionContext, context, arg1, &base, 1);
+ }
}
XObjectPtr
FunctionDocument::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1,
- const XObjectPtr arg2)
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const
{
assert(arg1.null() == false && arg2.null() == false);
- XalanDOMString base;
+ XalanDOMString base;
if (context == 0)
{
- executionContext.error("The document() function requires a non-null context node!",
- context);
+ executionContext.error(
+ "The document() function requires a non-null context node!",
+ context,
+ locator);
return XObjectPtr();
}
@@ -233,47 +230,18 @@
}
}
- return execute(executionContext, context, arg1, &base, 2);
+ return doExecute(executionContext, context, arg1, &base, 2);
}
XObjectPtr
-FunctionDocument::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionDocument::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionDocument::execute(
+FunctionDocument::doExecute(
XPathExecutionContext& executionContext,
XalanNode* context,
const XObjectPtr arg,
XalanDOMString* base,
- int argCount)
+ int argCount) const
{
typedef XPathExecutionContext::BorrowReturnMutableNodeRefList BorrowReturnMutableNodeRefList;
@@ -375,6 +343,5 @@
const XalanDOMString
FunctionDocument::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The document() function requires at least one argument!");
+ return XALAN_STATIC_UCODE_STRING("The document() function accepts one or two arguments!");
}
1.7 +17 -33 xml-xalan/c/src/XSLT/FunctionDocument.hpp
Index: FunctionDocument.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionDocument.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FunctionDocument.hpp 2000/12/06 21:19:21 1.6
+++ FunctionDocument.hpp 2001/09/14 20:49:43 1.7
@@ -81,38 +81,20 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
-
- XObjectPtr
+ virtual XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const;
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
@@ -121,18 +103,20 @@
#endif
clone() const;
+protected:
+
+ const XalanDOMString
+ getError() const;
+
private:
XObjectPtr
- execute(
+ doExecute(
XPathExecutionContext& executionContext,
XalanNode* context,
const XObjectPtr arg,
XalanDOMString* base,
- int argCount);
-
- const XalanDOMString
- getError() const;
+ int argCount) const;
// Not implemented...
FunctionDocument&
1.13 +4 -59 xml-xalan/c/src/XSLT/FunctionElementAvailable.cpp
Index: FunctionElementAvailable.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionElementAvailable.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- FunctionElementAvailable.cpp 2001/05/14 01:03:09 1.12
+++ FunctionElementAvailable.cpp 2001/09/14 20:49:43 1.13
@@ -81,21 +81,10 @@
XObjectPtr
FunctionElementAvailable::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
+ XalanNode* /* context */,
+ const XObjectPtr arg1,
+ const Locator* /* locator */) const
{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionElementAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* /* context */,
- const XObjectPtr arg1)
-{
assert(arg1.null() == false);
const XalanDOMString& fullName = arg1->str();
@@ -130,49 +119,6 @@
-XObjectPtr
-FunctionElementAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionElementAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionElementAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -188,6 +134,5 @@
const XalanDOMString
FunctionElementAvailable::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The function-available() function takes one argument!");
+ return XALAN_STATIC_UCODE_STRING("The function-available() function takes one argument!");
}
1.5 +4 -30 xml-xalan/c/src/XSLT/FunctionElementAvailable.hpp
Index: FunctionElementAvailable.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionElementAvailable.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FunctionElementAvailable.hpp 2000/12/06 21:19:23 1.4
+++ FunctionElementAvailable.hpp 2001/09/14 20:49:43 1.5
@@ -91,38 +91,12 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const;
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
1.14 +21 -53 xml-xalan/c/src/XSLT/FunctionFormatNumber.cpp
Index: FunctionFormatNumber.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionFormatNumber.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- FunctionFormatNumber.cpp 2001/07/27 05:34:17 1.13
+++ FunctionFormatNumber.cpp 2001/09/14 20:49:43 1.14
@@ -88,35 +88,11 @@
XObjectPtr
FunctionFormatNumber::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const
{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionFormatNumber::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionFormatNumber::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1,
- const XObjectPtr arg2)
-{
assert(arg1.null() == false && arg2.null() == false);
const double theNumber = arg1->num();
@@ -139,7 +115,8 @@
theNumber,
thePattern,
theDFS,
- theString.get());
+ theString.get(),
+ locator);
return executionContext.getXObjectFactory().createString(theString);
}
@@ -148,11 +125,12 @@
XObjectPtr
FunctionFormatNumber::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1,
- const XObjectPtr arg2,
- const XObjectPtr arg3)
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const XObjectPtr arg3,
+ const Locator* locator) const
{
assert(arg1.null() == false && arg2.null() == false && arg3.null() == false);
@@ -167,8 +145,10 @@
if (theDFS == 0)
{
- executionContext.warn(s_warningNotFoundString,
- context);
+ executionContext.warn(
+ s_warningNotFoundString,
+ context,
+ locator);
theDFS = executionContext.getDecimalFormatSymbols(Constants::DEFAULT_DECIMAL_FORMAT);
@@ -184,27 +164,14 @@
theNumber,
thePattern,
theDFS,
- theString.get());
+ theString.get(),
+ locator);
return executionContext.getXObjectFactory().createString(theString);
}
-XObjectPtr
-FunctionFormatNumber::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
void
FunctionFormatNumber::doFormat(
XPathExecutionContext& executionContext,
@@ -212,7 +179,8 @@
double theNumber,
const XalanDOMString& thePattern,
const XalanDecimalFormatSymbols* theDFS,
- XalanDOMString& theResult)
+ XalanDOMString& theResult,
+ const Locator* locator) const
{
if (DoubleSupport::isNaN(theNumber) == true)
{
@@ -250,7 +218,7 @@
}
else
{
- executionContext.warn(s_warningNotImplementedString, context);
+ executionContext.warn(s_warningNotImplementedString, context, locator);
if (theDFS != 0)
{
1.10 +15 -29 xml-xalan/c/src/XSLT/FunctionFormatNumber.hpp
Index: FunctionFormatNumber.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionFormatNumber.hpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- FunctionFormatNumber.hpp 2001/06/14 19:24:54 1.9
+++ FunctionFormatNumber.hpp 2001/09/14 20:49:43 1.10
@@ -111,38 +111,22 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
-
- XObjectPtr
+ virtual XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const XObjectPtr arg3,
+ const Locator* locator) const;
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
@@ -160,7 +144,8 @@
double theNumber,
const XalanDOMString& thePattern,
const XalanDecimalFormatSymbols* theDFS,
- XalanDOMString& theResult);
+ XalanDOMString& theResult,
+ const Locator* locator) const;
private:
@@ -174,6 +159,7 @@
bool
operator==(const FunctionFormatNumber&) const;
+ // Data members...
const XalanDecimalFormatSymbols m_decimalFormatSymbols;
static const XalanDOMString& s_warningNotImplementedString;
1.12 +6 -61 xml-xalan/c/src/XSLT/FunctionFunctionAvailable.cpp
Index: FunctionFunctionAvailable.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionFunctionAvailable.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- FunctionFunctionAvailable.cpp 2001/05/14 01:03:09 1.11
+++ FunctionFunctionAvailable.cpp 2001/09/14 20:49:43 1.12
@@ -85,24 +85,13 @@
XObjectPtr
FunctionFunctionAvailable::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
+ XalanNode* /* context */,
+ const XObjectPtr arg,
+ const Locator* /* locator */) const
{
- executionContext.error(getError(), context);
+ assert(arg.null() == false);
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionFunctionAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* /* context */,
- const XObjectPtr arg1)
-{
- assert(arg1.null() == false);
-
- const XalanDOMString& fullName = arg1->str();
+ const XalanDOMString& fullName = arg->str();
const unsigned int nameLength = length(fullName);
const unsigned int indexOfNSSep = indexOf(fullName, XalanUnicode::charColon);
@@ -125,49 +114,6 @@
-XObjectPtr
-FunctionFunctionAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionFunctionAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionFunctionAvailable::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -183,6 +129,5 @@
const XalanDOMString
FunctionFunctionAvailable::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The function-available() function takes one argument!");
+ return XALAN_STATIC_UCODE_STRING("The function-available() function takes one argument!");
}
1.6 +8 -32 xml-xalan/c/src/XSLT/FunctionFunctionAvailable.hpp
Index: FunctionFunctionAvailable.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionFunctionAvailable.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FunctionFunctionAvailable.hpp 2001/05/14 01:03:09 1.5
+++ FunctionFunctionAvailable.hpp 2001/09/14 20:49:43 1.6
@@ -91,39 +91,13 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
#else
@@ -131,10 +105,12 @@
#endif
clone() const;
-private:
+protected:
- virtual const XalanDOMString
+ const XalanDOMString
getError() const;
+
+private:
// Not implemented...
FunctionFunctionAvailable&
1.17 +12 -51 xml-xalan/c/src/XSLT/FunctionGenerateID.cpp
Index: FunctionGenerateID.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionGenerateID.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- FunctionGenerateID.cpp 2001/08/06 01:40:09 1.16
+++ FunctionGenerateID.cpp 2001/09/14 20:49:43 1.17
@@ -129,12 +129,16 @@
XObjectPtr
FunctionGenerateID::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context)
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const Locator* locator) const
{
if (context == 0)
{
- executionContext.error("The function generate-id requires a non-null node!");
+ executionContext.error(
+ "The generate-id() function requires a non-null context node!",
+ context,
+ locator);
return XObjectPtr();
}
@@ -155,8 +159,9 @@
XObjectPtr
FunctionGenerateID::execute(
XPathExecutionContext& executionContext,
- XalanNode* /* context */,
- const XObjectPtr arg1)
+ XalanNode* /* context */,
+ const XObjectPtr arg1,
+ const Locator* locator) const
{
assert(arg1.null() == false);
@@ -168,55 +173,12 @@
}
else
{
- return execute(executionContext, theNodeList.item(0));
+ return execute(executionContext, theNodeList.item(0), locator);
}
}
-XObjectPtr
-FunctionGenerateID::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionGenerateID::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionGenerateID::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -232,6 +194,5 @@
const XalanDOMString
FunctionGenerateID::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The generate-id function takes zero or one arguments!");
+ return XALAN_STATIC_UCODE_STRING("The generate-id function takes zero or one arguments!");
}
1.9 +11 -29 xml-xalan/c/src/XSLT/FunctionGenerateID.hpp
Index: FunctionGenerateID.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionGenerateID.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FunctionGenerateID.hpp 2000/12/06 21:19:33 1.8
+++ FunctionGenerateID.hpp 2001/09/14 20:49:43 1.9
@@ -83,38 +83,18 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const Locator* locator) const;
- XObjectPtr
+ virtual XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const Locator* locator) const;
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
@@ -123,10 +103,12 @@
#endif
clone() const;
-private:
+protected:
const XalanDOMString
getError() const;
+
+private:
// Not implemented...
FunctionGenerateID& operator=(const FunctionGenerateID&);
1.20 +12 -62 xml-xalan/c/src/XSLT/FunctionKey.cpp
Index: FunctionKey.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionKey.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- FunctionKey.cpp 2000/12/06 21:19:34 1.19
+++ FunctionKey.cpp 2001/09/14 20:49:43 1.20
@@ -104,41 +104,19 @@
XObjectPtr
FunctionKey::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionKey::execute(
- XPathExecutionContext& executionContext,
XalanNode* context,
- const XObjectPtr /* arg1 */)
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const
{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionKey::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1,
- const XObjectPtr arg2)
-{
assert(arg1.null() == false && arg2.null() == false);
if (context == 0)
{
- executionContext.error("The key() function requires a non-null context node!",
- context);
+ executionContext.error(
+ "The key() function requires a non-null context node!",
+ context,
+ locator);
return XObjectPtr();
}
@@ -155,8 +133,10 @@
if(0 == docContext)
{
- executionContext.error("Context does not have an owner document!",
- context);
+ executionContext.error(
+ "Context does not have an owner document!",
+ context,
+ locator);
}
assert(executionContext.getPrefixResolver() != 0);
@@ -234,35 +214,6 @@
-XObjectPtr
-FunctionKey::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionKey::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -278,6 +229,5 @@
const XalanDOMString
FunctionKey::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The key() function takes two arguments!");
+ return XALAN_STATIC_UCODE_STRING("The key() function takes two arguments!");
}
1.9 +8 -31 xml-xalan/c/src/XSLT/FunctionKey.hpp
Index: FunctionKey.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionKey.hpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- FunctionKey.hpp 2000/12/06 21:19:35 1.8
+++ FunctionKey.hpp 2001/09/14 20:49:43 1.9
@@ -90,39 +90,14 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const XObjectPtr arg2,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
#else
@@ -130,10 +105,12 @@
#endif
clone() const;
-private:
+protected:
const XalanDOMString
getError() const;
+
+private:
// Not implemented...
FunctionKey&
1.18 +8 -60 xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp
Index: FunctionSystemProperty.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionSystemProperty.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- FunctionSystemProperty.cpp 2001/05/14 01:03:10 1.17
+++ FunctionSystemProperty.cpp 2001/09/14 20:49:43 1.18
@@ -89,20 +89,9 @@
XObjectPtr
FunctionSystemProperty::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionSystemProperty::execute(
- XPathExecutionContext& executionContext,
- XalanNode* /* context */,
- const XObjectPtr arg1)
+ XalanNode* context,
+ const XObjectPtr arg1,
+ const Locator* locator) const
{
assert(arg1.null() == false);
@@ -149,7 +138,10 @@
}
else
{
- executionContext.warn("Don't currently do anything with namespace " + *nspace + " in property: " + fullName);
+ executionContext.warn(
+ "Don't currently do anything with namespace " + *nspace + " in property: " + fullName,
+ context,
+ locator);
result = TranscodeFromLocalCodePage(::getenv(c_str(TranscodeToLocalCodePage(propName))));
}
@@ -172,49 +164,6 @@
-XObjectPtr
-FunctionSystemProperty::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionSystemProperty::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionSystemProperty::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
Function*
#else
@@ -230,6 +179,5 @@
const XalanDOMString
FunctionSystemProperty::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The system-property() function takes a single argument!");
+ return XALAN_STATIC_UCODE_STRING("The system-property() function accepts one argument!");
}
1.7 +7 -31 xml-xalan/c/src/XSLT/FunctionSystemProperty.hpp
Index: FunctionSystemProperty.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionSystemProperty.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FunctionSystemProperty.hpp 2000/12/06 21:19:37 1.6
+++ FunctionSystemProperty.hpp 2001/09/14 20:49:43 1.7
@@ -81,39 +81,13 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
#else
@@ -121,10 +95,12 @@
#endif
clone() const;
-private:
+protected:
virtual const XalanDOMString
getError() const;
+
+private:
// Not implemented...
FunctionSystemProperty&
1.15 +21 -72 xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.cpp
Index: FunctionUnparsedEntityURI.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- FunctionUnparsedEntityURI.cpp 2000/12/21 04:48:30 1.14
+++ FunctionUnparsedEntityURI.cpp 2001/09/14 20:49:43 1.15
@@ -81,89 +81,39 @@
XObjectPtr
FunctionUnparsedEntityURI::execute(
XPathExecutionContext& executionContext,
- XalanNode* context)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionUnparsedEntityURI::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1)
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const
{
- assert(arg1.null() == false);
+ assert(arg.null() == false);
if (context == 0)
{
- executionContext.error("The unparsed-entity-uri() function requires a non-null context node!",
- context);
+ executionContext.error(
+ "The unparsed-entity-uri() function requires a non-null context node!",
+ context,
+ locator);
return XObjectPtr();
}
-
- const XalanDOMString& name = arg1->str();
+ else
+ {
+ const XalanDOMString& name = arg->str();
- XalanDocument* const doc =
- XalanNode::DOCUMENT_NODE == context->getNodeType() ?
+ XalanDocument* const doc =
+ XalanNode::DOCUMENT_NODE == context->getNodeType() ?
#if defined(XALAN_OLD_STYLE_CASTS)
- (XalanDocument*)context :
+ (XalanDocument*)context :
#else
- static_cast<XalanDocument*>(context) :
+ static_cast<XalanDocument*>(context) :
#endif
- context->getOwnerDocument();
- assert(doc != 0);
-
- const XalanDOMString& uri = executionContext.getUnparsedEntityURI(name, *doc);
-
- return executionContext.getXObjectFactory().createStringReference(uri);
-}
-
-
-
-XObjectPtr
-FunctionUnparsedEntityURI::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
-}
+ context->getOwnerDocument();
+ assert(doc != 0);
-
-
-XObjectPtr
-FunctionUnparsedEntityURI::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */)
-{
- executionContext.error(getError(), context);
+ const XalanDOMString& uri = executionContext.getUnparsedEntityURI(name, *doc);
- return XObjectPtr(0);
-}
-
-
-
-XObjectPtr
-FunctionUnparsedEntityURI::execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */)
-{
- executionContext.error(getError(), context);
-
- return XObjectPtr(0);
+ return executionContext.getXObjectFactory().createStringReference(uri);
+ }
}
@@ -171,6 +121,5 @@
const XalanDOMString
FunctionUnparsedEntityURI::getError() const
{
- return XALAN_STATIC_UCODE_STRING(
- "The unparsed-entity-uri function should take one argument!");
+ return XALAN_STATIC_UCODE_STRING("The unparsed-entity-uri function accepts one argument!");
}
1.7 +7 -31 xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.hpp
Index: FunctionUnparsedEntityURI.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/FunctionUnparsedEntityURI.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- FunctionUnparsedEntityURI.hpp 2000/12/06 21:19:39 1.6
+++ FunctionUnparsedEntityURI.hpp 2001/09/14 20:49:43 1.7
@@ -88,39 +88,13 @@
// These methods are inherited from Function ...
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context);
-
virtual XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr arg1);
-
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */);
-
- XObjectPtr
execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- const XObjectPtr /* arg1 */,
- const XObjectPtr /* arg2 */,
- const XObjectPtr /* arg3 */);
+ XPathExecutionContext& executionContext,
+ XalanNode* context,
+ const XObjectPtr arg,
+ const Locator* locator) const;
- XObjectPtr
- execute(
- XPathExecutionContext& executionContext,
- XalanNode* context,
- int /* opPos */,
- const XObjectArgVectorType& /* args */);
-
#if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
virtual Function*
#else
@@ -131,10 +105,12 @@
return new FunctionUnparsedEntityURI(*this);
}
-private:
+protected:
virtual const XalanDOMString
getError() const;
+
+private:
// Not implemented...
FunctionUnparsedEntityURI&
1.12 +36 -0 xml-xalan/c/src/XSLT/StylesheetConstructionContext.hpp
Index: StylesheetConstructionContext.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContext.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- StylesheetConstructionContext.hpp 2001/07/12 05:05:59 1.11
+++ StylesheetConstructionContext.hpp 2001/09/14 20:49:43 1.12
@@ -371,11 +371,23 @@
virtual void
error(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
+
+ virtual void
+ error(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const = 0;
virtual void
+ error(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
+
+ virtual void
warn(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -383,11 +395,23 @@
virtual void
warn(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
+
+ virtual void
+ warn(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const = 0;
virtual void
+ warn(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
+
+ virtual void
message(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -395,9 +419,21 @@
virtual void
message(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
+
+ virtual void
+ message(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const = 0;
+
+ virtual void
+ message(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const = 0;
};
1.18 +87 -0 xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.cpp
Index: StylesheetConstructionContextDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- StylesheetConstructionContextDefault.cpp 2001/07/12 05:06:00 1.17
+++ StylesheetConstructionContextDefault.cpp 2001/09/14 20:49:43 1.18
@@ -136,6 +136,24 @@
void
StylesheetConstructionContextDefault::error(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ if (locator != 0)
+ {
+ m_processor.error(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_processor.error(msg, sourceNode);
+ }
+}
+
+
+
+void
+StylesheetConstructionContextDefault::error(
const char* msg,
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const
@@ -146,6 +164,17 @@
void
+StylesheetConstructionContextDefault::error(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ error(TranscodeFromLocalCodePage(msg), sourceNode, locator);
+}
+
+
+
+void
StylesheetConstructionContextDefault::warn(
const XalanDOMString& msg,
const XalanNode* sourceNode,
@@ -158,6 +187,24 @@
void
StylesheetConstructionContextDefault::warn(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ if (locator != 0)
+ {
+ m_processor.warn(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_processor.warn(msg, sourceNode);
+ }
+}
+
+
+
+void
+StylesheetConstructionContextDefault::warn(
const char* msg,
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const
@@ -168,6 +215,17 @@
void
+StylesheetConstructionContextDefault::warn(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ warn(TranscodeFromLocalCodePage(msg), sourceNode, locator);
+}
+
+
+
+void
StylesheetConstructionContextDefault::message(
const XalanDOMString& msg,
const XalanNode* sourceNode,
@@ -180,11 +238,40 @@
void
StylesheetConstructionContextDefault::message(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ if (locator != 0)
+ {
+ m_processor.message(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_processor.message(msg, sourceNode);
+ }
+}
+
+
+
+void
+StylesheetConstructionContextDefault::message(
const char* msg,
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const
{
message(TranscodeFromLocalCodePage(msg), sourceNode, styleNode);
+}
+
+
+
+void
+StylesheetConstructionContextDefault::message(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const
+{
+ message(TranscodeFromLocalCodePage(msg), sourceNode, locator);
}
1.19 +36 -0 xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp
Index: StylesheetConstructionContextDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetConstructionContextDefault.hpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- StylesheetConstructionContextDefault.hpp 2001/07/12 05:06:01 1.18
+++ StylesheetConstructionContextDefault.hpp 2001/09/14 20:49:43 1.19
@@ -150,11 +150,23 @@
virtual void
error(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
+
+ virtual void
+ error(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const;
virtual void
+ error(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
+
+ virtual void
warn(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -162,11 +174,23 @@
virtual void
warn(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
+
+ virtual void
+ warn(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const;
virtual void
+ warn(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
+
+ virtual void
message(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -174,9 +198,21 @@
virtual void
message(
+ const XalanDOMString& msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
+
+ virtual void
+ message(
const char* msg,
const XalanNode* sourceNode = 0,
const ElemTemplateElement* styleNode = 0) const;
+
+ virtual void
+ message(
+ const char* msg,
+ const XalanNode* sourceNode,
+ const Locator* locator) const;
// These interfaces are inherited from StylesheetConstructionContext...
1.63 +5 -2 xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp
Index: StylesheetExecutionContext.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContext.hpp,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- StylesheetExecutionContext.hpp 2001/08/13 17:08:53 1.62
+++ StylesheetExecutionContext.hpp 2001/09/14 20:49:43 1.63
@@ -1621,7 +1621,8 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec) = 0;
+ const XObjectArgVectorType& argVec,
+ const Locator* locator) = 0;
virtual XalanDocument*
parseXML(
@@ -1658,7 +1659,9 @@
MutableNodeRefList& nodelist) = 0;
virtual const XObjectPtr
- getVariable(const XalanQName& name) = 0;
+ getVariable(
+ const XalanQName& name,
+ const Locator* locator = 0) = 0;
virtual const PrefixResolver*
getPrefixResolver() const = 0;
1.75 +33 -7 xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp
Index: StylesheetExecutionContextDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- StylesheetExecutionContextDefault.cpp 2001/08/20 22:10:58 1.74
+++ StylesheetExecutionContextDefault.cpp 2001/09/14 20:49:43 1.75
@@ -1543,9 +1543,10 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec)
+ const XObjectArgVectorType& argVec,
+ const Locator* locator)
{
- return m_xpathExecutionContextDefault.extFunction(theNamespace, functionName, context, argVec);
+ return m_xpathExecutionContextDefault.extFunction(theNamespace, functionName, context, argVec, locator);
}
@@ -1632,7 +1633,9 @@
const XObjectPtr
-StylesheetExecutionContextDefault::getVariable(const XalanQName& name)
+StylesheetExecutionContextDefault::getVariable(
+ const XalanQName& name,
+ const Locator* locator)
{
bool fFound;
@@ -1648,7 +1651,9 @@
{
error(
TranscodeFromLocalCodePage("Variable reference given for variable out of context or without definition! Name = '") +
- name.getLocalPart() + "'");
+ name.getLocalPart() + "'",
+ getCurrentNode(),
+ locator);
return getXObjectFactory().createUnknown(name.getLocalPart());
}
@@ -1917,7 +1922,14 @@
{
assert(m_xsltProcessor != 0);
- m_xsltProcessor->error(msg, sourceNode);
+ if (locator != 0)
+ {
+ m_xsltProcessor->error(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_xsltProcessor->error(msg, sourceNode);
+ }
}
@@ -1965,7 +1977,14 @@
{
assert(m_xsltProcessor != 0);
- m_xsltProcessor->warn(msg, sourceNode);
+ if (locator != 0)
+ {
+ m_xsltProcessor->warn(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_xsltProcessor->warn(msg, sourceNode);
+ }
}
@@ -2013,7 +2032,14 @@
{
assert(m_xsltProcessor != 0);
- m_xsltProcessor->message(msg, sourceNode);
+ if (locator != 0)
+ {
+ m_xsltProcessor->message(msg, *locator, sourceNode);
+ }
+ else
+ {
+ m_xsltProcessor->message(msg, sourceNode);
+ }
}
1.67 +5 -2 xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp
Index: StylesheetExecutionContextDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetExecutionContextDefault.hpp,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- StylesheetExecutionContextDefault.hpp 2001/08/20 22:10:58 1.66
+++ StylesheetExecutionContextDefault.hpp 2001/09/14 20:49:43 1.67
@@ -780,7 +780,8 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec);
+ const XObjectArgVectorType& argVec,
+ const Locator* locator);
virtual XalanDocument*
parseXML(
@@ -817,7 +818,9 @@
MutableNodeRefList& nodelist);
virtual const XObjectPtr
- getVariable(const XalanQName& name);
+ getVariable(
+ const XalanQName& name,
+ const Locator* locator = 0);
virtual const PrefixResolver*
getPrefixResolver() const;
1.70 +176 -158 xml-xalan/c/src/XSLT/StylesheetHandler.cpp
Index: StylesheetHandler.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.cpp,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- StylesheetHandler.cpp 2001/09/04 16:24:21 1.69
+++ StylesheetHandler.cpp 2001/09/14 20:49:43 1.70
@@ -63,7 +63,7 @@
#include <sax/Locator.hpp>
-#include <sax/SAXException.hpp>
+#include <sax/SAXParseException.hpp>
#include <util/XMLURL.hpp>
@@ -128,17 +128,11 @@
#include <Include/XalanAutoPtr.hpp>
-const XalanDOMString StylesheetHandler::s_emptyString;
-
-
StylesheetHandler::StylesheetHandler(
Stylesheet& stylesheetTree,
StylesheetConstructionContext& constructionContext) :
FormatterListener(OUTPUT_METHOD_OTHER),
- m_includeBase(stylesheetTree.getBaseIdentifier()),
- m_pendingException(),
- m_exceptionPending(false),
m_stylesheet(stylesheetTree),
m_constructionContext(constructionContext),
m_elemStack(),
@@ -151,6 +145,7 @@
m_foundStylesheet(false),
m_foundNotImport(false),
m_accumulateText(),
+ m_includeBase(stylesheetTree.getBaseIdentifier()),
m_inExtensionElementStack(),
m_inLXSLTScript(false),
m_LXSLTScriptBody(),
@@ -221,9 +216,6 @@
void StylesheetHandler::startDocument()
{
- m_exceptionPending = false;
-
- clear(m_pendingException);
}
@@ -237,11 +229,6 @@
}
m_inExtensionElementStack.clear();
-
- if (m_exceptionPending == true)
- {
- throw SAXException(c_wstr(m_pendingException));
- }
}
@@ -262,9 +249,12 @@
const XalanDOMChar* aname,
const AttributeList& atts,
int which,
+ const Locator* locator,
bool& fPreserve)
{
- const bool isSpaceAttr = equals(aname, Constants::ATTRNAME_XMLSPACE);
+ const XalanQNameByValue theName(XalanDOMString(aname), m_stylesheet.getNamespaces());
+
+ const bool isSpaceAttr = s_spaceAttrQName.equals(theName);
if(isSpaceAttr == false)
{
@@ -284,7 +274,7 @@
}
else
{
- throw SAXException("xml:space has an illegal value");
+ error("xml:space has an illegal value", locator);
}
}
@@ -293,16 +283,33 @@
+inline int
+getLineNumber(const Locator* theLocator)
+{
+ return theLocator == 0 ? -1 : theLocator->getLineNumber();
+}
+
+
+
+inline int
+getColumnNumber(const Locator* theLocator)
+{
+ return theLocator == 0 ? -1 : theLocator->getColumnNumber();
+}
+
+
+
bool
StylesheetHandler::processSpaceAttr(
const AttributeList& atts,
+ const Locator* locator,
bool& fPreserve)
{
const unsigned int len = atts.getLength();
for (unsigned int i = 0; i < len; ++i)
{
- if (processSpaceAttr(atts.getName(i), atts, i, fPreserve) == true)
+ if (processSpaceAttr(atts.getName(i), atts, i, locator, fPreserve) == true)
{
return true;
}
@@ -318,10 +325,6 @@
const XMLCh* const name,
AttributeList& atts)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
m_inExtensionElementStack.push_back(false);
if (m_preserveSpaceStack.empty() == true)
@@ -354,8 +357,8 @@
const Locator* const locator = m_constructionContext.getLocatorFromStack();
- const int lineNumber = 0 != locator ? locator->getLineNumber() : 0;
- const int columnNumber = 0 != locator ? locator->getColumnNumber() : 0;
+ const int lineNumber = getLineNumber(locator);
+ const int columnNumber = getColumnNumber(locator);
// First push namespaces
m_stylesheet.pushNamespaces(atts);
@@ -388,11 +391,11 @@
m_stylesheet.setWrapperless(false);
}
- const int xslToken = m_constructionContext.getElementToken(localName);
+ const int xslToken = m_constructionContext.getElementToken(localName);
if(!m_inTemplate)
{
- processTopLevelElement(name, localName, ns, atts, xslToken, lineNumber, columnNumber, fPreserveSpace, fSpaceAttrProcessed);
+ processTopLevelElement(name, localName, ns, atts, xslToken, locator, fPreserveSpace, fSpaceAttrProcessed);
}
else
{
@@ -424,16 +427,33 @@
case Constants::ELEMNAME_SORT:
{
+ if (m_elemStack.empty() == true)
+ {
+ error("Misplaced xsl:sort.", locator);
+ }
+
+ ElemTemplateElement* const theElement =
+ m_elemStack.back();
+ assert(theElement != 0);
+
+ const int xslToken = theElement->getXSLToken();
+
+ if (xslToken != Constants::ELEMNAME_FOREACH &&
+ xslToken != Constants::ELEMNAME_APPLY_TEMPLATES)
+ {
+ error("Misplaced xsl:sort.", locator);
+ }
+
ElemForEach* foreach =
#if defined(XALAN_OLD_STYLE_CASTS)
- (ElemForEach*)m_elemStack.back();
+ (ElemForEach*)theElement;
#else
- static_cast<ElemForEach*>(m_elemStack.back());
+ static_cast<ElemForEach*>(theElement);
#endif
ElemSort* sortElem = new ElemSort(m_constructionContext,
- m_stylesheet,
- atts, lineNumber, columnNumber);
+ m_stylesheet,
+ atts, lineNumber, columnNumber);
// Note: deleted in ElemForEach destructor
foreach->getSortElems().push_back(sortElem);
@@ -513,12 +533,12 @@
}
else
{
- throw SAXException("(StylesheetHandler) misplaced xsl:when!");
+ error("(StylesheetHandler) misplaced xsl:when.", locator);
}
}
else
{
- throw SAXException("(StylesheetHandler) xsl:when not parented by xsl:choose!");
+ error("(StylesheetHandler) xsl:when not parented by xsl:choose.", locator);
}
}
break;
@@ -541,12 +561,12 @@
}
else
{
- throw SAXException("(StylesheetHandler) misplaced xsl:otherwise!");
+ error("Misplaced xsl:otherwise.", locator);
}
}
else
{
- throw SAXException("(StylesheetHandler) xsl:otherwise not parented by xsl:choose!");
+ error("xsl:otherwise not parented by xsl:choose.", locator);
}
}
break;
@@ -620,14 +640,15 @@
case Constants::ELEMNAME_PRESERVESPACE:
case Constants::ELEMNAME_STRIPSPACE:
{
- XalanDOMString msg("(StylesheetHandler) " + XalanDOMString(name) + " is not allowed inside a template!");
- throw SAXException(c_wstr(msg));
+ const XalanDOMString msg(XalanDOMString(name) + " is not allowed inside a template.");
+
+ error(msg, locator);
}
break;
default:
{
- XalanDOMString msg("Unknown XSL element: " + localName);
+ const XalanDOMString msg("Unknown XSL element: " + localName);
// If this stylesheet is declared to be of a higher version than the one
// supported, don't flag an error.
@@ -637,7 +658,7 @@
}
else
{
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
}
}
@@ -645,7 +666,7 @@
}
else if (!m_inTemplate && startsWith(ns, m_constructionContext.getXalanXSLNameSpaceURL()))
{
- processExtensionElement(name, localName, atts);
+ processExtensionElement(name, localName, atts, locator);
}
else
{
@@ -694,7 +715,7 @@
// Guard against an exception in appendChildElem()...
XalanAutoPtr<ElemTemplateElement> theGuard(elem);
- appendChildElementToParent(elem, lineNumber, columnNumber);
+ appendChildElementToParent(elem, locator);
// The element is parented and will now be
// deleted when the parent is delete...
@@ -707,7 +728,7 @@
// If we haven't processed an xml:space attribute already, look for one...
if (fSpaceAttrProcessed == false)
{
- fSpaceAttrProcessed = processSpaceAttr(atts, fPreserveSpace);
+ fSpaceAttrProcessed = processSpaceAttr(atts, locator, fPreserveSpace);
}
// Only update the stack if we actually processed an xml:space attribute...
@@ -733,24 +754,8 @@
}
}
} // end try
-
- // Here's the story. startElement throws exceptions for certain malformed constructs. These
- // exceptions need to reach the end user. But the parser eats all exceptions and we lose
- // the error messages and exit silently. So, I'll eat the exceptions first, store the message
- // and then throw the exception during endDocument
- catch(SAXException& e)
- {
- m_exceptionPending = true;
-
- m_pendingException = e.getMessage();
-
- doCleanup();
- }
catch(...)
{
- // $$$ ToDo: This probably should't happen, but it does...
- m_exceptionPending = true;
-
doCleanup();
throw;
@@ -857,8 +862,7 @@
const XalanDOMString& ns,
const AttributeList& atts,
int xslToken,
- int lineNumber,
- int columnNumber,
+ const Locator* locator,
bool& fPreserveSpace,
bool& fSpaceAttrProcessed)
{
@@ -867,12 +871,18 @@
m_foundNotImport = true;
}
+ const int lineNumber = getLineNumber(locator);
+ const int columnNumber = getColumnNumber(locator);
+
switch(xslToken)
{
case Constants::ELEMNAME_TEMPLATE:
- m_pTemplate = new ElemTemplate(m_constructionContext,
- m_stylesheet,
- atts, lineNumber, columnNumber);
+ m_pTemplate = new ElemTemplate(
+ m_constructionContext,
+ m_stylesheet,
+ atts,
+ lineNumber,
+ columnNumber);
m_elemStack.push_back(m_pTemplate);
m_elemStackParentedElements.insert(m_pTemplate);
@@ -909,12 +919,12 @@
break;
case Constants::ELEMNAME_LOCALE:
- m_constructionContext.warn(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("xsl:locale not yet supported!")));
+ m_constructionContext.warn(StaticStringToDOMString(XALAN_STATIC_UCODE_STRING("xsl:locale not yet supported.")));
break;
case Constants::ELEMNAME_PRESERVESPACE:
case Constants::ELEMNAME_STRIPSPACE:
- processPreserveStripSpace(name, atts, lineNumber, columnNumber, xslToken);
+ processPreserveStripSpace(name, atts, locator, xslToken);
break;
case Constants::ELEMNAME_KEY:
@@ -940,11 +950,11 @@
break;
case Constants::ELEMNAME_INCLUDE:
- processInclude(name, atts);
+ processInclude(name, atts, locator);
break;
case Constants::ELEMNAME_IMPORT:
- processImport(name, atts);
+ processImport(name, atts, locator);
break;
case Constants::ELEMNAME_OUTPUT:
@@ -1000,21 +1010,22 @@
case Constants::ELEMNAME_APPLY_IMPORTS:
if (inExtensionElement() == false)
{
- XalanDOMString msg("(StylesheetHandler) " + XalanDOMString(name) + " not allowed inside a stylesheet!");
- throw SAXException(c_wstr(msg));
+ const XalanDOMString msg("(StylesheetHandler) " + XalanDOMString(name) + " not allowed inside a stylesheet.");
+
+ error(msg, locator);
}
break;
case Constants::ELEMNAME_STYLESHEET:
- processStylesheet(name, atts, lineNumber, columnNumber, fPreserveSpace, fSpaceAttrProcessed);
+ processStylesheet(name, atts, locator, fPreserveSpace, fSpaceAttrProcessed);
break;
default:
if (inExtensionElement() == false)
{
- XalanDOMString msg("Unknown XSL element: " + localName);
+ const XalanDOMString msg("Unknown XSL element: " + localName);
- throw SAXException(c_wstr(TranscodeFromLocalCodePage("Unknown XSL element: ") + localName));
+ error(msg, locator);
}
break;
}
@@ -1025,8 +1036,7 @@
StylesheetHandler::processStylesheet(
const XalanDOMChar* name,
const AttributeList& atts,
- int /* lineNumber */,
- int /* columnNumber */,
+ const Locator* locator,
bool& fPreserveSpace,
bool& fSpaceAttrProcessed)
{
@@ -1076,7 +1086,7 @@
fVersionFound = true;
}
- else if(processSpaceAttr(aname, atts, i, fPreserveSpace) == true)
+ else if(processSpaceAttr(aname, atts, i, locator, fPreserveSpace) == true)
{
fSpaceAttrProcessed = true;
}
@@ -1090,7 +1100,7 @@
" has an illegal attribute: " +
aname);
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
}
@@ -1102,7 +1112,7 @@
if (fVersionFound == false)
{
- throw SAXException(c_wstr(TranscodeFromLocalCodePage("The stylesheet element did not specify a version attribute!")));
+ error("The stylesheet element did not specify a version attribute.", locator);
}
}
@@ -1112,7 +1122,8 @@
StylesheetHandler::processExtensionElement(
const XalanDOMChar* name,
const XalanDOMString& localName,
- const AttributeList& atts)
+ const AttributeList& atts,
+ const Locator* locator)
{
if (equals(localName, Constants::ATTRNAME_COMPONENTS))
{
@@ -1140,15 +1151,17 @@
}
else if(!isAttrOK(aname, atts, i))
{
- m_constructionContext.error(XalanDOMString(name) + " has an illegal attribute: " + aname);
+ const XalanDOMString msg(XalanDOMString(name) + " has an illegal attribute: " + aname);
+
+ error(msg, locator);
}
}
- if (isEmpty(prefix))
+ if (isEmpty(prefix) == true)
{
- XalanDOMString msg("StylesheetHandler) " + XalanDOMString(name) + " attribute 'prefix' is missing");
+ const XalanDOMString msg("StylesheetHandler) " + XalanDOMString(name) + " attribute 'prefix' is missing");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
// SCOTT: is the line below correct?
@@ -1206,7 +1219,9 @@
}
else if(!isAttrOK(aname, atts, i))
{
- m_constructionContext.error(XalanDOMString(name) + " has an illegal attribute: " + aname);
+ const XalanDOMString msg(XalanDOMString(name) + " has an illegal attribute: " + aname);
+
+ error(msg, locator);
}
}
}
@@ -1222,11 +1237,10 @@
StylesheetHandler::processPreserveStripSpace(
const XalanDOMChar* name,
const AttributeList& atts,
- int lineNumber,
- int columnNumber,
+ const Locator* locator,
int xslToken)
{
- ElemEmpty nsNode(m_constructionContext, m_stylesheet, lineNumber, columnNumber);
+ ElemEmpty nsNode(m_constructionContext, m_stylesheet, getLineNumber(locator), getColumnNumber(locator));
const unsigned int nAttrs = atts.getLength();
@@ -1269,16 +1283,18 @@
}
else if(!isAttrOK(aname, atts, i))
{
- m_constructionContext.error(XalanDOMString(name) + " has an illegal attribute: " + aname);
+ const XalanDOMString msg(XalanDOMString(name) + " has an illegal attribute: " + aname);
+
+ error(msg, locator);
}
}
if(!foundIt && inExtensionElement() == false)
{
- XalanDOMString msg("(StylesheetHandler) " + XalanDOMString(name) +
- " requires a " + Constants::ATTRNAME_ELEMENTS + " attribute!");
+ const XalanDOMString msg("(StylesheetHandler) " + XalanDOMString(name) +
+ " requires a " + Constants::ATTRNAME_ELEMENTS + " attribute.");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
}
@@ -1287,8 +1303,7 @@
void
StylesheetHandler::appendChildElementToParent(
ElemTemplateElement* elem,
- int lineNumber,
- int columnNumber)
+ const Locator* locator)
{
ElemTemplateElement* const parent = m_elemStack.back();
@@ -1316,7 +1331,7 @@
append(theMessage, " is not a valid child of ");
append(theMessage, parent->getElementName());
- error(theMessage, lineNumber, columnNumber);
+ error(theMessage, locator);
}
throw;
@@ -1373,7 +1388,8 @@
void
StylesheetHandler::processImport(
const XalanDOMChar* name,
- const AttributeList& atts)
+ const AttributeList& atts,
+ const Locator* locator)
{
const unsigned int nAttrs = atts.getLength();
@@ -1389,7 +1405,7 @@
if(m_foundNotImport)
{
- throw SAXException("Imports can only occur as the first elements in the stylesheet!");
+ error("Imports can only occur as the first elements in the stylesheet.", locator);
}
const XalanDOMString saved_XSLNameSpaceURL = m_stylesheet.getXSLTNamespaceURI();
@@ -1406,9 +1422,9 @@
if(stackContains(importStack, hrefUrl))
{
- XalanDOMString msg(hrefUrl + " is directly or indirectly importing itself!");
+ const XalanDOMString msg(hrefUrl + " is directly or indirectly importing itself.");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
importStack.push_back(hrefUrl);
@@ -1434,15 +1450,17 @@
}
else if(!isAttrOK(aname, atts, i))
{
- m_constructionContext.error(XalanDOMString(name) + " has an illegal attribute: " + aname);
+ const XalanDOMString msg(XalanDOMString(name) + " has an illegal attribute: " + aname);
+
+ error(msg, locator);
}
}
if(!foundIt)
{
- XalanDOMString msg("Could not find href attribute for " + XalanDOMString(name));
+ const XalanDOMString msg("Could not find href attribute for " + XalanDOMString(name));
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
}
@@ -1450,7 +1468,8 @@
void
StylesheetHandler::processInclude(
const XalanDOMChar* name,
- const AttributeList& atts)
+ const AttributeList& atts,
+ const Locator* locator)
{
const unsigned int nAttrs = atts.getLength();
@@ -1473,9 +1492,9 @@
if(stackContains(m_stylesheet.getIncludeStack(), hrefUrl))
{
- XalanDOMString msg(hrefUrl + " is directly or indirectly including itself!");
+ XalanDOMString msg(hrefUrl + " is directly or indirectly including itself.");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
m_stylesheet.getIncludeStack().push_back(hrefUrl);
@@ -1487,15 +1506,17 @@
}
else if(!isAttrOK(aname, atts, i))
{
- m_constructionContext.error(XalanDOMString(name) + " has an illegal attribute: " + aname);
+ const XalanDOMString msg(XalanDOMString(name) + " has an illegal attribute: " + aname);
+
+ error(msg, locator);
}
}
if(!foundIt)
{
- XalanDOMString msg("Could not find href attribute for " + XalanDOMString(name));
+ const XalanDOMString msg("Could not find href attribute for " + XalanDOMString(name));
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
}
@@ -1504,9 +1525,7 @@
void
StylesheetHandler::endElement(const XMLCh* const name)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
+ const Locator* const locator = m_constructionContext.getLocatorFromStack();
#if !defined(XALAN_NO_NAMESPACES)
using std::for_each;
@@ -1568,15 +1587,15 @@
{
if (isEmpty(m_LXSLTScriptLang))
{
- XalanDOMString msg(XalanDOMString(name) + " attribute \'lang\' is missing");
+ const XalanDOMString msg(XalanDOMString(name) + " attribute \'lang\' is missing");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
if (m_pLXSLTExtensionNSH == 0)
{
- XalanDOMString msg("(StylesheetHandler) misplaced " + XalanDOMString(name) + " element?? Missing container element " + "'component'");
+ const XalanDOMString msg("(StylesheetHandler) misplaced " + XalanDOMString(name) + " element?? Missing container element " + "'component'");
- throw SAXException(c_wstr(msg));
+ error(msg, locator);
}
m_pLXSLTExtensionNSH->setScript(m_LXSLTScriptLang, m_LXSLTScriptSrcURL, m_LXSLTScriptBody);
@@ -1606,10 +1625,6 @@
const XMLCh* const chars,
const unsigned int length)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
accumulateText(chars, length);
}
@@ -1620,10 +1635,6 @@
const XMLCh* const chars,
const unsigned int length)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
accumulateText(chars, length);
processText(chars, length);
@@ -1638,10 +1649,6 @@
const XMLCh* const /*chars*/,
const unsigned int /*length*/)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
// Ignore!
m_lastPopped = 0;
}
@@ -1653,10 +1660,6 @@
const XMLCh* const /*target*/,
const XMLCh* const /*data*/)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
if (isXMLWhitespace(m_accumulateText) == false)
{
processAccumulatedText();
@@ -1672,11 +1675,7 @@
void
StylesheetHandler::comment(const XMLCh* const /*data*/)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == false)
- {
- processAccumulatedText();
- }
+ processAccumulatedText();
}
@@ -1684,11 +1683,7 @@
void
StylesheetHandler::entityReference(const XMLCh* const /*name*/)
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == false)
- {
- processAccumulatedText();
- }
+ processAccumulatedText();
}
@@ -1696,11 +1691,7 @@
void
StylesheetHandler::resetDocument()
{
- // if we have apending exception, we don't want to even try to process this
- if (m_exceptionPending == false)
- {
- clear(m_accumulateText);
- }
+ clear(m_accumulateText);
}
@@ -1710,10 +1701,6 @@
const XMLCh* const /* chars */,
const unsigned int /* length */)
{
- // if we have a pending exception, we don't want to even try to process this
- if (m_exceptionPending == true)
- return;
-
// No action for the moment.
}
@@ -1866,21 +1853,20 @@
void
StylesheetHandler::error(
- const XalanDOMString& theMessage,
- int theLineNumber,
- int theColumnNumber) const
+ const char* theMessage,
+ const Locator* theLocator) const
{
- XalanDOMString theErrorMessage(theMessage);
-
- append(theErrorMessage, ", at line ");
- LongToDOMString(theLineNumber, theErrorMessage);
+ m_constructionContext.error(theMessage, 0, theLocator);
+}
- append(theErrorMessage, ", offset ");
- LongToDOMString(theColumnNumber, theErrorMessage);
- append(theErrorMessage, ".");
- throw SAXException(c_wstr(theErrorMessage));
+void
+StylesheetHandler::error(
+ const XalanDOMString& theMessage,
+ const Locator* theLocator) const
+{
+ m_constructionContext.error(theMessage, 0, theLocator);
}
@@ -1948,4 +1934,36 @@
m_handler.m_stylesheet.getNamespacesHandler().swap(m_namespacesHandler);
m_handler.m_inExtensionElementStack.swap(m_inExtensionElementStack);
m_handler.m_preserveSpaceStack.swap(m_preserveSpaceStack);
+}
+
+
+
+const XalanDOMString StylesheetHandler::s_emptyString;
+
+XalanDOMString s_localPart;
+
+XalanQNameByReference s_spaceAttrQName;
+
+const XalanQName& StylesheetHandler::s_spaceAttrQName = ::s_spaceAttrQName;
+
+
+
+void
+StylesheetHandler::initialize()
+{
+ ::s_localPart = XALAN_STATIC_UCODE_STRING("space");
+
+ ::s_spaceAttrQName.setLocalPart(::s_localPart);
+
+ ::s_spaceAttrQName.setNamespace(DOMServices::s_XMLNamespaceURI);
+}
+
+
+
+void
+StylesheetHandler::terminate()
+{
+ releaseMemory(::s_localPart);
+
+ ::s_spaceAttrQName.clear();
}
1.30 +41 -24 xml-xalan/c/src/XSLT/StylesheetHandler.hpp
Index: StylesheetHandler.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/StylesheetHandler.hpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- StylesheetHandler.hpp 2001/05/14 01:03:12 1.29
+++ StylesheetHandler.hpp 2001/09/14 20:49:43 1.30
@@ -89,6 +89,7 @@
class ElemTextLiteral;
class ExtensionNSHandler;
class StylesheetConstructionContext;
+class XalanQName;
@@ -117,11 +118,18 @@
#endif
/**
- * Stack to keep track of the current include base.
+ * Perform static initialization. See class XMLSupportInit.
*/
- XalanDOMString m_includeBase;
+ static void
+ initialize();
/**
+ * Perform static shut down. See class XMLSupportInit.
+ */
+ static void
+ terminate();
+
+ /**
* Construct a StylesheetHandler ... it will add the DOM nodes
* to the document fragment.
*/
@@ -378,6 +386,7 @@
* @param aname The name of the attribute in question.
* @param atts The attribute list that owns the attribute.
* @param which The index of the attribute into the attribute list.
+ * @param locator A Locator instance for error reporting.
* @param fPreserve set to true if the attribute value is "preserve"
* @return True if this is a xml:space attribute.
*/
@@ -386,18 +395,21 @@
const XalanDOMChar* aname,
const AttributeList& atts,
int which,
+ const Locator* locator,
bool& fPreserve);
/**
* Tell whether or not this is a xml:space attribute and, if so, process it.
*
* @param atts The attribute list that owns the attribute.
+ * @param locator A Locator instance for error reporting.
* @param fPreserve set to true if an xml:space attribute value is "preserve"
* @return True if this is a xml:space attribute.
*/
bool
processSpaceAttr(
const AttributeList& atts,
+ const Locator* locator,
bool& fPreserve);
/**
@@ -406,20 +418,17 @@
void
processImport(
const XalanDOMChar* name,
- const AttributeList& atts);
+ const AttributeList& atts,
+ const Locator* locator);
/**
* Process xsl:include.
*/
void
- processInclude(const XalanDOMChar* name,
- const AttributeList& atts);
-
- void
- error(
- const XalanDOMString& theMessage,
- int theLineNumber,
- int theColumnNumber) const;
+ processInclude(
+ const XalanDOMChar* name,
+ const AttributeList& atts,
+ const Locator* locator);
void
doCleanup();
@@ -431,9 +440,19 @@
StylesheetHandler&
operator=(const StylesheetHandler&);
+
+ // Utility functions...
+ void
+ error(
+ const char* theMessage,
+ const Locator* theLocator) const;
- // Utility function...
void
+ error(
+ const XalanDOMString& theMessage,
+ const Locator* theLocator) const;
+
+ void
processText(
const XMLCh* const chars,
const unsigned int length);
@@ -453,8 +472,7 @@
const XalanDOMString& ns,
const AttributeList& atts,
int xslToken,
- int lineNumber,
- int columnNumber,
+ const Locator* locator,
bool& fPreserveSpace,
bool& fSpaceAttrProcessed);
@@ -462,8 +480,7 @@
processStylesheet(
const XalanDOMChar* name,
const AttributeList& atts,
- int lineNumber,
- int columnNumber,
+ const Locator* locator,
bool& fPreserveSpace,
bool& fSpaceAttrProcessed);
@@ -471,15 +488,13 @@
processPreserveStripSpace(
const XalanDOMChar* name,
const AttributeList& atts,
- int lineNumber,
- int columnNumber,
+ const Locator* locator,
int xslToken);
void
appendChildElementToParent(
ElemTemplateElement* elem,
- int lineNumber,
- int columnNumber);
+ const Locator* locator);
bool
inExtensionElement() const;
@@ -488,13 +503,11 @@
processExtensionElement(
const XalanDOMChar* name,
const XalanDOMString& localName,
- const AttributeList& atts);
+ const AttributeList& atts,
+ const Locator* locator);
// Data members...
- XalanDOMString m_pendingException;
- bool m_exceptionPending;
-
/**
* The owning stylesheet.
*/
@@ -564,6 +577,8 @@
*/
XalanDOMString m_accumulateText;
+ XalanDOMString m_includeBase;
+
BoolStackType m_inExtensionElementStack;
BoolStackType m_preserveSpaceStack;
@@ -637,6 +652,8 @@
friend class PushPopIncludeState;
static const XalanDOMString s_emptyString;
+
+ static const XalanQName& s_spaceAttrQName;
};
1.117 +67 -1 xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
Index: XSLTEngineImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
retrieving revision 1.116
retrieving revision 1.117
diff -u -r1.116 -r1.117
--- XSLTEngineImpl.cpp 2001/09/12 17:48:03 1.116
+++ XSLTEngineImpl.cpp 2001/09/14 20:49:43 1.117
@@ -1229,6 +1229,17 @@
void
XSLTEngineImpl::message(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode) const
+{
+ problem(msg, ProblemListener::eMESSAGE, locator, sourceNode);
+}
+
+
+
+void
+XSLTEngineImpl::message(
const char* msg,
const XalanNode* sourceNode,
const XalanNode* styleNode) const
@@ -1344,8 +1355,8 @@
m_problemListener->problem(
ProblemListener::eXSLPROCESSOR,
classification,
- styleNode,
sourceNode,
+ styleNode,
msg,
id,
lineNumber,
@@ -1361,6 +1372,39 @@
void
+XSLTEngineImpl::problem(
+ const XalanDOMString& msg,
+ ProblemListener::eClassification classification,
+ const Locator& locator,
+ const XalanNode* sourceNode) const
+{
+ const XalanDOMChar* const id = locator.getSystemId();
+
+ const int lineNumber = locator.getLineNumber();
+ const int columnNumber = locator.getColumnNumber();
+
+ if (m_problemListener != 0)
+ {
+ m_problemListener->problem(
+ ProblemListener::eXSLPROCESSOR,
+ classification,
+ sourceNode,
+ 0,
+ msg,
+ id,
+ lineNumber,
+ columnNumber);
+ }
+
+ if (classification == ProblemListener::eERROR)
+ {
+ throw XSLTProcessorException(msg, XalanDOMString(id), lineNumber, columnNumber);
+ }
+}
+
+
+
+void
XSLTEngineImpl::warn(
const XalanDOMString& msg,
const XalanNode* sourceNode,
@@ -1384,6 +1428,17 @@
void
XSLTEngineImpl::warn(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode) const
+{
+ problem(msg, ProblemListener::eWARNING, locator, sourceNode);
+}
+
+
+
+void
+XSLTEngineImpl::warn(
const char* msg,
const XalanNode* sourceNode,
const XalanNode* styleNode) const
@@ -1411,6 +1466,17 @@
const ElemTemplateElement* styleNode) const
{
problem(msg, ProblemListener::eERROR, sourceNode, styleNode);
+}
+
+
+
+void
+XSLTEngineImpl::error(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode) const
+{
+ problem(msg, ProblemListener::eERROR, locator, sourceNode);
}
1.74 +25 -0 xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
Index: XSLTEngineImpl.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- XSLTEngineImpl.hpp 2001/07/23 01:39:45 1.73
+++ XSLTEngineImpl.hpp 2001/09/14 20:49:43 1.74
@@ -773,6 +773,12 @@
const XalanNode* styleNode = 0) const;
virtual void
+ message(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const;
+
+ virtual void
warn(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -798,6 +804,12 @@
const XalanNode* styleNode = 0) const;
virtual void
+ warn(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const;
+
+ virtual void
error(
const XalanDOMString& msg,
const XalanNode* sourceNode = 0,
@@ -809,6 +821,12 @@
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const;
+ virtual void
+ error(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const;
+
/**
* Report an error, and throw an exception.
*
@@ -1591,6 +1609,13 @@
ProblemListener::eClassification classification,
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const;
+
+ void
+ problem(
+ const XalanDOMString& msg,
+ ProblemListener::eClassification classification,
+ const Locator& locator,
+ const XalanNode* sourceNode) const;
//==========================================================
// SECTION: Function to do with attribute handling
1.25 +44 -4 xml-xalan/c/src/XSLT/XSLTProcessor.hpp
Index: XSLTProcessor.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessor.hpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- XSLTProcessor.hpp 2001/08/13 17:08:54 1.24
+++ XSLTProcessor.hpp 2001/09/14 20:49:43 1.25
@@ -75,6 +75,7 @@
class ElemTemplateElement;
class FormatterListener;
class GenerateEvent;
+class Locator;
class NodeRefListBase;
class PrefixResolver;
class PrintWriter;
@@ -446,11 +447,24 @@
const ElemTemplateElement* styleNode) const = 0;
/**
+ * Report a message.
+ *
+ * @param msg text of message to output
+ * @param locator A Locator for error reporting
+ * @param sourceNode node in source where message occurred
+ */
+ virtual void
+ message(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const = 0;
+
+ /**
* Report a warning.
*
* @param msg text of message to output
- * @param sourceNode node in source where error occurred
- * @param styleNode node in stylesheet where error occurred
+ * @param sourceNode node in source where the warning occurred
+ * @param styleNode node in stylesheet where the warning occurred
*/
virtual void
warn(
@@ -462,8 +476,8 @@
* Report a warning.
*
* @param msg text of message to output
- * @param sourceNode node in source where error occurred
- * @param styleNode node in stylesheet where error occurred
+ * @param sourceNode node in source where warning occurred
+ * @param styleNode node in stylesheet where warning occurred
*/
virtual void
warn(
@@ -472,6 +486,19 @@
const ElemTemplateElement* styleNode) const = 0;
/**
+ * Report a warning.
+ *
+ * @param msg text of message to output
+ * @param locator A Locator for error reporting
+ * @param sourceNode node in source where error occurred
+ */
+ virtual void
+ warn(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const = 0;
+
+ /**
* Report an error and throw an exception.
*
* @param msg text of message to output
@@ -496,6 +523,19 @@
const XalanDOMString& msg,
const XalanNode* sourceNode,
const ElemTemplateElement* styleNode) const = 0;
+
+ /**
+ * Report an error and throw an exception.
+ *
+ * @param msg text of message to output
+ * @param locator A Locator for error reporting
+ * @param sourceNode node in source where error occurred
+ */
+ virtual void
+ error(
+ const XalanDOMString& msg,
+ const Locator& locator,
+ const XalanNode* sourceNode = 0) const = 0;
};
1.12 +2 -1 xml-xalan/c/src/XSLT/XSLTProcessorEnvSupport.hpp
Index: XSLTProcessorEnvSupport.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessorEnvSupport.hpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- XSLTProcessorEnvSupport.hpp 2001/07/18 04:33:15 1.11
+++ XSLTProcessorEnvSupport.hpp 2001/09/14 20:49:43 1.12
@@ -122,7 +122,8 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec) const = 0;
+ const XObjectArgVectorType& argVec,
+ const Locator* locator) const = 0;
virtual bool
problem(
1.24 +9 -6 xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.cpp
Index: XSLTProcessorEnvSupportDefault.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- XSLTProcessorEnvSupportDefault.cpp 2001/07/18 04:33:15 1.23
+++ XSLTProcessorEnvSupportDefault.cpp 2001/09/14 20:49:43 1.24
@@ -278,13 +278,16 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec) const
+ const XObjectArgVectorType& argVec,
+ const Locator* locator) const
{
- return m_defaultSupport.extFunction(executionContext,
- theNamespace,
- functionName,
- context,
- argVec);
+ return m_defaultSupport.extFunction(
+ executionContext,
+ theNamespace,
+ functionName,
+ context,
+ argVec,
+ locator);
}
1.19 +2 -1 xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.hpp
Index: XSLTProcessorEnvSupportDefault.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTProcessorEnvSupportDefault.hpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- XSLTProcessorEnvSupportDefault.hpp 2001/07/18 04:33:15 1.18
+++ XSLTProcessorEnvSupportDefault.hpp 2001/09/14 20:49:43 1.19
@@ -187,7 +187,8 @@
const XalanDOMString& theNamespace,
const XalanDOMString& functionName,
XalanNode* context,
- const XObjectArgVectorType& argVec) const;
+ const XObjectArgVectorType& argVec,
+ const Locator* locator) const;
virtual bool
problem(
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org