From 26c586d2a2891c884c79f2a68b68f2a3c7499787 Mon Sep 17 00:00:00 2001 From: "William M. Brack" Date: Tue, 16 Dec 2003 08:36:21 +0000 Subject: enhanced documentation to include exslt; rebuilt docs * doc/Makefile.am doc/site.xsl doc/api.xsl doc/newapi.xsl doc/xslt.html doc/apibuild.py doc/EXSLT doc/EXSLT/exslt.html: enhanced documentation to include exslt; rebuilt docs --- doc/internals.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'doc/internals.html') diff --git a/doc/internals.html b/doc/internals.html index 339420e5..44edb72f 100644 --- a/doc/internals.html +++ b/doc/internals.html @@ -7,7 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -Library internals
Action against software patentsGnome2 LogoRed Hat Logo
Made with Libxslt Logo

The XSLT C library for Gnome

Library internals

Main Menu
Related links
API Indexes

Table of contents

  • Introduction
  • +Library internals
    Action against software patentsGnome2 LogoRed Hat Logo
    Made with Libxslt Logo

    The XSLT C library for Gnome

    Library internals

    Main Menu
    Related links
    API Indexes

    Table of contents

    • Introduction
    • Basics
    • Keep it simple stupid
    • The libxml nodes
    • @@ -61,7 +61,7 @@ indicates the kind of node it represents, the most common ones are:

      • d
      • text nodes

      For the XSLT processing, entity nodes should not be generated (i.e. they should be replaced by their content). Most nodes also contains the following -"navigation" informations:

      • the containing document
      • +"navigation" informations:

        • the containing document
        • the parent node
        • the first children node
        • the last children node
        • @@ -89,7 +89,7 @@ level:

          1. parse the stylesheet and generate a DOM tree
          2. the input tree 4/ is not modified except the _private field which may be used for labelling keys if used by the stylesheet

        The XSLT stylesheet compilation

        This is the second step described. It takes a stylesheet tree, and -"compiles" it. This associates to each node a structure stored in the +"compiles" it. This associates to each node a structure stored in the _private field and containing information computed in the stylesheet:

        a compiled XSLT stylesheet

        One xsltStylesheet structure is generated per document parsed for the stylesheet. XSLT documents allow includes and imports of other documents, imports are stored in the imports list (hence keeping the @@ -119,7 +119,7 @@ the match. As a result libxslt builds a relatively more complex set of structures for the templates:

        The templates related structure

        Let's describe a bit more closely what is built. First the xsltStylesheet structure holds a pointer to the template hash table. All the XSLT patterns compiled in this stylesheet are indexed by the value of the the target -element (or attribute, pi ...) name, so when a element or an attribute "foo" +element (or attribute, pi ...) name, so when a element or an attribute "foo" needs to be processed the lookup is done using the name as a key.

        Each of the patterns is compiled into an xsltCompMatch structure. It holds the set of rules based on the tokenization of the pattern stored in reverse order (matching is easier this way). It also holds some information about the @@ -129,7 +129,7 @@ threaded computation, it's unclear that this is a big deal in practice.) Predicate expressions are not compiled at this stage, they may be at run-time if needed, but in this case they are compiled as full XPath expressions (the use of some fixed predicate can probably be optimized, they are not yet).

        The xsltCompMatch are then stored in the hash table, the clash list is -itself sorted by priority of the template to implement "naturally" the XSLT +itself sorted by priority of the template to implement "naturally" the XSLT priority rules.

        Associated to the compiled pattern is the xsltTemplate itself containing the information required for the processing of the pattern including, of course, a pointer to the list of elements used for building the pattern -- cgit v1.2.3