+ int i;
+
+ for (i = 0; i<len; i++)
+ if (!strchr ("\n\n ", s[i]))
+ break;
+ if (i != len)
+ {
+ ui->d1_stack[ui->level] = data1_mk_text_n (ui->dh, ui->nmem, s, len,
+ ui->d1_stack[ui->level -1]);
+ }
+}
+
+static void cb_decl (void *user, const char *version, const char*encoding,
+ int standalone)
+{
+ struct user_info *ui = (struct user_info*) user;
+ const char *attr_list[7];
+
+ attr_list[0] = "version";
+ attr_list[1] = version;
+
+ attr_list[2] = "encoding";
+ attr_list[3] = encoding;
+
+ attr_list[4] = "standalone";
+ attr_list[5] = standalone ? "yes" : "no";
+
+ attr_list[6] = 0;
+
+ data1_mk_preprocess (ui->dh, ui->nmem, "xml", attr_list,
+ ui->d1_stack[ui->level-1]);
+ yaz_log (LOG_DEBUG, "decl version=%s encoding=%s",
+ version ? version : "null",
+ encoding ? encoding : "null");
+}
+
+static void cb_processing (void *user, const char *target,
+ const char *data)
+{
+ struct user_info *ui = (struct user_info*) user;
+ data1_node *res =
+ data1_mk_preprocess (ui->dh, ui->nmem, target, 0,
+ ui->d1_stack[ui->level-1]);
+ data1_mk_text_nf (ui->dh, ui->nmem, data, strlen(data), res);
+
+ yaz_log (LOG_DEBUG, "decl processing target=%s data=%s",
+ target ? target : "null",
+ data ? data : "null");
+
+
+}
+
+static void cb_comment (void *user, const char *data)
+{
+ struct user_info *ui = (struct user_info*) user;
+ yaz_log (LOG_DEBUG, "decl comment data=%s", data ? data : "null");
+ data1_mk_comment (ui->dh, ui->nmem, data, ui->d1_stack[ui->level-1]);
+}
+
+static void cb_doctype_start (void *userData, const char *doctypeName,
+ const char *sysid, const char *pubid,
+ int has_internal_subset)
+{
+ yaz_log (LOG_DEBUG, "doctype start doctype=%s sysid=%s pubid=%s",
+ doctypeName, sysid, pubid);
+}
+
+static void cb_doctype_end (void *userData)
+{
+ yaz_log (LOG_DEBUG, "doctype end");
+}
+
+
+static void cb_entity_decl (void *userData, const char *entityName,
+ int is_parameter_entity,
+ const char *value, int value_length,
+ const char *base, const char *systemId,
+ const char *publicId, const char *notationName)
+{
+ yaz_log (LOG_DEBUG,
+ "entity %s is_para_entry=%d value=%.*s base=%s systemId=%s"
+ " publicId=%s notationName=%s",
+ entityName, is_parameter_entity, value_length, value,
+ base, systemId, publicId, notationName);
+