JSON / MARC encoding
[yaz-moved-to-github.git] / include / yaz / marcdisp.h
index bd36fd1..0b2b66b 100644 (file)
@@ -76,6 +76,8 @@ YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode);
 #define YAZ_MARC_CHECK     6
 /** \brief Output format: Turbo MARC Index Data format (XML based) */
 #define YAZ_MARC_TURBOMARC 7
+/** \brief Output format: JSON */
+#define YAZ_MARC_JSON      8
 
 /** \brief set iconv handle for character set conversion */
 YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
@@ -440,14 +442,20 @@ YAZ_EXPORT void yaz_opac_decode_wrbuf2(yaz_marc_t mt, Z_OPACRecord *r,
 
 #if YAZ_HAVE_XML2
 /** \brief Converts XML to OPAC
-    \param mt marc handle 
-    \param src XML root node (presumably opacRecord node)
+    \param mt marc handle
+    \param buf_in XML buffer
+    \param size_in size of XML buffer
     \param dst Z39.50 OPAC result - allocated by NMEM on marc handle
     \param cd iconv handle for the OPAC content (not ISO2709 part)
-
+    \param nmem memory for OPACRecord (if NULL, mt NMEM memory is used)
+    \param syntax OID for embedded MARC (if NULL, USMARC is used)
+    \retval 1 conversion OK
+    \retval 0 conversion NOT OK
     \*/
-YAZ_EXPORT void yaz_xml_to_opac(yaz_marc_t mt, xmlNode *src,
-                                Z_OPACRecord **dst, yaz_iconv_t cd);
+YAZ_EXPORT int yaz_xml_to_opac(yaz_marc_t mt,
+                               const char *buf_in, size_t size_in,
+                               Z_OPACRecord **dst, yaz_iconv_t cd,
+                               NMEM nmem, const Odr_oid *syntax);
 #endif
 
 /** \brief flushes records