X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fmarcdisp.h;h=0e85c3b0d2b84d8e1be5a66779035419098df812;hp=1b8e81861785d8f3de1134e354b1d52dcf59df1c;hb=861f9deb72bd92679ea08d528b40993ada55cdb9;hpb=54db174ec4113c44b05f3766dc6f8ad665968cfb diff --git a/include/yaz/marcdisp.h b/include/yaz/marcdisp.h index 1b8e818..0e85c3b 100644 --- a/include/yaz/marcdisp.h +++ b/include/yaz/marcdisp.h @@ -24,7 +24,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $Id: marcdisp.h,v 1.22 2006-12-15 12:37:17 adam Exp $ */ +/* $Id: marcdisp.h,v 1.24 2006-12-18 10:32:47 adam Exp $ */ /** * \file marcdisp.h @@ -130,6 +130,16 @@ YAZ_EXPORT void yaz_marc_modify_leader(yaz_marc_t mt, size_t off, /** \brief like atoi(3) except that it reads exactly len characters */ YAZ_EXPORT int atoi_n(const char *buf, int len); +/** \brief like atoi_n but checks for proper formatting + \param buf buffer to read values from + \param size size of buffer + \param val value of decimal number (if successful) + \retval 0 no value found (non-digits found) + \retval 1 value found and *val holds value +*/ +YAZ_EXPORT +int atoi_n_check(const char *buf, int size, int *val); + /** \brief MARC control char: record separator (29 Dec, 1D Hex) */ #define ISO2709_RS 035 /** \brief MARC control char: field separator (30 Dec, 1E Hex) */ @@ -215,6 +225,21 @@ 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); +/** \brief writes MARC record as libxml2 tree + \param mt handle + \param root_ptr pointer to record node + \param ns namespace of record (such as "http://www.loc.gov/MARC21/slim") + \param format MarcXchange format (NULL for none) + \param type MarcXchange format (NULL for none) + \retval 0 Creation successful and *root_ptr is "record" node + \retval -1 ERROR +*/ +YAZ_EXPORT +int yaz_marc_write_xml(yaz_marc_t mt, xmlNode **root_ptr, + const char *ns, + const char *format, + const char *type); + /** \brief sets leader spec (for modifying bytes in 24 byte leader) \param mt handle \param leader_spec @@ -334,6 +359,20 @@ void yaz_marc_reset(yaz_marc_t mt); YAZ_EXPORT int yaz_marc_get_debug(yaz_marc_t mt); +/** \brief convert MARC format type to format type(YAZ_MARC_..) + \param arg string + \returns -1 if arg is not a known format; YAZ_MARC_.. otherwise (OK) +*/ +YAZ_EXPORT +int yaz_marc_decode_formatstr(const char *arg); + +/** \brief enable writing of MARC XML records using Libxml2 + \param mt handle + \param enable 0=disable, 1=enable +*/ +YAZ_EXPORT +void yaz_marc_write_using_libxml2(yaz_marc_t mt, int enable); + YAZ_END_CDECL #endif