Container
QName: f:container
Makes a node as a container.
In Cloud CMS, all nodes are essentially equivalent. There is no assumed containment model - in other words, Cloud CMS does not assume a folder structure or any kind of graph that you must adhere to. You can use associations to model any kind of relationship you would like. For example, you might have nodes that maintain only a kind of "linked" relationship to do things like link together related items for a product catalog.
Another example of purely "linked" relationships might be the use of an image that appears on multiple pages of a web site. It doesn't belong to any of those pages. So if you delete one of those pages, you wouldn't necessarily delete the image too. It's shared across them and so not really contained within any of them.
File systems, on the other hand, are an example of containment-based navigation. A folder in a file system is an "owner" of the items inside the folder. If you delete the folder you delete the contents of the folder as well.
While not required, Cloud CMS does provide a content and association types to let you work with content in a "file system" approach. As part of this, Cloud CMS allows you mark certain nodes as container. Containers are marked using the f:container
feature. Once marked as a container, the node is considered to support zero or more a:child
associations which point from f:container
marked nodes to child nodes. The child nodes may or may not be containers themselves.
This feature utilized by the Cloud CMS user interface to provide a document-library view of your content. It is also utilized by the Content API to allow for path-based traversal and lookup. Furthermore, it is used by the WebDAV and FTP interfaces to allow for navigation of the node hierarchy.
Configuration
Container Example
{
"title": "My Folder",
"_features": {
"f:container": {
}
}
}