+ $tag_data{subfield_loop} = \@hiddensubfields_data;
+ $tag_data{fixedfield} = 1;
+ push (@loop_data, \%tag_data);
+ $i++;
+ }
+ if ($#subfields_data >= 0) {
+ my %tag_data;
+ $tag_data{tag} = $tag;
+ $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
+ $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
+ $tag_data{subfield_loop} = \@subfields_data;
+ $tag_data{fixedfield} = 1;
+ push (@loop_data, \%tag_data);
+ }
+ $id++;
+ }## tag matches
+ }# each control
+ }
+ }##tag >9
+
+
+ ##### Any remaining tag
+ my @subfields_data;
+ # now, loop again to add parameter subfield that are not in the MARC::Record
+ foreach my $subfield (sort( keys %{$tagslib->{$tag}})) {
+ next if ($tagdefined{$tag} );
+ next if (length $subfield !=1);
+ next if ($tagslib->{$tag}->{$subfield}->{tab} ne $tabloop);
+ next if ((substr($tagslib->{$tag}->{$subfield}->{hidden},2,1) gt "1") ); #check for visibility flag
+
+ push(@subfields_data, &create_input($tag,$subfield,'',$i,$tabloop,$xmlhash,$authorised_values_sth,$id));
+ $tagdefined{$tag.$subfield}=1;
+ $i++;
+ }
+ if ($#subfields_data >= 0) {
+ my %tag_data;
+ $tag_data{tag} = $tag;
+ $tag_data{tag_lib} = $tagslib->{$tag}->{lib};
+ $tag_data{repeatable} = $tagslib->{$tag}->{repeatable};
+ $tag_data{indicator} = $ind1.$ind2 if ($tag>=10);