So the use case for the namespace is basically two-fold:
1. add structure hints for grand-children
2. show warnings "not conforming to schema" for non-namespaced arbitrary notes
This makes sense, thanks for patiently explaining it :).
The terminology takes some time to swallow. I wonder if there would be some terms / term sharpening that would make it easier for newcomers? At least the following things come to mind:
- "schema" vs "schema file" vs "schema node": I think these are now bundled in a single term "schema", which kind of tripped me a few times
- "domain": I think this is the first level after the root, but not sure if it's something more
- "domain namespace": I guess this means the second level, if the first level is defined as namespace, not 100% sure though.
Also following things come to mind:
- Can root-element be defined as a namespace? i.e. have schema for its grand-children?
- Could the term "namespace" be changed to "open" (true/false) more clearly pointing out that a schema node is "open for extensions"
- Assuming the "domain" denotes some kind of important partition that should be the root for activities like inserting new notes; what if the structure is such that domains make sense only on the second level, i.e. new notes should appear on third level. Would this kind of use case make sense, or is it just a design decision for dendron to support domains on first level only.