yin parser CHANGE check attributes even in elements that should have no attributes
diff --git a/src/parser_yin.c b/src/parser_yin.c
index 647a6f5..14ccb92 100644
--- a/src/parser_yin.c
+++ b/src/parser_yin.c
@@ -829,6 +829,7 @@
  * text element as child
  *
  * @param[in,out] ctx Yin parser context for logging and to store current state.
+ * @param[in] attrs [Sized array](@ref sizedarrays) of attributes of current element.
  * @param[in,out] data Data to read from, always moved to currently handled character.
  * @param[in] Type of element can be set to YANG_ORGANIZATION or YANG_CONTACT or YANG_DESCRIPTION or YANG_REFERENCE.
  * @param[out] value Where the content of meta element should be stored.
@@ -837,8 +838,8 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-yin_parse_meta_element(struct yin_parser_ctx *ctx, const char **data, enum yang_keyword elem_type,
-                       const char **value, struct lysp_ext_instance **exts)
+yin_parse_meta_element(struct yin_parser_ctx *ctx, struct yin_arg_record *attrs, const char **data,
+                       enum yang_keyword elem_type, const char **value, struct lysp_ext_instance **exts)
 {
     assert(elem_type == YANG_ORGANIZATION || elem_type == YANG_CONTACT || elem_type == YANG_DESCRIPTION || elem_type == YANG_REFERENCE);
 
@@ -846,7 +847,10 @@
                                             {YANG_CUSTOM, NULL, 0},
                                             {YIN_TEXT, value, YIN_SUBELEM_MANDATORY | YIN_SUBELEM_UNIQUE | YIN_SUBELEM_FIRST}
                                         };
+    /* check attributes */
+    LY_CHECK_RET(yin_parse_attribute(ctx, attrs, YIN_ARG_NONE, NULL, Y_MAYBE_STR_ARG, elem_type));
 
+    /* parse content */
     return yin_parse_content(ctx, subelems, 2, data, elem_type, NULL, exts);
 }
 
@@ -854,6 +858,7 @@
  * @brief Parse error-message element.
  *
  * @param[in,out] ctx Yin parser context for logging and to store current state.
+ * @param[in] attrs [Sized array](@ref sizedarrays) of attributes of current element.
  * @param[in,out] data Data to read from.
  * @param[out] value Where the content of error-message element should be stored.
  * @param[in,out] exts Extension instance to add to.
@@ -861,14 +866,17 @@
  * @return LY_ERR values.
  */
 static LY_ERR
-yin_parse_err_msg_element(struct yin_parser_ctx *ctx, const char **data, const char **value,
-                          struct lysp_ext_instance **exts)
+yin_parse_err_msg_element(struct yin_parser_ctx *ctx, struct yin_arg_record *attrs, const char **data,
+                          const char **value, struct lysp_ext_instance **exts)
 {
     struct yin_subelement subelems[2] = {
                                             {YANG_CUSTOM, NULL, 0},
                                             {YIN_VALUE, value, YIN_SUBELEM_MANDATORY | YIN_SUBELEM_UNIQUE | YIN_SUBELEM_FIRST}
                                         };
 
+    /* check attributes */
+    LY_CHECK_RET(yin_parse_attribute(ctx, attrs, YIN_ARG_NONE, NULL, Y_MAYBE_STR_ARG, YANG_ERROR_MESSAGE));
+
     return yin_parse_content(ctx, subelems, 2, data, YANG_ERROR_MESSAGE, NULL, exts);
 }
 
@@ -2720,7 +2728,7 @@
                 case YANG_DESCRIPTION:
                 case YANG_ORGANIZATION:
                 case YANG_REFERENCE:
-                    ret = yin_parse_meta_element(ctx, data, kw, (const char **)subelem->dest, exts);
+                    ret = yin_parse_meta_element(ctx, attrs, data, kw, (const char **)subelem->dest, exts);
                     break;
                 case YANG_CONTAINER:
                     ret = yin_parse_container(ctx, attrs, data, (struct tree_node_meta *)subelem->dest);
@@ -2748,7 +2756,7 @@
                                                    YIN_ARG_VALUE, Y_STR_ARG, exts);
                     break;
                 case YANG_ERROR_MESSAGE:
-                    ret = yin_parse_err_msg_element(ctx, data, (const char **)subelem->dest, exts);
+                    ret = yin_parse_err_msg_element(ctx, attrs, data, (const char **)subelem->dest, exts);
                     break;
                 case YANG_EXTENSION:
                     ret = yin_parse_extension(ctx, attrs, data, (struct lysp_ext **)subelem->dest);