+static void encode_echoed_args(xmlNodePtr ptr, Z_SRW_PDU *p, const char *name)
+{
+ Z_SRW_extra_arg *ea = p->extra_args;
+ if (ea)
+ {
+ xmlNode *p1 = xmlNewChild(ptr, 0, BAD_CAST name, 0);
+ xmlNode *p2 = 0;
+ for (; ea; ea = ea->next)
+ {
+ if (ea->name && ea->name[0] == 'x' && ea->name[1] == '-')
+ {
+ /* not really according to XSD as of July 2014 */
+ if (!p2)
+ p2 = xmlNewChild(p1, 0,
+ BAD_CAST "extraRequestData", 0);
+ /* skip +2: "x-" in element */
+ add_xsd_string(p2, ea->name + 2, ea->value);
+ }
+ else
+ add_xsd_string(p1, ea->name, ea->value);
+ }
+ }
+}
+