22#define XSLT_WIN32_PERFORMANCE_COUNTER
63 if (nameSpace ==
NULL)
69 prop =
node->properties;
72 while (prop !=
NULL) {
150 if (nameSpace ==
NULL)
156 prop =
node->properties;
168 while (prop !=
NULL) {
241 if ((utf[1] & 0xc0) != 0x80)
243 if ((
c & 0xe0) == 0xe0) {
246 if ((utf[2] & 0xc0) != 0x80)
248 if ((
c & 0xf0) == 0xf0) {
251 if ((
c & 0xf8) != 0xf0 || (utf[3] & 0xc0) != 0x80)
255 c = (utf[0] & 0x7) << 18;
256 c |= (utf[1] & 0x3f) << 12;
257 c |= (utf[2] & 0x3f) << 6;
262 c = (utf[0] & 0xf) << 12;
263 c |= (utf[1] & 0x3f) << 6;
269 c = (utf[0] & 0x1f) << 6;
284#ifdef XSLT_REFACTORED
298xsltPointerListAddSize(xsltPointerListPtr
list,
303 if (initialSize <= 0)
306 initialSize *
sizeof(
void *));
309 "xsltPointerListAddSize: memory allocation failure.\n");
320 "xsltPointerListAddSize: memory re-allocation failure.\n");
338xsltPointerListCreate(
int initialSize)
340 xsltPointerListPtr
ret;
345 "xsltPointerListCreate: memory allocation failure.\n");
349 if (initialSize > 0) {
350 xsltPointerListAddSize(
ret,
NULL, initialSize);
364xsltPointerListFree(xsltPointerListPtr
list)
381xsltPointerListClear(xsltPointerListPtr
list)
414 if ((ctxt ==
NULL) || (inst ==
NULL))
430 "xsl:message : terminate expecting 'yes' or 'no'\n");
453#define XSLT_GET_VAR_STR(msg, str) { \
459 str = (char *) xmlMalloc(150); \
465 while (size < 64000) { \
467 chars = vsnprintf(str, size, msg, ap); \
469 if ((chars > -1) && (chars < size)) \
475 if ((larger = (char *) xmlRealloc(str, size)) == NULL) {\
588 const char *
type =
"error";
619 type =
"runtime error";
621#ifdef XSLT_REFACTORED
622 if (XSLT_CCTXT(
style)->errSeverity == XSLT_ERROR_SEVERITY_WARNING)
623 type =
"compilation warning";
625 type =
"compilation error";
627 type =
"compilation error";
632 error(errctx,
"%s: file %s line %d element %s\n",
681 const char *
msg, ...) {
762 if ((qname ==
NULL) || (*qname == 0))
766 "QName: no element for namespace lookup %s\n",
781 while ((qname[
len] != 0) && (qname[
len] !=
':'))
790 if ((qname[0] ==
'x') && (qname[1] ==
'm') &&
791 (qname[2] ==
'l') && (qname[3] ==
':')) {
803 "%s:%s : no namespace bound to prefix %s\n",
804 qname, &qname[
len + 1], qname);
836 if ((qname ==
NULL) || (*qname == 0))
840 "QName: no element for namespace lookup %s\n",
850 while ((qname[
len] != 0) && (qname[
len] !=
':'))
859 if ((qname[0] ==
'x') && (qname[1] ==
'm') &&
860 (qname[2] ==
'l') && (qname[3] ==
':')) {
872 "No namespace bound to prefix '%s'.\n",
877 "%s : no namespace bound to prefix %s\n",
914 for (
i = 0;
i <
len -1;
i++) {
915 for (
j =
i + 1;
j <
len;
j++) {
916 tst = xmlXPathCmpNodes(
list->nodeTab[
i],
list->nodeTab[
j]);
937static xmlXPathObjectPtr *
940#ifdef XSLT_REFACTORED
941 xsltStyleItemSortPtr comp;
947 xmlXPathObjectPtr
res;
952 int oldPos, oldSize ;
959 "xsl:sort : compilation failed\n");
963 if ((comp->select ==
NULL) || (comp->comp ==
NULL))
979 "xsltComputeSortResult: memory allocation failure\n");
983 oldNode = ctxt->
node;
984 oldInst = ctxt->
inst;
985 oldPos = ctxt->
xpathCtxt->proximityPosition;
988 oldNamespaces = ctxt->
xpathCtxt->namespaces;
995#ifdef XSLT_REFACTORED
996 if (comp->inScopeNs !=
NULL) {
997 ctxt->
xpathCtxt->namespaces = comp->inScopeNs->list;
998 ctxt->
xpathCtxt->nsNr = comp->inScopeNs->xpathNumber;
1004 ctxt->
xpathCtxt->namespaces = comp->nsList;
1007 res = xmlXPathCompiledEval(comp->comp, ctxt->
xpathCtxt);
1009 if (
res->type != XPATH_STRING)
1010 res = xmlXPathConvertString(
res);
1012 res = xmlXPathConvertNumber(
res);
1015 if (
res->type == XPATH_NUMBER) {
1018#ifdef WITH_XSLT_DEBUG_PROCESS
1020 "xsltComputeSortResult: select didn't evaluate to a number\n");
1025 if (
res->type == XPATH_STRING) {
1026 if ((xfrm) && (comp->locale != (
xsltLocale)0)) {
1034#ifdef WITH_XSLT_DEBUG_PROCESS
1036 "xsltComputeSortResult: select didn't evaluate to a string\n");
1046 ctxt->
node = oldNode;
1047 ctxt->
inst = oldInst;
1049 ctxt->
xpathCtxt->proximityPosition = oldPos;
1051 ctxt->
xpathCtxt->namespaces = oldNamespaces;
1083#ifdef XSLT_REFACTORED
1084 xsltStyleItemSortPtr comp;
1097 xmlXPathObjectPtr tmp;
1101 if ((ctxt ==
NULL) || (sorts ==
NULL) || (nbsorts <= 0) ||
1104 if (sorts[0] ==
NULL)
1106 comp = sorts[0]->
psvi;
1114 for (
j = 0;
j < nbsorts;
j++) {
1115 comp = sorts[
j]->
psvi;
1117 if ((comp->stype ==
NULL) && (comp->has_stype != 0)) {
1120 (
const xmlChar *)
"data-type",
1122 if (comp->stype !=
NULL) {
1130 "xsltDoSortFunction: no support for data-type = %s\n",
1137 if ((comp->order ==
NULL) && (comp->has_order != 0)) {
1141 if (comp->order !=
NULL) {
1144 comp->descending = 0;
1146 (
const xmlChar *)
"descending"))
1147 comp->descending = 1;
1150 "xsltDoSortFunction: invalid value %s for order\n",
1152 comp->descending = 0;
1157 if ((comp->lang ==
NULL) && (comp->has_lang != 0)) {
1174 resultsTab[
i] =
NULL;
1178 comp = sorts[0]->
psvi;
1179 descending = comp->descending;
1185 for (incr =
len / 2; incr > 0; incr /= 2) {
1186 for (
i = incr;
i <
len;
i++) {
1198 if (xmlXPathIsNaN(
results[
j]->floatval)) {
1199 if (xmlXPathIsNaN(
results[
j + incr]->floatval))
1203 }
else if (xmlXPathIsNaN(
results[
j + incr]->floatval))
1229 while (
depth < nbsorts) {
1235 desc = comp->descending;
1236 numb = comp->number;
1259 if (xmlXPathIsNaN(
res[
j]->floatval)) {
1260 if (xmlXPathIsNaN(
res[
j +
1265 }
else if (xmlXPathIsNaN(
res[
j + incr]->
1268 else if (
res[
j]->floatval ==
res[
j + incr]->
1271 else if (
res[
j]->floatval >
1272 res[
j + incr]->floatval)
1282 res[
j + incr]->stringval);
1308 while (
depth < nbsorts) {
1316 res[
j + incr] = tmp;
1327 for (
j = 0;
j < nbsorts;
j++) {
1328 comp = sorts[
j]->
psvi;
1329 if (tempstype[
j] == 1) {
1331 xmlFree((
void *)(comp->stype));
1334 if (temporder[
j] == 1) {
1336 xmlFree((
void *)(comp->order));
1339 if (templang[
j] == 1) {
1343 if (resultsTab[
j] !=
NULL) {
1345 xmlXPathFreeObject(resultsTab[
j][
i]);
1373 (ctxt->
sortfunc)(ctxt, sorts, nbsorts);
1478 "xsltSaveResultTo : unknown output method\n");
1502 xmlOutputBufferFlush(
buf);
1511 xmlOutputBufferFlush(
buf);
1519 xmlOutputBufferWriteString(
buf, (
const char *)
cur->content);
1551 xmlOutputBufferFlush(
buf);
1559 if (omitXmlDecl != 1) {
1560 xmlOutputBufferWriteString(
buf,
"<?xml version=");
1562 xmlOutputBufferWriteString(
buf,
"\"");
1563 xmlOutputBufferWriteString(
buf, (
const char *)
result->version);
1564 xmlOutputBufferWriteString(
buf,
"\"");
1566 xmlOutputBufferWriteString(
buf,
"\"1.0\"");
1576 xmlOutputBufferWriteString(
buf,
" encoding=");
1577 xmlOutputBufferWriteString(
buf,
"\"");
1578 xmlOutputBufferWriteString(
buf, (
const char *)
encoding);
1579 xmlOutputBufferWriteString(
buf,
"\"");
1581 switch (standalone) {
1583 xmlOutputBufferWriteString(
buf,
" standalone=\"no\"");
1586 xmlOutputBufferWriteString(
buf,
" standalone=\"yes\"");
1591 xmlOutputBufferWriteString(
buf,
"?>\n");
1610 xmlOutputBufferWriteString(
buf,
"\n");
1614 xmlOutputBufferWriteString(
buf,
"\n");
1616 result->children = children;
1618 xmlOutputBufferFlush(
buf);
1652 if ((encoder !=
NULL) &&
1663 ret = xmlOutputBufferClose(
buf);
1695 if ((encoder !=
NULL) &&
1699 buf = xmlOutputBufferCreateFile(
file, encoder);
1707 ret = xmlOutputBufferClose(
buf);
1739 if ((encoder !=
NULL) &&
1743 buf = xmlOutputBufferCreateFd(
fd, encoder);
1745 buf = xmlOutputBufferCreateFd(
fd,
NULL);
1750 ret = xmlOutputBufferClose(
buf);
1772 *doc_txt_ptr =
NULL;
1782 if ((encoder !=
NULL) &&
1786 buf = xmlAllocOutputBuffer(encoder);
1788 buf = xmlAllocOutputBuffer(
NULL);
1793#ifdef LIBXML2_NEW_BUFFER
1803 *doc_txt_len =
buf->conv->use;
1804 *doc_txt_ptr =
xmlStrndup(
buf->conv->content, *doc_txt_len);
1806 *doc_txt_len =
buf->buffer->use;
1807 *doc_txt_ptr =
xmlStrndup(
buf->buffer->content, *doc_txt_len);
1810 (
void)xmlOutputBufferClose(
buf);
1822static long calibration = -1;
1832#if !defined(XSLT_WIN32_PERFORMANCE_COUNTER) && \
1833 (defined(HAVE_CLOCK_GETTIME) || defined(HAVE_GETTIMEOFDAY))
1835xsltCalibrateTimestamps(
void) {
1838 for (
i = 0;
i < 999;
i++)
1852 calibration += delta;
1866#ifdef XSLT_WIN32_PERFORMANCE_COUNTER
1872 static LONGLONG startupQuadCount = 0;
1873 static LONGLONG startupQuadFreq = 0;
1878 quadCount = performanceCount.
QuadPart;
1879 if (calibration < 0) {
1884 startupQuadFreq = performanceFrequency.
QuadPart;
1885 startupQuadCount = quadCount;
1888 if (startupQuadFreq == 0)
1890 seconds = (quadCount - startupQuadCount) / (
double) startupQuadFreq;
1894#ifdef HAVE_CLOCK_GETTIME
1895# if defined(CLOCK_MONOTONIC)
1896# define XSLT_CLOCK CLOCK_MONOTONIC
1897# elif defined(CLOCK_HIGHRES)
1898# define XSLT_CLOCK CLOCK_HIGHRES
1900# define XSLT_CLOCK CLOCK_REALTIME
1906 if (calibration < 0) {
1907 clock_gettime(XSLT_CLOCK, &
startup);
1909 calibration = xsltCalibrateTimestamps();
1910 clock_gettime(XSLT_CLOCK, &
startup);
1914 clock_gettime(XSLT_CLOCK, &
cur);
1919 tics -= calibration;
1922#elif HAVE_GETTIMEOFDAY
1927 if (calibration < 0) {
1930 calibration = xsltCalibrateTimestamps();
1940 tics -= calibration;
1954 static char dst[1001];
1960 for(;
src[
j]==
' ';
j++);
1963 if(i<998 && templ->
mode) {
1976#define MAX_TEMPLATES 10000
1990 unsigned long totalt;
1996 if ((output ==
NULL) || (ctxt ==
NULL))
2009 templ1 =
style->templates;
2010 while (templ1 !=
NULL) {
2016 templ1 = templ1->
next;
2022 for (
i = 0;
i < nb -1;
i++) {
2023 for (
j =
i + 1;
j < nb;
j++) {
2037 fprintf(output,
"%6s%20s%20s%10s Calls Tot 100us Avg\n\n",
2038 "number",
"match",
"name",
"mode");
2041 for (
i = 0;
i < nb;
i++) {
2072 totalt += templ1->
time;
2074 fprintf(output,
"\n%30s%26s %6d %6ld\n",
"Total",
"",
total, totalt);
2079 childt =
xmlMalloc((nb + 1) *
sizeof(
int));
2084 for (
i = 0;
i < nb;
i++) {
2088 for (
k = 0;
k < nb;
k++) {
2092 childt[
i] +=templ2->
time;
2099 fprintf(output,
"\nindex %% time self children called name\n");
2101 for (
i = 0;
i < nb;
i++) {
2102 char ix_str[20], timep_str[20], times_str[20], timec_str[20], called_str[20];
2109 for (
k = 0;
k < nb;
k++) {
2113 t=templ2?templ2->
time:totalt;
2116 snprintf(called_str,
sizeof(called_str),
"%6d/%d",
2120 fprintf(output,
" %-8s %-8s %-12s %s [%d]\n",
2121 times_str,timec_str,called_str,
2122 (templ2?(templ2->
name?(
char *)templ2->
name:pretty_templ_match(templ2)):
"-"),
k);
2125 snprintf(ix_str,
sizeof(ix_str),
"[%d]",
i);
2126 snprintf(timep_str,
sizeof(timep_str),
"%6.2f",(
float)templ1->
time*100.0/totalt);
2129 fprintf(output,
"%-5s %-6s %-8s %-8s %6d %s [%d]\n",
2130 ix_str, timep_str,times_str,timec_str,
2132 templ1->
name?(
char *)templ1->
name:pretty_templ_match(templ1),
i);
2138 for (
k = 0;
k < nb;
k++) {
2146 for (
k = 0;
k < nb;
k++) {
2152 snprintf(called_str,
sizeof(called_str),
"%6d/%d",
2155 fprintf(output,
" %-8s %-8s %-12s %s [%d]\n",
2156 times_str,timec_str,called_str,
2157 templ2->
name?(
char *)templ2->
name:pretty_templ_match(templ2),
k);
2161 fprintf(output,
"-----------------------------------------------\n");
2164 fprintf(output,
"\f\nIndex by function name\n");
2165 for (
i = 0;
i < nb;
i++) {
2167 fprintf(output,
"[%d] %s (%s:%d)\n",
2168 i, templ1->
name?(
char *)templ1->
name:pretty_templ_match(templ1),
2215 int nb = 0,
max = 0,
i,
j;
2235 templ =
style->templates;
2236 while (templ !=
NULL) {
2242 templ = templ->
next;
2251 for (
i = 0;
i < nb - 1;
i++) {
2252 for (
j =
i + 1;
j < nb;
j++) {
2268 xmlDocSetRootElement(
ret,
root);
2270 for (
i = 0;
i < nb;
i++) {
2314 xmlXPathContextPtr xpathCtxt;
2315 xmlXPathCompExprPtr
ret;
2318 xpathCtxt =
style->principal->xpathCtxt;
2319 if (xpathCtxt ==
NULL)
2321 xpathCtxt->dict =
style->dict;
2323 xpathCtxt = xmlXPathNewContext(
NULL);
2324 if (xpathCtxt ==
NULL)
2327 xpathCtxt->flags =
flags;
2332 ret = xmlXPathCtxtCompile(xpathCtxt,
str);
2335 xmlXPathFreeContext(xpathCtxt);
2387#define XSLT_CALLBACK_NUMBER 3
2389typedef struct _xsltDebuggerCallbacks xsltDebuggerCallbacks;
2390typedef xsltDebuggerCallbacks *xsltDebuggerCallbacksPtr;
2391struct _xsltDebuggerCallbacks {
2397static xsltDebuggerCallbacks xsltDebuggerCurrentCallbacks = {
2431 if ((
block ==
NULL) || (
no != XSLT_CALLBACK_NUMBER))
2435 xsltDebuggerCurrentCallbacks.handler =
callbacks->handler;
2436 xsltDebuggerCurrentCallbacks.add =
callbacks->add;
2437 xsltDebuggerCurrentCallbacks.drop =
callbacks->drop;
2456 if (xsltDebuggerCurrentCallbacks.handler !=
NULL)
2457 xsltDebuggerCurrentCallbacks.handler(
cur,
node, templ, ctxt);
2472 if (xsltDebuggerCurrentCallbacks.add !=
NULL)
2473 return(xsltDebuggerCurrentCallbacks.add(templ,
source));
2485 if (xsltDebuggerCurrentCallbacks.drop !=
NULL)
2486 xsltDebuggerCurrentCallbacks.drop();
static struct _test_info results[8]
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
#define gettimeofday(tv, tz)
static void startup(void)
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
static const WCHAR indent[]
static WCHAR no[MAX_STRING_RESOURCE_LEN]
static void cleanup(void)
BOOL WINAPI QueryPerformanceFrequency(OUT PLARGE_INTEGER lpFrequency)
BOOL WINAPI QueryPerformanceCounter(OUT PLARGE_INTEGER lpPerformanceCount)
UINT(* handler)(MSIPACKAGE *)
XMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL xmlFindCharEncodingHandler(const char *name)
XMLPUBFUN const char *XMLCALL xmlGetCharEncodingName(xmlCharEncoding enc)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
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 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,...)
_Check_return_opt_ _CRTIMP int __cdecl vfprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
void MSVCRT() terminate()
static const WCHAR desc[]
static unsigned int number
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR xmlReallocFunc xmlRealloc
XMLPUBFUN xmlChar *XMLCALL xmlGetProp(const xmlNode *node, const xmlChar *name)
XMLPUBFUN xmlNsPtr XMLCALL xmlSearchNs(xmlDocPtr doc, xmlNodePtr node, const xmlChar *nameSpace)
XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocNode(xmlDocPtr doc, xmlNsPtr ns, const xmlChar *name, const xmlChar *content)
xmlOutputBuffer * xmlOutputBufferPtr
XMLPUBFUN size_t XMLCALL xmlBufUse(const xmlBufPtr buf)
XMLPUBFUN xmlDocPtr XMLCALL xmlNewDoc(const xmlChar *version)
XMLPUBFUN xmlChar *XMLCALL xmlGetNsProp(const xmlNode *node, const xmlChar *name, const xmlChar *nameSpace)
#define XML_XML_NAMESPACE
XMLPUBFUN long XMLCALL xmlGetLineNo(const xmlNode *node)
XMLPUBFUN xmlChar *XMLCALL xmlBufContent(const xmlBuf *buf)
XMLPUBFUN xmlChar *XMLCALL xmlNodeListGetString(xmlDocPtr doc, const xmlNode *list, int inLine)
#define XSLT_GET_IMPORT_INT(res, style, name)
#define XSLT_GET_IMPORT_PTR(res, style, name)
struct _xmlNode * children
const xmlChar * defaultValue
struct _xmlDtd * intSubset
struct _xmlDtd * extSubset
struct _xmlNode * children
struct _xsltTemplate * next
struct _xsltStylesheet * style
xsltTemplatePtr * templCalledTab
xmlGenericErrorFunc error
xmlXPathContextPtr xpathCtxt
xmlChar * xsltEvalAttrValueTemplate(xsltTransformContextPtr ctxt, xmlNodePtr inst, const xmlChar *name, const xmlChar *ns)
xmlChar * xsltEvalTemplateString(xsltTransformContextPtr ctxt, xmlNodePtr contextNode, xmlNodePtr inst)
XMLPUBFUN xmlAttributePtr XMLCALL xmlGetDtdAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name)
static const WCHAR lang[]
void(XMLCDECL * xmlGenericErrorFunc)(void *ctx, const char *msg,...) LIBXML_ATTR_FORMAT(2
static unsigned int block
XMLPUBFUN xmlChar *XMLCALL xmlStrndup(const xmlChar *cur, int len)
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrcmp(const xmlChar *str1, const xmlChar *str2)
XMLPUBFUN int XMLCALL xmlStrlen(const xmlChar *str)
void(* xsltSortFunc)(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
xsltStylesheet * xsltStylesheetPtr
#define LIBXSLT_ATTR_FORMAT(fmt, args)
xsltLocaleChar * xsltStrxfrm(xsltLocale locale, const xmlChar *string)
void xsltFreeLocale(xsltLocale locale)
xsltLocale xsltNewLocale(const xmlChar *languageTag)
int xsltLocaleStrcmp(xsltLocale locale, const xsltLocaleChar *str1, const xsltLocaleChar *str2)
void xsltDoSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
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)
xmlXPathObjectPtr * xsltComputeSortResult(xsltTransformContextPtr ctxt, xmlNodePtr sort)
int xsltGetDebuggerStatus(void)
static xmlXPathObjectPtr * xsltComputeSortResultInternal(xsltTransformContextPtr ctxt, xmlNodePtr sort, int xfrm)
xmlGenericErrorFunc xsltGenericError
void xsltDocumentSortFunction(xmlNodeSetPtr list)
void xsltSetGenericDebugFunc(void *ctx, xmlGenericErrorFunc handler)
const xmlChar * xsltGetCNsProp(xsltStylesheetPtr style, xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace)
static xsltSortFunc xsltSortFunction
int xsltSaveResultToFd(int fd, xmlDocPtr result, xsltStylesheetPtr style)
xmlXPathCompExprPtr xsltXPathCompile(xsltStylesheetPtr style, const xmlChar *str)
int xsltSetCtxtParseOptions(xsltTransformContextPtr ctxt, int options)
xmlGenericErrorFunc xsltGenericDebug
#define XSLT_GET_VAR_STR(msg, str)
int xsltGetUTF8Char(const unsigned char *utf, int *len)
void xsltDefaultSortFunction(xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts)
const xmlChar * xsltGetQNameURI2(xsltStylesheetPtr style, xmlNodePtr node, const xmlChar **name)
void xsltSetTransformErrorFunc(xsltTransformContextPtr ctxt, void *ctx, xmlGenericErrorFunc handler)
void xsltPrintErrorContext(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node)
int xsltSaveResultToString(xmlChar **doc_txt_ptr, int *doc_txt_len, xmlDocPtr result, xsltStylesheetPtr style)
int xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result, xsltStylesheetPtr style)
int xsltSaveResultToFilename(const char *URL, xmlDocPtr result, xsltStylesheetPtr style, int compression)
void xsltSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler)
void * xsltGenericDebugContext
void xsltSetCtxtSortFunc(xsltTransformContextPtr ctxt, xsltSortFunc handler)
void * xsltGenericErrorContext
const xmlChar * xsltSplitQName(xmlDictPtr dict, const xmlChar *name, const xmlChar **prefix)
void xsltSetSortFunc(xsltSortFunc handler)
int xsltSaveResultToFile(FILE *file, xmlDocPtr result, xsltStylesheetPtr style)
xmlChar * xsltGetNsProp(xmlNodePtr node, const xmlChar *name, const xmlChar *nameSpace)
void xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst)
XSLTPUBFUN void XSLTCALL xslDropCall(void)
XSLTPUBFUN void XSLTCALL xsltSaveProfiling(xsltTransformContextPtr ctxt, FILE *output)
XSLTPUBFUN int XSLTCALL xslAddCall(xsltTemplatePtr templ, xmlNodePtr source)
XSLTPUBFUN void XSLTCALL xsltSetDebuggerStatus(int value)
int(* xsltAddCallCallback)(xsltTemplatePtr templ, xmlNodePtr source)
void(* xsltHandleDebuggerCallback)(xmlNodePtr cur, xmlNodePtr node, xsltTemplatePtr templ, xsltTransformContextPtr ctxt)
XSLTPUBFUN void XSLTCALL xsltCalibrateAdjust(long delta)
void(* xsltDropCallCallback)(void)
XSLTPUBFUN xmlDocPtr XSLTCALL xsltGetProfileInformation(xsltTransformContextPtr ctxt)
#define XSLT_TIMESTAMP_TICS_PER_SEC
XSLTPUBFUN long XSLTCALL xsltTimestamp(void)
XSLTPUBFUN int XSLTCALL xsltSetDebuggerCallbacks(int no, void *block)