+ if (!preferredRecordSyntax)
+ preferredRecordSyntax = odr_oiddup(odr, yaz_oid_recsyn_usmarc);
+
+ if (preferredRecordSyntax)
+ {
+ if (!oid_oidcmp(preferredRecordSyntax, yaz_oid_recsyn_xml))
+ ;
+ else if (!oid_oidcmp(preferredRecordSyntax, yaz_oid_recsyn_usmarc))
+ ;
+ else
+ {
+ error_code = YAZ_BIB1_RECORD_SYNTAX_UNSUPP;
+ return 0;
+ }
+ }
+
+ // no element set, "B" and "F" are supported
+ if (esn)
+ {
+ if (esn->which != Z_ElementSetNames_generic)
+ {
+ error_code
+ = YAZ_BIB1_SPECIFIED_ELEMENT_SET_NAME_NOT_VALID_FOR_SPECIFIED_;
+ return 0;
+ }
+ element_set_name = esn->u.generic;
+ }
+ if (!strcmp(element_set_name, "B")
+ && !oid_oidcmp(preferredRecordSyntax, yaz_oid_recsyn_usmarc))
+ ; // Brief
+ else if (!strcmp(element_set_name, "F")
+ && !oid_oidcmp(preferredRecordSyntax, yaz_oid_recsyn_usmarc))
+ ; // Full
+ else if (!strncmp(element_set_name, "FF", 2)
+ && !oid_oidcmp(preferredRecordSyntax, yaz_oid_recsyn_xml))
+ ; // Huge XML test record