marcdisp.h File Reference

MARC conversion. More...

#include <yaz/yconfig.h>
#include <stdio.h>
#include <yaz/wrbuf.h>
#include <yaz/nmem.h>
#include <yaz/xmltypes.h>
#include <yaz/z-opac.h>

Go to the source code of this file.

Defines

#define YAZ_MARC_LINE   0
 Output format: Line-format.
#define YAZ_MARC_SIMPLEXML   1
 Output format: simplexml (no longer supported).
#define YAZ_MARC_OAIMARC   2
 Output format: OAI-MARC (no longer supported).
#define YAZ_MARC_MARCXML   3
 Output format: MARCXML.
#define YAZ_MARC_ISO2709   4
 Output format: ISO2709.
#define YAZ_MARC_XCHANGE   5
 Output format: MarcXchange (ISO25577).
#define YAZ_MARC_CHECK   6
 Output format: check only (no marc output).
#define YAZ_MARC_TURBOMARC   7
 Output format: Turbo MARC Index Data format (XML based).
#define ISO2709_RS   035
 MARC control char: record separator (29 Dec, 1D Hex).
#define ISO2709_FS   036
 MARC control char: field separator (30 Dec, 1E Hex).
#define ISO2709_IDFS   037
 MARC control char: identifier-field separator (31 Dec, 1F Hex).

Typedefs

typedef struct yaz_marc_t_yaz_marc_t
 a yaz_marc_t handle (private content)

Functions

yaz_marc_t yaz_marc_create (void)
 construct yaz_marc_t handle
void yaz_marc_destroy (yaz_marc_t mt)
 destroy yaz_marc_t handle
void yaz_marc_xml (yaz_marc_t mt, int xmlmode)
 set XML mode YAZ_MARC_LINE, YAZ_MARCXML, YAZ_MARC_ISO2709 ..
void yaz_marc_iconv (yaz_marc_t mt, yaz_iconv_t cd)
 set iconv handle for character set conversion
yaz_iconv_t yaz_marc_get_iconv (yaz_marc_t mt)
 supply iconv handle for character set conversion
void yaz_marc_debug (yaz_marc_t mt, int level)
 set debug level
int yaz_marc_decode_buf (yaz_marc_t mt, const char *buf, int bsize, const char **result, size_t *rsize)
 decodes ISO2709 buffer using straight buffers
int yaz_marc_decode_wrbuf (yaz_marc_t mt, const char *buf, int bsize, WRBUF wrbuf)
 decodes ISO2709/MARC buffer and stores result in WRBUF
void yaz_marc_subfield_str (yaz_marc_t mt, const char *s)
void yaz_marc_endline_str (yaz_marc_t mt, const char *s)
void yaz_marc_modify_leader (yaz_marc_t mt, size_t off, const char *str)
 modifies part of the MARC leader
int atoi_n (const char *buf, int len)
 like atoi(3) except that it reads exactly len characters
int atoi_n_check (const char *buf, int size, int *val)
 like atoi_n but checks for proper formatting
int yaz_marc_read_iso2709 (yaz_marc_t mt, const char *buf, int bsize)
 read ISO2709/MARC record from buffer
int yaz_marc_read_line (yaz_marc_t mt, int(*getbyte)(void *client_data), void(*ungetbyte)(int b, void *client_data), void *client_data)
 read MARC lineformat from stream
int yaz_marc_read_xml (yaz_marc_t mt, const xmlNode *ptr)
 parses MARCXML/MarcXchange/TurboMARC record from xmlNode pointer
int yaz_marc_write_line (yaz_marc_t mt, WRBUF wrbuf)
 writes record in line format
int yaz_marc_write_marcxml (yaz_marc_t mt, WRBUF wrbuf)
 writes record in MARCXML format
int yaz_marc_write_turbomarc (yaz_marc_t mt, WRBUF wrbuf)
 writes record in TurboMARC format
int yaz_marc_write_marcxchange (yaz_marc_t mt, WRBUF wrbuf, const char *format, const char *type)
 writes record in MarcXchange XML (ISO25577)
int yaz_marc_write_iso2709 (yaz_marc_t mt, WRBUF wrbuf)
 writes record in ISO2709 format
