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.
Validity | |||
---|---|---|---|
Validation attempted | valid | invalid | notKnown |
full (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" |
partial (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.) |
none (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. |