| Minimal Conformance | | | | | | | |
| Extensions to the Prolog | | | | | | | |
| Variable Declaration | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 6/6 |
| Function Declaration | 21/21 | 21/21 | 21/21 | 21/21 | 21/21 | 21/21 | 6/6 |
| New Kinds of Expressions | | | | | | | |
| Insert Expressions | 100/100 | 100/100 | 100/100 | 100/100 | 100/100 | 100/100 | 6/6 |
| Delete Expressions | 30/30 | 30/30 | 30/30 | 30/30 | 30/30 | 30/30 | 6/6 |
| Replace Expressions | | | | | | | |
| Replacing a Node | 22/22 | 22/22 | 22/22 | 22/22 | 22/22 | 22/22 | 6/6 |
| Replacing the Value of a Node | 33/33 | 33/33 | 33/33 | 33/33 | 33/33 | 33/33 | 6/6 |
| Rename Expressions | 44/44 | 44/44 | 44/44 | 44/44 | 44/44 | 44/44 | 6/6 |
| Transform Expressions | 58/58 | 58/58 | 58/58 | 58/58 | 58/58 | 58/58 | 6/6 |
| Compatibility of Updating Expressions | 30/30 | 30/30 | 30/30 | 30/30 | 30/30 | 30/30 | 6/6 |
| Extension to Existing Expressions | | | | | | | |
| FLWOR Expressions | 25/25 | 25/25 | 25/25 | 25/25 | 25/25 | 25/25 | 6/6 |
| Typeswitch Expressions | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 6/6 |
| Conditional Expressions | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 6/6 |
| Comma Expressions | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 38/38 | 6/6 |
| Parenthesized Expression | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 6/6 |
| Function Call | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 |
| Other Expressions | 32/32 | 32/32 | 32/32 | 32/32 | 32/32 | 32/32 | 6/6 |
| Extensions to Built-in Function Library | | | | | | | |
| fn:put | | | | | | | |
| fn:put() applied to document nodes | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 8/8 | 6/6 |
| fn:put() applied to element nodes | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 3/3 | 6/6 |
| XML Query Update Operations | | | | | | | |
| XML Query Update Primitives | | | | | | | |
| upd:insertBefore Primitive | | | | | | | |
| upd:insertAfter Primitive | | | | | | | |
| upd:insertInto Primitive | | | | | | | |
| upd:insertIntoAsFirst Primitive | | | | | | | |
| upd:insertIntoAsLast Primitive | | | | | | | |
| upd:insertAttributes Primitive | | | | | | | |
| upd:delete Primitive | | | | | | | |
| upd:replaceNode Primitive | | | | | | | |
| upd:replaceValue Primitive | | | | | | | |
| upd:replaceElementContent Primitive | | | | | | | |
| upd:rename Primitive | | | | | | | |
| Data model errors on changing attributes | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 17/17 | 6/6 |
| Namespace binding conflicts on attribute updates | 19/19 | 19/19 | 19/19 | 19/19 | 19/19 | 19/19 | 6/6 |
| XQuery Update Routines | | | | | | | |
| upd:mergeUpdates | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 2/2 | 6/6 |
| upd:applyUpdates | 21/21 | 21/21 | 21/21 | 21/21 | 21/21 | 21/21 | 6/6 |
| upd:revalidate | | | | | | | |
| upd:removeType | | | | | | | |
| upd:setToUntyped | 10/10 | 10/10 | 10/10 | 10/10 | 10/10 | 10/10 | 6/6 |
| upd:propagateNamespace | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 | 6/6 |
| Additional Typing | 60/60 | 60/60 | 60/60 | 60/60 | 60/60 | 60/60 | 6/6 |
| Other Tests | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 6/6 |
| Optional Features | | | | | | | |
| Revalidation | | | | | | | |
| Revalidation Declaration = strict | 0/21 | 0/21 | 21/21 | 21/21 | 0/21 | 21/21 | 3/6 |
| Revalidation Declaration = strict unsupported | 1/1 | 1/1 | 0/1 | 0/1 | 1/1 | 0/1 | 3/6 |
| Revalidation Declaration = lax | 0/19 | 0/19 | 19/19 | 19/19 | 0/19 | 19/19 | 3/6 |
| Revalidation Declaration = lax unsupported | 1/1 | 1/1 | 0/1 | 0/1 | 1/1 | 0/1 | 3/6 |
| Revalidation Declaration = skip | 33/33 | 33/33 | 33/33 | 33/33 | 33/33 | 33/33 | 6/6 |
| Revalidation Declaration = skip unsupported | 1/1 | 0/1 | 0/1 | 0/1 | 0/1 | 0/1 | 1/6 |
| Revalidation Declaration = strict + skip | 1/1 | 0/1 | 1/1 | 0/1 | 0/1 | 0/1 | 2/6 |
| Update Facility Static Typing Feature | 0/27 | 27/27 | 0/27 | 0/27 | 27/27 | 0/27 | 2/6 |
| Tests that need the Full Axis Feature | 14/14 | 14/14 | 14/14 | 14/14 | 14/14 | 14/14 | 6/6 |
| fn:put applied to nodes other than document and element nodes | | | | | | | |
| fn:put() applied to comment nodes | 1/1 | 1/1 | 0/1 | 1/1 | 1/1 | 1/1 | 5/6 |
| fn:put() applied to comment nodes - unsupported | 0/1 | 0/1 | 1/1 | 0/1 | 0/1 | 0/1 | 1/6 |
| fn:put() applied to processing-instruction nodes | 1/1 | 1/1 | 0/1 | 1/1 | 1/1 | 1/1 | 5/6 |
| fn:put() applied to processing-instruction nodes - unsupported | 0/1 | 0/1 | 1/1 | 0/1 | 0/1 | 0/1 | 1/6 |
| fn:put() applied to attribute nodes | 0/1 | 0/1 | 0/1 | 1/1 | 0/1 | 1/1 | 2/6 |
| fn:put() applied to attribute nodes - unsupported | 1/1 | 1/1 | 1/1 | 0/1 | 1/1 | 0/1 | 4/6 |
| fn:put() applied to text nodes | 1/1 | 1/1 | 0/1 | 1/1 | 1/1 | 1/1 | 5/6 |
| fn:put() applied to text nodes - unsupported | 0/1 | 0/1 | 1/1 | 0/1 | 0/1 | 0/1 | 1/6 |
| Use Cases | | | | | | | |
| Use Cases "R" - Updating Relational Data | 11/11 | 11/11 | 11/11 | 11/11 | 11/11 | 11/11 | 6/6 |
| Use Cases "address Book" - Synchronizing address book entries | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 6/6 |
| Use Cases "Soap" - processing messages | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 6/6 |
| Use Cases "Namespaces" - moving elements from one namespace to another | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 6/6 |
| Use Cases "Parts" - modifying recursive documents | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 7/7 | 6/6 |
| Use Cases "Nil" | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 1/1 | 6/6 |