15 #define WITH_XSLT_DEBUG_VARIABLE
19const xmlChar *xsltDocFragFake = (
const xmlChar *)
" fake node libxslt";
23 (
const xmlChar *)
" var/param being computed";
25#define XSLT_VAR_GLOBAL (1<<0)
26#define XSLT_VAR_IN_SELECT (1<<1)
27#define XSLT_TCTXT_VARIABLE(c) ((xsltStackElemPtr) (c)->contextVariable)
66#ifdef XSLT_DEBUG_PROFILE_CACHE
67 ctxt->
cache->dbgReusedRVTs++;
101 if ((ctxt ==
NULL) || (RVT ==
NULL))
141 if ((ctxt ==
NULL) || (RVT ==
NULL))
191 "xsltExtensionInstructionResultFinalize is unsupported "
192 "in this release of libxslt.\n");
251 if ((
obj->type != XPATH_NODESET) && (
obj->type != XPATH_XSLT_TREE))
253 if ((
obj->nodesetval ==
NULL) || (
obj->nodesetval->nodeNr == 0))
256 for (
i = 0;
i <
obj->nodesetval->nodeNr;
i++) {
257 cur =
obj->nodesetval->nodeTab[
i];
270 "Internal error in xsltFlagRVTs(): "
271 "Cannot retrieve the doc of a namespace node.\n");
279 "Internal error in xsltFlagRVTs(): "
280 "Cannot retrieve the doc of a node.\n");
283 if (doc->
name && (doc->
name[0] ==
' ') &&
291#ifdef WITH_XSLT_DEBUG_VARIABLE
293 "Flagging RVT %p: %p -> %p\n", doc, doc->
psvi,
val));
302 "xsltFlagRVTs: Invalid transition %p => GLOBAL\n",
366#ifdef XSLT_DEBUG_PROFILE_CACHE
367 ctxt->
cache->dbgCachedRVTs++;
396 if ((ctxt ==
NULL) || (RVT ==
NULL))
return(-1);
491#ifdef XSLT_DEBUG_PROFILE_CACHE
492 ctxt->
cache->dbgReusedVars++;
499 "xsltNewStackElem : malloc failed\n");
522 "xsltCopyStackElem : malloc failed\n");
546 xmlXPathFreeObject(
elem->value);
564 "xsltFreeStackElem: Unexpected RVT flag %p\n",
572 if (
elem->context && (
elem->context->cache->nbStackItems < 50)) {
578 elem->context = ctxt;
582#ifdef XSLT_DEBUG_PROFILE_CACHE
583 ctxt->
cache->dbgCachedVars++;
622static int stack_addr = 0;
623static int stack_cmp = 0;
644 if ((
cur->name ==
name) && (
cur->nameURI == nameURI)) {
665 if ((
cur->name ==
name) && (
cur->nameURI == nameURI)) {
678#ifdef XSLT_REFACTORED
798static xmlXPathObjectPtr
802#ifdef XSLT_REFACTORED
803 xsltStyleItemVariablePtr comp =
804 (xsltStyleItemVariablePtr) castedComp;
819 oldInst = ctxt->
inst;
821#ifdef WITH_XSLT_DEBUG_VARIABLE
823 "Evaluating variable '%s'\n",
variable->name));
826 xmlXPathCompExprPtr xpExpr =
NULL;
829 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
831 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
834 if ((comp !=
NULL) && (comp->comp !=
NULL)) {
844 oldXPDoc = xpctxt->
doc;
845 oldXPContextNode = xpctxt->node;
846 oldXPProximityPosition = xpctxt->proximityPosition;
847 oldXPContextSize = xpctxt->contextSize;
848 oldXPNamespaces = xpctxt->namespaces;
849 oldXPNsNr = xpctxt->nsNr;
851 xpctxt->node = ctxt->
node;
876#ifdef XSLT_REFACTORED
877 if (comp->inScopeNs !=
NULL) {
878 xpctxt->namespaces = comp->inScopeNs->list;
879 xpctxt->nsNr = comp->inScopeNs->xpathNumber;
881 xpctxt->namespaces =
NULL;
885 xpctxt->namespaces = comp->nsList;
886 xpctxt->nsNr = comp->nsNr;
889 xpctxt->namespaces =
NULL;
903 result = xmlXPathCompiledEval(xpExpr, xpctxt);
911 xpctxt->doc = oldXPDoc;
912 xpctxt->node = oldXPContextNode;
913 xpctxt->contextSize = oldXPContextSize;
914 xpctxt->proximityPosition = oldXPProximityPosition;
915 xpctxt->namespaces = oldXPNamespaces;
916 xpctxt->nsNr = oldXPNsNr;
918 if ((comp ==
NULL) || (comp->comp ==
NULL))
919 xmlXPathFreeCompExpr(xpExpr);
923 "Failed to evaluate the expression of variable '%s'.\n",
927#ifdef WITH_XSLT_DEBUG_VARIABLE
928#ifdef LIBXML_DEBUG_ENABLED
939 result = xmlXPathNewCString(
"");
946 int oldLastTextSize, oldLastTextUse;
996 result = xmlXPathNewCString(
"");
1004#ifdef WITH_XSLT_DEBUG_VARIABLE
1005#ifdef LIBXML_DEBUG_ENABLED
1017 ctxt->
inst = oldInst;
1031static xmlXPathObjectPtr
1038#ifdef XSLT_REFACTORED
1039 xsltStyleBasicItemVariablePtr comp;
1047 return(
elem->value);
1050#ifdef WITH_XSLT_DEBUG_VARIABLE
1052 "Evaluating global variable %s\n",
elem->name));
1061 oldInst = ctxt->
inst;
1062#ifdef XSLT_REFACTORED
1063 comp = (xsltStyleBasicItemVariablePtr)
elem->comp;
1067 oldVarName =
elem->name;
1076 xmlXPathCompExprPtr xpExpr =
NULL;
1079 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
1081 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
1083 if ((comp !=
NULL) && (comp->comp !=
NULL)) {
1084 xpExpr = comp->comp;
1086 xpExpr = xmlXPathCtxtCompile(ctxt->
xpathCtxt,
elem->select);
1093 ctxt->
inst = comp->inst;
1108 oldXPDoc = xpctxt->
doc;
1109 oldXPContextNode = xpctxt->node;
1110 oldXPProximityPosition = xpctxt->proximityPosition;
1111 oldXPContextSize = xpctxt->contextSize;
1112 oldXPNamespaces = xpctxt->namespaces;
1113 oldXPNsNr = xpctxt->nsNr;
1117 xpctxt->contextSize = 1;
1118 xpctxt->proximityPosition = 1;
1122#ifdef XSLT_REFACTORED
1123 if (comp->inScopeNs !=
NULL) {
1124 xpctxt->namespaces = comp->inScopeNs->list;
1125 xpctxt->nsNr = comp->inScopeNs->xpathNumber;
1127 xpctxt->namespaces =
NULL;
1131 xpctxt->namespaces = comp->nsList;
1132 xpctxt->nsNr = comp->nsNr;
1135 xpctxt->namespaces =
NULL;
1139 result = xmlXPathCompiledEval(xpExpr, xpctxt);
1144 xpctxt->doc = oldXPDoc;
1145 xpctxt->node = oldXPContextNode;
1146 xpctxt->contextSize = oldXPContextSize;
1147 xpctxt->proximityPosition = oldXPProximityPosition;
1148 xpctxt->namespaces = oldXPNamespaces;
1149 xpctxt->nsNr = oldXPNsNr;
1151 if ((comp ==
NULL) || (comp->comp ==
NULL))
1152 xmlXPathFreeCompExpr(xpExpr);
1156 "Evaluating global variable %s failed\n",
elem->name);
1159 "Evaluating global variable %s failed\n",
elem->name);
1170#ifdef WITH_XSLT_DEBUG_VARIABLE
1171#ifdef LIBXML_DEBUG_ENABLED
1180 result = xmlXPathNewCString(
"");
1197 oldOutput = ctxt->
output;
1198 oldInsert = ctxt->
insert;
1213 ctxt->
insert = oldInsert;
1214 ctxt->
output = oldOutput;
1218 result = xmlXPathNewCString(
"");
1222#ifdef WITH_XSLT_DEBUG_VARIABLE
1223#ifdef LIBXML_DEBUG_ENABLED
1234 elem->name = oldVarName;
1235 ctxt->
inst = oldInst;
1267#ifdef WITH_XSLT_DEBUG_VARIABLE
1269 "Registering global variables\n"));
1278#ifdef WITH_XSLT_DEBUG_VARIABLE
1281 "Registering global variables from %s\n",
1311 "Global variable %s already defined\n",
elem->name);
1357#ifdef WITH_XSLT_DEBUG_VARIABLE
1360 "Defining global param %s\n",
name);
1363 "Defining global variable %s\n",
name);
1375 tmp =
style->variables;
1380 while (tmp !=
NULL) {
1388 "redefinition of global variable %s\n",
elem->name);
1446 xmlXPathCompExprPtr xpExpr;
1447 xmlXPathObjectPtr
result;
1462#ifdef WITH_XSLT_DEBUG_VARIABLE
1464 "Evaluating user parameter %s=%s\n",
name,
value));
1472 if (
name[0] ==
'{') {
1478 "user param : malformed parameter name : %s\n",
name);
1486 if (prefix !=
NULL) {
1493 "user param : no namespace bound to prefix %s\n", prefix);
1507 "Global parameter %s already defined\n",
name);
1538 if (xpExpr !=
NULL) {
1541 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
1543 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
1548 oldXPDoc = xpctxt->
doc;
1549 oldXPContextNode = xpctxt->node;
1550 oldXPProximityPosition = xpctxt->proximityPosition;
1551 oldXPContextSize = xpctxt->contextSize;
1552 oldXPNamespaces = xpctxt->namespaces;
1553 oldXPNsNr = xpctxt->nsNr;
1566 xpctxt->contextSize = 1;
1567 xpctxt->proximityPosition = 1;
1572 xpctxt->namespaces =
NULL;
1575 result = xmlXPathCompiledEval(xpExpr, xpctxt);
1580 xpctxt->doc = oldXPDoc;
1581 xpctxt->node = oldXPContextNode;
1582 xpctxt->contextSize = oldXPContextSize;
1583 xpctxt->proximityPosition = oldXPProximityPosition;
1584 xpctxt->namespaces = oldXPNamespaces;
1585 xpctxt->nsNr = oldXPNsNr;
1587 xmlXPathFreeCompExpr(xpExpr);
1591 "Evaluating user parameter %s failed\n",
name);
1608#ifdef WITH_XSLT_DEBUG_VARIABLE
1609#ifdef LIBXML_DEBUG_ENABLED
1641 "Global parameter %s already defined\n",
name);
1770#ifdef XSLT_REFACTORED
1771 xsltStyleBasicItemVariablePtr comp =
1772 (xsltStyleBasicItemVariablePtr) castedComp;
1778#ifdef WITH_XSLT_DEBUG_VARIABLE
1780 "Building variable %s", comp->name));
1781 if (comp->select !=
NULL)
1783 " select %s", comp->select));
1791 elem->name = comp->name;
1792 elem->select = comp->select;
1793 elem->nameURI = comp->ns;
1817#ifdef XSLT_REFACTORED
1818 xsltStyleBasicItemVariablePtr comp =
1819 (xsltStyleBasicItemVariablePtr) castedComp;
1826#ifdef XSLT_REFACTORED
1835 if ((present != 0) && (present != 3)) {
1838 "XSLT-variable: Redefinition of variable '%s'.\n", comp->
name);
1841 }
else if (present != 0) {
1842 if ((present == 1) || (present == 2)) {
1845 "XSLT-param: Redefinition of parameter '%s'.\n", comp->
name);
1848#ifdef WITH_XSLT_DEBUG_VARIABLE
1850 "param %s defined by caller\n", comp->name));
1872static xmlXPathObjectPtr
1886#ifdef WITH_XSLT_DEBUG_VARIABLE
1888 "global variable not found %s\n",
name));
1896 if (
elem->computed == 0) {
1899 "Recursive definition of %s\n",
name);
1905 return(xmlXPathObjectCopy(
ret));
1931 if (
elem->computed == 0) {
1932#ifdef WITH_XSLT_DEBUG_VARIABLE
1934 "uncomputed variable %s\n",
name));
1940 return(xmlXPathObjectCopy(
elem->value));
1941#ifdef WITH_XSLT_DEBUG_VARIABLE
1943 "variable not found %s\n",
name));
1964#ifdef XSLT_REFACTORED
1965 xsltStyleBasicItemVariablePtr comp;
1976#ifdef XSLT_REFACTORED
1977 comp = (xsltStyleBasicItemVariablePtr) inst->
psvi;
1984 "Internal error in xsltParseStylesheetCallerParam(): "
1985 "The XSLT 'with-param' instruction was not compiled.\n");
1988 if (comp->name ==
NULL) {
1990 "Internal error in xsltParseStylesheetCallerParam(): "
1991 "XSLT 'with-param': The attribute 'name' was not compiled.\n");
1995#ifdef WITH_XSLT_DEBUG_VARIABLE
1997 "Handling xsl:with-param %s\n", comp->name));
2000 if (comp->select ==
NULL) {
2003#ifdef WITH_XSLT_DEBUG_VARIABLE
2005 " select %s\n", comp->select));
2026#ifdef XSLT_REFACTORED
2027 xsltStyleItemVariablePtr comp;
2035#ifdef XSLT_REFACTORED
2040 comp = (xsltStyleItemVariablePtr)
cur->psvi;
2047 "xsl:variable : compilation failed\n");
2051 if (comp->name ==
NULL) {
2053 "xsl:variable : missing name attribute\n");
2061#ifdef XSLT_REFACTORED
2062 xsltParseSequenceConstructor(XSLT_CCTXT(
style),
cur->children);
2067#ifdef WITH_XSLT_DEBUG_VARIABLE
2069 "Registering global variable %s\n", comp->name);
2088#ifdef XSLT_REFACTORED
2089 xsltStyleItemParamPtr comp;
2097#ifdef XSLT_REFACTORED
2102 comp = (xsltStyleItemParamPtr)
cur->psvi;
2109 "xsl:param : compilation failed\n");
2113 if (comp->name ==
NULL) {
2115 "xsl:param : missing name attribute\n");
2123#ifdef XSLT_REFACTORED
2124 xsltParseSequenceConstructor(XSLT_CCTXT(
style),
cur->children);
2130#ifdef WITH_XSLT_DEBUG_VARIABLE
2132 "Registering global param %s\n", comp->name);
2151#ifdef XSLT_REFACTORED
2152 xsltStyleItemVariablePtr comp;
2163 "Internal error in xsltParseStylesheetVariable(): "
2164 "The XSLT 'variable' instruction was not compiled.\n");
2167 if (comp->name ==
NULL) {
2169 "Internal error in xsltParseStylesheetVariable(): "
2170 "The attribute 'name' was not compiled.\n");
2174#ifdef WITH_XSLT_DEBUG_VARIABLE
2176 "Registering variable '%s'\n", comp->name));
2193#ifdef XSLT_REFACTORED
2194 xsltStyleItemParamPtr comp;
2203 if ((comp ==
NULL) || (comp->name ==
NULL)) {
2205 "Internal error in xsltParseStylesheetParam(): "
2206 "The XSLT 'param' declaration was not compiled correctly.\n");
2210#ifdef WITH_XSLT_DEBUG_VARIABLE
2212 "Registering param %s\n", comp->name));
2246 xmlXPathObjectPtr valueObj =
NULL;
2251#ifdef WITH_XSLT_DEBUG_VARIABLE
2253 "Lookup variable '%s'\n",
name));
2265 if (tctxt->
varsNr != 0) {
2271 if ((
cur->name ==
name) && (
cur->nameURI == ns_uri)) {
2276 goto local_variable_found;
2287 const xmlChar *tmpName =
name, *tmpNsName = ns_uri;
2292 if ((tmpName !=
name) || (tmpNsName != ns_uri)) {
2295 if ((
cur->name ==
name) && (
cur->nameURI == ns_uri)) {
2300 goto local_variable_found;
2306local_variable_found:
2311#ifdef WITH_XSLT_DEBUG_VARIABLE
2313 "uncomputed variable '%s'\n",
name));
2319 valueObj = xmlXPathObjectCopy(
variable->value);
2331 if (valueObj ==
NULL) {
2333#ifdef WITH_XSLT_DEBUG_VARIABLE
2335 "variable not found '%s'\n",
name));
2340 "Variable '{%s}%s' has not been declared.\n", ns_uri,
name);
2343 "Variable '%s' has not been declared.\n",
name);
2347#ifdef WITH_XSLT_DEBUG_VARIABLE
2349 "found variable '%s'\n",
name));
void xsltStylePreCompute(xsltStylesheetPtr style, xmlNodePtr inst)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
xsltStylesheetPtr xsltNextImport(xsltStylesheetPtr cur)
void xsltFreeDocumentKeys(xsltDocumentPtr idoc)
static unsigned __int64 next
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XMLPUBFUN int XMLCALL xmlDictReference(xmlDictPtr dict)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR void * xmlGenericErrorContext
XMLPUBVAR xmlReallocFunc xmlRealloc
XMLPUBVAR xmlGenericErrorFunc xmlGenericError
XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
XMLPUBFUN void XMLCALL xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreate(int size)
XMLPUBFUN void *XMLCALL xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
XMLPUBFUN void XMLCALL xmlHashScan(xmlHashTablePtr table, xmlHashScanner f, void *data)
XMLPUBFUN xmlNodePtr XMLCALL xmlDocGetRootElement(const xmlDoc *doc)
XMLPUBFUN void XMLCALL xmlFreeDoc(xmlDocPtr cur)
XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace)
XMLPUBFUN xmlDocPtr XMLCALL xmlNewDoc(const xmlChar *version)
XMLPUBFUN void XMLCALL xmlFreeNodeList(xmlNodePtr cur)
struct _xmlNode * children
struct _xmlNode * children
struct _xsltStackElem * next
xsltStackElemPtr variables
xmlHashTablePtr globalVars
xsltTransformCachePtr cache
xmlNodePtr initialContextNode
xsltStackElemPtr * varsTab
xmlXPathContextPtr xpathCtxt
xmlDocPtr initialContextDoc
XMLPUBFUN void XMLCALL xmlFreeIDTable(xmlIDTablePtr table)
void xsltFreeRVTs(xsltTransformContextPtr ctxt)
static int xsltRegisterGlobalVariable(xsltStylesheetPtr style, const xmlChar *name, const xmlChar *ns_uri, const xmlChar *sel, xmlNodePtr tree, xsltStylePreCompPtr comp, const xmlChar *value)
xmlXPathObjectPtr xsltXPathVariableLookup(void *ctxt, const xmlChar *name, const xmlChar *ns_uri)
xmlDocPtr xsltCreateRVT(xsltTransformContextPtr ctxt)
int xsltEvalGlobalVariables(xsltTransformContextPtr ctxt)
static xmlXPathObjectPtr xsltEvalVariable(xsltTransformContextPtr ctxt, xsltStackElemPtr variable, xsltStylePreCompPtr castedComp)
static xmlXPathObjectPtr xsltEvalGlobalVariable(xsltStackElemPtr elem, xsltTransformContextPtr ctxt)
static xmlXPathObjectPtr xsltGlobalVariableLookup(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri)
int xsltRegisterTmpRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
void xsltParseGlobalVariable(xsltStylesheetPtr style, xmlNodePtr cur)
int xsltRegisterLocalRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
void xsltParseGlobalParam(xsltStylesheetPtr style, xmlNodePtr cur)
static xsltStackElemPtr xsltBuildVariable(xsltTransformContextPtr ctxt, xsltStylePreCompPtr castedComp, xmlNodePtr tree)
int xsltExtensionInstructionResultFinalize(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED)
int xsltRegisterPersistRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
void xsltParseStylesheetParam(xsltTransformContextPtr ctxt, xmlNodePtr cur)
void xsltReleaseRVT(xsltTransformContextPtr ctxt, xmlDocPtr RVT)
static int xsltCheckStackElem(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *nameURI)
static xsltStackElemPtr xsltCopyStackElem(xsltStackElemPtr elem)
static xsltStackElemPtr xsltNewStackElem(xsltTransformContextPtr ctxt)
void xsltParseStylesheetVariable(xsltTransformContextPtr ctxt, xmlNodePtr inst)
void xsltFreeGlobalVariables(xsltTransformContextPtr ctxt)
xsltStackElemPtr xsltParseStylesheetCallerParam(xsltTransformContextPtr ctxt, xmlNodePtr inst)
static xsltStackElemPtr xsltStackLookup(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *nameURI)
void xsltFreeStackElemList(xsltStackElemPtr elem)
int xsltQuoteOneUserParam(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *value)
static void xsltEvalGlobalVariableWrapper(void *payload, void *data, const xmlChar *name ATTRIBUTE_UNUSED)
xmlXPathObjectPtr xsltVariableLookup(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *ns_uri)
static const xmlChar * xsltComputingGlobalVarMarker
int xsltExtensionInstructionResultRegister(xsltTransformContextPtr ctxt ATTRIBUTE_UNUSED, xmlXPathObjectPtr obj ATTRIBUTE_UNUSED)
static int xsltAddStackElem(xsltTransformContextPtr ctxt, xsltStackElemPtr elem)
static int xsltRegisterVariable(xsltTransformContextPtr ctxt, xsltStylePreCompPtr castedComp, xmlNodePtr tree, int isParam)
int xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj, void *val)
int xsltEvalOneUserParam(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *value)
int xsltQuoteUserParams(xsltTransformContextPtr ctxt, const char **params)
#define XSLT_VAR_IN_SELECT
static int xsltProcessUserParamInternal(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *value, int eval)
int xsltAddStackElemList(xsltTransformContextPtr ctxt, xsltStackElemPtr elems)
#define XSLT_TCTXT_VARIABLE(c)
static void xsltFreeStackElemEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
static void xsltFreeStackElem(xsltStackElemPtr elem)
int xsltEvalUserParams(xsltTransformContextPtr ctxt, const char **params)
#define XSLT_RVT_FUNC_RESULT
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
xsltTransformContext * xsltTransformContextPtr
#define XSLT_MARK_RES_TREE_FRAG(n)
xsltStackElem * xsltStackElemPtr
xsltStylePreComp * xsltStylePreCompPtr
void xsltParseTemplateContent(xsltStylesheetPtr style, xmlNodePtr templ)
void xsltTransformError(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node, const char *msg,...)
xmlGenericErrorFunc xsltGenericDebug
void * xsltGenericDebugContext
const xmlChar * xsltSplitQName(xmlDictPtr dict, const xmlChar *name, const xmlChar **prefix)
#define XSLT_TRACE(ctxt, code, call)