From 2d9637880d48a0c529055623aabe7247581099f9 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Wed, 23 Jan 2002 22:14:57 +0000 Subject: [PATCH] generated an index based on comments content similar to libxml2 one The * doc/API*.html doc/parsedecl.py doc/*.xsl parsedecl.py: generated an index based on comments content similar to libxml2 one The code need more specific comments. * doc/*: rebuilt the web site with the new references Daniel --- ChangeLog | 7 + doc/API.html | 24 +- doc/APIchunk0.html | 599 +++++ doc/APIchunk1.html | 549 +++++ doc/APIchunk2.html | 656 +++++ doc/APIchunk3.html | 628 +++++ doc/APIchunk4.html | 490 ++++ doc/APIchunk5.html | 575 +++++ doc/APIchunk6.html | 609 +++++ doc/APIconstructors.html | 204 ++ doc/APIfiles.html | 383 +++ doc/APIfunctions.html | 627 +++++ doc/APIsymbols.html | 339 +++ doc/FAQ.html | 24 +- doc/Makefile.am | 27 +- doc/api.xsl | 376 +++ doc/bugs.html | 24 +- doc/contribs.html | 24 +- doc/docbook.html | 24 +- doc/docs.html | 24 +- doc/downloads.html | 24 +- doc/extensions.html | 24 +- doc/help.html | 24 +- doc/html/book1.html | 10 +- doc/html/libxslt-attributes.html | 45 +- doc/html/libxslt-functions.html | 171 +- doc/html/libxslt-imports.html | 110 +- doc/html/libxslt-keys.html | 81 +- doc/html/libxslt-lib.html | 10 +- doc/html/libxslt-namespaces.html | 128 +- doc/html/libxslt-pattern.html | 147 +- doc/html/libxslt-templates.html | 161 +- doc/html/libxslt-transform.html | 527 ++-- doc/html/libxslt-variables.html | 284 +-- doc/html/libxslt-xslt.html | 38 +- doc/html/libxslt-xsltinternals.html | 423 ++-- doc/html/libxslt-xsltutils.html | 485 +--- doc/index.html | 24 +- doc/internals.html | 24 +- doc/intro.html | 24 +- doc/libxslt-api.xml | 1575 ++++++++++++ doc/libxslt-refs.xml | 4507 +++++++++++++++++++++++++++++++++++ doc/libxslt.sgml | 2 + doc/news.html | 24 +- doc/parsedecl.py | 913 +++++++ doc/site.xsl | 37 +- doc/xsltproc2.html | 24 +- 47 files changed, 14232 insertions(+), 1827 deletions(-) create mode 100644 doc/APIchunk0.html create mode 100644 doc/APIchunk1.html create mode 100644 doc/APIchunk2.html create mode 100644 doc/APIchunk3.html create mode 100644 doc/APIchunk4.html create mode 100644 doc/APIchunk5.html create mode 100644 doc/APIchunk6.html create mode 100644 doc/APIconstructors.html create mode 100644 doc/APIfiles.html create mode 100644 doc/APIfunctions.html create mode 100644 doc/APIsymbols.html create mode 100644 doc/api.xsl create mode 100644 doc/libxslt-api.xml create mode 100644 doc/libxslt-refs.xml create mode 100755 doc/parsedecl.py diff --git a/ChangeLog b/ChangeLog index 67e6c6c..99c28dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Jan 23 23:13:37 CET 2002 Daniel Veillard + + * doc/API*.html doc/parsedecl.py doc/*.xsl parsedecl.py: generated + an index based on comments content similar to libxml2 one + The code need more specific comments. + * doc/*: rebuilt the web site with the new references + Mon Jan 21 09:53:45 CET 2002 Daniel Veillard * libxslt/functions.h: roll back the change after more analysis diff --git a/doc/API.html b/doc/API.html index 2dd24e3..8e85eaf 100644 --- a/doc/API.html +++ b/doc/API.html @@ -3,11 +3,11 @@ The programming API @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }        
-
Main Menu
    +
+ + +
API Indexes
+ -

Name

Synopsis

Description

Details

xsltAddKey ()

>xsltAddKey ()
Related links
    +
    
-
Main Menu
    +
+ + +
API Indexes
+ -   
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/Makefile.am b/doc/Makefile.am index 0de67f6..1705eb0 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -14,27 +14,50 @@ HTML_DIR=@HTML_DIR@ TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)/html PAGES= API.html bugs.html contribs.html docs.html downloads.html \ help.html index.html intro.html news.html xsltproc2.html FAQ.html +APIPAGES=APIconstructors.html APIfiles.html APIfunctions.html \ + APIsymbols.html APIchunk0.html man_MANS = xsltproc.1 all : $(PAGES) +web: $(PAGES) $(APIPAGES) + $(PAGES): $(srcdir)/xslt.html $(srcdir)/site.xsl ../xsltproc/xsltproc --html $(srcdir)/site.xsl $(srcdir)/xslt.html > index.html +$(APIPAGES): libxslt-refs.xml site.xsl api.xsl + -@(if [ -x $(bindir)/xsltproc ] ; then \ + $(bindir)/xsltproc --html $(srcdir)/api.xsl $(srcdir)/xslt.html ; fi ); + scan: - gtkdoc-scan --module=libxslt --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="acconfig.h config.h win32config.h" + gtkdoc-scan --module=libxslt --source-dir=$(DOC_SOURCE_DIR)/libxslt --ignore-headers="acconfig.h config.h win32config.h" +# gtkdoc-scan --module=libexslt --source-dir=$(DOC_SOURCE_DIR)/libexslt --ignore-headers="acconfig.h config.h win32config.h" templates: scan gtkdoc-mktmpl --module=libxslt +# gtkdoc-mktmpl --module=libexslt sgml: - gtkdoc-mkdb --module=libxslt --source-dir=$(DOC_SOURCE_DIR) + gtkdoc-mkdb --module=libxslt --source-dir=$(DOC_SOURCE_DIR)/libxslt +# gtkdoc-mkdb --module=libxslt --source-dir=$(DOC_SOURCE_DIR)/libexslt html: if ! test -d html ; then mkdir html ; fi -cd html && gtkdoc-mkhtml libxslt ../$(DOC_MAIN_SGML_FILE) +xml: sgml + if test -d xml ; then rm xml/* ; else mkdir xml ; fi + -@(for s in sgml/*.sgml ; do name=`basename $$s .sgml` ; \ + echo ' ]>' > \ + xml/"$$name".xml ;\ + grep -v "^> xml/"$$name".xml ; done) + +libxslt-api.xml libxslt-refs.xml: xml parsedecl.py libxslt-decl.txt libxslt-decl-list.txt + -(./parsedecl.py) + +api: libxslt-api.xml libxslt-refs.xml + clean-local: rm -f *~ *.bak *.hierarchy *.signals *-unused.txt diff --git a/doc/api.xsl b/doc/api.xsl new file mode 100644 index 0000000..b5b5cdd --- /dev/null +++ b/doc/api.xsl @@ -0,0 +1,376 @@ + + + + + + + + + + + + + + + + + +

    Type :

    +

    + + + + + +

    +
    + +

    Letter :

    +

    + + + + + +

    +
    + +

    Module :

    +

    + + + + + +

    +
    + +

    Letter :

    +
    + +
    +
    + + + + + +
    +
    +
    +
    + + + Generating API Constructors + List of constructors for + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + +
    + + + + +
    + + + + +
    + +

    Daniel Veillard

    +
    +
    +
    +
    +
    + + +
    +
    + + Generating API List of synbols per file + List of Symbols per Module for + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + +
    + + + + +
    + + + + +
    + +

    Daniel Veillard

    +
    +
    +
    +
    +
    + + +
    +
    + + Generating API Functions by Type + List of function manipulating types in + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + +
    + + + + +
    + + + + +
    + +

    Daniel Veillard

    +
    +
    +
    +
    +
    + + +
    +
    + + Generating API Alphabetic list + Alphabetic List of Symbols in + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + +
    + + + + +
    + + + + +
    + +

    Daniel Veillard

    +
    +
    +
    +
    +
    + + +
    +
    + +

    + + + + + + + + + +

    +
    + + + + + + + API Alphabetic Index for + + + + + + + + + + + + + + + + +
    + + + + + +
    + + + + + + +
    + + + + +
    + + + + +
    + + + +

    Daniel Veillard

    +
    +
    +
    +
    +
    + + +
    +
    + + + Generating API Index + + + + + Generating API Cross References + + + + + + + + + + + +
    diff --git a/doc/bugs.html b/doc/bugs.html index a16e996..3329b86 100644 --- a/doc/bugs.html +++ b/doc/bugs.html @@ -3,11 +3,11 @@ Reporting bugs and getting help @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
  
-
Main Menu
    +
+ + +
API Indexes
+ -   
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/contribs.html b/doc/contribs.html index 86f4d53..324fca7 100644 --- a/doc/contribs.html +++ b/doc/contribs.html @@ -3,11 +3,11 @@ Contributions @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
 
-
Main Menu
    +
+ + +
API Indexes
+ -  
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/docbook.html b/doc/docbook.html index 3de851a..aeac4c3 100644 --- a/doc/docbook.html +++ b/doc/docbook.html @@ -3,11 +3,11 @@ DocBook @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
  
-
Main Menu
    +
+ + +
API Indexes
+ -  
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/docs.html b/doc/docs.html index 13ce4f8..c3447bc 100644 --- a/doc/docs.html +++ b/doc/docs.html @@ -3,11 +3,11 @@ Documentation @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
  
-
Main Menu
    +
+ + +
API Indexes
+ -  
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/downloads.html b/doc/downloads.html index 1044b31..7d73fa3 100644 --- a/doc/downloads.html +++ b/doc/downloads.html @@ -3,11 +3,11 @@ Downloads @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
  
-
Main Menu
    +
+ + +
API Indexes
+ -  
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/extensions.html b/doc/extensions.html index 2171076..38c9acf 100644 --- a/doc/extensions.html +++ b/doc/extensions.html @@ -3,11 +3,11 @@ Writing extensions @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
  
-
Main Menu
    +
+ + +
API Indexes
+ -    
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/help.html b/doc/help.html index fdfca33..ad13d92 100644 --- a/doc/help.html +++ b/doc/help.html @@ -3,11 +3,11 @@ How to help @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
    
-
Main Menu
    +
+ + +
API Indexes
+ -  
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/html/book1.html b/doc/html/book1.html index 1ecb985..4cda452 100644 --- a/doc/html/book1.html +++ b/doc/html/book1.html @@ -164,6 +164,11 @@ HREF="libxslt-imports.html" > —
    extensions
    namespaces
    xsltInternals —
    numbersInternals

    Name

    Synopsis

    Description

    Details

    xsltParseStylesheetAttributeSet ()

    >xsltParseStylesheetAttributeSet ()

    parse an XSLT stylesheet preserve-space element and record -elements needing preserving

    the XSLT stylesheet

xsltFreeAttributeSetsHashes ()

>xsltFreeAttributeSetsHashes ()

Free up the memory used by attribute sets

an XSLT stylesheet

xsltApplyAttributeSet ()

>xsltApplyAttributeSet ()

Apply the xsl:use-attribute-sets

the XSLT stylesheet
the node in the source tree.
the xslt attribute node
the set list.

Name

Synopsis

Description

Details

XSLT_REGISTER_FUNCTION_LOOKUP()

>XSLT_REGISTER_FUNCTION_LOOKUP()

registering macro, not general purpose at all but used in different modules


xsltXPathFunctionLookup ()

>xsltXPathFunctionLookup ()

This is the entry point when a function is needed by the XPath -interpretor.

a void * but the XSLT transformation context actually
the function name
the function namespace URI
the callback function or NULL if not found

xsltDocumentFunction ()

>xsltDocumentFunction ()

Implement the document() XSLT function -node-set document(object, node-set?)

the XPath Parser context
the number of arguments

xsltKeyFunction ()

>xsltKeyFunction ()

Implement the key() XSLT function -node-set key(string, object)

the XPath Parser context
the number of arguments

xsltUnparsedEntityURIFunction ()

>xsltUnparsedEntityURIFunction ()

Implement the unparsed-entity-uri() XSLT function -string unparsed-entity-uri(string)

the XPath Parser context
the number of arguments

xsltFormatNumberFunction ()

>xsltFormatNumberFunction ()

Implement the format-number() XSLT function -string format-number(number, string, string?)

the XPath Parser context
the number of arguments

xsltGenerateIdFunction ()

>xsltGenerateIdFunction ()

Implement the generate-id() XSLT function -string generate-id(node-set?)

the XPath Parser context
the number of arguments

xsltSystemPropertyFunction ()

>xsltSystemPropertyFunction ()

Implement the system-property() XSLT function -object system-property(string)

the XPath Parser context
the number of arguments

xsltElementAvailableFunction ()

>xsltElementAvailableFunction ()

Implement the element-available() XSLT function -boolean element-available(string)

the XPath Parser context
the number of arguments

xsltFunctionAvailableFunction ()

>xsltFunctionAvailableFunction ()

Implement the function-available() XSLT function -boolean function-available(string)

the XPath Parser context
the number of arguments

xsltRegisterAllFunctions ()

>xsltRegisterAllFunctions ()

Registers all default XSLT functions in this context

the XPath context

Name

Synopsis

Description

Details

XSLT_GET_IMPORT_PTR()

>XSLT_GET_IMPORT_PTR()

a macro to import pointers from the stylesheet cascading order


XSLT_GET_IMPORT_INT()

>XSLT_GET_IMPORT_INT()

a macro to import intergers from the stylesheet cascading order


xsltParseStylesheetImport ()

>xsltParseStylesheetImport ()

parse an XSLT stylesheet strip-space element and record -elements needing stripping

the XSLT stylesheet

xsltParseStylesheetInclude ()

>xsltParseStylesheetInclude ()

parse an XSLT stylesheet strip-space element and record -elements needing stripping

the XSLT stylesheet

xsltNextImport ()

>xsltNextImport ()

Find the next stylesheet in import precedence.

the next stylesheet or NULL if it was the last one

xsltNeedElemSpaceHandling ()

>xsltNeedElemSpaceHandling ()

Returns whether that stylesheet requires white-space stripping

an XSLT transformation context
1 if space should be stripped, 0 if not

xsltFindElemSpaceHandling ()

>xsltFindElemSpaceHandling ()

Find strip-space or preserve-space informations for an element -respect the import precedence or the wildcards

an XSLT transformation context
an XML node
1 if space should be stripped, 0 if not, and 2 if everything -should be CDTATA wrapped.

xsltFindTemplate ()

>xsltFindTemplate ()

Finds the named template, apply import precedence rule.

an XSLT transformation context
the template name
the template name URI
the xsltTemplatePtr or NULL if not found
namespacesextensions

add a key definition to a stylesheet

an XSLT stylesheet
the key name or NULL
the name URI or NULL
the match value
the use value
the key instruction
0 in case of success, and -1 in case of failure.

xsltGetKey ()

>xsltGetKey ()

Lookup a key

an XSLT transformation context  the key name or NULL  the name URI or NULL  the key value to look for the nodeset resulting from the query or NULL 

xsltInitCtxtKeys ()

>xsltInitCtxtKeys ()

Computes all the keys tables for the current input document. -Should be done before global varibales are initialized.

an XSLT transformation context  an XSLT document 

xsltFreeKeys ()

>xsltFreeKeys ()

Free up the memory used by XSLT keys in a stylesheet

an XSLT stylesheet 

xsltFreeDocumentKeys ()

>xsltFreeDocumentKeys ()

Free the keys associated to a document

a XSLT document  —
extensions
namespaces
xsltInternals —
numbersInternals

Name

Synopsis

Description

Details

xsltNamespaceAlias ()

>xsltNamespaceAlias ()

Read the stylesheet-prefix and result-prefix attributes, register -them as well as the corresponding namespace.

the XSLT stylesheet  the xsl:namespace-alias node 

xsltGetNamespace ()

>xsltGetNamespace ()

Find the right namespace value for this prefix, if needed create -and add a new namespace decalaration on the node -Handle namespace aliases

a transformation context  the input node  the namespace  the output node (or its parent) the namespace node to use or NULL 

xsltGetSpecialNamespace ()

>xsltGetSpecialNamespace ()

Find the right namespace value for this URI, if needed create -and add a new namespace decalaration on the node

a transformation context  the input node  the namespace URI  the suggested prefix  the output node (or its parent) the namespace node to use or NULL 

xsltCopyNamespace ()

>xsltCopyNamespace ()

Do a copy of an namespace node. If node is non-NULL the -new namespaces are added automatically. This handles namespaces -aliases

a transformation context  the target node  the namespace node  a new xmlNsPtr, or NULL in case of error. 

xsltCopyNamespaceList ()

>xsltCopyNamespaceList ()

Do a copy of an namespace list. If node is non-NULL the -new namespaces are added automatically. This handles namespaces -aliases

a transformation context  the target node  the first namespace  a new xmlNsPtr, or NULL in case of error. 

xsltFreeNamespaceAliasHashes ()

>xsltFreeNamespaceAliasHashes ()

Free up the memory used by namespaces aliases

an XSLT stylesheet importsextensions

Name

Synopsis

Description

Details

struct xsltCompMatch

>struct xsltCompMatch

Data structure used for the implementation of patterns. -It is kept private (in pattern.c)


xsltCompMatchPtr

>xsltCompMatchPtr

xsltCompilePattern ()

>xsltCompilePattern ()

Compile the XSLT pattern and generates a list of precompiled form suitable -for fast matching.

[1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern

an XSLT pattern  the containing document  the containing element the generated pattern list or NULL in case of failure 

xsltFreeCompMatchList ()

>xsltFreeCompMatchList ()

Free up the memory allocated by all the elements of comp

an XSLT comp list 

xsltTestCompMatchList ()

>xsltTestCompMatchList ()

Test wether the node matches one of the patterns in the list

a XSLT process context  a node  the precompiled pattern list 1 if it matches, 0 if it doesn't and -1 in case of failure 

xsltAddTemplate ()

>xsltAddTemplate ()

Register the XSLT pattern associated to cur

an XSLT stylesheet  an XSLT template  the mode name or NULL  the mode URI or NULL -1 in case of error, 0 otherwise 

xsltGetTemplate ()

>xsltGetTemplate ()

Finds the template applying to this node, if style is non-NULL -it means one needs to look for the next imported template in scope.

a XSLT process context  the node being processed  the current style the xsltTemplatePtr or NULL if not found 

xsltFreeTemplateHashes ()

>xsltFreeTemplateHashes ()

Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism

an XSLT stylesheet 

xsltCleanupTemplates ()

>xsltCleanupTemplates ()

Cleanup the state of the templates used by the stylesheet and -the ones it imports.

an XSLT stylesheet 

xsltMatchPattern ()

>xsltMatchPattern ()

Determine if a node matches a pattern.

a node in the source tree  an XSLT pattern 

Name

Synopsis

Description

Details

xsltEvalXPathPredicate ()

>xsltEvalXPathPredicate ()

Process the expression using XPath and evaluate the result as -an XPath predicate

the XSLT transformation context  the XPath compiled expression  the namespaces in scope  the number of namespaces in scope 1 is the predicate was true, 0 otherwise 

xsltEvalTemplateString ()

>xsltEvalTemplateString ()

Evaluate a template string value, i.e. the parent list is interpreter -as template content and the resulting tree string value is returned -This is needed for example by xsl:comment and xsl:processing-instruction

the XSLT transformation context  the stylesheet node  the content parent the computed string value or NULL, must be deallocated by the -caller. 

xsltEvalAttrValueTemplate ()

>xsltEvalAttrValueTemplate ()

Evaluate a attribute value template, i.e. the attribute value can -contain expressions contained in curly braces ({}) and those are -substituted by they computed value.

the XSLT transformation context  the stylesheet node  the attribute QName  the attribute namespace URI the computed string value or NULL, must be deallocated by the -caller. 

xsltEvalStaticAttrValueTemplate ()

>xsltEvalStaticAttrValueTemplate ()

Check if an attribute value template has a static value, i.e. the -attribute value does not contain expressions contained in curly braces ({})

the XSLT stylesheet  the stylesheet node  the attribute Name  the attribute namespace URI  indicator whether the attribute is present the static string value or NULL, must be deallocated by the -caller. 

xsltEvalXPathString ()

>xsltEvalXPathString ()

Process the expression using XPath and get a string

the XSLT transformation context  the compiled XPath expression the computed string value or NULL, must be deallocated by the -caller. 

xsltTemplateProcess ()

>xsltTemplateProcess ()

Process the given node and return the new string value.

the XSLT transformation context  the attribute template node the computed tree replacement 

xsltAttrListTemplateProcess ()

>xsltAttrListTemplateProcess ()

Do a copy of an attribute list with attribute template processing

the XSLT transformation context  the element where the attributes will be grafted  the first attribute  a new xmlAttrPtr, or NULL in case of error. 

xsltAttrTemplateProcess ()

>xsltAttrTemplateProcess ()

Process the given attribute and return the new processed copy.

the XSLT transformation context  the result node the attribute replacement. 

xsltAttrTemplateValueProcess ()

>xsltAttrTemplateValueProcess ()

Process the given node and return the new string value.

the XSLT transformation context the computed string value or NULL, must be deallocated by the -caller. 

Name

Synopsis

Description

Details

xsltSetXIncludeDefault ()

>xsltSetXIncludeDefault ()

Set whether XInclude should be processed on document being loaded by default

whether to do XInclude processing 

xsltGetXIncludeDefault ()

>xsltGetXIncludeDefault ()

return the default state for XInclude processing

0 if there is no processing 1 otherwise 

xsltNewTransformContext ()

>xsltNewTransformContext ()

Create a new XSLT TransformContext

a parsed XSLT stylesheet  the input document the newly allocated xsltTransformContextPtr or NULL in case of error 

xsltFreeTransformContext ()

>xsltFreeTransformContext ()

Free up the memory allocated by ctxt

an XSLT parser context 

xsltApplyStylesheetUser ()

>xsltApplyStylesheetUser ()

Apply the stylesheet to the document and allow the user to provide -its own transformation context.

a parsed XSLT stylesheet  a parsed XML document  a NULL terminated arry of parameters names/values tuples  the targetted output  profile FILE * output or NULL  user provided transform context the result document or NULL in case of error 

xsltApplyStripSpaces ()

>xsltApplyStripSpaces ()

Strip the unwanted ignorable spaces from the input tree

a XSLT process context 

xsltExtElementLookup ()

>xsltExtElementLookup ()

Looks up an extension element. ctxt can be NULL to search only in -module elements.

an XSLT process context  the element name  the element namespace URI the element callback or NULL if not found 

xsltApplyStylesheet ()

>xsltApplyStylesheet ()

Apply the stylesheet to the document -NOTE: This may lead to a non-wellformed output XML wise !

a parsed XSLT stylesheet  a parsed XML document  a NULL terminated arry of parameters names/values tuples the result document or NULL in case of error 

xsltProfileStylesheet ()

>xsltProfileStylesheet ()

Apply the stylesheet to the document and dump the profiling to -the given output.

a parsed XSLT stylesheet  a parsed XML document  a NULL terminated arry of parameters names/values tuples  a FILE * for the profiling output the result document or NULL in case of error 

xsltRunStylesheet ()

>xsltRunStylesheet ()

Apply the stylesheet to the document and generate the output according -to output SAX and IObuf. It's an error to specify both SAX and IObuf.

NOTE: This may lead to a non-wellformed output XML wise ! -NOTE: This may also result in multiple files being generated -NOTE: using IObuf, the result encoding used will be the one used for -creating the output buffer, use the following macro to read it -from the stylesheet -XSLT_GET_IMPORT_PTR(encoding, style, encoding) -NOTE: using SAX, any encoding specified in the stylesheet will be lost -since the interface uses only UTF8

a parsed XSLT stylesheet  a parsed XML document  a NULL terminated arry of parameters names/values tuples  the URL/filename ot the generated resource if available  a SAX handler for progressive callback output (not implemented yet)  an output buffer for progressive output (not implemented yet) the number of by written to the main resource or -1 in case of -error. 

xsltApplyOneTemplate ()

>xsltApplyOneTemplate ()

Process the apply-templates node on the source node, if params are passed -they are pushed on the variable stack but not popped, it's left to the -caller to handle them back (they may be reused).

a XSLT process context  the node in the source tree.  the template replacement nodelist  if is this a real template processing, the template processed  a set of parameters for the template or NULL 

xsltDocumentElem ()

>xsltDocumentElem ()

Process an XSLT-1.1 document element

an XSLT processing context  The current node  the instruction in the stylesheet  precomputed information 

xsltSort ()

>xsltSort ()

function attached to xsl:sort nodes, but this should not be -called directly

a XSLT process context  the node in the source tree.  the xslt sort node  precomputed information 

xsltCopy ()

>xsltCopy ()

Process the xslt copy node on the source node

a XSLT process context  the node in the source tree.  the xslt copy node  precomputed information 

xsltText ()

>xsltText ()

Process the xslt text node on the source node

a XSLT process context  the node in the source tree.  the xslt text node  precomputed information 

xsltElement ()

>xsltElement ()

Process the xslt element node on the source node

a XSLT process context  the node in the source tree.  the xslt element node  precomputed information 

xsltComment ()

>xsltComment ()

Process the xslt comment node on the source node

a XSLT process context  the node in the source tree.  the xslt comment node  precomputed information 

xsltAttribute ()

>xsltAttribute ()

Process the xslt attribute node on the source node

a XSLT process context  the node in the source tree.  the xslt attribute node  precomputed information 

xsltProcessingInstruction ()

>xsltProcessingInstruction ()

Process the xslt processing-instruction node on the source node

a XSLT process context  the node in the source tree.  the xslt processing-instruction node  precomputed information 

xsltCopyOf ()

>xsltCopyOf ()

Process the xslt copy-of node on the source node

a XSLT process context  the node in the source tree.  the xslt copy-of node  precomputed information 

xsltValueOf ()

>xsltValueOf ()

Process the xslt value-of node on the source node

a XSLT process context  the node in the source tree.  the xslt value-of node  precomputed information 

xsltNumber ()

>xsltNumber ()

Process the xslt number node on the source node

a XSLT process context  the node in the source tree.  the xslt number node  precomputed information 

xsltApplyImports ()

>xsltApplyImports ()

Process the xslt apply-imports node on the source node

a XSLT process context  the node in the source tree.  the xslt apply-imports node  precomputed information 

xsltCallTemplate ()

>xsltCallTemplate ()

Process the xslt call-template node on the source node

a XSLT process context  the node in the source tree.  the xslt call-template node  precomputed information 

xsltApplyTemplates ()

>xsltApplyTemplates ()

Process the apply-templates node on the source node

a XSLT process context  the node in the source tree.  the apply-templates node  precomputed information 

xsltChoose ()

>xsltChoose ()

Process the xslt choose node on the source node

a XSLT process context  the node in the source tree.  the xslt choose node  precomputed information 

xsltIf ()

>xsltIf ()

Process the xslt if node on the source node

a XSLT process context  the node in the source tree.  the xslt if node  precomputed information 

xsltForEach ()

>xsltForEach ()

Process the xslt for-each node on the source node

a XSLT process context  the node in the source tree.  the xslt for-each node  precomputed information 

xsltRegisterAllElement ()

>xsltRegisterAllElement ()

Registers all default XSLT elements in this context

the XPath context 

xslHandleDebugger ()

>xslHandleDebugger ()

If either cur or node are a breakpoint, or xslDebugStatus in state -where debugging must occcur at this time then transfer control -to the xslDebugBreak function

source node being executed  data node being processed  temlate that applies to node  the xslt transform context  

Name

Synopsis

Description

Details

XSLT_REGISTER_VARIABLE_LOOKUP()

>XSLT_REGISTER_VARIABLE_LOOKUP()

registering macro, not general purpose at all but used in different modules


xsltEvalGlobalVariables ()

>xsltEvalGlobalVariables ()

Evaluate the global variables of a stylesheet. This need to be -done on parsed stylesheets before starting to apply transformations

the XSLT transformation context 0 in case of success, -1 in case of error 

xsltEvalUserParams ()

>xsltEvalUserParams ()

ctxt: the XSLT transformation context -params: a NULL terminated array of parameters name/value tuples

Evaluate the global variables of a stylesheet. This needs to be -done on parsed stylesheets before starting to apply transformations. -Each of the parameters is evaluated as an XPath expression and stored -in the global variables/parameter hash table. If you want your -parameter used literally, use xsltQuoteUserParams.

0 in case of success, -1 in case of error 

xsltQuoteUserParams ()

>xsltQuoteUserParams ()

ctxt: the XSLT transformation context -params: a NULL terminated arry of parameters names/values tuples

Similar to xsltEvalUserParams, but the values are treated literally and -are * *not* evaluated as XPath expressions. This should be done on parsed -stylesheets before starting to apply transformations.

0 in case of success, -1 in case of error. 

xsltEvalOneUserParam ()

>xsltEvalOneUserParam ()

ctxt: the XSLT transformation context -name: a null terminated string giving the name of the parameter -value a null terminated string giving the XPath expression to be evaluated

This is normally called from xsltEvalUserParams to process a single -parameter from a list of parameters. The value is evaluated as an -XPath expression and the result is stored in the context's global -variable/parameter hash table.

To have a parameter treated literally (not as an XPath expression) -use xsltQuoteUserParams (or xsltQuoteOneUserParam). For more -details see description of xsltProcessOneUserParamInternal.

0 in case of success, -1 in case of error. 

xsltQuoteOneUserParam ()

>xsltQuoteOneUserParam ()

ctxt: the XSLT transformation context -name: a null terminated string giving the name of the parameter -value a null terminated string giving the parameter value

This is normally called from xsltQuoteUserParams to process a single -parameter from a list of parameters. The value is stored in the -context's global variable/parameter hash table.

0 in case of success, -1 in case of error. 

xsltParseGlobalVariable ()

>xsltParseGlobalVariable ()

parse an XSLT transformation variable declaration and record -its value.

the XSLT stylesheet  the "variable" element 

xsltParseGlobalParam ()

>xsltParseGlobalParam ()

parse an XSLT transformation param declaration and record -its value.

the XSLT stylesheet  the "param" element 

xsltParseStylesheetVariable ()

>xsltParseStylesheetVariable ()

parse an XSLT transformation variable declaration and record -its value.

the XSLT transformation context  the "variable" element 

xsltParseStylesheetParam ()

>xsltParseStylesheetParam ()

parse an XSLT transformation param declaration and record -its value.

the XSLT transformation context  the "param" element 

xsltParseStylesheetCallerParam ()

>xsltParseStylesheetCallerParam ()

parse an XSLT transformation param declaration, compute -its value but doesn't record it.

It returns the new xsltStackElemPtr or NULL

the XSLT transformation context  the "param" element 

xsltAddStackElemList ()

>xsltAddStackElemList ()

add the new element list at this level of the stack.

xn XSLT transformation context  a stack element list 0 in case of success, -1 in case of failure. 

xsltFreeGlobalVariables ()

>xsltFreeGlobalVariables ()

Free up the data associated to the global variables -its value.

the XSLT transformation context 

xsltVariableLookup ()

>xsltVariableLookup ()

Search in the Variable array of the context for the given -variable value.

the XSLT transformation context  the variable name  the variable namespace URI the value or NULL if not found 

xsltXPathVariableLookup ()

>xsltXPathVariableLookup ()

This is the entry point when a varibale is needed by the XPath -interpretor.

a void * but the the XSLT transformation context actually  the variable name  the variable namespace URI the value or NULL if not found XSLT_DEFAULT_VERSION>XSLT_DEFAULT_VERSION

The default version of XSLT supported


XSLT_DEFAULT_VENDOR

>XSLT_DEFAULT_VENDOR

The XSLT "vendor" string for this processor


XSLT_DEFAULT_URL

>XSLT_DEFAULT_URL

The XSLT "vendor" URL for this processor


XSLT_NAMESPACE

>XSLT_NAMESPACE

The XSLT specification namespace


LIBXSLT_PUBLIC

>LIBXSLT_PUBLIC

This macro is needed on Win32 when using MSVC. It enables the client code -to access exported variables. It should expand to nothing when compiling -this library itself, but must expand to __declspec(dllimport) when a -client includes the library header and that only if it links dynamically -against this library.


xsltCleanupGlobals ()

>xsltCleanupGlobals ()

Unregister all global variables set up by the XSLT library

Next Page >>> 

Name

Synopsis

typedef xsltElemPreCompPtr (); void (xmlNodePtr inst, xsltElemPreCompPtr comp); enum *xsltElemPreCompDeallocator) (xsltElemPreCompPtr comp); struct

Description

Details

XSLT_MAX_SORT

>XSLT_MAX_SORT

Max number of specified xsl:sort on an element


XSLT_PAT_NO_PRIORITY

>XSLT_PAT_NO_PRIORITY

specific value for pattern without priority expressed


struct xsltTemplate

>struct xsltTemplate

The in-memory structure corresponding to an XSLT Template


xsltTemplatePtr

>xsltTemplatePtr

struct xsltDecimalFormat

>struct xsltDecimalFormat

Data structure of decimal-format


xsltDecimalFormatPtr

>xsltDecimalFormatPtr

struct xsltDocument

>struct xsltDocument

Data structure associated to a parsed document


xsltDocumentPtr

>xsltDocumentPtr

struct xsltTransformContext

>struct xsltTransformContext

xsltTransformContextPtr

>xsltTransformContextPtr

struct xsltElemPreComp

>struct xsltElemPreComp

The in-memory structure corresponding to element precomputed data, -designed to be extended by extension implementors.


xsltElemPreCompPtr ()

>xsltElemPreCompPtr ()


xsltTransformFunction ()

>xsltTransformFunction ()
xmlNodePtr inst, xsltElemPreCompPtr comp);

signature of the function associated to elements part of the -stylesheet language like xsl:if or xsl:apply-templates.

the XSLT transformation context  the input node  the stylesheet node  the compiled information from the stylesheet 

enum xsltStyleType

>enum xsltStyleType

xsltElemPreCompDeallocator ()

>xsltElemPreCompDeallocator ()
void        (*xsltElemPreCompDeallocator)   (xsltElemPreCompPtr comp);

Deallocates an xsltElemPreComp structure

the xsltElemPreComp to free up 

struct xsltStylePreComp

>struct xsltStylePreComp

The in-memory structure corresponding to XSLT stylesheet constructs -precomputed data.


xsltStylePreCompPtr

>xsltStylePreCompPtr

struct xsltStackElem

>struct xsltStackElem

xsltStackElemPtr

>xsltStackElemPtr

struct xsltStylesheet

>struct xsltStylesheet

xsltStylesheetPtr

>xsltStylesheetPtr

enum xsltOutputType

>enum xsltOutputType

enum xsltTransformState

>enum xsltTransformState

CHECK_STOPPED

>CHECK_STOPPED

Macro to check if the XSLT processing should be stopped -will return from the function


CHECK_STOPPEDE

>CHECK_STOPPEDE

Macro to check if the XSLT processing should be stopped -will goto the error: label


CHECK_STOPPED0

>CHECK_STOPPED0

Macro to check if the XSLT processing should be stopped -will return from the function with a 0 value


xsltNewStylesheet ()

>xsltNewStylesheet ()

Create a new XSLT Stylesheet

the newly allocated xsltStylesheetPtr or NULL in case of error 

xsltParseStylesheetFile ()

>xsltParseStylesheetFile ()

Load and parse an XSLT stylesheet

the filename/URL to the stylesheet a new XSLT stylesheet structure. 

xsltFreeStylesheet ()

>xsltFreeStylesheet ()

Free up the memory allocated by sheet

an XSLT stylesheet 

xsltIsBlank ()

>xsltIsBlank ()

Check if a string is ignorable

a string 1 if the string is NULL or made of blanks chars, 0 otherwise 

xsltFreeStackElemList ()

>xsltFreeStackElemList ()

Free up the memory allocated by elem

an XSLT stack element 

xsltDecimalFormatGetByName ()

>xsltDecimalFormatGetByName ()

Find decimal-format by name

the XSLT stylesheet  the decimal-format name to find 

xsltParseStylesheetProcess ()

>xsltParseStylesheetProcess ()

parse an XSLT stylesheet adding the associated structures

the XSLT stylesheet  and xmlDoc parsed XML a new XSLT stylesheet structure. 

xsltParseStylesheetOutput ()

>xsltParseStylesheetOutput ()

parse an XSLT stylesheet output element and record -information related to the stylesheet output

the XSLT stylesheet  the "output" element 

xsltParseStylesheetDoc ()

>xsltParseStylesheetDoc ()

parse an XSLT stylesheet building the associated structures

and xmlDoc parsed XML a new XSLT stylesheet structure. 

xsltLoadStylesheetPI ()

>xsltLoadStylesheetPI ()

This function tries to locate the stylesheet PI in the given document -If found, and if contained within the document, it will extract -that subtree to build the stylesheet to process doc (doc itself will -be modified). If found but referencing an external document it will -attempt to load it and generate a stylesheet from it. In both cases, -the resulting stylesheet and the document need to be freed once the -transformation is done.

a new XSLT stylesheet structure or NULL if not found. 

xsltNumberFormat ()

>xsltNumberFormat ()

Convert one number.

the XSLT transformation context  the formatting informations  the data to format 

xsltFormatNumberConversion ()

>xsltFormatNumberConversion ()

format-number() uses the JDK 1.1 DecimalFormat class:

http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html

Structure:

pattern := subpattern{;subpattern} -subpattern := {prefix}integer{.fraction}{suffix} -prefix := '\\u0000'..'\\uFFFD' - specialCharacters -suffix := '\\u0000'..'\\uFFFD' - specialCharacters -integer := '#'* '0'* '0' -fraction := '0'* '#'*

Notation: -X* 0 or more instances of X -(X | Y) either X or Y. -X..Y any character from X up to Y, inclusive. -S - T characters in S, except those in T

Special Characters:

Symbol Meaning -0 a digit -# a digit, zero shows as absent -. placeholder for decimal separator -, placeholder for grouping separator. -; separates formats. -- default negative prefix. -% multiply by 100 and show as percentage -? multiply by 1000 and show as per mille -X any other characters can be used in the prefix or suffix -' used to quote special characters in a prefix or suffix.

the decimal format  the format requested  the value to format  the place to ouput the result 

xsltParseTemplateContent ()

>xsltParseTemplateContent ()

parse a template content-model -Clean-up the template content from unwanted ignorable blank nodes -and process xslt:text

the XSLT stylesheet  the container node (can be a document for literal results) Next Page >>> numbersInternals 

Name

Synopsis

xsltCalibrateAdjust (long delta); +HREF="LONG-DELTA" +>long delta); #define XSLT_TIMESTAMP_TICS_PER_SECxslDropCall (); (void);

Description

Details

XSLT_TODO

>XSLT_TODO

XSLT_STRANGE

>XSLT_STRANGE

IS_XSLT_ELEM()

>IS_XSLT_ELEM()

Checks that the element pertains to XSLt namespace


IS_XSLT_NAME()

>IS_XSLT_NAME()

Checks the value of an element in XSLT namespace


IS_XSLT_REAL_NODE()

>IS_XSLT_REAL_NODE()

check that a node is a 'real' one: document, element, text or attribute


xsltGetNsProp ()

>xsltGetNsProp ()

Similar to xmlGetNsProp() but with a slightly different semantic

Search and get the value of an attribute associated to a node -This attribute has to be anchored in the namespace specified, -or has no namespace and the element is in that namespace.

This does the entity substitution. -This function looks in DTD attribute declaration for FIXED or -default declaration values unless DTD use has been turned off.

the node  the attribute name  the URI of the namespace the attribute value or NULL if not found. -It's up to the caller to free the memory. 

xsltPrintErrorContext ()

>xsltPrintErrorContext ()

Display the context of an error.

the transformation context  the stylesheet  the current node being processed 

xsltMessage ()

>xsltMessage ()

Process and xsl:message construct

an XSLT processing context  The current node  The node containing the message instruction 

xsltSetGenericErrorFunc ()

>xsltSetGenericErrorFunc ()

Function to reset the handler and the error context for out of -context error messages. -This simply means that handler will be called for subsequent -error messages while not parsing nor validating. And ctx will -be passed as first argument to handler -One can simply force messages to be emitted to another FILE * than -stderr by setting ctx to this file handle and handler to NULL.

the new error handling context  the new handler function 

xsltSetGenericDebugFunc ()

>xsltSetGenericDebugFunc ()

Function to reset the handler and the error context for out of -context error messages. -This simply means that handler will be called for subsequent -error messages while not parsing or validating. And ctx will -be passed as first argument to handler -One can simply force messages to be emitted to another FILE * than -stderr by setting ctx to this file handle and handler to NULL.

the new error handling context  the new handler function 

xsltDocumentSortFunction ()

>xsltDocumentSortFunction ()

reorder the current node list list accordingly to the document order

the node set 

xsltDoSortFunction ()

>xsltDoSortFunction ()

reorder the current node list accordingly to the set of sorting -requirement provided by the arry of nodes.

a XSLT process context  array of sort nodes  the number of sorts in the array 

xsltGetQNameURI ()

>xsltGetQNameURI ()

This function analyzes name, if the name contains a prefix, -the function seaches the associated namespace in scope for it. -It will also replace name value with the NCName, the old value being -freed. -Errors in the prefix lookup are signalled by setting name to NULL.

NOTE: the namespace returned is a pointer to the place where it is -defined and hence has the same lifespan as the document holding it.

the node holding the QName  pointer to the initial QName value the namespace URI if there is a prefix, or NULL if name is -not prefixed. 

xsltSaveResultTo ()

>xsltSaveResultTo ()

Save the result result obtained by applying the style stylesheet -to an I/O output channel buf

an output buffer  the result xmlDocPtr  the stylesheet the number of byte written or -1 in case of failure. 

xsltSaveResultToFilename ()

>xsltSaveResultToFilename ()

Save the result result obtained by applying the style stylesheet -to a file or URL URL

the result xmlDocPtr  the stylesheet  the compression factor (0 - 9 included) the number of byte written or -1 in case of failure. 

xsltSaveResultToFile ()

>xsltSaveResultToFile ()

Save the result result obtained by applying the style stylesheet -to an open FILE * I/O. -This does not close the FILE file

a FILE * I/O  the result xmlDocPtr  the stylesheet the number of bytes written or -1 in case of failure. 

xsltSaveResultToFd ()

>xsltSaveResultToFd ()

Save the result result obtained by applying the style stylesheet -to an open file descriptor -This does not close the descriptor.

a file descriptor  the result xmlDocPtr  the stylesheet the number of bytes written or -1 in case of failure. 

xsltSaveProfiling ()

>xsltSaveProfiling ()

Save the profiling informations on output

an XSLT context  a FILE * for saving the informations 

xsltTimestamp ()

>xsltTimestamp ()

Used for gathering profiling data

the number of tenth of milliseconds since the beginning of the -profiling 

xsltCalibrateAdjust ()

>xsltCalibrateAdjust ()
void        xsltCalibrateAdjust             (long delta);
long delta);

Used for to correct the calibration for xsltTimestamp()

deltaParam1 : a negative dealy value found 

XSLT_TIMESTAMP_TICS_PER_SEC

>XSLT_TIMESTAMP_TICS_PER_SEC

enum xsltDebugStatusCodes

>enum xsltDebugStatusCodes

xsltHandleDebuggerCallback ()

>xsltHandleDebuggerCallback ()


xsltAddCallCallback ()

>xsltAddCallCallback ()


xsltDropCallCallback ()

>xsltDropCallCallback ()

xsltSetDebuggerCallbacks ()

>xsltSetDebuggerCallbacks ()


xslAddCall ()

>xslAddCall ()

DEPRECATED


xslDropCall ()

>xslDropCall ()
void        xslDropCall                     ();
void xslDropCall (void);

DEPRECATED

The XSLT C library for Gnome @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
-
Main Menu
    +
+ + +
API Indexes
+ -
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/internals.html b/doc/internals.html index 4632512..4a3b8e0 100644 --- a/doc/internals.html +++ b/doc/internals.html @@ -3,11 +3,11 @@ Library internals @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
-
Main Menu
    +
+ + +
API Indexes
+ -
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/intro.html b/doc/intro.html index 9186369..f40e907 100644 --- a/doc/intro.html +++ b/doc/intro.html @@ -3,11 +3,11 @@ Introduction @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
-
Main Menu
    +
+ + +
API Indexes
+ -
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/libxslt-api.xml b/doc/libxslt-api.xml new file mode 100644 index 0000000..73d93a5 --- /dev/null +++ b/doc/libxslt-api.xml @@ -0,0 +1,1575 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This macro is used to flag unused function parameters to GCC, useless here + + + Macro to check if the XSLT processing should be stopped will return from the function + + + Macro to check if the XSLT processing should be stopped will return from the function with a 0 value + + + Macro to check if the XSLT processing should be stopped will goto the error: label + + + should be activated only when debugging libxslt. It replaces the allocator with a collect and debug shell to the libc allocator. Use configure --with-mem-debug to activate it on both library + + + should be activated only when debugging libxslt. DEBUG_MEMORY_LOCATION should be activated only when libxml has been configured with --with-debug-mem too + + + + + Checks that the element pertains to XSLt namespace + + + Checks the value of an element in XSLT namespace + + + check that a node is a 'real' one: document, element, text or attribute + + + the version string like "1.2.3" + + + This macro is needed on Win32 when using MSVC. It enables the client code to access exported variables. It should expand to nothing when compiling this library itself, but must expand to __declspec(dllimport) when a client includes the library header and that only if it links dynamically against this library. + + + the version number: 1.2.3 value is 1002003 + + + the version number string, 1.2.3 value is "1002003" + + + Activate the compilation of the debug reporting. Speed penalty is insignifiant and being able to run xsltpoc -v is useful. On by default + + + Activate the compilation of the debugger support. Speed penalty is insignifiant. On by default unless --without-debugger is passed to configure + + + + + + + + + + + + + The XSLT "vendor" URL for this processor + + + The XSLT "vendor" string for this processor + + + The default version of XSLT supported + + + + + + + + + + + + + + + + + + + + + + + + + a macro to import intergers from the stylesheet cascading order + + + a macro to import pointers from the stylesheet cascading order + + + This is the libxslt namespace for specific extensions + + + Max number of specified xsl:sort on an element + + + The XSLT specification namespace + + + This is Nom's namespace for SAXON extensions + + + + + + specific value for pattern without priority expressed + + + registering macro, not general purpose at all but used in different modules + + + registering macro, not general purpose at all but used in different modules + + + This is Michael Kay's Saxon processor namespace for extensions + + + + + + + + + + + + This is the Apache project XALAN processor namespace for extensions + + + This is James Clark's XT processor namespace for extensions + + + + + + + + Add template "call" to call stack + + + + + + Drop the topmost item off the call stack + + + + If either cur or node are a breakpoint, or xslDebugStatus in state where debugging must occcur at this time then transfer control to the xslDebugBreak function + + + + + + + + + + + + + add a key definition to a stylesheet + + + + + + + + + + add the new element list at this level of the stack. + + + + + + Register the XSLT pattern associated to cur + + + + + + + + Apply the xsl:use-attribute-sets + + + + + + + + Process the xslt apply-imports node on the source node + + + + + + + + Process the apply-templates node on the source node, if params are passed they are pushed on the variable stack but not popped, it's left to the caller to handle them back (they may be reused). + + + + + + + + + Strip the unwanted ignorable spaces from the input tree + + + + + + Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise ! + + + + + + + Apply the stylesheet to the document and allow the user to provide its own transformation context. + + + + + + + + + + Process the apply-templates node on the source node + + + + + + + + Do a copy of an attribute list with attribute template processing + + + + + + + Process the given attribute and return the new processed copy. + + + + + + + Process the given node and return the new string value. + + + + + + Process the xslt attribute node on the source node + + + + + + + + Used for to correct the calibration for xsltTimestamp() + + + + + Process the xslt call-template node on the source node + + + + + + + + Check if the given prefix is one of the declared extensions + + + + + + Process the xslt choose node on the source node + + + + + + + + Unregister all global variables set up by the XSLT library + + + + Cleanup the state of the templates used by the stylesheet and the ones it imports. + + + + + Process the xslt comment node on the source node + + + + + + + + + + Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. + + + + + + + Process the xslt copy node on the source node + + + + + + + + Do a copy of an namespace node. If node is non-NULL the new namespaces are added automatically. This handles namespaces aliases + + + + + + + Do a copy of an namespace list. If node is non-NULL the new namespaces are added automatically. This handles namespaces aliases + + + + + + + Process the xslt copy-of node on the source node + + + + + + + + Process an debug node + + + + + + + + + + Find decimal-format by name + + + + + + + reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. + + + + + + + + Pre process an XSLT-1.1 document element + + + + + + + Process an XSLT-1.1 document element + + + + + + + + Implement the document() XSLT function node-set document(object, node-set?) + + + + + + + reorder the current node list list accordingly to the document order + + + + + + + + + Deallocates an xsltElemPreComp structure + + + + + + + + + + + Process the xslt element node on the source node + + + + + + + + Implement the element-available() XSLT function boolean element-available(string) + + + + + + Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in curly braces ({}) and those are substituted by they computed value. + + + + + + + + Evaluate the global variables of a stylesheet. This need to be done on parsed stylesheets before starting to apply transformations + + + + + ctxt: the XSLT transformation context name: a null terminated string giving the name of the parameter value a null terminated string giving the XPath expression to be evaluated + + + + + + + Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({}) + + + + + + + + + Evaluate a template string value, i.e. the parent list is interpreter as template content and the resulting tree string value is returned This is needed for example by xsl:comment and xsl:processing-instruction + + + + + + + ctxt: the XSLT transformation context params: a NULL terminated array of parameters name/value tuples + + + + + + Process the expression using XPath and evaluate the result as an XPath predicate + + + + + + + + Process the expression using XPath and get a string + + + + + + Looks up an extension element. ctxt can be NULL to search only in module elements. + + + + + + + + + + + + + A function called at initialization time of an XSLT extension module + + + + + + Looks up an extension module element + + + + + + Looks up an extension module function + + + + + + Looks up an extension module top-level element + + + + + + A function called at shutdown time of an XSLT extension module + + + + + + + Try to find a document within the XSLT transformation context + + + + + + Find strip-space or preserve-space informations for an element respect the import precedence or the wildcards + + + + + + Finds the named template, apply import precedence rule. + + + + + + + Process the xslt for-each node on the source node + + + + + + + + format-number() uses the JDK 1.1 DecimalFormat class: + + + + + + + + Implement the format-number() XSLT function string format-number(number, string, string?) + + + + + + Free up the memory used by attribute sets + + + + + Free up the memory allocated by all the elements of comp + + + + + Free the XSLT extension data + + + + + Free the keys associated to a document + + + + + Free up all the space used by the loaded documents + + + + + Free up the memory used by XSLT extensions in a stylesheet + + + + + Free up the data associated to the global variables its value. + + + + + Free up the memory used by XSLT keys in a stylesheet + + + + + Free up the memory used by namespaces aliases + + + + + Free up the memory allocated by elem + + + + + Free up all the space used by the loaded documents + + + + + Free up the memory allocated by all precomputed blocks + + + + + Free up the memory allocated by sheet + + + + + Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism + + + + + Free up the memory allocated by ctxt + + + + + Implement the function-available() XSLT function boolean function-available(string) + + + + + + Implement the node-set() XSLT function node-set node-set(result-tree) + + + + + + Implement the generate-id() XSLT function string generate-id(node-set?) + + + + + + Retrieve the data associated to the extension module in this given transformation. + + + + + + Lookup a key + + + + + + + + Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases + + + + + + + + Similar to xmlGetNsProp() but with a slightly different semantic + + + + + + + This function analyzes name, if the name contains a prefix, the function seaches the associated namespace in scope for it. It will also replace name value with the NCName, the old value being freed. Errors in the prefix lookup are signalled by setting name to NULL. + + + + + + Find the right namespace value for this URI, if needed create and add a new namespace decalaration on the node + + + + + + + + + Finds the template applying to this node, if style is non-NULL it means one needs to look for the next imported template in scope. + + + + + + + return the default state for XInclude processing + + + + + + + + + + + Process the xslt if node on the source node + + + + + + + + Initialize the set of modules with registered stylesheet data + + + + + Computes all the keys tables for the current input document. Should be done before global varibales are initialized. + + + + + + Initializes an existing xsltElemPreComp structure. This is usefull when extending an xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct. + + + + + + + + + Check if a string is ignorable + + + + + Implement the key() XSLT function node-set key(string, object) + + + + + + Try to load a document within the XSLT transformation context + + + + + + Try to load a document within the XSLT transformation context + + + + + + This function tries to locate the stylesheet PI in the given document If found, and if contained within the document, it will extract that subtree to build the stylesheet to process doc (doc itself will be modified). If found but referencing an external document it will attempt to load it and generate a stylesheet from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is done. + + + + + Determine if a node matches a pattern. + + + + + + + Process and xsl:message construct + + + + + + + Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace. + + + + + + Returns whether that stylesheet requires white-space stripping + + + + + Register a new document, apply key computations + + + + + + Creates and initializes an xsltElemPreComp + + + + + + + Register a new document, apply key computations + + + + + + Create a new XSLT Stylesheet + + + + Create a new XSLT TransformContext + + + + + + Find the next stylesheet in import precedence. + + + + + Process the xslt number node on the source node + + + + + + + + Convert one number. + + + + + + + + parse an XSLT transformation param declaration and record its value. + + + + + + parse an XSLT transformation variable declaration and record its value. + + + + + + parse an XSLT stylesheet preserve-space element and record elements needing preserving + + + + + + parse an XSLT transformation param declaration, compute its value but doesn't record it. + + + + + + parse an XSLT stylesheet building the associated structures + + + + + Load and parse an XSLT stylesheet + + + + + parse an XSLT stylesheet strip-space element and record elements needing stripping + + + + + + parse an XSLT stylesheet strip-space element and record elements needing stripping + + + + + + parse an XSLT stylesheet output element and record information related to the stylesheet output + + + + + + parse an XSLT transformation param declaration and record its value. + + + + + + parse an XSLT stylesheet adding the associated structures + + + + + + parse an XSLT transformation variable declaration and record its value. + + + + + + parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text + + + + + + Precomputes an extension module element + + + + + + Display the context of an error. + + + + + + + Process the xslt processing-instruction node on the source node + + + + + + + + Apply the stylesheet to the document and dump the profiling to the given output. + + + + + + + + ctxt: the XSLT transformation context name: a null terminated string giving the name of the parameter value a null terminated string giving the parameter value + + + + + + + ctxt: the XSLT transformation context params: a NULL terminated arry of parameters names/values tuples + + + + + + Registers all default XSLT elements in this context + + + + + Registers the built-in extensions + + + + Registers all default XSLT functions in this context + + + + + Registers an extension element + + + + + + + + Registers an extension function + + + + + + + + Register an XSLT extension module to the library. + + + + + + + Registers an extension module element. + + + + + + + + Register an XSLT extension module to the library. + + + + + + + + + Registers an extension module function. + + + + + + + Registers an extension module top-level element. + + + + + + + Registers an extension namespace + + + + + + + Registers the built-in extensions. This function is deprecated, use xsltRegisterAllExtras instead. + + + + + Registers the test module + + + + Apply the stylesheet to the document and generate the output according to output SAX and IObuf. It's an error to specify both SAX and IObuf. + + + + + + + + + + Save the profiling informations on output + + + + + + Save the result result obtained by applying the style stylesheet to an I/O output channel buf + + + + + + + Save the result result obtained by applying the style stylesheet to an open file descriptor This does not close the descriptor. + + + + + + + Save the result result obtained by applying the style stylesheet to an open FILE * I/O. This does not close the FILE file + + + + + + + Save the result result obtained by applying the style stylesheet to a file or URL URL + + + + + + + + + + + + + Function to reset the handler and the error context for out of context error messages. This simply means that handler will be called for subsequent error messages while not parsing or validating. And ctx will be passed as first argument to handler One can simply force messages to be emitted to another FILE * than stderr by setting ctx to this file handle and handler to NULL. + + + + + + Function to reset the handler and the error context for out of context error messages. This simply means that handler will be called for subsequent error messages while not parsing nor validating. And ctx will be passed as first argument to handler One can simply force messages to be emitted to another FILE * than stderr by setting ctx to this file handle and handler to NULL. + + + + + + Set whether XInclude should be processed on document being loaded by default + + + + + Shutdown the set of modules loaded + + + + + Shutdown the set of modules loaded + + + + + function attached to xsl:sort nodes, but this should not be called directly + + + + + + + + + + A function called at initialization time of an XSLT extension module + + + + + + A function called at shutdown time of an XSLT extension module + + + + + + + Retrieve the data associated to the extension module in this given stylesheet. + + + + + + + + Precompute an XSLT stylesheet element + + + + + + + + + Implement the system-property() XSLT function object system-property(string) + + + + + + + Process the given node and return the new string value. + + + + + + + Test wether the node matches one of the patterns in the list + + + + + + + Process the xslt text node on the source node + + + + + + + + Used for gathering profiling data + + + + + + signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates. + + + + + + + + + Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string) + + + + + + Unregister an XSLT extension module from the library. + + + + + Unregisters an extension module element + + + + + + Unregisters an extension module function + + + + + + Unregisters an extension module top-level element + + + + + + Process the xslt value-of node on the source node + + + + + + + + Search in the Variable array of the context for the given variable value. + + + + + + + This is the entry point when a function is needed by the XPath interpretor. + + + + + + + This is the entry point when a varibale is needed by the XPath interpretor. + + + + + + + diff --git a/doc/libxslt-refs.xml b/doc/libxslt-refs.xml new file mode 100644 index 0000000..99b95a4 --- /dev/null +++ b/doc/libxslt-refs.xml @@ -0,0 +1,4507 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/libxslt.sgml b/doc/libxslt.sgml index 7d30b92..7037ba8 100644 --- a/doc/libxslt.sgml +++ b/doc/libxslt.sgml @@ -9,6 +9,7 @@ + @@ -78,6 +79,7 @@ &xsltutils; &attributes; &imports; + &extensions; &namespaces; &variables; &keys; diff --git a/doc/news.html b/doc/news.html index 14608fb..f3b32db 100644 --- a/doc/news.html +++ b/doc/news.html @@ -3,11 +3,11 @@ News @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
-
Main Menu
    +
+ + +
API Indexes
+ - + + + + +
Related links
    +
  • Tutorial
  • Man page for xsltproc
  • Mail archive
  • diff --git a/doc/parsedecl.py b/doc/parsedecl.py new file mode 100755 index 0000000..1e76ba4 --- /dev/null +++ b/doc/parsedecl.py @@ -0,0 +1,913 @@ +#!/usr/bin/python -u +# +# tries to parse the output of gtk-doc declaration files and make +# an XML reusable description from them +# +# TODO: try to extracts comments from the DocBook output of + +import sys +import string + +ids = {} + +macros = {} +variables = {} +structs = {} +typedefs = {} +enums = {} +functions = {} +user_functions = {} +ret_types = {} +types = {} + +sections = [] +files = {} +identifiers_file = {} +identifiers_type = {} + +################################################################## +# +# Indexer to generate the word index +# +################################################################## +index = {} + + +def indexString(id, str): + str = string.replace(str, "'", ' ') + str = string.replace(str, '"', ' ') + str = string.replace(str, "/", ' ') + str = string.replace(str, '*', ' ') + str = string.replace(str, "[", ' ') + str = string.replace(str, "]", ' ') + str = string.replace(str, "(", ' ') + str = string.replace(str, ")", ' ') + str = string.replace(str, "<", ' ') + str = string.replace(str, '>', ' ') + str = string.replace(str, "&", ' ') + str = string.replace(str, '#', ' ') + str = string.replace(str, ",", ' ') + str = string.replace(str, '.', ' ') + str = string.replace(str, ';', ' ') + tokens = string.split(str) + for token in tokens: + try: + c = token[0] + if string.find(string.letters, c) < 0: + pass + elif len(token) < 3: + pass + else: + lower = string.lower(token) + # TODO: generalize this a bit + if lower == 'and' or lower == 'the': + pass + elif index.has_key(token): + index[token].append(id) + else: + index[token] = [id] + except: + pass + + + +################################################################## +# +# Parsing: libxslt-decl.txt +# +################################################################## +def mormalizeTypeSpaces(raw, function): + global types + + tokens = string.split(raw) + type = '' + for token in tokens: + if type != '': + type = type + ' ' + token + else: + type = token + if types.has_key(type): + types[type].append(function) + else: + types[type] = [function] + return type + +def removeComments(raw): + while string.find(raw, '/*') > 0: + e = string.find(raw, '/*') + tmp = raw[0:e] + raw = raw[e:] + e = string.find(raw, '*/') + if e > 0: + raw = tmp + raw[e + 2:] + else: + raw = tmp + return raw + +def extractArgs(raw, function): + raw = removeComments(raw) + raw = string.replace(raw, '\n', ' ') + raw = string.replace(raw, '\r', ' ') + list = string.split(raw, ",") + ret = [] + for arg in list: + i = len(arg) + if i == 0: + continue + i = i - 1 + c = arg[i] + while string.find(string.letters, c) >= 0 or \ + string.find(string.digits, c) >= 0 or c == '_': + i = i - 1 + if i < 0: + break + c = arg[i] + name = arg[i+1:] + while string.find(string.whitespace, c) >= 0: + i = i - 1 + if i < 0: + break + c = arg[i] + type = mormalizeTypeSpaces(arg[0:i+1], function) + if name == 'void' and type == '': + pass + else: + ret.append([type, name, '']) + + return ret + +def extractTypes(raw, function): + global ret_types + + tokens = string.split(raw) + type = '' + for token in tokens: + if type != '': + type = type + ' ' + token + else: + type = token + if ret_types.has_key(type): + ret_types[type].append(function) + else: + ret_types[type] = [function] + + return type + +def parseMacro(): + global input + global macros + global variables + + var = 1 + line = input.readline()[:-1] + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + elif string.find(line, "#define") >= 0: + var = 0 + line = input.readline()[:-1] + + if var == 1: + variables[name] = ['', ''] # type, info + identifiers_type[name] = "variable" + else: + macros[name] = [[], ''] # args, info + identifiers_type[name] = "macro" + +def parseStruct(): + global input + global structs + + line = input.readline()[:-1] + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + line = input.readline()[:-1] + + structs[name] = '' + identifiers_type[name] = "struct" + +def parseTypedef(): + global input + global typedefs + + line = input.readline()[:-1] + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + line = input.readline()[:-1] + + typedefs[name] = '' + identifiers_type[name] = "typedef" + +def parseEnum(): + global input + global enums + + line = input.readline()[:-1] + consts = [] + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + elif string.find(line, 'enum') >= 0: + pass + elif string.find(line, '{') >= 0: + pass + elif string.find(line, '}') >= 0: + pass + elif string.find(line, ';') >= 0: + pass + else: + comment = string.find(line, '/*') + if comment >= 0: + line = line[0:comment] + decls = string.split(line, ",") + for decl in decls: + val = string.split(decl, "=")[0] + tokens = string.split(val) + if len(tokens) >= 1: + token = tokens[0] + if string.find(string.letters, token[0]) >= 0: + consts.append(token) + identifiers_type[token] = "const" + line = input.readline()[:-1] + + enums[name] = [consts, ''] + identifiers_type[name] = "enum" + +def parseStaticFunction(): + global input + global user_functions + + line = input.readline()[:-1] + type = None + signature = "" + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + elif line[0:9] == "" and line[-10:] == "": + type = extractTypes(line[9:-10], name) + else: + signature = signature + line + line = input.readline()[:-1] + + args = extractArgs(signature, name) + user_functions[name] = [[type, ''] , args, ''] + identifiers_type[name] = "functype" + +def parseFunction(): + global input + global functions + + line = input.readline()[:-1] + type = None + signature = "" + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + elif line[0:9] == "" and line[-10:] == "": + type = extractTypes(line[9:-10], name) + else: + signature = signature + line + line = input.readline()[:-1] + + args = extractArgs(signature, name) + functions[name] = [[type, ''] , args, ''] + identifiers_type[name] = "function" + +print "Parsing: libxslt-decl.txt" +input = open('libxslt-decl.txt') +while 1: + line = input.readline() + if not line: + break + line = line[:-1] + if line == "": + parseMacro() + elif line == "": + parseEnum() + elif line == "": + parseFunction() + elif line == "": + parseStruct() + elif line == "": + parseTypedef() + elif line == "": + parseStaticFunction() + elif len(line) >= 1 and line[0] == "<": + print "unhandled %s" % (line) + +print "Parsed: %d macros. %d structs, %d typedefs, %d enums" % ( + len(macros.keys()), len(structs.keys()), len(typedefs.keys()), + len(enums)) +c = 0 +for enum in enums.keys(): + consts = enums[enum][0] + c = c + len(consts) +print " %d variables, %d constants, %d functions and %d functypes" % ( + len(variables.keys()), c, len(functions.keys()), + len(user_functions.keys())) +print "The functions manipulates %d different types" % (len(types.keys())) +print "The functions returns %d different types" % (len(ret_types.keys())) + +################################################################## +# +# Parsing: libxslt-decl-list.txt +# +################################################################## +def parseSection(): + global input + global sections + global files + global identifiers_file + + tokens = [] + line = input.readline()[:-1] + while line != "": + if line[0:6] == "" and line[-7:] == "": + name = line[6:-7] + elif len(line) > 0: + tokens.append(line) + line = input.readline()[:-1] + + sections.append(name) + files[name] = tokens + for token in tokens: + identifiers_file[token] = name + # + # Small transitivity for enum values + # + if enums.has_key(token): + for const in enums[token][0]: + identifiers_file[const] = name + +print "Parsing: libxslt-decl-list.txt" +input = open('libxslt-decl-list.txt') +while 1: + line = input.readline() + if not line: + break + line = line[:-1] + if line == "
    ": + parseSection() + elif len(line) >= 1 and line[0] == "<": + print "unhandled %s" % (line) + +print "Parsed: %d files %d identifiers" % (len(files), len(identifiers_file.keys())) +################################################################## +# +# Parsing: xml/*.xml +# To enrich the existing info with extracted comments +# +################################################################## + +nbcomments = 0 + +def insertParameterComment(id, name, value, is_param): + global nbcomments + + indexString(id, value) + if functions.has_key(id): + if is_param == 1: + args = functions[id][1] + found = 0 + for arg in args: + if arg[1] == name: + arg[2] = value + found = 1 + break + if found == 0 and name != '...': + print "Arg %s not found on function %s description" % (name, id) + return + else: + ret = functions[id][0] + ret[1] = value + elif user_functions.has_key(id): + if is_param == 1: + args = user_functions[id][1] + found = 0 + for arg in args: + if arg[1] == name: + arg[2] = value + found = 1 + break + if found == 0 and name != '...': + print "Arg %s not found on functype %s description" % (name, id) + print args + return + else: + ret = user_functions[id][0] + ret[1] = value + elif macros.has_key(id): + if is_param == 1: + args = macros[id][0] + found = 0 + for arg in args: + if arg[0] == name: + arg[1] = value + found = 1 + break + if found == 0: + args.append([name, value]) + else: + print "Return info for macro %s: %s" % (id, value) +# ret = macros[id][0] +# ret[1] = value + else: + print "lost specific comment %s: %s: %s" % (id, name, value) + return + nbcomments = nbcomments + 1 + +def insertComment(name, title, value, id): + global nbcomments + + ids[name] = id + indexString(name, value) + if functions.has_key(name): + functions[name][2] = value + return "function" + elif typedefs.has_key(name): + typedefs[name] = value + return "typedef" + elif macros.has_key(name): + macros[name][1] = value + return "macro" + elif variables.has_key(name): + variables[name][1] = value + return "variable" + elif structs.has_key(name): + structs[name] = value + return "struct" + elif enums.has_key(name): + enums[name][1] = value + return "enum" + elif user_functions.has_key(name): + user_functions[name][2] = value + return "user_function" + else: + print "lost comment %s: %s" % (name, value) + return "unknown" + nbcomments = nbcomments + 1 + + +import os +import xmllib +try: + import sgmlop +except ImportError: + sgmlop = None # accelerator not available + +debug = 0 + +if sgmlop: + class FastParser: + """sgmlop based XML parser. this is typically 15x faster + than SlowParser...""" + + def __init__(self, target): + + # setup callbacks + self.finish_starttag = target.start + self.finish_endtag = target.end + self.handle_data = target.data + + # activate parser + self.parser = sgmlop.XMLParser() + self.parser.register(self) + self.feed = self.parser.feed + self.entity = { + "amp": "&", "gt": ">", "lt": "<", + "apos": "'", "quot": '"' + } + + def close(self): + try: + self.parser.close() + finally: + self.parser = self.feed = None # nuke circular reference + + def handle_entityref(self, entity): + # entity + try: + self.handle_data(self.entity[entity]) + except KeyError: + self.handle_data("&%s;" % entity) + +else: + FastParser = None + + +class SlowParser(xmllib.XMLParser): + """slow but safe standard parser, based on the XML parser in + Python's standard library.""" + + def __init__(self, target): + self.unknown_starttag = target.start + self.handle_data = target.data + self.unknown_endtag = target.end + xmllib.XMLParser.__init__(self) + +def getparser(target = None): + # get the fastest available parser, and attach it to an + # unmarshalling object. return both objects. + if target == None: + target = docParser() + if FastParser: + return FastParser(target), target + return SlowParser(target), target + +class docParser: + def __init__(self): + self._methodname = None + self._data = [] + self.id = None + self.title = None + self.descr = None + self.string = None + + def close(self): + if debug: + print "close" + + def getmethodname(self): + return self._methodname + + def data(self, text): + if debug: + print "data %s" % text + self._data.append(text) + + def start(self, tag, attrs): + if debug: + print "start %s, %s" % (tag, attrs) + if tag == 'refsect2': + self.id = None + self.title = None + self.descr = None + self.string = None + self.type = None + self.in_parameter = 0 + self.is_parameter = 0 + self.parameter = None + self.parameter_info = None + self.entry = 0 + elif tag == 'para': + self._data = [] + elif tag == 'title': + self._data = [] + elif tag == 'tgroup': + self.in_parameter = 1 + elif tag == 'row': + self._data = [] + self.entry = 0 + elif tag == 'entry': + self.entry = self.entry + 1 + elif tag == 'parameter' and self.in_parameter == 1: + self._data = [] + elif tag == 'anchor' and self.id == None: + if attrs.has_key('id'): + self.orig_id = attrs['id'] + self.id = string.replace(self.orig_id, '-CAPS', '') + self.id = string.replace(self.id, '-', '_') + + def end(self, tag): + if debug: + print "end %s" % tag + if tag == 'refsect2': + self.type = insertComment(self.id, self.title, self.string, + self.orig_id) + self.string = None + elif tag == 'row': + if self.parameter_info != None and self.parameter_info != '': + insertParameterComment(self.id, self.parameter, + self.parameter_info, self.is_parameter) + self.parameter_info = None + self.parameter = 0 + self.is_parameter = 0 + elif tag == 'parameter' and self.in_parameter == 1 and self.entry == 1: + str = '' + for c in self._data: + str = str + c + str = string.replace(str, '\n', ' ') + str = string.replace(str, '\r', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + while len(str) >= 1 and str[0] == ' ': + str=str[1:] + self.parameter = str + self.is_parameter = 1 + self._data = [] + elif tag == 'para' or tag == 'entry': + str = '' + for c in self._data: + str = str + c + str = string.replace(str, '\n', ' ') + str = string.replace(str, '\r', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + while len(str) >= 1 and str[0] == ' ': + str=str[1:] + if self.string == None: + self.string = str + elif self.in_parameter == 1: + self.parameter_info = str + self._data = [] + elif tag == 'title': + str = '' + for c in self._data: + str = str + c + str = string.replace(str, '\n', ' ') + str = string.replace(str, '\r', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + str = string.replace(str, ' ', ' ') + while len(str) >= 1 and str[0] == ' ': + str=str[1:] + self.title = str + +xmlfiles = 0 +filenames = os.listdir("xml") +for filename in filenames: + try: + f = open("xml/" + filename, 'r') + except IOError, msg: + print file, ":", msg + continue + data = f.read() + (parser, target) = getparser() + parser.feed(data) + parser.close() + xmlfiles = xmlfiles + 1 + +print "Parsed: %d XML files collexting %d comments" % (xmlfiles, nbcomments) + +################################################################## +# +# Saving: libxslt-api.xml +# +################################################################## + +def escape(raw): + raw = string.replace(raw, '&', '&') + raw = string.replace(raw, '<', '<') + raw = string.replace(raw, '>', '>') + raw = string.replace(raw, "'", ''') + raw = string.replace(raw, '"', '"') + return raw + +print "Saving XML description libxslt-api.xml" +output = open("libxslt-api.xml", "w") +output.write('\n') +output.write("\n") +output.write(" \n") +for file in files.keys(): + output.write(" \n" % file) + for symbol in files[file]: + output.write(" \n" % (symbol)) + output.write(" \n") +output.write(" \n") + +output.write(" \n") +symbols=macros.keys() +for i in structs.keys(): symbols.append(i) +for i in variables.keys(): variables.append(i) +for i in typedefs.keys(): symbols.append(i) +for i in enums.keys(): + symbols.append(i) + for j in enums[i][0]: + symbols.append(j) +for i in functions.keys(): symbols.append(i) +for i in user_functions.keys(): symbols.append(i) +symbols.sort() +prev = None +for i in symbols: + if i == prev: +# print "Symbol %s redefined" % (i) + continue + else: + prev = i + if identifiers_type.has_key(i): + type = identifiers_type[i] + + if identifiers_file.has_key(i): + file = identifiers_file[i] + else: + file = None + + output.write(" <%s name='%s'" % (type, i)) + if file != None: + output.write(" file='%s'" % (file)) + if type == "function": + output.write(">\n"); + (ret, args, doc) = functions[i] + if doc != None and doc != '': + output.write(" %s\n" % (escape(doc))) + if ret[1] != None and ret[1] != '': + output.write(" \n" % ( + ret[0], escape(ret[1]))) + else: + if ret[0] != 'void' and\ + ret[0][0:4] != 'void': # This one is actually a bug in GTK Doc + print "Description for return on %s is missing" % (i) + output.write(" \n" % (ret[0])) + for arg in args: + if arg[2] != None and arg[2] != '': + output.write(" \n" % + (arg[1], arg[0], escape(arg[2]))) + else: + if arg[0] != '...': + print "Description for %s on %s is missing" % (arg[1], i) + output.write(" \n" % ( + arg[1], arg[0])) + output.write(" \n" % (type)); + elif type == 'functype': + output.write(">\n"); + (ret, args, doc) = user_functions[i] + if doc != None and doc != '': + output.write(" %s\n" % (escape(doc))) + if ret[1] != None and ret[1] != '': + output.write(" \n" % ( + ret[0], escape(ret[1]))) + else: + if ret[0] != 'void' and\ + ret[0][0:4] != 'void': # This one is actually a bug in GTK Doc + print "Description for return on %s is missing" % (i) + output.write(" \n" % (ret[0])) + for arg in args: + if arg[2] != None and arg[2] != '': + output.write(" \n" % + (arg[1], arg[0], escape(arg[2]))) + else: + if arg[0] != '...': + print "Description for %s on %s is missing" % (arg[1], i) + output.write(" \n" % ( + arg[1], arg[0])) + output.write(" \n" % (type)); + elif type == 'macro': + output.write(">\n"); + if macros[i][1] != None and macros[i][1] != '': + output.write(" %s\n" % (escape(macros[i][1]))) + else: + print "Description for %s is missing" % (i) + args = macros[i][0] + for arg in args: + if arg[1] != None and arg[1] != '': + output.write(" \n" % + (arg[0], escape(arg[1]))) + else: + print "Description for %s on %s is missing" % (arg[1], i) + output.write(" \n" % (arg[0])) + output.write(" \n" % (type)); + elif type == 'struct': + if structs[i] != None and structs[i] != '': + output.write(" info='%s'/>\n" % (escape(structs[i]))) + else: + output.write("/>\n"); + elif type == 'variable': + if variables[i][1] != None and variables[i][1] != '': + output.write(" info='%s'/>\n" % (escape(variables[i]))) + else: + output.write("/>\n"); + elif type == 'typedef': + if typedefs[i] != None and typedefs[i] != '': + output.write(" info='%s'/>\n" % (escape(typedefs[i]))) + else: + output.write("/>\n"); + else: + output.write("/>\n"); + else: + print "Symbol %s not found in identifiers list" % (i) +output.write(" \n") +output.write("\n") +output.close() +print "generated XML for %d symbols" % (len(symbols)) + +################################################################## +# +# Saving: libxslt-api.xml +# +################################################################## + +hash = {} +for file in files.keys(): + for symbol in files[file]: + hash[symbol] = file + +def link(id): + if ids.has_key(id): + target = string.upper(ids[id]) + else: + target = string.upper(id) + file = 'html/libxslt-' + string.lower(hash[id]) + '.html'; + return file + '#' + target + +print "Saving XML crossreferences libxslt-refs.xml" +output = open("libxslt-refs.xml", "w") +output.write('\n') +output.write("\n") +output.write(" \n") +typ = ids.keys() +typ.sort() +for id in typ: + output.write(" \n" % (id, link(id))) +output.write(" \n") +output.write(" \n") +letter = None +ids = ids.keys() +ids.sort() +for id in ids: + if id[0] != letter: + if letter != None: + output.write(" \n") + letter = id[0] + output.write(" \n" % (letter)) + output.write(" \n" % (id)) +if letter != None: + output.write(" \n") +output.write(" \n") +output.write(" \n") +typ = ret_types.keys() +typ.sort() +for type in typ: + if type == '' or type == 'void' or type == "int" or type == "char *" or \ + type == "const char *" : + continue + output.write(" \n" % (type)) + ids = ret_types[type] + for id in ids: + output.write(" \n" % (id)) + output.write(" \n") +output.write(" \n") +output.write(" \n") +typ = types.keys() +typ.sort() +for type in typ: + if type == '' or type == 'void' or type == "int" or type == "char *" or \ + type == "const char *" : + continue + output.write(" \n" % (type)) + ids = types[type] + for id in ids: + output.write(" \n" % (id)) + output.write(" \n") +output.write(" \n") + +output.write(" \n") +typ = files.keys() +typ.sort() +for file in typ: + output.write(" \n" % (file)) + for id in files[file]: + output.write(" \n" % (id)) + output.write(" \n") +output.write(" \n") + +output.write(" \n") +typ = index.keys() +typ.sort() +letter = None +count = 0 +chunk = 0 +chunks = [] +for id in typ: + if len(index[id]) > 30: + continue + if id[0] != letter: + if letter == None or count > 200: + if letter != None: + output.write(" \n") + output.write(" \n") + count = 0 + chunks.append(["chunk%s" % (chunk -1), first_letter, letter]) + output.write(" \n" % (chunk)) + first_letter = id[0] + chunk = chunk + 1 + elif letter != None: + output.write(" \n") + letter = id[0] + output.write(" \n" % (letter)) + output.write(" \n" % (id)) + tokens = index[id]; + tokens.sort() + tok = None + for token in index[id]: + if tok == token: + continue + tok = token + output.write(" \n" % (token)) + count = count + 1 + output.write(" \n") +if letter != None: + output.write(" \n") + output.write(" \n") + output.write(" \n") + for ch in chunks: + output.write(" \n" % ( + ch[0], ch[1], ch[2])) + output.write(" \n") +output.write(" \n") + +output.write("\n") +output.close() diff --git a/doc/site.xsl b/doc/site.xsl index 8d7dc43..3baeaee 100644 --- a/doc/site.xsl +++ b/doc/site.xsl @@ -61,7 +61,7 @@ - The table of content --> -
+ API Indexes +
+
+ +
+ + + @@ -147,11 +170,11 @@ --> diff --git a/doc/xsltproc2.html b/doc/xsltproc2.html index a1599b3..4124a2f 100644 --- a/doc/xsltproc2.html +++ b/doc/xsltproc2.html @@ -3,11 +3,11 @@ The xsltproc tool @@ -26,7 +26,7 @@ A:link, A:visited, A:active { text-decoration: underline }
+
Related links
-
Main Menu
    +
+ + +
API Indexes
+ -
Related links
    +