diff --git a/src/plugins_types.h b/src/plugins_types.h
index 812cf05..3ec1d3b 100644
--- a/src/plugins_types.h
+++ b/src/plugins_types.h
@@ -33,6 +33,7 @@
 struct ly_path;
 struct lyd_node;
 struct lyd_value;
+struct lyd_value_xpath10;
 struct lys_module;
 struct lys_glob_unres;
 struct lysc_ident;
@@ -447,6 +448,19 @@
 LIBYANG_API_DECL void lyplg_type_lypath_free(const struct ly_ctx *ctx, struct ly_path *path);
 
 /**
+ * @brief Print xpath1.0 value in the specific format.
+ *
+ * @param[in] xp_val xpath1.0 value structure.
+ * @param[in] format Format to print in.
+ * @param[in] prefix_data Format-specific prefix data.
+ * @param[out] str_value Printed value.
+ * @param[out] err Error structure on error.
+ * @return LY_ERR value.
+ */
+LIBYANG_API_DECL LY_ERR lyplg_type_print_xpath10_value(const struct lyd_value_xpath10 *xp_val, LY_VALUE_FORMAT format,
+        void *prefix_data, char **str_value, struct ly_err_item **err);
+
+/**
  * @defgroup plugintypestoreopts Plugins: Type store callback options.
  *
  * Options applicable to ::lyplg_type_store_clb().
diff --git a/src/plugins_types/xpath1.0.c b/src/plugins_types/xpath1.0.c
index 7f04c12..6d24aa4 100644
--- a/src/plugins_types/xpath1.0.c
+++ b/src/plugins_types/xpath1.0.c
@@ -216,18 +216,8 @@
     return ly_err_new(err, LY_EMEM, LYVE_DATA, NULL, NULL, "No memory.");
 }
 
-/**
- * @brief Print xpath1.0 value in the specific format.
- *
- * @param[in] xp_val xpath1.0 value structure.
- * @param[in] format Format to print in.
- * @param[in] prefix_data Format-specific prefix data.
- * @param[out] str_value Printed value.
- * @param[out] err Error structure on error.
- * @return LY_ERR value.
- */
-static LY_ERR
-xpath10_print_value(const struct lyd_value_xpath10 *xp_val, LY_VALUE_FORMAT format, void *prefix_data,
+LIBYANG_API_DEF LY_ERR
+lyplg_type_print_xpath10_value(const struct lyd_value_xpath10 *xp_val, LY_VALUE_FORMAT format, void *prefix_data,
         char **str_value, struct ly_err_item **err)
 {
     LY_ERR ret = LY_SUCCESS;
@@ -311,7 +301,7 @@
     case LY_VALUE_SCHEMA_RESOLVED:
     case LY_VALUE_XML:
         /* JSON format with prefix is the canonical one */
-        ret = xpath10_print_value(val, LY_VALUE_JSON, NULL, &canon, err);
+        ret = lyplg_type_print_xpath10_value(val, LY_VALUE_JSON, NULL, &canon, err);
         LY_CHECK_GOTO(ret, cleanup);
 
         ret = lydict_insert_zc(ctx, canon, &storage->_canonical);
@@ -439,7 +429,7 @@
     }
 
     /* print in the specific format */
-    if (xpath10_print_value(val, format, prefix_data, &ret, &err)) {
+    if (lyplg_type_print_xpath10_value(val, format, prefix_data, &ret, &err)) {
         if (err) {
             LOGVAL_ERRITEM(ctx, err);
             ly_err_free(err);