int yaz_marc_write_mode (yaz_marc_t mt, WRBUF wrbuf)
 writes record in mode - given by yaz_marc_xml mode
int yaz_marc_write_xml (yaz_marc_t mt, xmlNode **root_ptr, const char *ns, const char *format, const char *type)
 writes MARC record as libxml2 tree
int yaz_marc_leader_spec (yaz_marc_t mt, const char *leader_spec)
 sets leader spec (for modifying bytes in 24 byte leader)
void yaz_marc_set_leader (yaz_marc_t mt, const char *leader, int *indicator_length, int *identifier_length, int *base_address, int *length_data_entry, int *length_starting, int *length_implementation)
 sets leader, validates it, and returns important values
void yaz_marc_add_comment (yaz_marc_t mt, char *comment)
 adds MARC comment string
void yaz_marc_cprintf (yaz_marc_t mt, const char *fmt,...)
 adds MARC annotation - printf interface
void yaz_marc_add_subfield (yaz_marc_t mt, const char *code_data, size_t code_data_len)
 adds subfield to MARC structure
void yaz_marc_add_controlfield (yaz_marc_t mt, const char *tag, const char *data, size_t data_len)
 adds controlfield to MARC structure
void yaz_marc_add_controlfield_xml (yaz_marc_t mt, const xmlNode *ptr_tag, const xmlNode *ptr_data)
 adds controlfield to MARC structure using xml Nodes
void yaz_marc_add_controlfield_xml2 (yaz_marc_t mt, char *tag, const xmlNode *ptr_data)
 adds controlfield to MARC structure using xml Nodes for data
void yaz_marc_add_datafield (yaz_marc_t mt, const char *tag, const char *indicator, size_t indicator_len)
 adds datafield to MARC structure using strings
void yaz_marc_add_datafield_xml (yaz_marc_t mt, const xmlNode *ptr_tag, const char *indicator, size_t indicator_len)
 adds datafield to MARC structure using xml Nodes
void yaz_marc_add_datafield_xml2 (yaz_marc_t mt, char *tag_value, char *indicators)
 adds datafield to MARC structure using xml Nodes
NMEM yaz_marc_get_nmem (yaz_marc_t mt)
 returns memory for MARC handle
void yaz_marc_reset (yaz_marc_t mt)
 clears memory and MARC record
int yaz_marc_get_debug (yaz_marc_t mt)
 gets debug level for MARC system
int yaz_marc_decode_formatstr (const char *arg)
 Converts MARC format type to format type(YAZ_MARC_..).
void yaz_marc_write_using_libxml2 (yaz_marc_t mt, int enable)
 Enables or disables writing of MARC XML records using Libxml2.
void yaz_opac_decode_wrbuf (yaz_marc_t mt, Z_OPACRecord *r, WRBUF wrbuf)
 Performs "pretty" display of OPAC record to WRBUF using marc_t.
int yaz_marc_write_trailer (yaz_marc_t mt, WRBUF wr)
 flushes records
void yaz_marc_enable_collection (yaz_marc_t mt)
 enables record collection output

Detailed Description

MARC conversion.

Definition in file marcdisp.h.


Define Documentation

#define ISO2709_FS   036

MARC control char: field separator (30 Dec, 1E Hex).

Definition at line 146 of file marcdisp.h.

Referenced by yaz_marc_read_iso2709(), and yaz_marc_write_iso2709().

#define ISO2709_IDFS   037

MARC control char: identifier-field separator (31 Dec, 1F Hex).

Definition at line 148 of file marcdisp.h.

Referenced by yaz_marc_read_iso2709(), and yaz_marc_write_iso2709().

#define ISO2709_RS   035

MARC control char: record separator (29 Dec, 1D Hex).

Definition at line 144 of file marcdisp.h.

Referenced by yaz_marc_read_iso2709(), and yaz_marc_write_iso2709().

#define YAZ_MARC_CHECK   6

Output format: check only (no marc output).

Definition at line 76 of file marcdisp.h.

Referenced by yaz_marc_write_mode().

#define YAZ_MARC_ISO2709   4
#define YAZ_MARC_LINE   0

Output format: Line-format.

