Presentation is loading. Please wait.

Presentation is loading. Please wait.

Inside an XSLT Processor Michael Kay, ICL 19 May 2000.

Similar presentations

Presentation on theme: "Inside an XSLT Processor Michael Kay, ICL 19 May 2000."— Presentation transcript:

1 Inside an XSLT Processor Michael Kay, ICL 19 May 2000

2 About me: ¶ ICL Fellow, systems architect ¶ Database background ¶ Developer of SAXON ¶ Author of XSLT Programmers Reference published by Wrox Press ¶ Recently joined XSL WG as invited expert

3 About this talk: ¶ The XSLT Processing Model ¶ Structure of an XSLT Processor ¶ Performance »current limitations »possible ways forward ¶ Ideas on future development of the language

4 The XSLT Processing Model first approximation Source Document Result Document Style sheet Transformation Process

5 The XSLT Processing Model in more detail Source Document Result Document Transformation Process Source Tree Result Tree Stylesheet Tree Style sheet Parsing Serialization

6 An XSLT Template Rule Pattern XPath Expression Instruction Result Element

7 Architecture of an XSLT processor XML Parser Tree Builder XML Parser Tree Builder XPath compiler XSLT compiler XPath interpreter XSLT interpreter Output Manager XML serializer HTML serializer Text serializer Source Tree Source Stylesheet Result Compiled Stylesheet

8 At compile time: ¶ Parse and validate the stylesheet ¶ Parse and validate all XPath expressions »and attribute value templates ¶ Build rule base for matching patterns ¶ Resolve references to named variables, functions, and templates ¶ Flatten the import tree ¶ Optimize XPath expressions

9 Where does the time go? Build Source Tree Compile Stylesheet Process Templates Serialize Output

10 Is Performance a Problem? ¶ Client side: usually not »XSLT processing is generally faster than download speed ¶ Server side: sometimes »CPU usage when handling very high throughput »Memory problems when handling very large documents

11 Some performance tips ¶ Keep documents small: split them first ¶ Process once, at publishing time »or use caching ¶ Do several simple transforms in series ¶ Avoid complex patterns in template rules ¶ Use keys ¶ Use external functions ¶ Avoid "//item"

12 Performance progress Today 20 sec/Mb 5 sec/Mb 1 sec/Mb Simple optimization Advanced optimization Stylesheet compilation Java code optimization Lazy evaluation Simple XPath optimization Tail recursion Incremental parsing Pipelining Use of schema Pattern matching Full XPath optimization Compile to bytecodes

13 Interesting research areas ¶ Database integration: transforming a document without loading into memory ¶ Applying regular expression theory ¶ Execution as a sequence of serial passes ¶ Using schema knowledge at compile time ¶ Eager node numbering

14 Potential language features ¶ Serial transformation language? ¶ Multi-pass stylesheets ¶ Higher-level "relational" constructs: grouping, joins, logical quantifiers ¶ Richer data types ¶ Assignment statement ????

15 Summary ¶ XSLT language is now stable ¶ XSLT processor technology is starting to be well understood ¶ First crop of products are capable of significant performance ¶ Now the research needs to start on the next phase of optimization techniques

Download ppt "Inside an XSLT Processor Michael Kay, ICL 19 May 2000."

Similar presentations

Ads by Google