Delta version must be 2.0
There must be a deltaxml:content-type attribute with one of the values 'full-context', 'changes-only' or 'merge-concurrent'
Delta values may not be empty
Delta value contains invalid characters
An element that is a descendant of a non-modified element cannot have a delta attribute
All child elements of an element with @deltaxml:deltaV2 containing '!=' must have a delta attribute
If an element contains a delta attribute all the elements up to the root of the tree should also have delta attributes
If an element contains A in its delta, all ancestors up to the root of the tree should also contain A
If an element contains B in its delta, all ancestors up to the root of the tree should also contain B
If an element contains C in its delta, all ancestors up to the root of the tree should also contain C
An element with delta A!=B requires at least one child with delta A, B or A!=B
Permitted child attributes of A!=B must be one of A, B, A!=B or A=B
An element with delta A!=C requires at least one child with delta A, C or A!=C
Permitted child attributes of A!=C must be one of A, C, A!=C or A=C
An element with delta B!=C requires at least one child with delta B, C or B!=C
Permitted child attributes of B!=C must be one of B, C, B!=C or B=C
An element with delta A!=B!=C must have children with at least one of the delta value combinations specified in the test calculation
An element with delta A=B!=C requires at least one child with delta C, A=B or A=B!=C
Permitted child attributes of A=B!=C are: C, A=B, A=B!=C or A=B=C
An element with delta A!=B=C requires at least one child with delta A, B=C or A!=B=C
Permitted child attributes of A!=B=C are: A, B=C, A!=B=C or A=B=C
An element with delta A=C!=B requires at least one child with delta B, A=C or A=C!=B
Permitted child attributes of A=C!=B are: B, A=C, A=C!=B or A=B=C
All elements representing attributes (i.e. child of deltaxml:attributes) must contain at least one deltaxml:attributeValue child
For an element representing an attribute (i.e. child of deltaxml:attributes), the only child elements allowed are deltaxml:attributeValue elements
All elements representing attributes (i.e. child of deltaxml:attributes) must be associated with a namespace
A attribute should not be represented using deltaxml:attributes if it does not indicate change relative to its parent element
An element representing an attribute, whose deltaV2 contains A, must have only one deltaxml:attributeValue child whose deltaV2 contains A
An element representing an attribute, whose deltaV2 contains B, must have only one deltaxml:attributeValue child whose deltaV2 contains B
An element representing an attribute, whose deltaV2 contains C, must have only one deltaxml:attributeValue child whose deltaV2 contains C
A deltaxml:attributeValue element must be the grandchild of a deltaxml:attributes element
A deltaxml:attributeValue element must contain only text node(s)
A deltaxml:attributeValue element must contain either 0 or 1 text node
A deltaxml:attributeValue element must have a deltaV2 value that expresses equality
A deltaxml:attributeValue element must not have a sibling with the same delta value
A deltaxml:attributes element must be the first child of its parent element
textGroup cannot contain anything other than deltaxml:text elements
Consecutive textGroups should not have the same delta value
A deltaxml:textGroup must contain at least one deltaxml:text child
A textGroup should not be used if it does not indicate change relative to its parent element
A textGroup, whose deltaV2 contains A, must have only one text child whose deltaV2 contains A
A textGroup, whose deltaV2 contains B, must have only one text child whose deltaV2 contains B
A textGroup, whose deltaV2 contains C, must have only one text child whose deltaV2 contains C
A deltaxml:text element can only contain text nodes
A deltaxml:text element must contain either 0 or 1 text node
A deltaxml:text element must have a deltaV2 value that expresses equality
A deltaxml:text element must be a child of deltaxml:textGroup