X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fmarcdisp.h;h=437fc0acba7f758a8a26559f8881c33d3e9f60eb;hp=2453ab0a5c89887a2a667ae5f4d15b3075fe94eb;hb=ba1f112c74932545871791eaf2c2e4cfe4014ee5;hpb=ba9dd475d02ebbebde75d82b23fa0b0c4631288e diff --git a/include/yaz/marcdisp.h b/include/yaz/marcdisp.h index 2453ab0..437fc0a 100644 --- a/include/yaz/marcdisp.h +++ b/include/yaz/marcdisp.h @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2010 Index Data. + * Copyright (C) 1995-2012 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: @@ -52,7 +52,12 @@ YAZ_EXPORT yaz_marc_t yaz_marc_create(void); /** \brief destroy yaz_marc_t handle */ YAZ_EXPORT void yaz_marc_destroy(yaz_marc_t mt); -/** \brief set XML mode YAZ_MARC_LINE, YAZ_MARC_SIMPLEXML, ... */ +/** \brief set XML mode YAZ_MARC_LINE, YAZ_MARCXML, YAZ_MARC_ISO2709 .. + \param mt MARC handle + \param xmlmode mode. + + This function ONLY affects yaz_marc_write_mode, yaz_marc_write_trailer. +*/ YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode); /** \brief Output format: Line-format */ @@ -68,9 +73,9 @@ YAZ_EXPORT void yaz_marc_xml(yaz_marc_t mt, int xmlmode); /** \brief Output format: MarcXchange (ISO25577) */ #define YAZ_MARC_XCHANGE 5 /** \brief Output format: check only (no marc output) */ -#define YAZ_MARC_CHECK 6 -/** \brief Output format: Turbo MARCXML Index Data format*/ -#define YAZ_MARC_TMARCXML 7 +#define YAZ_MARC_CHECK 6 +/** \brief Output format: Turbo MARC Index Data format (XML based) */ +#define YAZ_MARC_TURBOMARC 7 /** \brief set iconv handle for character set conversion */ YAZ_EXPORT void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd); @@ -172,7 +177,7 @@ int yaz_marc_read_line(yaz_marc_t mt, void *client_data); #if YAZ_HAVE_XML2 -/** \brief parses MARCXML/MarcXchange record from xmlNode pointer +/** \brief parses MARCXML/MarcXchange/TurboMARC record from xmlNode pointer \param mt handle \param ptr is a pointer to root xml node \retval 0 OK @@ -199,6 +204,14 @@ 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); +/** \brief writes record in TurboMARC format + \param mt handle + \param wrbuf WRBUF for output + \retval 0 OK + \retval -1 ERROR +*/ +YAZ_EXPORT int yaz_marc_write_turbomarc(yaz_marc_t mt, WRBUF wrbuf); + /** \brief writes record in MarcXchange XML (ISO25577) \param mt handle \param wrbuf WRBUF for output @@ -325,6 +338,15 @@ 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); + +/** \brief adds controlfield to MARC structure using xml Nodes for data + \param mt handle + \param tag string tag + \param ptr_data value of data (TEXT xmlNode) +*/ +YAZ_EXPORT +void yaz_marc_add_controlfield_xml2(yaz_marc_t mt, char *tag, + const xmlNode *ptr_data); #endif /** \brief adds datafield to MARC structure using strings @@ -347,6 +369,16 @@ 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); + +/** \brief adds datafield to MARC structure using xml Nodes + \param mt handle + \param tag_value string value (pointer copied verbatim, not strdupped) + \param indicators indicator string ; pointer copied verbatim; not strdupped +*/ +YAZ_EXPORT +void yaz_marc_add_datafield_xml2(yaz_marc_t mt, char *tag_value, + char *indicators); + #endif /** \brief returns memory for MARC handle @@ -387,10 +419,25 @@ void yaz_marc_write_using_libxml2(yaz_marc_t mt, int enable); \param mt handle \param r OPAC record \param wrbuf WRBUF for resulting display string + + This function uses iconv_handle of yaz_marc_t for character set + conversion of both OPAC + ISO2709 part. \*/ YAZ_EXPORT void yaz_opac_decode_wrbuf(yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf); +/** \brief Performs "pretty" display of OPAC record to WRBUF using marc_t + \param mt handle + \param r OPAC record + \param wrbuf WRBUF for resulting display string + \param cd iconv handle for OPAC content (not ISO2709 part) + + This function uses iconv handle of yaz_marc_t for character set + conversion of ISO2709 part and supplied handle (cd) for OPAC part. + \*/ +YAZ_EXPORT void yaz_opac_decode_wrbuf2(yaz_marc_t mt, Z_OPACRecord *r, + WRBUF wrbuf, yaz_iconv_t cd); + /** \brief flushes records \param mt handle \param wr WRBUF for output