schema tree FEATURE macro for non-presence container test
diff --git a/doc/transition.dox b/doc/transition.dox
index fc15e17..26acd46 100644
--- a/doc/transition.dox
+++ b/doc/transition.dox
@@ -180,6 +180,7 @@
  * -                            | ::lys_value_validate()          | Supplement functionality to ::lyd_value_validate().
  * lys_is_key()                 | ::lysc_is_key()                 | Renamed to connect with the compiled schema tree.
  * -                            | ::lysc_is_userordered()         | Added functionality to simplify the examination of generic compiled schema nodes.
+ * -                            | ::lysc_is_np_cont()             | ^
  * -                            | ::lysc_node_children()          | ^
  * -                            | ::lysc_node_children_full()     | ^
  * -                            | ::lysc_node_actions()           | ^
diff --git a/src/tree_schema.h b/src/tree_schema.h
index 24bece7..102e198 100644
--- a/src/tree_schema.h
+++ b/src/tree_schema.h
@@ -1772,6 +1772,15 @@
     ((!lysc_node || !(lysc_node->nodetype & (LYS_LEAF)) || !(lysc_node->flags & LYS_KEY)) ? 0 : 1)
 
 /**
+ * @brief Examine whether a node is a non-presence container.
+ *
+ * @param[in] lysc_node Schema node to examine.
+ * @return Boolean value whether the @p node is a NP container or not.
+ */
+#define lysc_is_np_cont(lysc_node) \
+    ((!lysc_node || !(lysc_node->nodetype & (LYS_CONTAINER)) || (lysc_node->flags & LYS_PRESENCE)) ? 0 : 1)
+
+/**
  * @brief Check whether the schema node data instance existence depends on any when conditions.
  * This node and any direct parent choice and case schema nodes are also examined for when conditions.
  *