Definition at line 64 of file marcdisp.h.

Referenced by conv_marc(), npr_format(), yaz_marc_create(), yaz_marc_decode_formatstr(), and yaz_marc_write_mode().

#define YAZ_MARC_MARCXML   3
#define YAZ_MARC_OAIMARC   2

Output format: OAI-MARC (no longer supported).

Definition at line 68 of file marcdisp.h.

#define YAZ_MARC_SIMPLEXML   1

Output format: simplexml (no longer supported).

Definition at line 66 of file marcdisp.h.

#define YAZ_MARC_TURBOMARC   7

Output format: Turbo MARC Index Data format (XML based).

Definition at line 78 of file marcdisp.h.

Referenced by conv_marc(), npr_format(), yaz_marc_decode_formatstr(), yaz_marc_read_xml(), yaz_marc_write_mode(), yaz_marc_write_trailer(), and yaz_record_conv_record_rule().

#define YAZ_MARC_XCHANGE   5

Output format: MarcXchange (ISO25577).

Definition at line 74 of file marcdisp.h.

Referenced by conv_marc(), yaz_marc_decode_formatstr(), yaz_marc_write_mode(), and yaz_marc_write_trailer().


Typedef Documentation

typedef struct yaz_marc_t_* yaz_marc_t

a yaz_marc_t handle (private content)

Definition at line 47 of file marcdisp.h.


Function Documentation

int atoi_n ( const char *  buf,
int  len 
)

like atoi(3) except that it reads exactly len characters

Parameters:
buf buffer to read
len number of bytes to consider (being digits)
Returns:
value

Definition at line 19 of file atoin.c.

Referenced by atoi_n_check(), and yaz_marc_read_iso2709().

int atoi_n_check ( const char *  buf,
int  size,
int *  val 
)

like atoi_n but checks for proper formatting

Parameters:
buf buffer to read values from
size size of buffer
val value of decimal number (if successful)
Return values:
0 no value found (non-digits found)
1 value found and *val holds value

Definition at line 32 of file atoin.c.

References atoi_n().

Referenced by yaz_marc_read_line(), yaz_marc_set_leader(), yaz_marc_write_check(), yaz_marc_write_iso2709(), yaz_marc_write_line(), yaz_marc_write_marcxml_wrbuf(), yaz_marc_write_xml(), and yaz_marc_write_xml_turbo_xml().

void yaz_marc_add_comment ( yaz_marc_t  mt,
char *  comment 
)

adds MARC comment string

Parameters:
mt handle
comment comment to be added)

Definition at line 182 of file marcdisp.c.

References yaz_marc_node::comment, yaz_marc_t_::nmem, nmem_strdup(), yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_COMMENT.

Referenced by yaz_marc_add_controlfield(), yaz_marc_add_subfield(), and yaz_marc_cprintf().

void yaz_marc_add_controlfield ( yaz_marc_t  mt,
const char *  tag,
const char *  data,
size_t  data_len 
)

adds controlfield to MARC structure

