20#define WITH_XSLT_DEBUG_PATTERN
132 "xsltNewCompMatch : out of memory error\n");
142 "xsltNewCompMatch : out of memory error\n");
178 xmlXPathFreeCompExpr(
op->comp);
195 while (comp !=
NULL) {
223 for (ix = 0; ix < comp->
nbStep; ix++) {
246 "xsltNewParserContext : malloc failed\n");
292 "xsltCompMatchAdd: memory re-allocation failure.\n");
327#ifdef XML_XPATH_NOVAR
329 flags = XML_XPATH_NOVAR;
335 "Failed to compile predicate\n");
358 register xmlXPathCompExprPtr
expr;
403 register xmlXPathCompExprPtr
expr;
479 "xsltPatPushState: memory re-allocation failure.\n");
496 xmlXPathFreeObject((xmlXPathObjectPtr)
obj);
518 xmlXPathObjectPtr
list;
528 sel = &comp->
steps[0];
533 list = (xmlXPathObjectPtr)
536 if ((
list ==
NULL) || (prevdoc != doc)) {
537 xmlXPathObjectPtr newlist;
541 int oldNsNr, oldContextSize, oldProximityPosition;
547 oldNamespaces = ctxt->
xpathCtxt->namespaces;
548 oldContextSize = ctxt->
xpathCtxt->contextSize;
549 oldProximityPosition = ctxt->
xpathCtxt->proximityPosition;
557 ctxt->
xpathCtxt->namespaces = oldNamespaces;
559 ctxt->
xpathCtxt->contextSize = oldContextSize;
560 ctxt->
xpathCtxt->proximityPosition = oldProximityPosition;
563 if (newlist->type != XPATH_NODESET) {
564 xmlXPathFreeObject(newlist);
574 xmlXPathFreeObject(
list);
589 (
list->nodesetval->nodeNr <= 0)) {
591 xmlXPathFreeObject(
list);
596 for (
j = 0;
j <
list->nodesetval->nodeNr;
j++) {
597 if (
list->nodesetval->nodeTab[
j] ==
node) {
599 xmlXPathFreeObject(
list);
606 xmlXPathFreeObject(
list);
626#ifdef LIBXML_DOCB_ENABLED
648 }
else if (
node->ns->href !=
NULL) {
693 for (indx = 0;indx <
list->nodeNr;indx++)
696 if (indx >=
list->nodeNr)
706 }
else if (
node->ns->href !=
NULL) {
735 switch (
node->type) {
748 "xsltTestStepMatch: unexpected step op %d\n",
803 oldCP = ctxt->
xpathCtxt->proximityPosition;
810 if ((previous !=
NULL) &&
818 while (sibling !=
NULL) {
819 if (sibling == previous)
823 sibling = sibling->
prev;
825 if (sibling ==
NULL) {
829 while (sibling !=
NULL) {
830 if (sibling == previous)
834 sibling = sibling->
next;
837 if (sibling !=
NULL) {
863 while (siblings !=
NULL) {
864 if (siblings ==
node) {
870 siblings = siblings->
next;
890 if ((!isRVT) && (
node->doc !=
NULL) &&
899 oldNode = ctxt->
node;
906 ctxt->
xpathCtxt->proximityPosition = oldCP;
908 ctxt->
node = oldNode;
938 "xsltTestCompMatch: null arg\n");
967 oldInst = ctxt->
inst;
982#ifdef LIBXML_DOCB_ENABLED
1000 }
else if (
node->ns->href !=
NULL) {
1010 step = &comp->
steps[
i+1];
1025#ifdef LIBXML_DOCB_ENABLED
1049 }
else if (
node->ns->href !=
NULL) {
1089 ctxt->
inst = oldInst;
1127 while (comp !=
NULL) {
1146 xmlXPathObjectPtr
list;
1148 if ((ctxt ==
NULL) || (comp ==
NULL))
1151 sel = &comp->
steps[0];
1155 xmlXPathFreeObject(
list);
1170#define CUR (*ctxt->cur)
1171#define SKIP(val) ctxt->cur += (val)
1172#define NXT(val) ctxt->cur[(val)]
1173#define CUR_PTR ctxt->cur
1175#define SKIP_BLANKS \
1176 while (xmlIsBlank_ch(CUR)) NEXT
1178#define CURRENT (*ctxt->cur)
1179#define NEXT ((*ctxt->cur) ? ctxt->cur++: ctxt->cur)
1182#define PUSH(op, val, val2, novar) \
1183 if (xsltCompMatchAdd(ctxt, ctxt->comp, (op), (val), (val2), (novar))) goto error;
1186 xsltSwapTopCompMatch(ctxt->comp);
1188#define XSLT_ERROR(X) \
1189 { xsltError(ctxt, __FILE__, __LINE__, X); \
1190 ctxt->error = (X); return; }
1192#define XSLT_ERROR0(X) \
1193 { xsltError(ctxt, __FILE__, __LINE__, X); \
1194 ctxt->error = (X); return(0); }
1231 }
else if (
CUR ==
'\'') {
1278 (
val ==
'.') || (
val ==
'-') ||
1309 int aid,
int novar,
xsltAxis axis) {
1315 "xsltCompileIdKeyPattern : ( expected\n");
1322 "xsltCompileIdKeyPattern : NodeTest expected\n");
1331 "xsltCompileIdKeyPattern : Literal expected\n");
1338 "xsltCompileIdKeyPattern : ) expected\n");
1349 "xsltCompileIdKeyPattern : NodeTest expected\n");
1358 "xsltCompileIdKeyPattern : Literal expected\n");
1365 "xsltCompileIdKeyPattern : , expected\n");
1375 "xsltCompileIdKeyPattern : Literal expected\n");
1382 "xsltCompileIdKeyPattern : ) expected\n");
1400 "xsltCompileIdKeyPattern : Literal expected\n");
1407 "xsltCompileIdKeyPattern : ) expected\n");
1421 "xsltCompileIdKeyPattern : ) expected\n");
1432 "xsltCompileIdKeyPattern : ) expected\n");
1443 "xsltCompileIdKeyPattern : ) expected\n");
1456 "xsltCompileIdKeyPattern : expecting 'key' or 'id' or node type\n");
1461 "xsltCompileIdKeyPattern : node type\n");
1516 goto parse_predicate;
1519 "xsltCompileStepPattern : Name expected\n");
1533 }
else if (
CUR ==
':') {
1546 "xsltCompileStepPattern : no namespace bound to prefix %s\n",
1570 "xsltCompileStepPattern : Name expected\n");
1590 "xsltCompileStepPattern : NodeTest expected\n");
1601 "xsltCompileStepPattern : 'child' or 'attribute' expected\n");
1609 goto parse_node_test;
1633 while (
CUR ==
'[') {
1644 else if (
CUR ==
']') {
1648 }
else if (
CUR ==
'"') {
1650 while ((
CUR != 0) && (
CUR !=
'"'))
1652 }
else if (
CUR ==
'\'') {
1654 while ((
CUR != 0) && (
CUR !=
'\''))
1661 "xsltCompileStepPattern : ']' expected\n");
1700 while ((
CUR != 0) && (
CUR !=
'|')) {
1701 if ((
CUR ==
'/') && (
NXT(1) ==
'/')) {
1707 }
else if (
CUR ==
'/') {
1738 if ((
CUR ==
'/') && (
NXT(1) ==
'/')) {
1747 }
else if (
CUR ==
'/') {
1754 if ((
CUR != 0) && (
CUR !=
'|')) {
1758 }
else if (
CUR ==
'*') {
1760 }
else if (
CUR ==
'@') {
1767 "xsltCompileLocationPathPattern : Name expected\n");
1772 if ((
CUR ==
'(') && !xmlXPathIsNodeType(
name)) {
1778 if ((
CUR ==
'/') && (
NXT(1) ==
'/')) {
1784 }
else if (
CUR ==
'/') {
1825 "xsltCompilePattern : NULL pattern\n");
1861 "xsltCompilePattern : NULL pattern\n");
1870 else if (previous !=
NULL)
1890#ifdef WITH_XSLT_DEBUG_PATTERN
1892 "xsltCompilePattern : parsing '%s'\n",
1903 "xsltCompilePattern : failed to compile '%s'\n",
1948#ifdef WITH_XSLT_DEBUG_PATTERN
1950 "xsltCompilePattern : parsed %s, default priority %f\n",
1959 "xsltCompilePattern : NULL pattern\n");
2031 cur->position =
cur->next->position + 1;
2045 "xsl:template: error duplicate name '%s'\n",
2058 "xsl:template: need to specify match or name attribute\n");
2112 "xsltAddTemplate: invalid compiled pattern\n");
2193 "xsltAddTemplate: invalid compiled pattern\n");
2197#ifdef WITH_XSLT_DEBUG_PATTERN
2200 "added pattern : '%s' mode '%s' priority %f\n",
2204 "added pattern : '%s' priority %f\n",
2216 if ((ctxt ==
NULL) || (contextNode ==
NULL)) {
2218 "Internal error in xsltComputeAllKeys(): "
2219 "Bad arguments.\n");
2227 if (contextNode->
doc->_private !=
NULL)
2228 goto doc_info_mismatch;
2240 "Internal error in xsltComputeAllKeys(): "
2241 "The context's document info doesn't match the "
2242 "document info of the current result tree.\n");
2273 curstyle = ctxt->
style;
2278 while ((curstyle !=
NULL) && (curstyle !=
style)) {
2285 switch (
node->type) {
2287 if (
node->name[0] ==
' ')
2339 switch (
node->type) {
2341 if (
node->name[0] ==
' ')
2397 (
list->template->position >
ret->position)))) {
2417 (
list->template->position >
ret->position)))) {
2433 (
list->template->position >
ret->position)))) {
2451 (
list->template->position >
ret->position)))) {
2473 switch (
node->type) {
void restart(int argc, const char *argv[])
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY * rollback
#define xmlIsCombiningQ(c)
#define xmlIsIdeographicQ(c)
#define xmlIsExtenderQ(c)
#define xmlIsBaseCharQ(c)
struct _xsltParserContext xsltParserContext
xsltStepStates * xsltStepStatesPtr
static xmlChar * xsltScanLiteral(xsltParserContextPtr ctxt)
static void xsltFreeParserContext(xsltParserContextPtr ctxt)
static void xsltCompileRelativePathPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar)
static int xsltTestPredicateMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp, xmlNodePtr node, xsltStepOpPtr step, xsltStepOpPtr sel)
int xsltAddTemplate(xsltStylesheetPtr style, xsltTemplatePtr cur, const xmlChar *mode, const xmlChar *modeURI)
static int xsltComputeAllKeys(xsltTransformContextPtr ctxt, xmlNodePtr contextNode)
static void xsltCompileIdKeyPattern(xsltParserContextPtr ctxt, xmlChar *name, int aid, int novar, xsltAxis axis)
static void xsltFreeCompMatchListEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
static xsltCompMatchPtr xsltNewCompMatch(void)
static void xsltReverseCompMatch(xsltParserContextPtr ctxt, xsltCompMatchPtr comp)
static void xmlXPathFreeObjectWrapper(void *obj)
static xsltParserContextPtr xsltNewParserContext(xsltStylesheetPtr style, xsltTransformContextPtr ctxt)
xsltTemplatePtr xsltGetTemplate(xsltTransformContextPtr ctxt, xmlNodePtr node, xsltStylesheetPtr style)
xsltCompMatchPtr xsltCompilePattern(const xmlChar *pattern, xmlDocPtr doc, xmlNodePtr node, xsltStylesheetPtr style, xsltTransformContextPtr runtime)
static xsltCompMatchPtr xsltCompilePatternInternal(const xmlChar *pattern, xmlDocPtr doc, xmlNodePtr node, xsltStylesheetPtr style, xsltTransformContextPtr runtime, int novar)
static void xsltSwapTopCompMatch(xsltCompMatchPtr comp)
void xsltCleanupTemplates(xsltStylesheetPtr style ATTRIBUTE_UNUSED)
static int xsltCompMatchAdd(xsltParserContextPtr ctxt, xsltCompMatchPtr comp, xsltOp op, xmlChar *value, xmlChar *value2, int novar)
static xmlChar * xsltScanNCName(xsltParserContextPtr ctxt)
static int xsltTestCompMatchDirect(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp, xmlNodePtr node, xmlNsPtr *nsList, int nsNr)
static int xsltPatPushState(xsltTransformContextPtr ctxt, xsltStepStates *states, int step, xmlNodePtr node)
static void xsltCompileStepPattern(xsltParserContextPtr ctxt, xmlChar *token, int novar)
xsltStepState * xsltStepStatePtr
static int xsltTestStepMatch(xsltTransformContextPtr ctxt, xmlNodePtr node, xsltStepOpPtr step)
int xsltTestCompMatchList(xsltTransformContextPtr ctxt, xmlNodePtr node, xsltCompMatchPtr comp)
void xsltFreeCompMatchList(xsltCompMatchPtr comp)
static int xsltTestCompMatch(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp, xmlNodePtr matchNode, const xmlChar *mode, const xmlChar *modeURI)
void xsltCompMatchClearCache(xsltTransformContextPtr ctxt, xsltCompMatchPtr comp)
xsltParserContext * xsltParserContextPtr
void xsltNormalizeCompSteps(void *payload, void *data, const xmlChar *name ATTRIBUTE_UNUSED)
static void xsltCompileLocationPathPattern(xsltParserContextPtr ctxt, int novar)
static void xsltFreeCompMatch(xsltCompMatchPtr comp)
void xsltFreeTemplateHashes(xsltStylesheetPtr style)
#define PUSH(op, val, val2, novar)
xsltStepOp * xsltStepOpPtr
xsltDocumentPtr xsltNewDocument(xsltTransformContextPtr ctxt, xmlDocPtr doc)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble GLdouble q
GLdouble GLdouble GLdouble GLdouble top
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
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 token
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 GLint GLint j
xsltStylesheetPtr xsltNextImport(xsltStylesheetPtr cur)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
int xsltInitAllDocKeys(xsltTransformContextPtr ctxt)
xmlNodeSetPtr xsltGetKey(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *nameURI, const xmlChar *value)
xsltCompMatch * xsltCompMatchPtr
struct task_struct * current
static DWORD DWORD DWORD DWORD * steps
XMLPUBFUN int XMLCALL xmlStringCurrentChar(xmlParserCtxtPtr ctxt, const xmlChar *cur, int *len)
static unsigned __int64 next
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR xmlReallocFunc xmlRealloc
XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
XMLPUBFUN void XMLCALL xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
XMLPUBFUN void *XMLCALL xmlHashLookup3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3)
XMLPUBFUN int XMLCALL xmlHashUpdateEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreate(int size)
XMLPUBFUN void *XMLCALL xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
XMLPUBFUN int XMLCALL xmlHashAddEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata)
XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace)
#define XML_DOCB_DOCUMENT_NODE
struct _xsltCompMatch * next
xsltTransformContextPtr ctxt
struct _xsltCompMatch * rootMatch
struct _xsltCompMatch * textMatch
struct _xsltCompMatch * elemMatch
struct _xsltCompMatch * piMatch
xmlHashTablePtr templatesHash
struct _xsltCompMatch * attrMatch
struct _xsltCompMatch * commentMatch
struct _xsltCompMatch * keyMatch
xmlXPathContextPtr xpathCtxt
int xsltEvalXPathPredicate(xsltTransformContextPtr ctxt, xmlXPathCompExprPtr comp, xmlNsPtr *nsList, int nsNr)
XMLPUBFUN xmlAttrPtr XMLCALL xmlGetID(xmlDocPtr doc, const xmlChar *ID)
XMLPUBFUN xmlChar *XMLCALL xmlStrndup(const xmlChar *cur, int len)
XMLPUBFUN xmlChar *XMLCALL xmlStrcat(xmlChar *cur, const xmlChar *add)
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
#define XSLT_RUNTIME_EXTRA(ctxt, nr, typ)
#define XSLT_PAT_NO_PRIORITY
#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr)
#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr)
#define XSLT_IS_RES_TREE_FRAG(n)
int xsltAllocateExtraCtxt(xsltTransformContextPtr ctxt)
int xsltAllocateExtra(xsltStylesheetPtr style)
const xmlChar * xsltGetQNameURI(xmlNodePtr node, xmlChar **name)
void xsltTransformError(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node, const char *msg,...)
xmlXPathCompExprPtr xsltXPathCompileFlags(xsltStylesheetPtr style, const xmlChar *str, int flags)
xmlGenericErrorFunc xsltGenericError
xmlGenericErrorFunc xsltGenericDebug
void * xsltGenericDebugContext
void * xsltGenericErrorContext