60 <xslt2-specific count="{sum(//xslt2-specific/@count)}" /> |
60 <xslt2-specific count="{sum(//xslt2-specific/@count)}" /> |
61 <xslt-other count="{sum(//xslt-other/@count)}" /> |
61 <xslt-other count="{sum(//xslt-other/@count)}" /> |
62 </overview> |
62 </overview> |
63 <changes-since-xslt2> |
63 <changes-since-xslt2> |
64 <!-- packages --> |
64 <!-- packages --> |
65 <feature name="Packages" count="{sum(//category[@name='Declarations']/test-set[@name=('override', 'package', 'use-package')]/@total-tests)}" /> |
65 <feature group="Packages" name="Packages - versioning" count="{15 (: deep query needed :)}" /> |
66 <feature name="Packages - versioning" count="{15 (: deep query needed :)}" /> |
66 <feature group="Packages" name="Packages - package" count="{sum(//category[@name='Declarations']/test-set[@name=('package')]/@total-tests)}" /> |
67 <feature name="Packages - package" count="{sum(//category[@name='Declarations']/test-set[@name=('package')]/@total-tests)}" /> |
67 <feature group="Packages" name="Packages - use-package" count="{sum(//category[@name='Declarations']/test-set[@name=('use-package')]/@total-tests)}" /> |
68 <feature name="Packages - use-package" count="{sum(//category[@name='Declarations']/test-set[@name=('use-package')]/@total-tests)}" /> |
68 <feature group="Packages" name="Packages - override" count="{sum(//category[@name='Declarations']/test-set[@name=('override')]/@total-tests)}" /> |
69 <feature name="Packages - override" count="{sum(//category[@name='Declarations']/test-set[@name=('override')]/@total-tests)}" /> |
69 <feature group="Packages" name="Packages - xquery" count="{'unknown'}" /> |
70 <feature name="Packages - xquery" count="{'unknown'}" /> |
|
71 |
70 |
72 <!-- streaming --> |
71 <!-- streaming --> |
73 <feature name="Streaming" count="{sum(//category[@name=('Streaming', 'Posture and Sweep')]/test-set/@total-tests)}" /> |
72 <feature group="Streaming" name="Streaming - instructions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'si')]/@total-tests)}" /> |
74 <feature name="Streaming - instructions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'si')]/@total-tests)}" /> |
73 <feature group="Streaming" name="Streaming - functions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'sf')]/@total-tests)}" /> |
75 <feature name="Streaming - functions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'sf')]/@total-tests)}" /> |
74 <feature group="Streaming" name="Streaming - expressions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'sx')]/@total-tests)}" /> |
76 <feature name="Streaming - expressions" count="{sum(//category[@name='Streaming']/test-set[@name/starts-with(., 'sx')]/@total-tests)}" /> |
75 <feature group="Streaming" name="Streaming - posture and sweep" count="{sum(//category[@name=('Posture and Sweep')]/test-set/@total-tests)}" /> |
77 <feature name="Streaming - posture and sweep" count="{sum(//category[@name=('Posture and Sweep')]/test-set/@total-tests)}" /> |
76 <feature group="Streaming" name="Streaming - other" count="{sum(//category[@name='Streaming']/test-set[@name[not(starts-with(., 'si') or starts-with(., 'sf') or starts-with(., 'sx'))]]/@total-tests)}" /> |
78 <feature name="Streaming - other" count="{sum(//category[@name='Streaming']/test-set[@name[not(starts-with(., 'si') or starts-with(., 'sf') or starts-with(., 'sx'))]]/@total-tests)}" /> |
|
79 |
77 |
80 <!-- new declarations --> |
78 <!-- new declarations --> |
81 <feature name="Accumulators" count="{sum(//category[@name='Declarations']/test-set[@name='accumulator']/@total-tests)}" /> |
79 <feature group="Declarations" name="Accumulators" count="{sum(//category[@name='Declarations']/test-set[@name='accumulator']/@total-tests)}" /> |
82 <feature name="Mode declarations" count="{sum(//category[@name=('Attributes' (: there's no decl/mode category :) , 'Miscellaneous')]/test-set[@name=('initial-mode', 'mode')]/xslt3-specific/@count)}" /> |
80 <feature group="Declarations" name="Mode declarations" count="{sum(//category[@name=('Attributes' (: there's no decl/mode category :) , 'Miscellaneous')]/test-set[@name=('initial-mode', 'mode')]/xslt3-specific/@count)}" /> |
83 <feature name="Import declaration order relaxation" count="{sum(//category[@name=('Declarations')]/test-set[@name=('import')]/xslt3-specific/@count)}" /> |
81 <feature group="Declarations" name="Import declaration order relaxation" count="{sum(//category[@name=('Declarations')]/test-set[@name=('import')]/xslt3-specific/@count)}" /> |
84 <feature name="Context item declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('context-item')]/@total-tests)}" /> |
82 <feature group="Declarations" name="Context item declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('context-item')]/@total-tests)}" /> |
85 <feature name="Global context item declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('global-context-item')]/@total-tests)}" /> |
83 <feature group="Declarations" name="Global context item declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('global-context-item')]/@total-tests)}" /> |
86 |
84 |
87 <!-- new instructions --> |
85 <!-- new instructions --> |
88 <feature name="Try / catch" count="{sum(//category[@name='Instructions']/test-set[@name=('try')]/@total-tests)}" /> |
86 <feature group="Instructions" name="Try / catch" count="{sum(//category[@name='Instructions']/test-set[@name=('try')]/@total-tests)}" /> |
89 <feature name="Try / catch - rollback-output" count="{2 (: deep-search needed :)}" /> |
87 <feature group="Instructions" name="Try / catch - rollback-output" count="{2 (: deep-search needed :)}" /> |
90 <feature name="Iteration (xsl:iterate)" count="{sum(//category[@name='Instructions']/test-set[@name=('iterate')]/@total-tests)}" /> |
88 <feature group="Instructions" name="Iteration (xsl:iterate)" count="{sum(//category[@name='Instructions']/test-set[@name=('iterate')]/@total-tests)}" /> |
91 <feature name="Dynamic evaluation (xsl:evaluate)" count="{sum(//category[@name='Instructions']/test-set[@name=('evaluate')]/@total-tests)}" /> |
89 <feature group="Instructions" name="Dynamic evaluation (xsl:evaluate)" count="{sum(//category[@name='Instructions']/test-set[@name=('evaluate')]/@total-tests)}" /> |
92 <feature name="Assertions (xsl:assert)" count="{sum(//category[@name='Instructions']/test-set[@name=('assert')]/@total-tests)}" /> |
90 <feature group="Instructions" name="Assertions (xsl:assert)" count="{sum(//category[@name='Instructions']/test-set[@name=('assert')]/@total-tests)}" /> |
93 <feature name="Merging (xsl:merge, incl strm)" count="{sum(//category[@name=('Instructions', 'Streaming')]/test-set[@name=('merge', 'si-merge')]/@total-tests)}" /> |
91 <feature group="Instructions" name="Merging (xsl:merge, incl strm)" count="{sum(//category[@name=('Instructions', 'Streaming')]/test-set[@name=('merge', 'si-merge')]/@total-tests)}" /> |
94 <feature name="Conditional content construction (all)" count="{70 + 28 (: see next :) + sum(//category[@name='Instructions']/test-set[@name=('on-empty', 'on-non-empty')]/@total-tests)}" /> |
92 <feature group="Instructions" name="Conditional content construction (all)" count="{70 + 28 (: see next :) + sum(//category[@name='Instructions']/test-set[@name=('on-empty', 'on-non-empty')]/@total-tests)}" /> |
95 <feature name="Conditional content construction - conditional-content" count="{70 (: deep search needed :)}" /> |
93 <feature group="Instructions" name="Conditional content construction - conditional-content" count="{70 (: deep search needed :)}" /> |
96 <feature name="Conditional content construction - on-empty" count="{28 (: deep search needed :) + sum(//category[@name='Instructions']/test-set[@name=('on-empty')]/@total-tests)}" /> |
94 <feature group="Instructions" name="Conditional content construction - on-empty" count="{28 (: deep search needed :) + sum(//category[@name='Instructions']/test-set[@name=('on-empty')]/@total-tests)}" /> |
97 <feature name="Conditional content construction - on-non-empty" count="{(: all are in cat on-non-empty :) sum(//category[@name='Instructions']/test-set[@name=('on-non-empty')]/@total-tests)}" /> |
95 <feature group="Instructions" name="Conditional content construction - on-non-empty" count="{(: all are in cat on-non-empty :) sum(//category[@name='Instructions']/test-set[@name=('on-non-empty')]/@total-tests)}" /> |
98 <feature name="Enhancements to analyze-string" count="{sum(//category[@name=('Instructions')]/test-set[@name=('analyze-string')]/xslt3-specific/@count)}" /> |
96 <feature group="Instructions" name="Enhancements to analyze-string" count="{sum(//category[@name=('Instructions')]/test-set[@name=('analyze-string')]/xslt3-specific/@count)}" /> |
99 <feature name="Value-of enhancement (empty)" count="{sum(//category[@name=('Instructions')]/test-set[@name=('value-of')]/xslt3-specific/@count)}" /> |
97 <feature group="Instructions" name="Value-of enhancement (empty)" count="{sum(//category[@name=('Instructions')]/test-set[@name=('value-of')]/xslt3-specific/@count)}" /> |
100 <feature name="Number (xsl:number format-number) enhancements" count="{sum(//category[@name=('Instructions', 'Functions')]/test-set[@name=('number', 'format-number')]/xslt3-specific/@count)}" /> |
98 <feature group="Instructions" name="Number (xsl:number format-number) enhancements" count="{sum(//category[@name=('Instructions', 'Functions')]/test-set[@name=('number', 'format-number')]/xslt3-specific/@count)}" /> |
101 |
99 |
102 <!-- new attributes --> |
100 <!-- new attributes --> |
103 <feature name="Declared modes" count="{sum(//category[@name='Attributes']/test-set[@name=('declared-modes')]/@total-tests)}" /> |
101 <feature group="Attributes" name="Declared modes" count="{sum(//category[@name='Attributes']/test-set[@name=('declared-modes')]/@total-tests)}" /> |
104 <feature name="Decimal format with exponent-separator" count="{(: there is no cat decimal-format, create/move from format-number? :) sum(//category[@name=('Attributes', 'Declarations')]/test-set[@name=('decimal-format', 'exponent-separator')]/@total-tests)}" /> |
102 <feature group="Attributes" name="Decimal format with exponent-separator" count="{(: there is no cat decimal-format, create/move from format-number? :) sum(//category[@name=('Attributes', 'Declarations')]/test-set[@name=('decimal-format', 'exponent-separator')]/@total-tests)}" /> |
105 <feature name="Composite keys in for-each-group" count="{15 (: deep search needed:) (: sum(//category[@name=('Instructions')]/test-set[@name=('for-each-group')]/xslt3-specific/@count) :)}" /> |
103 <feature group="Attributes" name="Composite keys in for-each-group" count="{15 (: deep search needed:) (: sum(//category[@name=('Instructions')]/test-set[@name=('for-each-group')]/xslt3-specific/@count) :)}" /> |
106 <feature name="Composite keys in keys" count="{sum(//category[@name=('Functions')]/test-set[@name=('key')]/xslt3-specific/@count)}" /> |
104 <feature group="Attributes" name="Composite keys in keys" count="{sum(//category[@name=('Functions')]/test-set[@name=('key')]/xslt3-specific/@count)}" /> |
107 <feature name="Select attribute on copy instruction" count="{sum(//category[@name=('Instructions')]/test-set[@name=('copy')]/xslt3-specific/@count)}" /> |
105 <feature group="Attributes" name="Select attribute on copy instruction" count="{sum(//category[@name=('Instructions')]/test-set[@name=('copy')]/xslt3-specific/@count)}" /> |
108 <feature name="Static variables and parameters" count="{sum(//category[@name=('Attributes')]/test-set[@name=('static')]/@total-tests)}" /> |
106 <feature group="Attributes" name="Static variables and parameters" count="{sum(//category[@name=('Attributes')]/test-set[@name=('static')]/@total-tests)}" /> |
109 <feature name="Cache, override, identity attributes on function declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('function')]/xslt3-specific/@count)}" /> |
107 <feature group="Attributes" name="Cache, override, identity attributes on function declaration" count="{sum(//category[@name=('Declarations')]/test-set[@name=('function')]/xslt3-specific/@count)}" /> |
110 <feature name="Shadow attributes" count="{sum(//category[@name=('Attributes')]/test-set[@name=('shadow')]/@total-tests)}" /> |
108 <feature group="Attributes" name="Shadow attributes" count="{sum(//category[@name=('Attributes')]/test-set[@name=('shadow')]/@total-tests)}" /> |
111 <feature name="Use-when enhancements" count="{sum(//category[@name=('Attributes')]/test-set[@name=('use-when')]/xslt3-specific/@count)}" /> |
109 <feature group="Attributes" name="Use-when enhancements" count="{sum(//category[@name=('Attributes')]/test-set[@name=('use-when')]/xslt3-specific/@count)}" /> |
112 <feature name="Error-code attribute on message" count="{(: deep query needed :) sum(//category[@name=('Instructions')]/test-set[@name=('message')]/xslt3-specific/@count)}" /> |
110 <feature group="Attributes" name="Error-code attribute on message" count="{(: deep query needed :) sum(//category[@name=('Instructions')]/test-set[@name=('message')]/xslt3-specific/@count)}" /> |
113 <feature name="Html-version attribute on xsl:output/result-document (HTML5 support)" count="{30 (: 4 on r-doc, 26 on output, deep search needed :)}" /> |
111 <feature group="Attributes" name="Html-version attribute on xsl:output/result-document (HTML5 support)" count="{30 (: 4 on r-doc, 26 on output, deep search needed :)}" /> |
114 <feature name="Item-separator attribute on xsl:output/result-document" count="{0 (: none found, deep search needed :)}" /> |
112 <feature group="Attributes" name="Item-separator attribute on xsl:output/result-document" count="{0 (: none found, deep search needed :)}" /> |
115 <feature name="Parameter-document attribute on xsl:output/result-document" count="{0 (: none found, deep search needed :)}" /> |
113 <feature group="Attributes" name="Parameter-document attribute on xsl:output/result-document" count="{0 (: none found, deep search needed :)}" /> |
116 <feature name="Suppress-indentation attribute on xsl:output/result-document" count="{(: deep query needed? :) sum(//category[@name=('Declarations', 'Instructions')]/test-set[@name=('output', 'result-document')]/xslt3-specific/@count)}" /> |
114 <feature group="Attributes" name="Suppress-indentation attribute on xsl:output/result-document" count="{(: deep query needed? :) sum(//category[@name=('Declarations', 'Instructions')]/test-set[@name=('output', 'result-document')]/xslt3-specific/@count)}" /> |
117 <feature name="Disable-output-escaping silently ignored" count="{2 (: deep query needed? :)}" /> |
115 <feature group="Attributes" name="Disable-output-escaping silently ignored" count="{2 (: deep query needed? :)}" /> |
118 <feature name="Enhancements on typed=lax for non-validating processors" count="{'unknown'}" /> |
116 <feature group="Attributes" name="Enhancements on typed=lax for non-validating processors" count="{'unknown'}" /> |
119 |
117 |
120 <!-- stylesheet initialization --> |
118 <!-- stylesheet initialization --> |
121 <feature name="Initial function" count="{sum(//category[@name='Miscellaneous']/test-set[@name=('initial-function')]/@total-tests)}" /> |
119 <feature group="Stylesheet initialization" name="Initial function" count="{sum(//category[@name='Miscellaneous']/test-set[@name=('initial-function')]/@total-tests)}" /> |
122 <feature name="Initial template (xsl:initial-template)" count="{sum(//category[@name='Miscellaneous']/test-set[@name=('initial-template')]/xslt3-specific/@count)}" /> |
120 <feature group="Stylesheet initialization" name="Initial template (xsl:initial-template)" count="{sum(//category[@name='Miscellaneous']/test-set[@name=('initial-template')]/xslt3-specific/@count)}" /> |
123 <feature name="Initial mode" count="{sum(//category[@name=('Attributes', 'Miscellaneous')]/test-set[@name=('initial-mode')]/xslt3-specific/@count)}" /> |
121 <feature group="Stylesheet initialization" name="Initial mode" count="{sum(//category[@name=('Attributes', 'Miscellaneous')]/test-set[@name=('initial-mode')]/xslt3-specific/@count)}" /> |
124 |
122 |
125 <!-- new functions --> |
123 <!-- new functions --> |
126 <feature name="Higher order functions" count="{sum(//category[@name='Expressions']/test-set[@name=('higher-order-functions')]/@total-tests)}" /> |
124 <feature group="Functions" name="Higher order functions" count="{sum(//category[@name='Expressions']/test-set[@name=('higher-order-functions')]/@total-tests)}" /> |
127 <feature name="New function current-output-uri" count="{sum(//category[@name=('Functions')]/test-set[@name=('current-output-uri')]/@total-tests)}" /> |
125 <feature group="Functions" name="New function current-output-uri" count="{sum(//category[@name=('Functions')]/test-set[@name=('current-output-uri')]/@total-tests)}" /> |
128 <feature name="New function collation-key" count="{sum(//category[@name=('Functions')]/test-set[@name=('collation-key')]/@total-tests)}" /> |
126 <feature group="Functions" name="New function collation-key" count="{sum(//category[@name=('Functions')]/test-set[@name=('collation-key')]/@total-tests)}" /> |
129 <feature name="New function copy-of" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('copy-of', 'sf-copy-of')]/@total-tests)}" /> |
127 <feature group="Functions" name="New function copy-of" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('copy-of', 'sf-copy-of')]/@total-tests)}" /> |
130 <feature name="New function json-to-xml" count="{sum(//category[@name=('Functions')]/test-set[@name=('json-to-xml')]/@total-tests)}" /> |
128 <feature group="Functions" name="New function json-to-xml" count="{sum(//category[@name=('Functions')]/test-set[@name=('json-to-xml')]/@total-tests)}" /> |
131 <feature name="New function snapshot" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('snapshot', 'sf-snapshot')]/@total-tests)}" /> |
129 <feature group="Functions" name="New function snapshot" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('snapshot', 'sf-snapshot')]/@total-tests)}" /> |
132 <feature name="New function stream-available" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('stream-available', 'sf-stream-available')]/@total-tests)}" /> |
130 <feature group="Functions" name="New function stream-available" count="{sum(//category[@name=('Functions', 'Streaming')]/test-set[@name=('stream-available', 'sf-stream-available')]/@total-tests)}" /> |
133 <feature name="New function xml-to-json" count="{sum(//category[@name=('Functions')]/test-set[@name=('xml-to-json')]/@total-tests)}" /> |
131 <feature group="Functions" name="New function xml-to-json" count="{sum(//category[@name=('Functions')]/test-set[@name=('xml-to-json')]/@total-tests)}" /> |
134 |
132 |
135 <!-- changes in existing functions --> |
133 <!-- changes in existing functions --> |
136 <!-- note: regex-group, document, type-available and key have not changed, but normative references have --> |
134 <!-- note: regex-group, document, type-available and key have not changed, but normative references have --> |
137 <feature name="Enhancements on function deep-equal (maps support)" count="{(: there are three tests in maps that test disappearance of deep-equal2 :) sum(//category[@name=('Functions')]/test-set[@name=('deep-equal')]/xslt3-specific/@count)}" /> |
135 <feature group="Functions" name="Enhancements on function deep-equal (maps support)" count="{(: there are three tests in maps that test disappearance of deep-equal2 :) sum(//category[@name=('Functions')]/test-set[@name=('deep-equal')]/xslt3-specific/@count)}" /> |
138 <feature name="Enhancements on function document (new error)" count="{(: there are three tests in maps that test disappearance of deep-equal2 :) sum(//category[@name=('Functions')]/test-set[@name=('document')]/xslt3-specific/@count)}" /> |
136 <feature group="Functions" name="Enhancements on function document (new error)" count="{(: there are three tests in maps that test disappearance of deep-equal2 :) sum(//category[@name=('Functions')]/test-set[@name=('document')]/xslt3-specific/@count)}" /> |
139 <feature name="Enhancements on function format-number (moved, but new formats)" count="{sum(//category[@name=('Functions')]/test-set[@name=('format-number')]/xslt3-specific/@count)}" /> |
137 <feature group="Functions" name="Enhancements on function format-number (moved, but new formats)" count="{sum(//category[@name=('Functions')]/test-set[@name=('format-number')]/xslt3-specific/@count)}" /> |
140 <feature name="Enhancements on function key (composite keys)" count="{sum(//category[@name=('Functions')]/test-set[@name=('key')]/xslt3-specific/@count)}" /> |
138 <feature group="Functions" name="Enhancements on function key (composite keys)" count="{sum(//category[@name=('Functions')]/test-set[@name=('key')]/xslt3-specific/@count)}" /> |
141 <feature name="Enhancements on function type-available (XSD 1.1)" count="{sum(//category[@name=('Functions')]/test-set[@name=('type-available')]/xslt3-specific/@count)}" /> |
139 <feature group="Functions" name="Enhancements on function type-available (XSD 1.1)" count="{sum(//category[@name=('Functions')]/test-set[@name=('type-available')]/xslt3-specific/@count)}" /> |
142 <feature name="Enhancements on function system-property (new properties)" count="{sum(//category[@name=('Functions')]/test-set[@name=('system-property')]/xslt3-specific/@count)}" /> |
140 <feature group="Functions" name="Enhancements on function system-property (new properties)" count="{sum(//category[@name=('Functions')]/test-set[@name=('system-property')]/xslt3-specific/@count)}" /> |
143 <feature name="Enhancements on function unparsed-entity-uri (arity zero)" count="{(: only one 2.0 test :) sum(//category[@name=('Functions')]/test-set[@name=('unparsed-entity-uri')]/xslt3-specific/@count)}" /> |
141 <feature group="Functions" name="Enhancements on function unparsed-entity-uri (arity zero)" count="{(: only one 2.0 test :) sum(//category[@name=('Functions')]/test-set[@name=('unparsed-entity-uri')]/xslt3-specific/@count)}" /> |
144 <feature name="Enhancements on function unparsed-entity-public-id (arity zero)" count="{(: cat does not exist :) sum(//category[@name=('Functions')]/test-set[@name=('unparsed-entity-public-id')]/xslt3-specific/@count)}" /> |
142 <feature group="Functions" name="Enhancements on function unparsed-entity-public-id (arity zero)" count="{(: cat does not exist :) sum(//category[@name=('Functions')]/test-set[@name=('unparsed-entity-public-id')]/xslt3-specific/@count)}" /> |
145 |
143 |
146 <!-- maps (functions count by hand) --> |
144 <!-- maps (functions count by hand) --> |
147 <feature name="Maps" count="{sum(//category[@name='Typing and schema']/test-set[@name=('maps')]/@total-tests)}" /> |
145 <feature group="Maps" name="Maps - function contains" count="{1 (: in accumulator :)}" /> |
148 <feature name="Maps - function contains" count="{1 (: in accumulator :)}" /> |
146 <feature group="Maps" name="Maps - function entry" count="{0 (: can't find, probably none yet :)}" /> |
149 <feature name="Maps - function entry" count="{0 (: can't find, probably none yet :)}" /> |
147 <feature group="Maps" name="Maps - function get" count="{2 (: in accumulator, maps :)}" /> |
150 <feature name="Maps - function get" count="{2 (: in accumulator, maps :)}" /> |
148 <feature group="Maps" name="Maps - function for-each" count="{0 (: can't find, probably none yet :)}" /> |
151 <feature name="Maps - function for-each" count="{0 (: can't find, probably none yet :)}" /> |
149 <feature group="Maps" name="Maps - function keys" count="{4 (: si-iterate, maps, accumulator :)}" /> |
152 <feature name="Maps - function keys" count="{4 (: si-iterate, maps, accumulator :)}" /> |
150 <feature group="Maps" name="Maps - function merge" count="{5 (: si-iterate, maps, sx-MapExpr :)}" /> |
153 <feature name="Maps - function merge" count="{5 (: si-iterate, maps, sx-MapExpr :)}" /> |
151 <feature group="Maps" name="Maps - function put" count="{2 (: accumulator :)}" /> |
154 <feature name="Maps - function put" count="{2 (: accumulator :)}" /> |
152 <feature group="Maps" name="Maps - function remove" count="{0 (: can't find, probably none yet :)}" /> |
155 <feature name="Maps - function remove" count="{0 (: can't find, probably none yet :)}" /> |
153 <feature group="Maps" name="Maps - function size" count="{2 (: error, maps :)}" /> |
156 <feature name="Maps - function size" count="{2 (: error, maps :)}" /> |
154 <feature group="Maps" name="Maps - expressions / other" count="{36 (: total in maps of 52, minus the above of 16 :)}" /> |
157 |
155 |
158 <!-- other --> |
156 <!-- other --> |
159 <feature name="Expand text, text value templates" count="{sum(//category[@name='Attributes']/test-set[@name=('expand-text')]/@total-tests)}" /> |
157 <feature group="Other" name="Expand text, text value templates" count="{sum(//category[@name='Attributes']/test-set[@name=('expand-text')]/@total-tests)}" /> |
160 <feature name="Pattern enhancements" count="{sum(//category[@name='Attributes']/test-set[@name=('match')]/xslt3-specific/@count)}" /> |
158 <feature group="Other" name="Pattern enhancements" count="{sum(//category[@name='Attributes']/test-set[@name=('match')]/xslt3-specific/@count)}" /> |
161 <feature name="EQName adoption" count="{23 (: deep search needed, or new category :) }" /> |
159 <feature group="Other" name="EQName adoption" count="{23 (: deep search needed, or new category :) }" /> |
162 <feature name="JSON support (total)" count="{sum(//category[@name=('Functions')]/test-set[@name=('json-to-xml', 'xml-to-json')]/@total-tests)}" /> |
160 <feature group="Other" name="JSON support (total)" count="{sum(//category[@name=('Functions')]/test-set[@name=('json-to-xml', 'xml-to-json')]/@total-tests)}" /> |
163 <feature name="Default collation enhancements (allowed on any element)" count="{sum(//category[@name=('Functions', 'Miscellaneous')]/test-set[@name=('collation', 'collations')]/xslt3-specific/@count)}" /> |
161 <feature group="Other" name="Default collation enhancements (allowed on any element)" count="{sum(//category[@name=('Functions', 'Miscellaneous')]/test-set[@name=('collation', 'collations')]/xslt3-specific/@count)}" /> |
164 <feature name="Backwards compatibility (XSLT 3.0 to 2.0)" count="{sum(//category[@name=('Miscellaneous')]/test-set[@name=('backwards', 'xslt-compat')]/xslt3-specific/@count)}" /> |
162 <feature group="Other" name="Backwards compatibility (XSLT 3.0 to 2.0)" count="{sum(//category[@name=('Miscellaneous')]/test-set[@name=('backwards', 'xslt-compat')]/xslt3-specific/@count)}" /> |
165 <feature name="New error conditions and codes" count="{sum(//category[@name=('Miscellaneous')]/test-set[@name=('error')]/xslt3-specific/@count)}" /> |
163 <feature group="Other" name="New error conditions and codes" count="{sum(//category[@name=('Miscellaneous')]/test-set[@name=('error')]/xslt3-specific/@count)}" /> |
166 <feature name="Recoverable errors do not exist anymore" count="{'unknown/todo'}" /> |
164 <feature group="Other" name="Recoverable errors do not exist anymore" count="{'unknown'}" /> |
167 <feature name="Enhancements to serialization (all)" count="{sum(//category[@name=('Declarations', 'Instructions')]/test-set[@name=('output', 'result-document')]/xslt3-specific/@count)}" /> |
165 <feature group="Other" name="Enhancements to serialization (all)" count="{sum(//category[@name=('Declarations', 'Instructions')]/test-set[@name=('output', 'result-document')]/xslt3-specific/@count)}" /> |
168 <feature name="Type attribute validation with complex types and copy/copy-of (XTTE1535)" count="{'unknown'}" /> |
166 <feature group="Other" name="Type attribute validation with complex types and copy/copy-of (XTTE1535)" count="{'unknown'}" /> |
169 <feature name="XSD 1.1 types" count="{'unknown'}" /> |
167 <feature group="Other" name="XSD 1.1 types" count="{'unknown'}" /> |
170 |
168 |
171 </changes-since-xslt2> |
169 </changes-since-xslt2> |
172 <xsl:apply-templates mode="report" /> |
170 <xsl:apply-templates mode="report" /> |
173 </xsl:copy> |
171 </xsl:copy> |
174 </xsl:template> |
172 </xsl:template> |