Parameters:
mt handle
tag (e.g. "001"
data value for this tag
data_len length of data

Definition at line 213 of file marcdisp.c.

References yaz_marc_node::controlfield, yaz_marc_controlfield::data, yaz_marc_t_::debug, yaz_marc_t_::nmem, nmem_strdup(), nmem_strdupn(), yaz_marc_controlfield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_comment(), yaz_marc_add_node(), and YAZ_MARC_CONTROLFIELD.

Referenced by yaz_marc_read_iso2709(), and yaz_marc_read_line().

void yaz_marc_add_controlfield_xml ( yaz_marc_t  mt,
const xmlNode *  ptr_tag,
const xmlNode *  ptr_data 
)

adds controlfield to MARC structure using xml Nodes

Parameters:
mt handle
ptr_tag value of tag (TEXT xmlNode)
ptr_data value of data (TEXT xmlNode)

Definition at line 161 of file marcdisp.c.

References yaz_marc_node::controlfield, yaz_marc_controlfield::data, yaz_marc_t_::nmem, nmem_text_node_cdata(), yaz_marc_controlfield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_CONTROLFIELD.

Referenced by yaz_marc_read_xml_fields().

void yaz_marc_add_controlfield_xml2 ( yaz_marc_t  mt,
char *  tag,
const xmlNode *  ptr_data 
)

adds controlfield to MARC structure using xml Nodes for data

Parameters:
mt handle
tag string tag
ptr_data value of data (TEXT xmlNode)

Definition at line 170 of file marcdisp.c.

References yaz_marc_node::controlfield, yaz_marc_controlfield::data, yaz_marc_t_::nmem, nmem_text_node_cdata(), yaz_marc_controlfield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_CONTROLFIELD.

Referenced by yaz_marc_read_turbo_xml_fields().

void yaz_marc_add_datafield ( yaz_marc_t  mt,
const char *  tag,
const char *  indicator,
size_t  indicator_len 
)

adds datafield to MARC structure using strings

Parameters:
mt handle
tag value of tag as string
indicator indicator string
indicator_len length of indicator string

Definition at line 234 of file marcdisp.c.

References yaz_marc_node::datafield, yaz_marc_datafield::indicator, yaz_marc_t_::nmem, nmem_strdup(), nmem_strdupn(), yaz_marc_t_::subfield_pp, yaz_marc_datafield::subfields, yaz_marc_datafield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_DATAFIELD.

Referenced by yaz_marc_read_iso2709(), and yaz_marc_read_line().

void yaz_marc_add_datafield_xml ( yaz_marc_t  mt,
const xmlNode *  ptr_tag,
const char *  indicator,
size_t  indicator_len 
)

adds datafield to MARC structure using xml Nodes

Parameters:
mt handle
ptr_tag value of tag (TEXT xmlNode)
indicator indicator string
indicator_len length of indicator string

Definition at line 281 of file marcdisp.c.

References yaz_marc_node::datafield, yaz_marc_datafield::indicator, yaz_marc_t_::nmem, nmem_strdupn(), nmem_text_node_cdata(), yaz_marc_t_::subfield_pp, yaz_marc_datafield::subfields, yaz_marc_datafield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_DATAFIELD.

Referenced by yaz_marc_read_xml_fields().

void yaz_marc_add_datafield_xml2 ( yaz_marc_t  mt,
char *  tag_value,
char *  indicators 
)

adds datafield to MARC structure using xml Nodes

Parameters:
mt handle
tag_value string value (pointer copied verbatim, not strdupped)
indicators indicator string ; pointer copied verbatim; not strdupped

Definition at line 295 of file marcdisp.c.

References yaz_marc_node::datafield, yaz_marc_datafield::indicator, yaz_marc_t_::subfield_pp, yaz_marc_datafield::subfields, yaz_marc_datafield::tag, yaz_marc_node::u, yaz_marc_node::which, yaz_marc_add_node(), and YAZ_MARC_DATAFIELD.

Referenced by yaz_marc_read_turbo_xml_fields().

void yaz_marc_add_subfield ( yaz_marc_t  mt,
const char *  code_data,
size_t  code_data_len 
)

adds subfield to MARC structure

Parameters:
mt handle
code_data code data buffer
code_data_len length of code data

Definition at line 314 of file marcdisp.c.

References yaz_marc_subfield::code_data, yaz_marc_t_::debug, yaz_marc_subfield::next, yaz_marc_t_::nmem, nmem_malloc(), nmem_strdupn(), yaz_marc_t_::subfield_pp, and yaz_marc_add_comment().

Referenced by yaz_marc_read_iso2709(), yaz_marc_read_line(), yaz_marc_read_turbo_xml_subfields(), and yaz_marc_read_xml_subfields().

void yaz_marc_cprintf ( yaz_marc_t  mt,
const char *  fmt,
  ... 
)
yaz_marc_t yaz_marc_create ( void   ) 
void yaz_marc_debug ( yaz_marc_t  mt,
int  level 
)

set debug level

Parameters:
mt handle
level level, where 0=lowest, 1 more debug, 2 even more

Definition at line 1248 of file marcdisp.c.

References yaz_marc_t_::debug.

int yaz_marc_decode_buf ( yaz_marc_t  mt,
const char *  buf,
int  bsize,
const char **  result,
size_t *  rsize 
)

decodes ISO2709 buffer using straight buffers

Parameters:
mt marc handle
buf input buffer
bsize size of buffer or (-1 if "any size")
result result to be stored here
rsize size of result (memory "owned" by yaz_marc_mt handle)

Decodes MARC in buf of size bsize. On success, result in *result with size *rsize. Returns -1 on error, or size of input record (>0) if OK

Definition at line 1229 of file marcdisp.c.

References yaz_marc_t_::m_wr, wrbuf_cstr(), wrbuf_len, wrbuf_rewind(), and yaz_marc_decode_wrbuf().

Referenced by dummy_xml_record().

int yaz_marc_decode_formatstr ( const char *  arg  ) 

Converts MARC format type to format type(YAZ_MARC_..).

Parameters:
arg string
Return values:
-1 unknown format (bad arg)
>= 0 OK (one of YAZ_MARC - values)

Definition at line 1334 of file marcdisp.c.

References YAZ_MARC_ISO2709, YAZ_MARC_LINE, YAZ_MARC_MARCXML, YAZ_MARC_TURBOMARC, and YAZ_MARC_XCHANGE.

int yaz_marc_decode_wrbuf ( yaz_marc_t  mt,
const char *  buf,
int  bsize,
WRBUF  wrbuf 
)

decodes ISO2709/MARC buffer and stores result in WRBUF

Parameters:
mt handle
buf input buffer
bsize size of buffer (-1 if "any size")
wrbuf WRBUF for output

Decodes MARC in buf of size bsize. On success, result in wrbuf Returns -1 on error, or size of input record (>0) if OK

Definition at line 1218 of file marcdisp.c.

References yaz_marc_read_iso2709(), and yaz_marc_write_mode().

Referenced by return_marc_record(), yaz_marc_decode_buf(), and yaz_opac_decode_wrbuf().

void yaz_marc_destroy ( yaz_marc_t  mt  ) 
void yaz_marc_enable_collection ( yaz_marc_t  mt  ) 

enables record collection output

Parameters:
mt handle

Definition at line 585 of file marcdisp.c.

References collection_first, and yaz_marc_t_::enable_collection.

void yaz_marc_endline_str ( yaz_marc_t  mt,
const char *  s 
)

Definition at line 420 of file marcdisp.c.

References yaz_marc_t_::endline_str.

int yaz_marc_get_debug ( yaz_marc_t  mt  ) 

gets debug level for MARC system

Parameters:
mt handle

Definition at line 200 of file marcdisp.c.

References yaz_marc_t_::debug.

Referenced by yaz_marc_read_iso2709().

yaz_iconv_t yaz_marc_get_iconv ( yaz_marc_t  mt  ) 

supply iconv handle for character set conversion

Definition at line 1259 of file marcdisp.c.

References yaz_marc_t_::iconv_cd.

Referenced by yaz_opac_decode_wrbuf().

NMEM yaz_marc_get_nmem ( yaz_marc_t  mt  ) 

returns memory for MARC handle

Parameters:
mt handle
Return values:
NMEM handle for MARC system

Definition at line 131 of file marcdisp.c.

References yaz_marc_t_::nmem.

Referenced by yaz_marc_read_turbo_xml_fields(), yaz_marc_read_turbo_xml_subfields(), and yaz_marc_read_xml_subfields().

void yaz_marc_iconv ( yaz_marc_t  mt,
yaz_iconv_t  cd 
)

set iconv handle for character set conversion

Definition at line 1254 of file marcdisp.c.

References yaz_marc_t_::iconv_cd.

Referenced by return_marc_record(), return_opac_record(), yaz_record_conv_opac_record(), and yaz_record_conv_record_rule().

int yaz_marc_leader_spec ( yaz_marc_t  mt,
const char *  leader_spec 
)

sets leader spec (for modifying bytes in 24 byte leader)

Parameters:
mt handle
leader_spec 
Return values:
0 OK
-1 ERROR

Spec takes form pos=val,pos=val,... where value is either a number (decimal char value) or a string in 'a', e.g. 9='a'

Definition at line 1277 of file marcdisp.c.

References yaz_marc_t_::leader_spec, marc_exec_leader(), xfree, and xstrdup.

void yaz_marc_modify_leader ( yaz_marc_t  mt,
size_t  off,
const char *  str 
)
int yaz_marc_read_iso2709 ( yaz_marc_t  mt,
const char *  buf,
int  bsize 
)

read ISO2709/MARC record from buffer

Parameters:
mt handle
buf ISO2709 buffer of size bsize
bsize size of buffer (-1 for unlimited size)

Parses ISO2709 record from supplied buffer

Return values:
-1 ERROR
>0 OK (length)

Definition at line 26 of file marc_read_iso2709.c.

References atoi_n(), ISO2709_FS, ISO2709_IDFS, ISO2709_RS, wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), wrbuf_puts(), wrbuf_write_escaped(), yaz_marc_add_controlfield(), yaz_marc_add_datafield(), yaz_marc_add_subfield(), yaz_marc_cprintf(), yaz_marc_get_debug(), yaz_marc_reset(), and yaz_marc_set_leader().

Referenced by yaz_marc_decode_wrbuf(), and yaz_record_conv_record_rule().

int yaz_marc_read_line ( yaz_marc_t  mt,
int(*)(void *client_data)  getbyte,
void(*)(int b, void *client_data)  ungetbyte,
void *  client_data 
)

read MARC lineformat from stream

Parameters:
mt handle
getbyte get one byte handler
ungetbyte unget one byte handler
client_data opaque data for handers
Return values:
-1 ERROR
>0 OK (length)

Parses MARC line record from stream Returns > 0 for OK (same as length), -1=ERROR

Definition at line 96 of file marc_read_line.c.

References atoi_n_check(), wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), yaz_marc_add_controlfield(), yaz_marc_add_datafield(), yaz_marc_add_subfield(), yaz_marc_cprintf(), yaz_marc_line_gets(), yaz_marc_reset(), and yaz_marc_set_leader().

int yaz_marc_read_xml ( yaz_marc_t  mt,
const xmlNode *  ptr 
)

parses MARCXML/MarcXchange/TurboMARC record from xmlNode pointer

Parameters:
mt handle
ptr is a pointer to root xml node
Return values:
0 OK
-1 ERROR

Definition at line 365 of file marc_read_xml.c.

References yaz_marc_cprintf(), YAZ_MARC_MARCXML, yaz_marc_read_turbo_xml_fields(), yaz_marc_read_xml_fields(), yaz_marc_read_xml_leader(), yaz_marc_reset(), and YAZ_MARC_TURBOMARC.

