+
+ILL_Client_Id *ill_get_Client_Id (
+ struct ill_get_ctl *gc, const char *name, const char *sub)
+{
+ char element[128];
+ ODR o = gc->odr;
+ ILL_Client_Id *r = (ILL_Client_Id *) odr_malloc(o, sizeof(*r));
+
+ strcpy(element, name);
+ if (sub)
+ {
+ strcat (element, ",");
+ strcat (element, sub);
+ }
+ r->client_name = ill_get_ILL_String (gc, element, "client-name");
+ r->client_status = ill_get_ILL_String (gc, element, "client-status");
+ r->client_identifier = ill_get_ILL_String (gc, element,
+ "client-identifier");
+ return r;
+}
+
+ILL_Postal_Address *ill_get_Postal_Address (
+ struct ill_get_ctl *gc, const char *name, const char *sub)
+{
+ ODR o = gc->odr;
+ ILL_Postal_Address *r =
+ (ILL_Postal_Address *) odr_malloc(o, sizeof(*r));
+ char element[128];
+
+ strcpy(element, name);
+ if (sub)
+ {
+ strcat (element, ",");
+ strcat (element, sub);
+ }
+ r->name_of_person_or_institution =
+ ill_get_Name_Of_Person_Or_Institution (
+ gc, element, "name-of-person-or-institution");
+ r->extended_postal_delivery_address =
+ ill_get_ILL_String (
+ gc, element, "extended-postal-delivery-address");
+ r->street_and_number =
+ ill_get_ILL_String (gc, element, "street-and-number");
+ r->post_office_box =
+ ill_get_ILL_String (gc, element, "post-office-box");
+ r->city = ill_get_ILL_String (gc, element, "city");
+ r->region = ill_get_ILL_String (gc, element, "region");
+ r->country = ill_get_ILL_String (gc, element, "country");
+ r->postal_code = ill_get_ILL_String (gc, element, "postal-code");
+ return r;
+}
+
+ILL_System_Address *ill_get_System_Address (
+ struct ill_get_ctl *gc, const char *name, const char *sub)
+{
+ ODR o = gc->odr;
+ ILL_System_Address *r =
+ (ILL_System_Address *) odr_malloc(o, sizeof(*r));
+ char element[128];
+
+ strcpy(element, name);
+ if (sub)
+ {
+ strcat (element, ",");
+ strcat (element, sub);
+ }
+ r->telecom_service_identifier =
+ ill_get_ILL_String (gc, element, "telecom-service-identifier");
+ r->telecom_service_address =
+ ill_get_ILL_String (gc, element, "telecom-service-addreess");
+ return r;
+}
+
+ILL_Delivery_Address *ill_get_Delivery_Address (
+ struct ill_get_ctl *gc, const char *name, const char *sub)
+{
+ ODR o = gc->odr;
+ ILL_Delivery_Address *r =
+ (ILL_Delivery_Address *) odr_malloc(o, sizeof(*r));
+ char element[128];
+
+ strcpy(element, name);
+ if (sub)
+ {
+ strcat (element, ",");
+ strcat (element, sub);
+ }
+ r->postal_address =
+ ill_get_Postal_Address (gc, element, "postal-address");
+ r->electronic_address =
+ ill_get_System_Address (gc, element, "electronic-address");
+ return r;
+}
+
+ILL_Search_Type *ill_get_Search_Type (
+ struct ill_get_ctl *gc, const char *name, const char *sub)
+{
+ ODR o = gc->odr;
+ ILL_Search_Type *r = (ILL_Search_Type *) odr_malloc(o, sizeof(*r));
+ char element[128];
+
+ strcpy(element, name);
+ if (sub)
+ {
+ strcat (element, ",");
+ strcat (element, sub);
+ }
+ r->level_of_service = ill_get_ILL_String (gc, element, "level-of-service");
+ r->need_before_date = ill_get_ILL_ISO_Date (gc, element,
+ "need-before-date", 0);
+ r->expiry_date = ill_get_ILL_ISO_Date (gc, element, "expiry-date", 0);
+ r->expiry_flag = ill_get_enumerated (gc, element, "expiry-flag", 3);
+
+ return r;
+}
+