Add JSON encoder and decoder
[yaz-moved-to-github.git] / include / yaz / marcdisp.h
index 188ddac..0700b4d 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2008 Index Data.
+ * Copyright (C) 1995-2009 Index Data.
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  * All rights reserved.
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -65,15 +65,15 @@ YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode);
 #define YAZ_MARC_MARCXML   3
 /** \brief Output format: ISO2709 */
 #define YAZ_MARC_ISO2709   4
 #define YAZ_MARC_MARCXML   3
 /** \brief Output format: ISO2709 */
 #define YAZ_MARC_ISO2709   4
-/** \brief Output format: MarcXchange */
+/** \brief Output format: MarcXchange (ISO25577) */
 #define YAZ_MARC_XCHANGE   5
 /** \brief Output format: check only (no marc output) */
 #define YAZ_MARC_CHECK  6
 
 #define YAZ_MARC_XCHANGE   5
 /** \brief Output format: check only (no marc output) */
 #define YAZ_MARC_CHECK  6
 
-/** \brief set iconv handle for character set conversion .. */
+/** \brief set iconv handle for character set conversion */
 YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
 
 YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd);
 
-/** \brief supply iconv handle for character set conversion .. */
+/** \brief supply iconv handle for character set conversion */
 YAZ_EXPORT yaz_iconv_t yaz_marc_get_iconv(yaz_marc_t mt);
 
 /** \brief set debug level 
 YAZ_EXPORT yaz_iconv_t yaz_marc_get_iconv(yaz_marc_t mt);
 
 /** \brief set debug level 
@@ -162,6 +162,7 @@ int yaz_marc_read_line(yaz_marc_t mt,
                        void (*ungetbyte)(int b, void *client_data),
                        void *client_data);
 
                        void (*ungetbyte)(int b, void *client_data),
                        void *client_data);
 
+#if YAZ_HAVE_XML2
 /** \brief parses MARCXML/MarcXchange record from xmlNode pointer 
     \param mt handle
     \param ptr is a pointer to root xml node 
 /** \brief parses MARCXML/MarcXchange record from xmlNode pointer 
     \param mt handle
     \param ptr is a pointer to root xml node 
@@ -169,6 +170,7 @@ int yaz_marc_read_line(yaz_marc_t mt,
     Returns 0=OK, -1=ERROR
 */
 YAZ_EXPORT int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr);
     Returns 0=OK, -1=ERROR
 */
 YAZ_EXPORT int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr);
+#endif
 
 /** \brief writes record in line format
     \param mt handle
 
 /** \brief writes record in line format
     \param mt handle
@@ -186,7 +188,7 @@ YAZ_EXPORT int yaz_marc_write_line(yaz_marc_t mt, WRBUF wrbuf);
 */
 YAZ_EXPORT int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wrbuf);
 
 */
 YAZ_EXPORT int yaz_marc_write_marcxml(yaz_marc_t mt, WRBUF wrbuf);
 
-/** \brief writes record in MarcXchange XML
+/** \brief writes record in MarcXchange XML (ISO25577)
     \param mt handle
     \param wrbuf WRBUF for output
     \param format record format (e.g. "MARC21")
     \param mt handle
     \param wrbuf WRBUF for output
     \param format record format (e.g. "MARC21")
@@ -214,6 +216,7 @@ YAZ_EXPORT int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wrbuf);
 */  
 YAZ_EXPORT int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wrbuf);
 
 */  
 YAZ_EXPORT int yaz_marc_write_mode(yaz_marc_t mt, WRBUF wrbuf);
 
+#if YAZ_HAVE_XML2
 /** \brief writes MARC record as libxml2 tree
     \param mt handle
     \param root_ptr pointer to record node
 /** \brief writes MARC record as libxml2 tree
     \param mt handle
     \param root_ptr pointer to record node
@@ -228,6 +231,7 @@ int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr,
                        const char *ns, 
                        const char *format,
                        const char *type);
                        const char *ns, 
                        const char *format,
                        const char *type);
+#endif
 
 /** \brief sets leader spec (for modifying bytes in 24 byte leader)
     \param mt handle
 
 /** \brief sets leader spec (for modifying bytes in 24 byte leader)
     \param mt handle
@@ -298,6 +302,7 @@ void yaz_marc_add_controlfield(yaz_marc_t mt, const char *tag,
                                const char *data, size_t data_len);
 
 
                                const char *data, size_t data_len);
 
 
+#if YAZ_HAVE_XML2
 /** \brief adds controlfield to MARC structure using xml Nodes
     \param mt handle
     \param ptr_tag value of tag (TEXT xmlNode)
 /** \brief adds controlfield to MARC structure using xml Nodes
     \param mt handle
     \param ptr_tag value of tag (TEXT xmlNode)
@@ -306,7 +311,7 @@ void yaz_marc_add_controlfield(yaz_marc_t mt, const char *tag,
 YAZ_EXPORT
 void yaz_marc_add_controlfield_xml(yaz_marc_t mt, const xmlNode *ptr_tag,
                                    const xmlNode *ptr_data);
 YAZ_EXPORT
 void yaz_marc_add_controlfield_xml(yaz_marc_t mt, const xmlNode *ptr_tag,
                                    const xmlNode *ptr_data);
-
+#endif
 
 /** \brief adds datafield to MARC structure using strings
     \param mt handle
 
 /** \brief adds datafield to MARC structure using strings
     \param mt handle
@@ -318,6 +323,7 @@ YAZ_EXPORT
 void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag,
                             const char *indicator, size_t indicator_len);
 
 void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag,
                             const char *indicator, size_t indicator_len);
 
+#if YAZ_HAVE_XML2
 /** \brief adds datafield to MARC structure using xml Nodes
     \param mt handle
     \param ptr_tag value of tag (TEXT xmlNode)
 /** \brief adds datafield to MARC structure using xml Nodes
     \param mt handle
     \param ptr_tag value of tag (TEXT xmlNode)
@@ -327,7 +333,7 @@ void yaz_marc_add_datafield(yaz_marc_t mt, const char *tag,
 YAZ_EXPORT
 void yaz_marc_add_datafield_xml(yaz_marc_t mt, const xmlNode *ptr_tag,
                                 const char *indicator, size_t indicator_len);
 YAZ_EXPORT
 void yaz_marc_add_datafield_xml(yaz_marc_t mt, const xmlNode *ptr_tag,
                                 const char *indicator, size_t indicator_len);
-
+#endif
 
 /** \brief returns memory for MARC handle
     \param mt handle
 
 /** \brief returns memory for MARC handle
     \param mt handle
@@ -388,6 +394,7 @@ YAZ_END_CDECL
 /*
  * Local variables:
  * c-basic-offset: 4
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab