28 while (*ptr && (*ptr)->type != XML_ELEMENT_NODE)
29 (*ptr) = (*ptr)->next;
42 while (*ptr && (*ptr)->type != XML_ELEMENT_NODE)
43 (*ptr) = (*ptr)->next;
47 struct _xmlAttr *attr = (*ptr)->properties;
50 for (; attr; attr = attr->next)
52 if (!strcmp((
const char *) attr->name,
"value"))
54 if (attr->children->type == XML_TEXT_NODE)
56 if (attr->children->content[0] ==
'0')
58 else if (attr->children->content[0] ==
'1')
104 for (i = 0; ptr; i++)
106 while (ptr && ptr->type != XML_ELEMENT_NODE)
117 for (i = 0; ptr; i++)
119 while (ptr && ptr->type != XML_ELEMENT_NODE)
125 volume(ptr->children, (*volp) + i, nmem);
135 match_v_next(&ptr,
"availableNow", nmem, &(*circp)->availableNow);
138 &(*circp)->availablityDate);
142 match_v_next(&ptr,
"renewable", nmem, &(*circp)->renewable);
147 &(*circp)->temporaryLocation);
157 for (i = 0; ptr; i++)
159 while (ptr && ptr->type != XML_ELEMENT_NODE)
170 for (i = 0; ptr; i++)
172 while (ptr && ptr->type != XML_ELEMENT_NODE)
214 while (ptr && ptr->type != XML_ELEMENT_NODE)
224 while (ptr && ptr->type != XML_ELEMENT_NODE)
250 while (ptr && ptr->type != XML_ELEMENT_NODE)
262 while (ptr && ptr->type != XML_ELEMENT_NODE)
270 for (i = 0; ptr; i++)
272 while (ptr && ptr->type != XML_ELEMENT_NODE)
284 for (i = 0; ptr; i++)
286 while (ptr && ptr->type != XML_ELEMENT_NODE)
303 xmlDocPtr doc = xmlParseMemory(buf_in, size_in);
int yaz_marc_read_xml(yaz_marc_t mt, const xmlNode *ptr)
parses MARCXML/MarcXchange/TurboMARC record from xmlNode pointer
int yaz_marc_write_iso2709(yaz_marc_t mt, WRBUF wr)
writes record in ISO2709 format
void yaz_marc_iconv(yaz_marc_t mt, yaz_iconv_t cd)
set iconv handle for character set conversion
NMEM yaz_marc_get_nmem(yaz_marc_t mt)
returns memory for MARC handle
void * nmem_malloc(NMEM n, size_t size)
allocates memory block on NMEM handle
nmem_bool_t * nmem_booldup(NMEM mem, nmem_bool_t v)
allocates and sets boolean for NMEM
const Odr_oid yaz_oid_recsyn_usmarc[]
Header for Z39.50 Protocol.
Z_External * z_ext_record_oid_nmem(NMEM nmem, const Odr_oid *oid, const char *buf, int len)
encodes EXTERNAL record based on OID (NULL if not known)
int yaz_match_xsd_element(xmlNodePtr ptr, const char *elem)
int yaz_match_xsd_string_n_nmem(xmlNodePtr ptr, const char *elem, NMEM nmem, char **val, int *len)
structure for all known EXTERNALs
Z_InternationalString * completeness
Z_InternationalString * format
Z_InternationalString * generalRetention
Z_InternationalString * nucCode
Z_InternationalString * termsUseRepro
Z_InternationalString * copyNumber
Z_InternationalString * encodingLevel
Z_CircRecord ** circulationData
Z_InternationalString * dateOfReport
Z_InternationalString * callNumber
Z_InternationalString * typeOfRecord
Z_InternationalString * localLocation
Z_InternationalString * shelvingLocation
Z_InternationalString * receiptAcqStatus
Z_InternationalString * shelvingData
Z_InternationalString * publicNote
Z_InternationalString * reproductionNote
Z_InternationalString * enumAndChron
Z_HoldingsRecord ** holdingsData
Z_External * bibliographicRecord
the internals of a yaz_marc_t handle
void wrbuf_destroy(WRBUF b)
destroy WRBUF and its buffer
WRBUF wrbuf_alloc(void)
construct WRBUF
Header for WRBUF (growing buffer)
static int match_element_next(xmlNode **ptr, const char *elem, NMEM nmem, char **val)
static int holdingsRecord(xmlNode *ptr, Z_HoldingsRecord **r, NMEM nmem)
static int circulation(xmlNode *ptr, Z_CircRecord **circp, NMEM nmem)
static int yaz_xml_to_opac_ptr(yaz_marc_t mt, xmlNode *ptr, Z_OPACRecord **dst, NMEM nmem, const Odr_oid *syntax)
static int match_v_next(xmlNode **ptr, const char *elem, NMEM nmem, Odr_bool **val)
static int volumes(xmlNode *ptr, Z_Volume ***volp, int *num, NMEM nmem)
static int volume(xmlNode *ptr, Z_Volume **volp, NMEM nmem)
static int circulations(xmlNode *ptr, Z_CircRecord ***circp, int *num, NMEM nmem)
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)
Converts XML to OPAC.
static int bibliographicRecord(yaz_marc_t mt, xmlNode *ptr, Z_External **ext, NMEM nmem, const Odr_oid *syntax)
#define Z_HoldingsRecord_holdingsAndCirc