Referenced by yaz_record_conv_record_rule().

void yaz_marc_reset ( yaz_marc_t  mt  ) 

clears memory and MARC record

Parameters:
mt handle

Definition at line 450 of file marcdisp.c.

References yaz_marc_t_::nmem, nmem_reset(), yaz_marc_t_::nodes, yaz_marc_t_::nodes_pp, and yaz_marc_t_::subfield_pp.

Referenced by yaz_marc_create(), yaz_marc_read_iso2709(), yaz_marc_read_line(), and yaz_marc_read_xml().

void yaz_marc_set_leader ( yaz_marc_t  mt,
const char *  leader,
int *  indicator_length,
int *  identifier_length,
int *  base_address,
int *  length_data_entry,
int *  length_starting,
int *  length_implementation 
)

sets leader, validates it, and returns important values

Parameters:
mt handle
leader of the 24 byte leader to be set
indicator_length indicator length (returned value)
identifier_length identifier length (returned value)
base_address base address (returned value)
length_data_entry length of data entry (returned value)
length_starting length of starting
length_implementation length of implementation defined data

Definition at line 342 of file marcdisp.c.

References atoi_n_check(), yaz_marc_t_::debug, yaz_marc_add_leader(), and yaz_marc_cprintf().

Referenced by yaz_marc_read_iso2709(), yaz_marc_read_line(), and yaz_marc_read_xml_leader().

void yaz_marc_subfield_str ( yaz_marc_t  mt,
const char *  s 
)

Definition at line 414 of file marcdisp.c.

References yaz_marc_t_::subfield_str.

