Call exsltRegisterAll in yaz_init_globals
[yaz-moved-to-github.git] / src / record_conv.c
index 5edc28b..ca1e41e 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2013 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 /**
@@ -195,7 +195,6 @@ static void *construct_xslt(const xmlNode *ptr,
         wrbuf_printf(wr_error, "Element <xslt>: "
                      "attribute 'stylesheet' expected");
         nmem_destroy(nmem);
-        return 0;
     }
     else
     {
@@ -241,7 +240,6 @@ static void *construct_xslt(const xmlNode *ptr,
                          ")");
             xmlFreeDoc(info->xsp_doc);
             nmem_destroy(info->nmem);
-            return 0;
         }
         else
         {
@@ -390,6 +388,10 @@ static void *construct_marc(const xmlNode *ptr,
         if (!info->input_charset && info->output_charset)
             info->input_charset = "utf-8";
     }
+    else if (!strcmp(input_format, "json"))
+    {
+        info->input_format_mode = YAZ_MARC_JSON;
+    }
     else
     {
         wrbuf_printf(wr_error, "Element <marc inputformat='%s'>: "
@@ -433,6 +435,12 @@ static void *construct_marc(const xmlNode *ptr,
         if (info->input_charset && !info->output_charset)
             info->output_charset = "utf-8";
     }
+    else if (!strcmp(output_format, "json"))
+    {
+        info->output_format_mode = YAZ_MARC_JSON;
+        if (info->input_charset && !info->output_charset)
+            info->output_charset = "utf-8";
+    }
     else
     {
         wrbuf_printf(wr_error, "Element <marc outputformat='%s'>: "
@@ -694,9 +702,6 @@ yaz_record_conv_t yaz_record_conv_create()
     p->wr_error = wrbuf_alloc();
     p->rules = 0;
     p->path = 0;
-#if YAZ_HAVE_EXSLT
-    exsltRegisterAll();
-#endif
     return p;
 }