This diagram is the outcome of a discussion on 29 May 2001 among Henry Thompson, Richard Tobin, and Michael Sperberg-McQueen. It was transcribed into HTML and further annotated by MSM on 5 June 2001.
The outcome of XML-Schema-conformant validity assessment is conveyed by two attributes, each of which has three possible values. In the resulting three-by-three matrix, not all combinations are possible; the others distinguish several different states of affairs.
(this node and all descendants were fully assessed)
|OK. Entire subtree from here down has been strictly assessed and is valid.||
OK. Entire subtree from here down has been strictly assessed and has an error, either here or at some descendant.
If the current element is locally valid, but a child is invalid (or missing a required declaration), then the current element will have either a [type definition] property or a [type definition name] property with some appropriate value. If there is a problem with the current element (it's not locally valid), then there will be no such properties, and there will be a [schema error code] property.
|Not possible: validation-attempted="full" implies strict assessment, and strict assessment implies validity is either "valid" or "invalid"|
(either this node was fully assessed but some descendant was not, or vice versa)
|OK. This node was strictly assessed and was valid; none of its attributes or children was invalid, and none was missing any required declaration.||OK. This node was strictly assessed and was invalid, or else at least one of its direct dependents was invalid. (The [type definition], [type definition name], and [schema error code] properties distinguish these two cases.) Also, some descendant was not strictly assessed.||OK. This node was not strictly assessed (but one of its descendants was.)|
(neither this node nor any descendant was strictly assessed)
|Not possible: validation-attempted="none" implies no strict assessment, and validity "valid" implies strict assessment.||Not possible: validation-attempted="none" implies no strict assessment, and validity="invalid" implies strict assessment.||OK. This subtree was skipped: no strict assessment, no validity information.|