After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 340780 - Refactoring stylesheet parsing/compilation
Refactoring stylesheet parsing/compilation
Status: RESOLVED FIXED
Product: libxslt
Classification: Platform
Component: general
git master
Other All
: Normal enhancement
: ---
Assigned To: kbuchcik
libxml QA maintainers
Depends on:
Blocks:
 
 
Reported: 2006-05-05 21:16 UTC by kbuchcik
Modified: 2006-06-26 18:21 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description kbuchcik 2006-05-05 21:16:04 UTC
This is intended as an anchor for the ChangeLog.
I'll try to explain here what has changed so far.
Comment 1 kbuchcik 2006-05-11 13:59:59 UTC
- Fixed bugs which are not IDFEDed out:
  #340400, #340624
Comment 2 kbuchcik 2006-05-11 14:25:36 UTC
- Fixed bugs which are not IDFEDed out: bug #339576, bug #339570
Comment 3 kbuchcik 2006-05-11 14:49:53 UTC
Changes which are IFDEFed out with XSLT_REFACTORED:

* xsl:template:
  - The xsltTemplate structure was changed to have *const* @name
    and @nameURI fields:
    const xmlChar *name;
    const xmlChar *nameURI; 
  Parsing:
  - Eliminated superfluous duplication of namespace strings.  
  - template->name and template->nameURI are now put into the string dict
  - Fixed memory-leak, which occured when the local part of the "name"
    attribute was not a valid NCName.
  - Attribute 'mode': added validation of QName's local part.

* Preprocessing of stylesheets:   
  - Removal of processing-instruction and comment nodes.
  - Converting CDATA-sections-nodes to text-nodes.
  - Merging adjacent text-nodes (only in "strict" mode to
    retain old behaviour)  

* It is now an *error* if the "version" attribute is missing on
  xsl:stylesheet/xsl:transform or the first literal result element of
  a simplified stylesheet.

* It is now *not* an error if there are child-elements of 
  xsl:stylesheet/xsl:transform which are not in the XSLT namespace and
  are not recognized as registered user-defined data elements.
  Such elements must still be in a namespace and will be simply ignored.

* Minor fixes wrt to incorrect usage of attributes in the XSLT namespace
  of XSLT elements (not completed yet).

* Introduced xsltParseAnyXSLTElem(), xsltParseSequenceConstructor(), etc.
  to parse the stylesheet and apply content model validation.
  Note that the previously used backtracking grammar-checks are
  now eliminated.

* xsl:param(s) are now only allowed as immediate children of xsl:template.
  (well, except for the top-level xsl:param)

* Changed handling of exclude-result-prefixes, extension-element-prefixes.

* Changed parsing wrt to imports/inclusion: we'll first process all
  xsl:import and xsl:include instructions to build the import-tree, *then*
  process all other content of stylesheets in a deep-first order wrt
  to the import-tree. This way stuff with lower import precedence will be
  parsed before stuff with higher import precedence. TODO: check if we now
  can simplify some of the import-precedence-sorting mechanisms, which
  theoretically need not be performed anymore

* Expanded usage of xsltCompilerNodeInfo and the compiler context.
  
* Added comments

* Other things I don't remember
Comment 4 kbuchcik 2006-05-11 20:20:13 UTC
- Fixed bugs which are not IDFEDed out:
  bug #339583