36 #define WITH_XSLT_DEBUG_VARIABLE
40const xmlChar *xsltDocFragFake = (
const xmlChar *)
" fake node libxslt";
44 (
const xmlChar *)
" var/param being computed";
46#define XSLT_VAR_GLOBAL (1<<0)
47#define XSLT_VAR_IN_SELECT (1<<1)
48#define XSLT_TCTXT_VARIABLE(c) ((xsltStackElemPtr) (c)->contextVariable)
87#ifdef XSLT_DEBUG_PROFILE_CACHE
88 ctxt->
cache->dbgReusedRVTs++;
122 if ((ctxt ==
NULL) || (RVT ==
NULL))
141 ctxt->
tmpRVT->prev = (xmlNodePtr) RVT;
162 if ((ctxt ==
NULL) || (RVT ==
NULL))
188 ctxt->
localRVT->prev = (xmlNodePtr) RVT;
212 "xsltExtensionInstructionResultFinalize is unsupported "
213 "in this release of libxslt.\n");
272 if ((
obj->type != XPATH_NODESET) && (
obj->type != XPATH_XSLT_TREE))
274 if ((
obj->nodesetval ==
NULL) || (
obj->nodesetval->nodeNr == 0))
277 for (
i = 0;
i <
obj->nodesetval->nodeNr;
i++) {
278 cur =
obj->nodesetval->nodeTab[
i];
279 if (
cur->type == XML_NAMESPACE_DECL) {
285 (((xmlNsPtr)
cur)->
next->type == XML_ELEMENT_NODE))
291 "Internal error in xsltFlagRVTs(): "
292 "Cannot retrieve the doc of a namespace node.\n");
300 "Internal error in xsltFlagRVTs(): "
301 "Cannot retrieve the doc of a node.\n");
304 if (doc->name && (doc->name[0] ==
' ') &&
312#ifdef WITH_XSLT_DEBUG_VARIABLE
315 "Flagging RVT %p: %d -> %d\n",
316 (
void *) doc, doc->compression,
val));
325 "xsltFlagRVTs: Invalid transition %d => GLOBAL\n",
334 doc->compression =
val;
361 if (RVT->_private !=
NULL) {
364 RVT->_private =
NULL;
369 if (RVT->children !=
NULL) {
370 xmlFreeNodeList(RVT->children);
371 RVT->children =
NULL;
374 if (RVT->ids !=
NULL) {
382 RVT->compression = 0;
389#ifdef XSLT_DEBUG_PROFILE_CACHE
390 ctxt->
cache->dbgCachedRVTs++;
397 if (RVT->_private !=
NULL) {
419 if ((ctxt ==
NULL) || (RVT ==
NULL))
return(-1);
514#ifdef XSLT_DEBUG_PROFILE_CACHE
515 ctxt->
cache->dbgReusedVars++;
522 "xsltNewStackElem : malloc failed\n");
545 "xsltCopyStackElem : malloc failed\n");
569 xmlXPathFreeObject(
elem->value);
578 elem->fragment = (xmlDocPtr)
cur->next;
587 "xsltFreeStackElem: Unexpected RVT flag %d\n",
595 if (
elem->context && (
elem->context->cache->nbStackItems < 50)) {
601 elem->context = ctxt;
605#ifdef XSLT_DEBUG_PROFILE_CACHE
606 ctxt->
cache->dbgCachedVars++;
645static int stack_addr = 0;
646static int stack_cmp = 0;
667 if ((
cur->name ==
name) && (
cur->nameURI == nameURI)) {
688 if ((
cur->name ==
name) && (
cur->nameURI == nameURI)) {
701#ifdef XSLT_REFACTORED
765 newMax *
sizeof(*tmp));
813static xmlXPathObjectPtr
817#ifdef XSLT_REFACTORED
818 xsltStyleItemVariablePtr comp =
819 (xsltStyleItemVariablePtr) castedComp;
834 oldInst = ctxt->
inst;
836#ifdef WITH_XSLT_DEBUG_VARIABLE
838 "Evaluating variable '%s'\n",
variable->name));
841 xmlXPathCompExprPtr xpExpr =
NULL;
843 xmlNodePtr oldXPContextNode;
844 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
845 xmlNsPtr *oldXPNamespaces;
846 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
849 if ((comp !=
NULL) && (comp->comp !=
NULL)) {
859 oldXPDoc = xpctxt->doc;
860 oldXPContextNode = xpctxt->node;
861 oldXPProximityPosition = xpctxt->proximityPosition;
862 oldXPContextSize = xpctxt->contextSize;
863 oldXPNamespaces = xpctxt->namespaces;
864 oldXPNsNr = xpctxt->nsNr;
866 xpctxt->node = ctxt->
node;
871 if ((ctxt->
node->type != XML_NAMESPACE_DECL) &&
873 xpctxt->doc = ctxt->
node->doc;
891#ifdef XSLT_REFACTORED
892 if (comp->inScopeNs !=
NULL) {
893 xpctxt->namespaces = comp->inScopeNs->list;
894 xpctxt->nsNr = comp->inScopeNs->xpathNumber;
896 xpctxt->namespaces =
NULL;
900 xpctxt->namespaces = comp->nsList;
901 xpctxt->nsNr = comp->nsNr;
904 xpctxt->namespaces =
NULL;
918 result = xmlXPathCompiledEval(xpExpr, xpctxt);
926 xpctxt->doc = oldXPDoc;
927 xpctxt->node = oldXPContextNode;
928 xpctxt->contextSize = oldXPContextSize;
929 xpctxt->proximityPosition = oldXPProximityPosition;
930 xpctxt->namespaces = oldXPNamespaces;
931 xpctxt->nsNr = oldXPNsNr;
933 if ((comp ==
NULL) || (comp->comp ==
NULL))
934 xmlXPathFreeCompExpr(xpExpr);
938 "Failed to evaluate the expression of variable '%s'.\n",
942#ifdef WITH_XSLT_DEBUG_VARIABLE
943#ifdef LIBXML_DEBUG_ENABLED
954 result = xmlXPathNewCString(
"");
958 xmlNodePtr oldInsert;
961 int oldLastTextSize, oldLastTextUse;
1002 ctxt->
insert = oldInsert;
1003 ctxt->
output = oldOutput;
1011 result = xmlXPathNewCString(
"");
1019#ifdef WITH_XSLT_DEBUG_VARIABLE
1020#ifdef LIBXML_DEBUG_ENABLED
1032 ctxt->
inst = oldInst;
1046static xmlXPathObjectPtr
1053#ifdef XSLT_REFACTORED
1054 xsltStyleBasicItemVariablePtr comp;
1062 return(
elem->value);
1065#ifdef WITH_XSLT_DEBUG_VARIABLE
1067 "Evaluating global variable %s\n",
elem->name));
1076 oldInst = ctxt->
inst;
1077#ifdef XSLT_REFACTORED
1078 comp = (xsltStyleBasicItemVariablePtr)
elem->comp;
1082 oldVarName =
elem->name;
1091 xmlXPathCompExprPtr xpExpr =
NULL;
1093 xmlNodePtr oldXPContextNode;
1094 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
1095 xmlNsPtr *oldXPNamespaces;
1096 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
1098 if ((comp !=
NULL) && (comp->comp !=
NULL)) {
1099 xpExpr = comp->comp;
1101 xpExpr = xmlXPathCtxtCompile(ctxt->
xpathCtxt,
elem->select);
1108 ctxt->
inst = comp->inst;
1123 oldXPDoc = xpctxt->doc;
1124 oldXPContextNode = xpctxt->node;
1125 oldXPProximityPosition = xpctxt->proximityPosition;
1126 oldXPContextSize = xpctxt->contextSize;
1127 oldXPNamespaces = xpctxt->namespaces;
1128 oldXPNsNr = xpctxt->nsNr;
1132 xpctxt->contextSize = 1;
1133 xpctxt->proximityPosition = 1;
1137#ifdef XSLT_REFACTORED
1138 if (comp->inScopeNs !=
NULL) {
1139 xpctxt->namespaces = comp->inScopeNs->list;
1140 xpctxt->nsNr = comp->inScopeNs->xpathNumber;
1142 xpctxt->namespaces =
NULL;
1146 xpctxt->namespaces = comp->nsList;
1147 xpctxt->nsNr = comp->nsNr;
1150 xpctxt->namespaces =
NULL;
1154 result = xmlXPathCompiledEval(xpExpr, xpctxt);
1159 xpctxt->doc = oldXPDoc;
1160 xpctxt->node = oldXPContextNode;
1161 xpctxt->contextSize = oldXPContextSize;
1162 xpctxt->proximityPosition = oldXPProximityPosition;
1163 xpctxt->namespaces = oldXPNamespaces;
1164 xpctxt->nsNr = oldXPNsNr;
1166 if ((comp ==
NULL) || (comp->comp ==
NULL))
1167 xmlXPathFreeCompExpr(xpExpr);
1171 "Evaluating global variable %s failed\n",
elem->name);
1174 "Evaluating global variable %s failed\n",
elem->name);
1185#ifdef WITH_XSLT_DEBUG_VARIABLE
1186#ifdef LIBXML_DEBUG_ENABLED
1195 result = xmlXPathNewCString(
"");
1198 xmlNodePtr oldInsert;
1199 xmlDocPtr oldOutput, oldXPDoc;
1212 oldOutput = ctxt->
output;
1213 oldInsert = ctxt->
insert;
1228 ctxt->
insert = oldInsert;
1229 ctxt->
output = oldOutput;
1233 result = xmlXPathNewCString(
"");
1241#ifdef WITH_XSLT_DEBUG_VARIABLE
1242#ifdef LIBXML_DEBUG_ENABLED
1253 elem->name = oldVarName;
1254 ctxt->
inst = oldInst;
1286#ifdef WITH_XSLT_DEBUG_VARIABLE
1288 "Registering global variables\n"));
1297#ifdef WITH_XSLT_DEBUG_VARIABLE
1300 "Registering global variables from %s\n",
1318 elem->name,
elem->nameURI, def) < 0) {
1320 "hash update failed\n");
1335 "Global variable %s already defined\n",
elem->name);
1381#ifdef WITH_XSLT_DEBUG_VARIABLE
1384 "Defining global param %s\n",
name);
1387 "Defining global variable %s\n",
name);
1399 tmp =
style->variables;
1404 while (tmp !=
NULL) {
1412 "redefinition of global variable %s\n",
elem->name);
1470 xmlXPathCompExprPtr xpExpr;
1471 xmlXPathObjectPtr
result;
1486#ifdef WITH_XSLT_DEBUG_VARIABLE
1488 "Evaluating user parameter %s=%s\n",
name,
value));
1496 if (
name[0] ==
'{') {
1502 "user param : malformed parameter name : %s\n",
name);
1513 ns = xmlSearchNs(
style->doc, xmlDocGetRootElement(
style->doc),
1517 "user param : no namespace bound to prefix %s\n",
prefix);
1531 "Global parameter %s already defined\n",
name);
1562 if (xpExpr !=
NULL) {
1564 xmlNodePtr oldXPContextNode;
1565 int oldXPProximityPosition, oldXPContextSize, oldXPNsNr;
1566 xmlNsPtr *oldXPNamespaces;
1567 xmlXPathContextPtr xpctxt = ctxt->
xpathCtxt;
1572 oldXPDoc = xpctxt->doc;
1573 oldXPContextNode = xpctxt->node;
1574 oldXPProximityPosition = xpctxt->proximityPosition;
1575 oldXPContextSize = xpctxt->contextSize;
1576 oldXPNamespaces = xpctxt->namespaces;
1577 oldXPNsNr = xpctxt->nsNr;
1590 xpctxt->contextSize = 1;
1591 xpctxt->proximityPosition = 1;
1596 xpctxt->namespaces =
NULL;
1599 result = xmlXPathCompiledEval(xpExpr, xpctxt);
1604 xpctxt->doc = oldXPDoc;
1605 xpctxt->node = oldXPContextNode;
1606 xpctxt->contextSize = oldXPContextSize;
1607 xpctxt->proximityPosition = oldXPProximityPosition;
1608 xpctxt->namespaces = oldXPNamespaces;
1609 xpctxt->nsNr = oldXPNsNr;
1611 xmlXPathFreeCompExpr(xpExpr);
1615 "Evaluating user parameter %s failed\n",
name);
1632#ifdef WITH_XSLT_DEBUG_VARIABLE
1633#ifdef LIBXML_DEBUG_ENABLED
1665 "Global parameter %s already defined\n",
name);
1794#ifdef XSLT_REFACTORED
1795 xsltStyleBasicItemVariablePtr comp =
1796 (xsltStyleBasicItemVariablePtr) castedComp;
1802#ifdef WITH_XSLT_DEBUG_VARIABLE
1804 "Building variable %s", comp->name));
1805 if (comp->select !=
NULL)
1807 " select %s", comp->select));
1815 elem->name = comp->name;
1816 elem->select = comp->select;
1817 elem->nameURI = comp->ns;
1839 xmlNodePtr
tree,
int isParam)
1841#ifdef XSLT_REFACTORED
1842 xsltStyleBasicItemVariablePtr comp =
1843 (xsltStyleBasicItemVariablePtr) castedComp;
1850#ifdef XSLT_REFACTORED
1859 if ((present != 0) && (present != 3)) {
1862 "XSLT-variable: Redefinition of variable '%s'.\n", comp->
name);
1865 }
else if (present != 0) {
1866 if ((present == 1) || (present == 2)) {
1869 "XSLT-param: Redefinition of parameter '%s'.\n", comp->
name);
1872#ifdef WITH_XSLT_DEBUG_VARIABLE
1874 "param %s defined by caller\n", comp->name));
1899static xmlXPathObjectPtr
1913#ifdef WITH_XSLT_DEBUG_VARIABLE
1915 "global variable not found %s\n",
name));
1923 if (
elem->computed == 0) {
1926 "Recursive definition of %s\n",
name);
1932 return(xmlXPathObjectCopy(
ret));
1958 if (
elem->computed == 0) {
1959#ifdef WITH_XSLT_DEBUG_VARIABLE
1961 "uncomputed variable %s\n",
name));
1967 return(xmlXPathObjectCopy(
elem->value));
1968#ifdef WITH_XSLT_DEBUG_VARIABLE
1970 "variable not found %s\n",
name));
1991#ifdef XSLT_REFACTORED
1992 xsltStyleBasicItemVariablePtr comp;
2000 if ((ctxt ==
NULL) || (inst ==
NULL) || (inst->type != XML_ELEMENT_NODE))
2003#ifdef XSLT_REFACTORED
2004 comp = (xsltStyleBasicItemVariablePtr) inst->psvi;
2011 "Internal error in xsltParseStylesheetCallerParam(): "
2012 "The XSLT 'with-param' instruction was not compiled.\n");
2015 if (comp->name ==
NULL) {
2017 "Internal error in xsltParseStylesheetCallerParam(): "
2018 "XSLT 'with-param': The attribute 'name' was not compiled.\n");
2022#ifdef WITH_XSLT_DEBUG_VARIABLE
2024 "Handling xsl:with-param %s\n", comp->name));
2027 if (comp->select ==
NULL) {
2028 tree = inst->children;
2030#ifdef WITH_XSLT_DEBUG_VARIABLE
2032 " select %s\n", comp->select));
2053#ifdef XSLT_REFACTORED
2054 xsltStyleItemVariablePtr comp;
2062#ifdef XSLT_REFACTORED
2067 comp = (xsltStyleItemVariablePtr)
cur->psvi;
2074 "xsl:variable : compilation failed\n");
2078 if (comp->name ==
NULL) {
2080 "xsl:variable : missing name attribute\n");
2088#ifdef XSLT_REFACTORED
2089 xsltParseSequenceConstructor(XSLT_CCTXT(
style),
cur->children);
2094#ifdef WITH_XSLT_DEBUG_VARIABLE
2096 "Registering global variable %s\n", comp->name);
2115#ifdef XSLT_REFACTORED
2116 xsltStyleItemParamPtr comp;
2124#ifdef XSLT_REFACTORED
2129 comp = (xsltStyleItemParamPtr)
cur->psvi;
2136 "xsl:param : compilation failed\n");
2140 if (comp->name ==
NULL) {
2142 "xsl:param : missing name attribute\n");
2150#ifdef XSLT_REFACTORED
2151 xsltParseSequenceConstructor(XSLT_CCTXT(
style),
cur->children);
2157#ifdef WITH_XSLT_DEBUG_VARIABLE
2159 "Registering global param %s\n", comp->name);
2178#ifdef XSLT_REFACTORED
2179 xsltStyleItemVariablePtr comp;
2184 if ((inst ==
NULL) || (ctxt ==
NULL) || (inst->type != XML_ELEMENT_NODE))
2190 "Internal error in xsltParseStylesheetVariable(): "
2191 "The XSLT 'variable' instruction was not compiled.\n");
2194 if (comp->name ==
NULL) {
2196 "Internal error in xsltParseStylesheetVariable(): "
2197 "The attribute 'name' was not compiled.\n");
2201#ifdef WITH_XSLT_DEBUG_VARIABLE
2203 "Registering variable '%s'\n", comp->name));
2220#ifdef XSLT_REFACTORED
2221 xsltStyleItemParamPtr comp;
2226 if ((
cur ==
NULL) || (ctxt ==
NULL) || (
cur->type != XML_ELEMENT_NODE))
2230 if ((comp ==
NULL) || (comp->name ==
NULL)) {
2232 "Internal error in xsltParseStylesheetParam(): "
2233 "The XSLT 'param' declaration was not compiled correctly.\n");
2237#ifdef WITH_XSLT_DEBUG_VARIABLE
2239 "Registering param %s\n", comp->name));
2273 xmlXPathObjectPtr valueObj =
NULL;
2278#ifdef WITH_XSLT_DEBUG_VARIABLE
2280 "Lookup variable '%s'\n",
name));
2292 if (tctxt->
varsNr != 0) {
2298 if ((
cur->name ==
name) && (
cur->nameURI == ns_uri)) {
2303 goto local_variable_found;
2314 const xmlChar *tmpName =
name, *tmpNsName = ns_uri;
2319 if ((tmpName !=
name) || (tmpNsName != ns_uri)) {
2322 if ((
cur->name ==
name) && (
cur->nameURI == ns_uri)) {
2327 goto local_variable_found;
2333local_variable_found:
2338#ifdef WITH_XSLT_DEBUG_VARIABLE
2340 "uncomputed variable '%s'\n",
name));
2346 valueObj = xmlXPathObjectCopy(
variable->value);
2358 if (valueObj ==
NULL) {
2360#ifdef WITH_XSLT_DEBUG_VARIABLE
2362 "variable not found '%s'\n",
name));
2367 "Variable '{%s}%s' has not been declared.\n", ns_uri,
name);
2370 "Variable '%s' has not been declared.\n",
name);
2374#ifdef WITH_XSLT_DEBUG_VARIABLE
2376 "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
int xmlDictReference(xmlDictPtr dict)
const xmlChar * xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
void * xmlGenericErrorContext
xmlReallocFunc xmlRealloc
xmlGenericErrorFunc xmlGenericError
void xmlHashScan(xmlHashTablePtr hash, xmlHashScanner scan, void *data)
void xmlHashFree(xmlHashTablePtr hash, xmlHashDeallocator dealloc)
void * xmlHashLookup2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2)
xmlHashTablePtr xmlHashCreate(int size)
int xmlHashAddEntry2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, void *payload)
struct _xsltStackElem * next
xsltStackElemPtr variables
xmlHashTablePtr globalVars
xsltTransformCachePtr cache
xmlNodePtr initialContextNode
xsltStackElemPtr * varsTab
xmlXPathContextPtr xpathCtxt
xmlDocPtr initialContextDoc
Character const *const prefix
XMLPUBFUN void 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)
int xsltFlagRVTs(xsltTransformContextPtr ctxt, xmlXPathObjectPtr obj, int val)
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 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 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)