8. Processing model
did0.10.18. Processing model
Contents of DID 0.1
- Parse; read
language.idandlanguage.version. If the id differs from the specification's, refuse. - If the definition's language version is older, run the specification's migrations (DISL 11.9) on the raw structure.
- Validate against
$defs/Definitionand the specification's metamodel (types exist, attributes typed, references resolvable). - Resolve view data; run layout for elements lacking view data if the specification's layout
triggerisonLoadIfMissingoralways(DISL 10). - Evaluate constraints with
livetiming; show problems. - Render.
A definition with a newer minor or patch language version than the loaded specification is opened with a warning; a newer major version is opened read-only or refused (DISL 11.9).
Elements of unknown types, unknown attributes and unknown view properties in a definition (for example written by a newer language version or a vendor extension) MUST be preserved on save. Unknown elements are shown as neutral placeholders ("Unknown element of type X") and reported by std.typeExists (DISL 8.7). Readers MUST NOT silently drop data.
- Evaluate constraints with
savetiming, as DISL 14.5 describes. - Serialize the logical definition canonically (section 6).
- Write files according to the specification's
files.modeatomically (write to temporary file, then rename).