...
- (PoC) Store and validate a set of modules (a model file)
- (Full project) Load a model instance and validate it given a model set reference.(using a separate SPI)
1.2 Anchor
...
persistence
1.2.1 Anchor
...
persistence/retrieval
A system or human user should be able to create an anchor point . This serves the purpose of providing a name (or ID) for the model data and a root for the structure (together with the odd case of floating leaves at the top of a module).
As a user of CPS I want to be able to:
- Create an anchor point given a name and a dataspace
- Retrieve an anchor point and the associated attributes given a name and a dataspace
- List the anchor points anchors in the system given a dataspace
- Delete an anchor point anchors given a name and a dataspace
An anchor point name shall be unique within a dataspace. Duplicates shall be rejected. If a dataspace is not defined in the system, it shall be created upon anchor point creation.
1.2.2 Anchor
...
models set association
A system or human user should be able to associate an anchor point to a model set.
...
- Associate an anchor point to a module set given an anchor point and a module set reference. (upon creation)
- Retrieve a model set reference, given an anchor point
1.3 Fragment (Node) Persistence
1.3.1 Fragment (Node) persistence
A system or human user should be able to persist and retrieve a model data fragment ie. Node under a parent fragment. A fragment is considered an anchor point, a container or a list element, the xpath identifying the fragment together with the leaf and leaf-list attributes.
As a user of CPS I want to be able to:
- Persist a fragment given an
- Anchor point
- Retrieve a fragment given a
- anchor pointAnchor
- Xpath expression (limited to path and key equality, e.g. /A/B/C will grab a container while /A/B/C/ L[@key1='a key'][@key2='another key'] will grab a keyed list element)
...
As a user of CPS I want to be able to:
- Retrieve the anchor point Anchor of a fragment Node given an
- A fragmentNode
1.4.3 Containment Query
...
- Retrieve all the relevant fragments (nodes) given an
- Schema node identifier
2 Database backend
...