lyb printer REFACTOR of lyb_print_node_any
diff --git a/src/printer_lyb.c b/src/printer_lyb.c
index fd7c3da..72e0700 100644
--- a/src/printer_lyb.c
+++ b/src/printer_lyb.c
@@ -41,6 +41,7 @@
 static LY_ERR lyb_print_schema_hash(struct ly_out *out, struct lysc_node *schema, struct hash_table **sibling_ht, struct lylyb_ctx *lybctx);
 static LY_ERR lyb_print_attributes(struct ly_out *out, const struct lyd_node_opaq *node, struct lylyb_ctx *lybctx);
 static LY_ERR lyb_print_subtree(struct ly_out *out, const struct lyd_node *node, struct hash_table **sibling_ht, struct lyd_lyb_ctx *lybctx);
+static LY_ERR lyb_print_node_header(struct ly_out *out, const struct lyd_node *node, struct lyd_lyb_ctx *lybctx);
 
 /**
  * @brief Hash table equal callback for checking hash equality only.
@@ -660,15 +661,15 @@
 }
 
 /**
- * @brief Print anydata node.
+ * @brief Print anydata or anyxml node.
  *
  * @param[in] anydata Node to print.
  * @param[in] out Out structure.
- * @param[in] lybctx LYB context.
+ * @param[in] lyd_lybctx LYB context.
  * @return LY_ERR value.
  */
 static LY_ERR
-lyb_print_anydata(struct lyd_node_any *anydata, struct ly_out *out, struct lylyb_ctx *lybctx)
+lyb_print_node_any(struct ly_out *out, struct lyd_node_any *anydata, struct lyd_lyb_ctx *lyd_lybctx)
 {
     LY_ERR ret = LY_SUCCESS;
     LYD_ANYDATA_VALUETYPE value_type;
@@ -676,6 +677,7 @@
     char *buf = NULL;
     const char *str;
     struct ly_out *out2 = NULL;
+    struct lylyb_ctx *lybctx = lyd_lybctx->lybctx;
 
     if (anydata->value_type == LYD_ANYDATA_DATATREE) {
         /* will be printed as a nested LYB data tree */
@@ -684,6 +686,9 @@
         value_type = anydata->value_type;
     }
 
+    /* write necessary basic data */
+    LY_CHECK_RET(lyb_print_node_header(out, (struct lyd_node *)anydata, lyd_lybctx));
+
     /* first byte is type */
     LY_CHECK_GOTO(ret = lyb_write_number(value_type, sizeof value_type, out, lybctx), cleanup);
 
@@ -1059,8 +1064,8 @@
         LY_CHECK_RET(lyb_print_node_header(out, node, lybctx));
         LY_CHECK_RET(lyb_print_term_value((struct lyd_node_term *)node, out, lybctx->lybctx));
     } else if (node->schema->nodetype & LYD_NODE_ANY) {
-        LY_CHECK_RET(lyb_print_node_header(out, node, lybctx));
-        LY_CHECK_RET(lyb_print_anydata((struct lyd_node_any *)node, out, lybctx->lybctx));
+        LY_CHECK_RET(lyb_print_node_any(out, (struct lyd_node_any *)node, lybctx));
+        goto stop_subtree;
     } else {
         LOGINT_RET(lybctx->lybctx->ctx);
     }