import javax.xml.namespace.QName;
/**
- * A semi-structured content, with attributes, within a hierarchical structure.
+ * A semi-structured content, with attributes, within a hierarchical structure
+ * whose nodes are named.
*/
-public interface Content extends Iterable<Content>, Map<QName, Object> {
+public interface Content extends QualifiedData<Content> {
/** The base of a repository path. */
String ROOT_PATH = "/";
--- /dev/null
+package org.argeo.api.acr;
+
+import javax.xml.namespace.QName;
+
+/** A {@link StructuredData} whose attributes have qualified keys. */
+public interface QualifiedData<CHILD extends QualifiedData<CHILD>> extends StructuredData<QName, Object, CHILD> {
+
+}
--- /dev/null
+package org.argeo.api.acr;
+
+import java.util.Map;
+
+/** A hierarchical structure of unnamed mappings. */
+public interface StructuredData<KEY, VALUE, CHILD> extends Map<KEY, VALUE>, Iterable<CHILD> {
+
+}