Details
enum xsltElem
typedef enum {
XSLT_ELEM_VARIABLE=1,
XSLT_ELEM_PARAM
} xsltElem; |
struct xsltStackElem
struct xsltStackElem {
struct _xsltStackElem *next;/* chained list */
xsltElem type; /* type of the element */
int computed; /* was the evaluation done */
xmlChar *name; /* the local part of the name QName */
xmlChar *nameURI; /* the URI part of the name QName */
xmlChar *select; /* the eval string */
xmlNodePtr tree; /* the tree if no eval string */
xmlXPathObjectPtr value; /* The value if computed */
}; |
xsltStackElemPtr
typedef xsltStackElem *xsltStackElemPtr; |
XSLT_PAT_NO_PRIORITY
#define XSLT_PAT_NO_PRIORITY -12345789 |
struct xsltTemplate
struct xsltTemplate {
struct _xsltTemplate *next;/* chained list sorted by priority */
xmlChar *match; /* the matching string */
int priority; /* as given from the stylesheet, not computed */
xmlChar *name; /* the local part of the name QName */
xmlChar *nameURI; /* the URI part of the name QName */
xmlChar *mode; /* the local part of the mode QName */
xmlChar *modeURI; /* the URI part of the mode QName */
xmlNodePtr content; /* the template replacement value */
}; |
xsltTemplatePtr
typedef xsltTemplate *xsltTemplatePtr; |
struct xsltDecimalFormat
struct xsltDecimalFormat *next; /* chained list */
xmlChar *name;
/* Used for interpretation of pattern */
xmlChar *digit;
xmlChar *patternSeparator;
/* May appear in result */
xmlChar *minusSign;
xmlChar *infinity;
xmlChar *noNumber; /* Not-a-number */
/* Used for interpretation of pattern and may appear in result */
xmlChar *decimalPoint;
xmlChar *grouping;
xmlChar *percent;
xmlChar *permille;
xmlChar *zeroDigit;
} xsltDecimalFormat, *xsltDecimalFormatPtr;
/*
* The in-memory structure corresponding to an XSLT Stylesheet
* NOTE: most of the content is simply linked from the doc tree
* structure, no specific allocation is made.
*/
typedef struct _xsltStylesheet xsltStylesheet;
typedef xsltStylesheet *xsltStylesheetPtr;
struct _xsltStylesheet {
/*
* The stylesheet import relation is kept as a tree
*/
struct _xsltStylesheet *parent;
struct _xsltStylesheet *next;
struct _xsltStylesheet *imports;
/*
* General data on the style sheet document
*/
xmlDocPtr doc; /* the parsed XML stylesheet */
xmlHashTablePtr stripSpaces;/* the hash table of the strip-space
preserve space and cdata-section elements */
/*
* Global variable or parameters
*/
xsltStackElemPtr variables; /* linked list of param and variables */
/*
* Template descriptions
*/
xsltTemplatePtr templates; /* the ordered list of templates */
void *templatesHash; /* hash table or wherever compiled templates
informations are stored */
void *rootMatch; /* template based on / */
void *elemMatch; /* template based on * */
void *attrMatch; /* template based on @* */
void *parentMatch; /* template based on .. */
void *textMatch; /* template based on text() */
void *piMatch; /* template based on processing-instruction() */
void *commentMatch; /* template based on comment() */
/*
* Namespace aliases
*/
xmlHashTablePtr nsAliases; /* the namespace alias hash tables */
/*
* Attribute sets
*/
xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
/*
* Output related stuff.
*/
xmlChar *method; /* the output method */
xmlChar *methodURI; /* associated namespace if any */
xmlChar *version; /* version string */
xmlChar *encoding; /* encoding string */
int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */
/* Number formatting */
xsltDecimalFormatPtr decimalFormat;
int standalone; /* standalone = "yes" | "no" */
xmlChar *doctypePublic; /* doctype-public string */
xmlChar *doctypeSystem; /* doctype-system string */
int indent; /* should output being indented */
xmlChar *mediaType; /* media-type string */
}; |
enum xsltOutputType
typedef enum {
XSLT_OUTPUT_XML = 0,
XSLT_OUTPUT_HTML,
XSLT_OUTPUT_TEXT
} xsltOutputType; |
enum xsltTransformState
typedef enum {
XSLT_STATE_OK = 0,
XSLT_STATE_ERROR,
XSLT_STATE_STOPPED
} xsltTransformState; |
struct xsltTransformContext
struct xsltTransformContext {
xsltStylesheetPtr style; /* the stylesheet used */
xsltOutputType type; /* the type of output */
xmlDocPtr doc; /* the current doc */
xmlNodePtr node; /* the current node */
xmlNodeSetPtr nodeList; /* the current node list */
xmlDocPtr output; /* the resulting document */
xmlNodePtr insert; /* the insertion node */
xmlXPathContextPtr xpathCtxt; /* the XPath context */
void *variablesHash; /* hash table or wherever variables
informations are stored */
xmlDocPtr extraDocs; /* extra docs parsed by document() */
xsltTransformState state; /* the current state */
}; |
xsltTransformContextPtr
typedef xsltTransformContext *xsltTransformContextPtr; |
CHECK_STOPPED
#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return; |
CHECK_STOPPEDE
#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error; |
CHECK_STOPPED0
#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0); |
xsltParseStylesheetFile ()
xsltStylesheetPtr xsltParseStylesheetFile (const xmlChar *filename); |
Load and parse an XSLT stylesheet
xsltFreeStylesheet ()
void xsltFreeStylesheet (xsltStylesheetPtr sheet); |
Free up the memory allocated by sheet
xsltIsBlank ()
int xsltIsBlank (xmlChar *str); |
xsltFreeStackElemList ()
Free up the memory allocated by elem
xsltParseStylesheetProcess ()
xsltStylesheetPtr xsltParseStylesheetProcess
(xsltStylesheetPtr ret,
xmlDocPtr doc); |
parse an XSLT stylesheet adding the associated structures
xsltParseStylesheetDoc ()
xsltStylesheetPtr xsltParseStylesheetDoc (xmlDocPtr doc); |
parse an XSLT stylesheet building the associated structures