+ else if (!strcmp(method->name, "explainRequest"))
+ {
+ Z_SRW_PDU **p = handler_data;
+ Z_SRW_explainRequest *req;
+
+ *p = odr_malloc(o, sizeof(**p));
+ (*p)->which = Z_SRW_explain_request;
+ req = (*p)->u.explain_request = odr_malloc(o, sizeof(*req));
+ req->dummy = 0;
+ }
+ else if (!strcmp(method->name, "explainResponse"))
+ {
+ Z_SRW_PDU **p = handler_data;
+ Z_SRW_explainResponse *res;
+ xmlNodePtr ptr = method->children;
+
+ *p = odr_malloc(o, sizeof(**p));
+ (*p)->which = Z_SRW_explain_response;
+ res = (*p)->u.explain_response = odr_malloc(o, sizeof(*res));
+ res->explainData_buf = 0;
+ res->explainData_len = 0;
+ res->explainPacking = Z_SRW_recordPacking_string;
+ for (; ptr; ptr = ptr->next)
+ {
+ match_xsd_string_n(ptr, "Explain", o,
+ &res->explainData_buf,
+ &res->explainData_len);
+ }
+ }