pub enum Path {
Forward(&'static str),
Inverse(&'static str),
Alternative(&'static [AltBranch]),
Chain(&'static [Step]),
}Expand description
Where a property shape’s values come from.
Field keys are the local XML element name with the prefix stripped, which
is exactly what the decoder puts in cimmodel::Element::fields.
Variants§
Forward(&'static str)
A field on the element itself.
Inverse(&'static str)
sh:inversePath — the field on whatever points at this element.
Needs the reverse index, which is why [ShapeSet] tracks whether any
active shape uses one.
Alternative(&'static [AltBranch])
sh:alternativePath — the union of every branch’s values. A branch may
itself be inverse, hence AltBranch rather than a plain name.
Chain(&'static [Step])
A sequence path: ( ^cim:Terminal.ConductingEquipment cim:Terminal.phases ), ( cim:Location.mainAddress cim:StreetAddress.status cim:Status.dateTime ), and — 170 of NCP’s 178
chains, its main association value-type check — ( nc:X.y rdf:type ).
Stepping from an element absent from the dataset makes the result
unknown and every check on it silent: phase 1 runs per file, so leaving
the file is normal. A final rdf:type step needs nothing from the
elements it reaches, so they count even when absent, and class checks
skip the absent ones, as Constraint::RefClass describes.
The referenced element may belong to either family: NCP’s value-type
lists name CGMES classes (cim17:ACLineSegment) alongside NC ones, and
Element::type_name answers for both.