int yaz_marc_write_iso2709 ( yaz_marc_t  mt,
WRBUF  wrbuf 
)
int yaz_marc_write_line ( yaz_marc_t  mt,
WRBUF  wrbuf 
)
int yaz_marc_write_marcxchange ( yaz_marc_t  mt,
WRBUF  wrbuf,
const char *  format,
const char *  type 
)

writes record in MarcXchange XML (ISO25577)

Parameters:
mt handle
wrbuf WRBUF for output
format record format (e.g. "MARC21")
type record type (e.g. Bibliographic)
Return values:
0 OK
-1 ERROR

Definition at line 831 of file marcdisp.c.

References yaz_marc_write_marcxml_ns().

Referenced by yaz_marc_write_mode().

int yaz_marc_write_marcxml ( yaz_marc_t  mt,
WRBUF  wrbuf 
)

writes record in MARCXML format

Parameters:
mt handle
wrbuf WRBUF for output
Return values:
0 OK
-1 ERROR

Sets leader[9]='a' .

Definition at line 810 of file marcdisp.c.

References yaz_marc_t_::leader_spec, yaz_marc_modify_leader(), and yaz_marc_write_marcxml_ns().

Referenced by yaz_marc_write_mode().

int yaz_marc_write_mode ( yaz_marc_t  mt,
WRBUF  wrbuf 
)

writes record in mode - given by yaz_marc_xml mode

Parameters:
mt handle
wrbuf WRBUF for output
Return values:
0 OK
-1 ERROR

This function calls yaz_marc_write_iso2709, yaz_marc_write_marcxml, etc.. depending on mode given by yaz_marc_xml.

Definition at line 590 of file marcdisp.c.

References yaz_marc_t_::output_format, YAZ_MARC_CHECK, YAZ_MARC_ISO2709, YAZ_MARC_LINE, YAZ_MARC_MARCXML, YAZ_MARC_TURBOMARC, yaz_marc_write_check(), yaz_marc_write_iso2709(), yaz_marc_write_line(), yaz_marc_write_marcxchange(), yaz_marc_write_marcxml(), yaz_marc_write_turbomarc(), and YAZ_MARC_XCHANGE.

Referenced by yaz_marc_decode_wrbuf(), and yaz_record_conv_record_rule().

int yaz_marc_write_trailer ( yaz_marc_t  mt,
WRBUF  wr 
)

flushes records

Parameters:
mt handle
wr WRBUF for output
Return values:
0 OK
-1 ERROR

Definition at line 567 of file marcdisp.c.

References collection_second, yaz_marc_t_::enable_collection, yaz_marc_t_::output_format, wrbuf_printf(), YAZ_MARC_MARCXML, YAZ_MARC_TURBOMARC, and YAZ_MARC_XCHANGE.

int yaz_marc_write_turbomarc ( yaz_marc_t  mt,
WRBUF  wrbuf 
)

writes record in TurboMARC format

Parameters:
mt handle
wrbuf WRBUF for output
Return values:
0 OK
-1 ERROR

Definition at line 821 of file marcdisp.c.

References yaz_marc_t_::leader_spec, yaz_marc_modify_leader(), and yaz_marc_write_marcxml_ns().

Referenced by yaz_marc_write_mode().

void yaz_marc_write_using_libxml2 ( yaz_marc_t  mt,
int  enable 
)

Enables or disables writing of MARC XML records using Libxml2.

Parameters:
mt handle
enable 0=disable, 1=enable

Definition at line 1350 of file marcdisp.c.

References yaz_marc_t_::write_using_libxml2.

int yaz_marc_write_xml ( yaz_marc_t  mt,
xmlNode **  root_ptr,
const char *  ns,
const char *  format,
const char *  type 
)

writes MARC record as libxml2 tree

Parameters:
mt handle
root_ptr pointer to record node
ns namespace of record (such as "http://www.loc.gov/MARC21/slim")
format MarcXchange format (NULL for none)
type MarcXchange format (NULL for none)
Return values:
0 Creation successful and *root_ptr is "record" node
-1 ERROR

Definition at line 977 of file marcdisp.c.

