+ /**
+ *
+ * Returns instantiation of grouping child nodes under supplied builder.
+ *
+ * Supplied newParent is not modified.
+ *
+ * For each {@link #getChildNodeBuilders()} new builder is created,
+ * which has supplied new parent set as their {@link Builder#getParent()}
+ * and QNames have updated namespace and revision per supplied parent
+ * node.
+ *
+ * @param newParent Parent node, under which this grouping should be instantiated.
+ * @return List of new builders representing instantiation of this grouping.
+ */
+ List<DataSchemaNodeBuilder> instantiateChildNodes(Builder newParent);
+
+
+ /**
+ *
+ * Returns instantiation of grouping type definitions under supplied builder.
+ *
+ * Supplied newParent is not modified.
+ *
+ * For each {@link #getTypeDefinitionBuilders()} new builder is created,
+ * which has supplied new parent set as their {@link Builder#getParent()}
+ * and QNames have updated namespace and revision per supplied parent
+ * node.
+ *
+ * @param newParent Parent node, under which this grouping should be instantiated.
+ * @return Set of new builders representing instantiation of this grouping.
+ */
+ Set<TypeDefinitionBuilder> instantiateTypedefs(Builder newParent);
+
+ /**
+ *
+ * Returns instantiation of grouping definitions under supplied builder.
+ *
+ * Supplied newParent is not modified.
+ *
+ * For each {@link #getGroupingBuilders()} new builder is created,
+ * which has supplied new parent set as their {@link Builder#getParent()}
+ * and QNames have updated namespace and revision per supplied parent
+ * node.
+ *
+ * @param newParent Parent node, under which this grouping should be instantiated.
+ * @return Set of new builders representing instantiation of this grouping.
+ */
+ Set<GroupingBuilder> instantiateGroupings(Builder newParent);
+
+ /**
+ *
+ * Returns instantiation of unknown nodes under supplied builder.
+ *
+ * Supplied newParent is not modified.
+ *
+ * For each {@link #getUnknownNodes()} new builder is created,
+ * which has supplied new parent set as their {@link Builder#getParent()}
+ * and QNames have updated namespace and revision per supplied parent
+ * node.
+ *
+ * @param newParent Parent node, under which this grouping should be instantiated.
+ * @return Set of new builders representing instantiation of this grouping.
+ */
+ Set<UnknownSchemaNodeBuilder> instantiateUnknownNodes(Builder newParent);