XSLT 2.0 introduced a host of new features:
                            - Strong typing and all XSD types
                            - The ability to define and write own functions
                            - node-set() - replaces XSLT's 1.0 Result Tree Fragment, creating fully functional tree
                            - New functions and operators:
                            - - XPath 2.0
                            - - String processing and regular expressions
                            - - Grouping (for-each-group function)
                            - - String processing
                            - - Sequence type
                        
XSLT 3.0 further improved the formula:
                            - Streaming tranformations (previously file had to be loaded to memory to be processed)
                            - Packages - improve the modularity of large stylesheets
                            - Improved error handling (for example <xsl:try>)
                            - Support for maps and arrays, enabling XSLT to handle JSON as well as XML
                            - Functions can now be arguments to other (higher-order) functions