References atoi_n_check(), yaz_marc_subfield::code_data, yaz_marc_node::comment, yaz_marc_node::controlfield, yaz_marc_controlfield::data, yaz_marc_node::datafield, get_subfield_len(), yaz_marc_t_::iconv_cd, yaz_marc_datafield::indicator, yaz_marc_node::leader, marc_iconv_reset(), yaz_marc_subfield::next, yaz_marc_node::next, yaz_marc_t_::nodes, yaz_marc_datafield::subfields, yaz_marc_controlfield::tag, yaz_marc_datafield::tag, yaz_marc_node::u, yaz_marc_node::which, wrbuf_alloc(), wrbuf_cstr(), wrbuf_destroy(), wrbuf_iconv_puts(), wrbuf_iconv_write(), wrbuf_rewind(), YAZ_MARC_COMMENT, YAZ_MARC_CONTROLFIELD, YAZ_MARC_DATAFIELD, and YAZ_MARC_LEADER.

Referenced by yaz_marc_write_marcxml_ns().

void yaz_marc_xml ( yaz_marc_t  mt,
int  xmlmode 
)

set XML mode YAZ_MARC_LINE, YAZ_MARCXML, YAZ_MARC_ISO2709 ..

Parameters:
mt MARC handle
xmlmode mode.

This function ONLY affects yaz_marc_write_mode, yaz_marc_write_trailer.

Definition at line 1243 of file marcdisp.c.

References yaz_marc_t_::output_format.

Referenced by dummy_xml_record(), return_marc_record(), return_opac_record(), yaz_record_conv_opac_record(), and yaz_record_conv_record_rule().

void yaz_opac_decode_wrbuf ( yaz_marc_t  mt,
Z_OPACRecord r,
WRBUF  wrbuf 
)

Performs "pretty" display of OPAC record to WRBUF using marc_t.

Parameters:
mt handle
r OPAC record
wrbuf WRBUF for resulting display string \

Definition at line 52 of file opacdisp.c.

References Z_CircRecord::availableNow, Z_CircRecord::availableThru, Z_CircRecord::availablityDate, Z_OPACRecord::bibliographicRecord, odr_oct::buf, Z_HoldingsAndCircData::callNumber, Z_Volume::chronology, Z_HoldingsAndCircData::circulationData, Z_HoldingsAndCircData::completeness, Z_HoldingsAndCircData::copyNumber, Z_HoldingsAndCircData::dateOfReport, Z_HoldingsAndCircData::encodingLevel, Z_CircRecord::enumAndChron, Z_Volume::enumAndChron, Z_HoldingsAndCircData::enumAndChron, Z_Volume::enumeration, Z_HoldingsAndCircData::format, Z_HoldingsAndCircData::generalRetention, Z_HoldingsRecord::holdingsAndCirc, Z_OPACRecord::holdingsData, Z_CircRecord::itemId, odr_oct::len, Z_HoldingsAndCircData::localLocation, Z_HoldingsRecord::marcHoldingsRecord, Z_CircRecord::midspine, Z_HoldingsAndCircData::nucCode, Z_HoldingsAndCircData::num_circulationData, Z_OPACRecord::num_holdingsData, Z_HoldingsAndCircData::num_volumes, Z_External::octet_aligned, Z_CircRecord::onHold, opac_element_bool(), opac_element_str(), Z_HoldingsAndCircData::publicNote, Z_HoldingsAndCircData::receiptAcqStatus, Z_CircRecord::renewable, Z_HoldingsAndCircData::reproductionNote, Z_CircRecord::restrictions, Z_HoldingsAndCircData::shelvingData, Z_HoldingsAndCircData::shelvingLocation, Z_CircRecord::temporaryLocation, Z_HoldingsAndCircData::termsUseRepro, Z_HoldingsAndCircData::typeOfRecord, Z_HoldingsRecord::u, Z_External::u, Z_HoldingsAndCircData::volumes, Z_HoldingsRecord::which, Z_External::which, wrbuf_puts(), yaz_marc_decode_wrbuf(), yaz_marc_get_iconv(), Z_External_octet, Z_HoldingsRecord_holdingsAndCirc, and Z_HoldingsRecord_marcHoldingsRecord.

Referenced by return_opac_record(), and yaz_record_conv_opac_record().

Generated on Tue Aug 17 13:13:20 2010 for YAZ by  doxygen 1.6.3