00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <string.h>
00013 #include <stdlib.h>
00014 #include <stdio.h>
00015 #include <stdarg.h>
00016 #include "sasa_c_f90.h"
00017 #include "sasa_c_xml.h"
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069 #define XPATH_STR_LEN_MAX (1023)
00070
00071 #define PSMILE_UNDEF (-280177)
00072
00073
00074 typedef enum
00075 {
00076 XPATH_START_INVALID = -1,
00077
00078 XPATH_START_FIRST,
00079 XPATH_START_CHILD_OF_ROOT_NODE = XPATH_START_FIRST,
00080 XPATH_START_DESCENDANT_OF_ROOT_NODE,
00081 XPATH_START_CHILD_OF_CURRENT_NODE,
00082 XPATH_START_LAST = XPATH_START_CHILD_OF_CURRENT_NODE,
00083
00084 XPATH_START_COUNT
00085
00086 } XPathStartType;
00087
00088
00089
00090 typedef enum
00091 {
00092 XPATH_NODE_TYPE_INVALID = -1,
00093
00094 XPATH_NODE_TYPE_FIRST,
00095 XPATH_NODE_TYPE_ELEMENT = XPATH_NODE_TYPE_FIRST,
00096 XPATH_NODE_TYPE_ATTRIBUTE,
00097 XPATH_NODE_TYPE_LAST = XPATH_NODE_TYPE_ATTRIBUTE,
00098
00099 XPATH_NODE_TYPE_COUNT
00100
00101 } XPathNodeType;
00102
00103
00104
00105
00106
00107 static int sasa_c_get_number( int *, int, size_t, ... );
00108 static int sasa_c_get_attribute( char *, int *, int, size_t, ... );
00109 static int sasa_c_get_element_c( char *, int *, int, size_t, ... );
00110 static int sasa_c_get_element_i( int *, int, size_t, ... );
00111 static int sasa_c_get_element_d( double *, int, size_t, ... );
00112 static int sasa_c_build_xpath_str( char *, XPathStartType, XPathNodeType,
00113 size_t, va_list );
00114
00115
00116
00117
00118 int
00119 __sasa_c_convert_char2int (char *charcode, int len_charcode)
00120 {
00121 struct pair
00122 {
00123 char *keyword;
00124 int code;
00125 };
00126 struct pair *p_pair;
00127 int nb_pairs;
00128 int result;
00129
00130 size_t len = len_charcode;
00131
00132 #ifdef DEBUG
00133 (void)printf("sasa_c_convert_char2int : charcode: %s\n", charcode);
00134 (void)printf("sasa_c_convert_char2int : len_charcode: %d\n", len);
00135 #endif
00136
00137 result = -280177;
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263 switch (len)
00264 {
00265 case 2:
00266 {
00267 static struct pair tab2[] = { {"up", 1}, {"on", 1} };
00268 p_pair = tab2;
00269 nb_pairs = 2;
00270 break;
00271 }
00272 case 3:
00273 {
00274 static struct pair tab3[] = {
00275 {"bar", 3001}, {"hPa", 3006}, {"max", 3531}, {"min", 3532}, {"raw", 3686}, {"log", 3682}, {"off", 0}
00276 };
00277 p_pair = tab3;
00278 nb_pairs = 7;
00279 break;
00280 }
00281 case 4:
00282 {
00283 static struct pair tab4[] = {
00284 {"true", 1}, {"mean", 3530}, {"file", 3810}, {"tmin", 3602}, {"tmax", 3603}, {"down", 2}, {"none", -1},
00285 };
00286 p_pair = tab4;
00287 nb_pairs = 7;
00288 break;
00289 }
00290 break;
00291 case 5:
00292 {
00293 static struct pair tab5[] = {
00294 {"first", 1}, {"third", 3}, {"spawn", 2}, {"false", 0}, {"sinus", 3680}, {"local", 3710},
00295 };
00296
00297 p_pair = tab5;
00298 nb_pairs = 6;
00299 break;
00300 }
00301 case 6:
00302 {
00303 static struct pair tab6[] = {
00304 {"second", 2}, {"fourth", 4}, {"meters", 3000}, {"pascal", 3005}, {"single", 3500}, {"vector", 3501},
00305 {"bundle", 3502}, {"median", 3533}, {"smooth", 3685}, {"global", 3711}, {"latlon", 3647},
00306 };
00307 p_pair = tab6;
00308 nb_pairs = 11;
00309 break;
00310 }
00311 case 7:
00312 {
00313 static struct pair tab7[] = {
00314 {"decibar", 3003}, {"average", 3536}, {"wgt_ave", 3537}, {"accumul", 3601}, {"xs:real", 4}, {"cosinus", 3681},
00315 {"precise", 3658}, {"novalue", 3643}, {"sixteen", -280177},
00316 };
00317 p_pair = tab7;
00318 nb_pairs = 9;
00319 break;
00320 }
00321 case 8:
00322 {
00323 static struct pair tab8[] = {
00324 {"millibar", 3002}, {"unitless", 3007}, {"variance", 3534}, {"integral", 3535}, {"taverage", 3600}, {"iosingle", 3825},
00325 {"parallel", 3826}, {"latitude", 3648}, {"gradient", 3660}, {"fracarea", 3665}, {"destarea", 3666},
00326 };
00327 p_pair = tab8;
00328 nb_pairs = 11;
00329 break;
00330 }
00331 case 9:
00332 {
00333 static struct pair tab9[] = {
00334 {"not_spawn", 1}, {"mpp_ascii", 3821}, {"xs:double", 5}, {"xs:string", 1},
00335 };
00336 p_pair = tab9;
00337 nb_pairs = 4;
00338 break;
00339 }
00340 case 10:
00341 {
00342 static struct pair tab10[] = {
00343 {"atmosphere", 3004}, {"mpp_ieee32", 3822}, {"mpp_native", 3823}, {"mpp_netcdf", 3824}, {"xs:integer", 2},
00344 {"tneighbour", 3644}, {"nneighbour", 3645}, {"vneighbour", 3646},
00345 };
00346 p_pair = tab10;
00347 nb_pairs = 8;
00348 break;
00349 }
00350 case 11:
00351 {
00352 static struct pair tab11[] = {
00353 {"subgrid_ave", 3538}, {"time_linear", 3605}, {"distributed", 3827}, {"approximate", 3657},
00354 };
00355 p_pair = tab11;
00356 nb_pairs = 4;
00357 break;
00358 }
00359 case 12:
00360
00361 result = 3008;
00362 nb_pairs = 0;
00363 break;
00364 case 13:
00365
00366 result = 3009;
00367 nb_pairs = 0;
00368 break;
00369 case 14:
00370 {
00371 static struct pair tab14[] = {
00372 {"component_name", 3800}, {"PRISM_gridless", 8}, {"conserv_global", 3675},
00373 };
00374 p_pair = tab14;
00375 nb_pairs = 3;
00376 break;
00377 }
00378 case 15:
00379
00380 result = 3004;
00381 nb_pairs = 0;
00382 break;
00383 case 16:
00384 {
00385 static struct pair tab16[] = {
00386 {"PRISM_reglonlatvrt", 0}, {"PRISM_irrlonlatvrt", 2}, {"xs:negativeInteger", 2}, {"xs:positiveInteger", 2},
00387 };
00388 p_pair = tab16;
00389 nb_pairs = 4;
00390 break;
00391 }
00392 case 17:
00393
00394 result = 2;
00395 nb_pairs = 0;
00396 break;
00397 case 18:
00398
00399 result = 1;
00400 nb_pairs = 0;
00401 break;
00402 case 19:
00403
00404 result = 7;
00405 nb_pairs = 0;
00406 break;
00407 case 20:
00408 {
00409 static struct pair tab20[] = {
00410 {"PRISM_irrlonlat_sigmavrt", 3}, {"PRISM_reglonlat_sigmavrt", 4},
00411 };
00412 p_pair = tab20;
00413 nb_pairs = 2;
00414 break;
00415 }
00416 case 21:
00417
00418 result = 9;
00419 nb_pairs = 0;
00420 break;
00421 case 22:
00422 {
00423 static struct pair tab22[] = {
00424 {"PRISM_unstructlonlat_regvrt", 5}, {"PRISM_gaussreduced_sigmavrt", 10},
00425 };
00426 p_pair = tab22;
00427 nb_pairs = 2;
00428 break;
00429 }
00430 case 23:
00431
00432 result = 6;
00433 nb_pairs = 0;
00434 break;
00435
00436 default:
00437
00438 result = -280177;
00439 nb_pairs = 0;
00440 break;
00441
00442 }
00443
00444
00445
00446
00447 while (nb_pairs -- > 0 && result == -280177)
00448 {
00449
00450 if (strncmp(charcode, p_pair->keyword, len) == 0)
00451 result = p_pair->code;
00452 else
00453
00454 p_pair += 1;
00455 }
00456
00457
00458 if (! (charcode[0] == ' '))
00459 {
00460
00461 if (result == -280177)
00462 {
00463 printf("\n");
00464 printf("sasa_c_convert_char2int : There is no corresponding parameter to char %s\n",charcode);
00465 }
00466 }
00467
00468 #ifdef DEBUG
00469 (void)printf("sasa_c_convert_char2int : result code : %d\n",result);
00470 (void)printf("--------------------------------------------------\n");
00471 #endif
00472
00473 return (result);
00474 }
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523
00524 int sasa_c_read_file (char *xml_file_name,
00525 int *len_file_name,
00526 int len_declared)
00527 {
00528 int doc;
00529
00530
00531 char *file_name;
00532
00533 file_name = (char *) calloc(*len_file_name+1, sizeof(char));
00534 strncpy(file_name,xml_file_name,*len_file_name);
00535
00536 #ifdef DEBUG
00537 (void)printf("sasa_c_read_file : open file : %s\n", file_name);
00538 #endif
00539
00540 doc = sasaOpenXml ((const char*)file_name);
00541
00542 free(file_name);
00543
00544 return(doc);
00545
00546 }
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00607
00608
00609
00610
00611
00612
00613
00614 static int sasa_c_get_number( int *xml_number,
00615 int num_doc,
00616 size_t nodes_count,
00617 ... )
00618 {
00619 va_list nodes;
00620 int rc=EXIT_SUCCESS;
00621 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00622 int xpath_str_len;
00623 int number;
00624
00625 ASSERT( xml_number != NULL );
00626 ASSERT( nodes_count > 0 );
00627
00628 va_start( nodes, nodes_count );
00629
00630
00631 xpath_str_len = sasa_c_build_xpath_str(
00632 xpath_str,
00633 XPATH_START_CHILD_OF_CURRENT_NODE,
00634 XPATH_NODE_TYPE_ELEMENT,
00635 nodes_count - 1,
00636 nodes );
00637
00638 va_end( nodes );
00639
00640 if ( xpath_str_len > 0 )
00641 {
00642
00643 rc=getXmlNodeCount (num_doc, xpath_str, &number);
00644
00645 if (rc != EXIT_FAILURE)
00646 rc = EXIT_SUCCESS;
00647
00648 *xml_number=number;
00649
00650 #ifdef DEBUG
00651 printf("sasa_c_get_number (level %d) : xpath input : %s\n",
00652 nodes_count, xpath_str);
00653 printf("sasa_c_get_number (level %d) : number : %d\n",
00654 nodes_count, *xml_number);
00655 puts("--------------------------------------------------------");
00656 #endif
00657 }
00658 else
00659 {
00660 rc = EXIT_FAILURE;
00661
00662 #ifdef DEBUG
00663 printf("sasa_c_get_number (level %d) : ERROR : building xpath string\n",
00664 nodes_count );
00665 printf("sasa_c_get_number (level %d) : return code %d\n",
00666 nodes_count, xpath_str_len );
00667 puts("--------------------------------------------------------");
00668 #endif
00669 }
00670
00671 return (rc);
00672
00673 }
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745 static int sasa_c_get_attribute( char *xml_attribute,
00746 int *xml_attribute_length,
00747 int num_doc,
00748 size_t parent_nodes_count,
00749 ... )
00750 {
00751 va_list nodes;
00752 int rc=EXIT_SUCCESS;
00753 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00754 int xpath_str_len;
00755 char *att=NULL;
00756 char *att_name=NULL;
00757
00758 ASSERT( xml_attribute != NULL );
00759 ASSERT( xml_attribute_length != NULL );
00760 ASSERT( parent_nodes_count >= 0 );
00761
00762 va_start( nodes, parent_nodes_count );
00763
00764
00765 xpath_str_len = sasa_c_build_xpath_str(
00766 xpath_str,
00767 XPATH_START_DESCENDANT_OF_ROOT_NODE,
00768 XPATH_NODE_TYPE_ATTRIBUTE,
00769 parent_nodes_count,
00770 nodes );
00771
00772 va_end( nodes );
00773
00774 if ( xpath_str_len > 0 )
00775 {
00776
00777 rc = getXmlInfo(num_doc, xpath_str, &att);
00778 if (rc == EXIT_FOUND)
00779 {
00780 (void)strcpy (xml_attribute, (const char*)att );
00781
00782
00783 *xml_attribute_length = strlen(xml_attribute);
00784 xml_attribute[strlen (xml_attribute)]=' ';
00785 rc = EXIT_SUCCESS;;
00786 }
00787 else if (rc == EXIT_NOTFOUND)
00788 {
00789 int i;
00790 for(i=0;i < 256; i++) *(xml_attribute+i)=' ';
00791 }
00792 free ((void*)att);
00793
00794 #ifdef DEBUG
00795 printf("sasa_c_get_attribute (level %d) : xpath input : %s\n",
00796 parent_nodes_count, xpath_str);
00797 att_name = (char *) calloc (*xml_attribute_length+1,sizeof (char));
00798 (void)strncpy (att_name,xml_attribute,*xml_attribute_length);
00799 printf("sasa_c_get_attribute (level %d) : xml_attribute : %s\n",
00800 parent_nodes_count, att_name);
00801 puts("--------------------------------------------------------");
00802 #endif
00803 }
00804 else
00805 {
00806 rc = EXIT_FAILURE;
00807
00808 #ifdef DEBUG
00809 printf("sasa_c_get_attribute (level %d) : ERROR : building xpath string\n",
00810 parent_nodes_count );
00811 printf("sasa_c_get_attribute (level %d) : return code %d\n",
00812 parent_nodes_count, xpath_str_len );
00813 puts("--------------------------------------------------------");
00814 #endif
00815 }
00816
00817 return (rc);
00818
00819 }
00820
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830
00831
00832
00833
00834
00835
00836
00837
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887
00888
00889 static int sasa_c_get_element_c( char *xml_element,
00890 int *xml_element_length,
00891 int num_doc,
00892 size_t parent_nodes_count,
00893 ... )
00894 {
00895 va_list nodes;
00896 int rc=EXIT_SUCCESS;
00897 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00898 int xpath_str_len;
00899 char *elt=NULL;
00900 char *att_name=NULL;
00901
00902 ASSERT( xml_element != NULL );
00903 ASSERT( xml_element_length != NULL );
00904 ASSERT( parent_nodes_count >= 0 );
00905
00906 va_start( nodes, parent_nodes_count );
00907
00908
00909 xpath_str_len = sasa_c_build_xpath_str(
00910 xpath_str,
00911 XPATH_START_DESCENDANT_OF_ROOT_NODE,
00912 XPATH_NODE_TYPE_ELEMENT,
00913 parent_nodes_count,
00914 nodes );
00915
00916 va_end( nodes );
00917
00918 if ( xpath_str_len > 0 )
00919 {
00920
00921 rc=getXmlInfo (num_doc, xpath_str, &elt);
00922 if (rc == EXIT_FOUND)
00923 {
00924 (void)strcpy (xml_element, (const char*)elt );
00925 *xml_element_length = strlen(xml_element);
00926 xml_element[strlen (xml_element)]=' ';
00927 rc = EXIT_SUCCESS;
00928 }
00929 else if (rc == EXIT_NOTFOUND)
00930 {
00931 strncpy(xml_element," ",255);
00932 xml_element[strlen (xml_element)]=' ';
00933 }
00934 free ((void*)elt);
00935
00936 #ifdef DEBUG
00937 printf("sasa_c_get_element_c (level %d) : xpath input : %s\n",
00938 parent_nodes_count, xpath_str);
00939 att_name = (char *) calloc (*xml_element_length+1,sizeof (char));
00940 (void)strncpy (att_name,xml_element,*xml_element_length);
00941 printf("sasa_c_get_element_c (level %d) : xml_element : %s\n",
00942 parent_nodes_count, att_name);
00943 free(att_name);
00944 puts("--------------------------------------------------------");
00945 #endif
00946 }
00947 else
00948 {
00949 rc = EXIT_FAILURE;
00950
00951 #ifdef DEBUG
00952 printf("sasa_c_get_element_c (level %d) : ERROR : building xpath string\n",
00953 parent_nodes_count );
00954 printf("sasa_c_get_element_c (level %d) : return code %d\n",
00955 parent_nodes_count, xpath_str_len );
00956 puts("--------------------------------------------------------");
00957 #endif
00958 }
00959
00960 return (rc);
00961
00962 }
00963
00964
00965
00966
00967
00968
00969
00970
00971
00972
00973
00974
00975
00976
00977
00978
00979
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990
00991
00992
00993
00994
00995
00996
00997
00998
00999
01000
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010
01011
01012
01013
01014
01015
01016
01017
01018
01019
01020
01021
01022
01023
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033 static int sasa_c_get_element_i( int *xml_element,
01034 int num_doc,
01035 size_t parent_nodes_count,
01036 ... )
01037 {
01038 va_list nodes;
01039 int rc=EXIT_SUCCESS;
01040 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
01041 int xpath_str_len;
01042 char *elt=NULL;
01043
01044 ASSERT( xml_element != NULL );
01045 ASSERT( parent_nodes_count >= 0 );
01046
01047 va_start( nodes, parent_nodes_count );
01048
01049
01050 xpath_str_len = sasa_c_build_xpath_str(
01051 xpath_str,
01052 XPATH_START_DESCENDANT_OF_ROOT_NODE,
01053 XPATH_NODE_TYPE_ELEMENT,
01054 parent_nodes_count,
01055 nodes );
01056
01057 va_end( nodes );
01058
01059 if ( xpath_str_len > 0 )
01060 {
01061
01062 rc=getXmlInfo (num_doc, xpath_str, &elt);
01063 if (rc == EXIT_FOUND)
01064 {
01065 *xml_element = atoi(elt);
01066 rc = EXIT_SUCCESS;
01067 }
01068 else if (rc == EXIT_NOTFOUND)
01069 {
01070 *xml_element = PSMILE_UNDEF;
01071 }
01072 free ((void*)elt);
01073
01074 #ifdef DEBUG
01075 printf("sasa_c_get_element_i (level %d) : xpath input : %s\n",
01076 parent_nodes_count, xpath_str);
01077 printf("sasa_c_get_element_i (level %d) : xml_element : %d\n",
01078 parent_nodes_count, *xml_element);
01079 puts("--------------------------------------------------------");
01080 #endif
01081 }
01082 else
01083 {
01084 rc = EXIT_FAILURE;
01085
01086 #ifdef DEBUG
01087 printf("sasa_c_get_element_i (level %d) : ERROR : building xpath string\n",
01088 parent_nodes_count );
01089 printf("sasa_c_get_element_i (level %d) : return code %d\n",
01090 parent_nodes_count, xpath_str_len );
01091 puts("--------------------------------------------------------");
01092 #endif
01093 }
01094
01095 return (rc);
01096
01097 }
01098
01099
01100
01101
01102
01103
01104
01105
01106
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120
01121
01122
01123
01124
01125
01126
01127
01128
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158
01159
01160
01161
01162
01163
01164
01165 static int sasa_c_get_element_d( double *xml_element,
01166 int num_doc,
01167 size_t parent_nodes_count,
01168 ... )
01169 {
01170 va_list nodes;
01171 int rc=EXIT_SUCCESS;
01172 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
01173 int xpath_str_len;
01174 char *elt=NULL;
01175
01176 ASSERT( xml_element != NULL );
01177 ASSERT( parent_nodes_count >= 0 );
01178
01179 va_start( nodes, parent_nodes_count );
01180
01181
01182 xpath_str_len = sasa_c_build_xpath_str(
01183 xpath_str,
01184 XPATH_START_DESCENDANT_OF_ROOT_NODE,
01185 XPATH_NODE_TYPE_ELEMENT,
01186 parent_nodes_count,
01187 nodes );
01188
01189 va_end( nodes );
01190
01191 if ( xpath_str_len > 0 )
01192 {
01193
01194 rc=getXmlInfo (num_doc, xpath_str, &elt);
01195 if (rc == EXIT_FOUND)
01196 {
01197 sscanf(elt,"%lf",xml_element);
01198 rc = EXIT_SUCCESS;
01199 }
01200 else if (rc == EXIT_NOTFOUND)
01201 {
01202 *xml_element = PSMILE_UNDEF;
01203 }
01204 free ((void*)elt);
01205
01206 #ifdef DEBUG
01207 printf("sasa_c_get_element_d (level %d) : xpath input : %s\n",
01208 parent_nodes_count, xpath_str);
01209 printf("sasa_c_get_element_d (level %d) : xml_element : %lf\n",
01210 parent_nodes_count, *xml_element);
01211 puts("--------------------------------------------------------");
01212 #endif
01213 }
01214 else
01215 {
01216 rc = EXIT_FAILURE;
01217
01218 #ifdef DEBUG
01219 printf("sasa_c_get_element_d (level %d) : ERROR : building xpath string\n",
01220 parent_nodes_count );
01221 printf("sasa_c_get_element_d (level %d) : return code %d\n",
01222 parent_nodes_count, xpath_str_len );
01223 puts("--------------------------------------------------------");
01224 #endif
01225 }
01226
01227 return (rc);
01228
01229 }
01230
01231
01232
01233
01234
01235
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245
01246
01247
01248
01249
01250
01251
01252
01253
01254
01255
01256
01257
01258
01259
01260
01261
01262
01263
01264
01265
01266
01267
01268
01269
01270
01271
01272
01273
01274
01275
01276
01277
01278
01279
01280
01281
01282
01283
01284
01285
01286
01287
01288
01289
01290
01291
01292
01293
01294
01295
01296
01297
01298
01299
01300
01301
01302
01303
01304
01305 static int sasa_c_build_xpath_str( char *xpath_str,
01306 XPathStartType xpath_start_type,
01307 XPathNodeType xpath_target_node_type,
01308 size_t parent_nodes_count,
01309 va_list xpath_nodes )
01310 {
01311 size_t elements_loop;
01312 int xpath_str_len, chars_count;
01313 char format_str[ 32 ];
01314
01315 ASSERT( xpath_str != NULL );
01316 ASSERT( xpath_start_type >= XPATH_START_FIRST
01317 && xpath_start_type <= XPATH_START_LAST );
01318 ASSERT( xpath_target_node_type >= XPATH_NODE_TYPE_FIRST
01319 && xpath_target_node_type <= XPATH_NODE_TYPE_LAST );
01320 ASSERT( parent_nodes_count >= 0 );
01321
01322
01323
01324 switch ( xpath_start_type )
01325 {
01326 case XPATH_START_CHILD_OF_ROOT_NODE:
01327 {
01328 strcpy( xpath_str, "/" );
01329 }
01330 break;
01331 case XPATH_START_DESCENDANT_OF_ROOT_NODE:
01332 {
01333 strcpy( xpath_str, "//" );
01334 }
01335 break;
01336 case XPATH_START_CHILD_OF_CURRENT_NODE:
01337 {
01338 xpath_str[ 0 ] = '\0';
01339 }
01340 break;
01341 default:
01342 {
01343 ASSERT( 0 );
01344 }
01345 break;
01346 }
01347 xpath_str_len = chars_count = strlen( xpath_str );
01348
01349
01350
01351 elements_loop = 0;
01352 while ( elements_loop < parent_nodes_count && chars_count != -1 )
01353 {
01354 const char *element_name = va_arg( xpath_nodes, char * );
01355 int element_name_len = va_arg( xpath_nodes, int );
01356 int element_count = va_arg( xpath_nodes, int );
01357
01358
01359
01360
01361 if ( element_count == 0 )
01362 {
01363 sprintf( format_str, "%%.%ds/", element_name_len );
01364 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01365 element_name );
01366 }
01367 else
01368 {
01369 sprintf( format_str, "%%.%ds[%%d]/", element_name_len );
01370 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01371 element_name, element_count );
01372 }
01373
01374 xpath_str_len += chars_count;
01375 elements_loop++;
01376 }
01377
01378
01379
01380 if ( chars_count != -1 )
01381 {
01382 switch ( xpath_target_node_type )
01383 {
01384 case XPATH_NODE_TYPE_ATTRIBUTE:
01385 {
01386 const char *attribute_name = va_arg( xpath_nodes, char * );
01387 int attribute_name_len = va_arg( xpath_nodes, int );
01388
01389
01390
01391 sprintf( format_str, "@%%.%ds", attribute_name_len );
01392 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01393 attribute_name );
01394 }
01395 break;
01396 case XPATH_NODE_TYPE_ELEMENT:
01397 {
01398 const char *element_name = va_arg( xpath_nodes, char * );
01399 int element_name_len = va_arg( xpath_nodes, int );
01400 int element_count = va_arg( xpath_nodes, int );
01401
01402 if ( element_count == 0 )
01403 {
01404 sprintf( format_str, "%%.%ds", element_name_len );
01405 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01406 element_name );
01407 }
01408 else
01409 {
01410 sprintf( format_str, "%%.%ds[%%d]", element_name_len );
01411 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01412 element_name, element_count );
01413 }
01414 }
01415 break;
01416 default:
01417 {
01418 ASSERT( 0 );
01419 }
01420 break;
01421 }
01422
01423 xpath_str_len += chars_count;
01424 }
01425
01426 return ( chars_count != -1 ? xpath_str_len : chars_count );
01427
01428 }
01429
01430
01431
01432
01433
01434
01435
01436
01437
01438
01439
01440
01441
01442
01443
01444
01445
01446
01447
01448
01449
01450
01451
01452
01453
01454
01455
01456
01457
01458
01459
01460
01461
01462
01463
01464
01465
01466
01467 int
01468 sasa_c_close (int *num_doc)
01469 {
01470
01471 return (sasaCloseXml (*num_doc));
01472
01473 }
01474
01475
01476
01477
01478
01479
01480 int sasa_c_convert_char2int (char *charcode, int len_charcode)
01481 {
01482 int result;
01483 char *name;
01484
01485 name = (char *) calloc(len_charcode+1, sizeof(char));
01486 strncpy(name,charcode,len_charcode);
01487
01488 result = __sasa_c_convert_char2int (name, len_charcode);
01489
01490 free(name);
01491
01492 return(result);
01493 }
01494
01495
01496
01497 int sasa_c_get_number_1st_level ( int *num_doc,
01498 char *firstlevel,
01499 int *xml_number,
01500 int len_firstlevel)
01501 {
01502 int result;
01503
01504 result = sasa_c_get_number(
01505 xml_number, *num_doc, 1,
01506 firstlevel, len_firstlevel, 0 );
01507
01508 return(result);
01509 }
01510
01511
01512 int sasa_c_get_number_2nd_level (int *num_doc,
01513 char *firstlevel,
01514 int *firstno,
01515 char *secondlevel,
01516 int *xml_number,
01517 int len_firstlevel,
01518 int len_secondlevel)
01519 {
01520 int result;
01521
01522 result = sasa_c_get_number(
01523 xml_number, *num_doc, 2,
01524 firstlevel, len_firstlevel, *firstno,
01525 secondlevel, len_secondlevel, 0 );
01526
01527 return(result);
01528 }
01529
01530
01531 int sasa_c_get_number_3rd_level (int *num_doc,
01532 char *firstlevel,
01533 int *firstno,
01534 char *secondlevel,
01535 int *secondno,
01536 char *thirdlevel,
01537 int *xml_number,
01538 int len_firstlevel,
01539 int len_secondlevel,
01540 int len_thirdlevel)
01541 {
01542 int result;
01543
01544 result = sasa_c_get_number(
01545 xml_number, *num_doc, 3,
01546 firstlevel, len_firstlevel, *firstno,
01547 secondlevel, len_secondlevel, *secondno,
01548 thirdlevel, len_thirdlevel, 0 );
01549
01550 return(result);
01551 }
01552
01553
01554 int sasa_c_get_number_4th_level (int *num_doc,
01555 char *firstlevel,
01556 int *firstno,
01557 char *secondlevel,
01558 int *secondno,
01559 char *thirdlevel,
01560 int *thirdno,
01561 char *fourthlevel,
01562 int *xml_number,
01563 int len_firstlevel,
01564 int len_secondlevel,
01565 int len_thirdlevel,
01566 int len_fourthlevel)
01567 {
01568 int result;
01569
01570 result = sasa_c_get_number(
01571 xml_number, *num_doc, 4,
01572 firstlevel, len_firstlevel, *firstno,
01573 secondlevel, len_secondlevel, *secondno,
01574 thirdlevel, len_thirdlevel, *thirdno,
01575 fourthlevel, len_fourthlevel, 0 );
01576
01577 return(result);
01578 }
01579
01580
01581 int sasa_c_get_number_5th_level (int *num_doc,
01582 char *firstlevel,
01583 int *firstno,
01584 char *secondlevel,
01585 int *secondno,
01586 char *thirdlevel,
01587 int *thirdno,
01588 char *fourthlevel,
01589 int *fourthno,
01590 char *fifthlevel,
01591 int *xml_number,
01592 int len_firstlevel,
01593 int len_secondlevel,
01594 int len_thirdlevel,
01595 int len_fourthlevel,
01596 int len_fifthlevel)
01597 {
01598 int result;
01599
01600 result = sasa_c_get_number(
01601 xml_number, *num_doc, 5,
01602 firstlevel, len_firstlevel, *firstno,
01603 secondlevel, len_secondlevel, *secondno,
01604 thirdlevel, len_thirdlevel, *thirdno,
01605 fourthlevel, len_fourthlevel, *fourthno,
01606 fifthlevel, len_fifthlevel, 0 );
01607
01608 return(result);
01609 }
01610
01611
01612 int sasa_c_get_number_6th_level (int *num_doc,
01613 char *firstlevel,
01614 int *firstno,
01615 char *secondlevel,
01616 int *secondno,
01617 char *thirdlevel,
01618 int *thirdno,
01619 char *fourthlevel,
01620 int *fourthno,
01621 char *fifthlevel,
01622 int *fifthno,
01623 char *sixthlevel,
01624 int *xml_number,
01625 int len_firstlevel,
01626 int len_secondlevel,
01627 int len_thirdlevel,
01628 int len_fourthlevel,
01629 int len_fifthlevel,
01630 int len_sixthlevel)
01631 {
01632 int result;
01633
01634 result = sasa_c_get_number(
01635 xml_number, *num_doc, 6,
01636 firstlevel, len_firstlevel, *firstno,
01637 secondlevel, len_secondlevel, *secondno,
01638 thirdlevel, len_thirdlevel, *thirdno,
01639 fourthlevel, len_fourthlevel, *fourthno,
01640 fifthlevel, len_fifthlevel, *fifthno,
01641 sixthlevel, len_sixthlevel, 0 );
01642
01643 return(result);
01644 }
01645
01646
01647 int sasa_c_get_number_7th_level (int *num_doc,
01648 char *firstlevel,
01649 int *firstno,
01650 char *secondlevel,
01651 int *secondno,
01652 char *thirdlevel,
01653 int *thirdno,
01654 char *fourthlevel,
01655 int *fourthno,
01656 char *fifthlevel,
01657 int *fifthno,
01658 char *sixthlevel,
01659 int *sixthno,
01660 char *seventhlevel,
01661 int *xml_number,
01662 int len_firstlevel,
01663 int len_secondlevel,
01664 int len_thirdlevel,
01665 int len_fourthlevel,
01666 int len_fifthlevel,
01667 int len_sixthlevel,
01668 int len_seventhlevel)
01669 {
01670 int result;
01671
01672 result = sasa_c_get_number(
01673 xml_number, *num_doc, 7,
01674 firstlevel, len_firstlevel, *firstno,
01675 secondlevel, len_secondlevel, *secondno,
01676 thirdlevel, len_thirdlevel, *thirdno,
01677 fourthlevel, len_fourthlevel, *fourthno,
01678 fifthlevel, len_fifthlevel, *fifthno,
01679 sixthlevel, len_sixthlevel, *sixthno,
01680 seventhlevel, len_seventhlevel, 0 );
01681
01682 return(result);
01683 }
01684
01685
01686 int sasa_c_get_number_8th_level (int *num_doc,
01687 char *firstlevel,
01688 int *firstno,
01689 char *secondlevel,
01690 int *secondno,
01691 char *thirdlevel,
01692 int *thirdno,
01693 char *fourthlevel,
01694 int *fourthno,
01695 char *fifthlevel,
01696 int *fifthno,
01697 char *sixthlevel,
01698 int *sixthno,
01699 char *seventhlevel,
01700 int *seventhno,
01701 char *eighthlevel,
01702 int *xml_number,
01703 int len_firstlevel,
01704 int len_secondlevel,
01705 int len_thirdlevel,
01706 int len_fourthlevel,
01707 int len_fifthlevel,
01708 int len_sixthlevel,
01709 int len_seventhlevel,
01710 int len_eighthlevel)
01711 {
01712 int result;
01713
01714 result = sasa_c_get_number(
01715 xml_number, *num_doc, 8,
01716 firstlevel, len_firstlevel, *firstno,
01717 secondlevel, len_secondlevel, *secondno,
01718 thirdlevel, len_thirdlevel, *thirdno,
01719 fourthlevel, len_fourthlevel, *fourthno,
01720 fifthlevel, len_fifthlevel, *fifthno,
01721 sixthlevel, len_sixthlevel, *sixthno,
01722 seventhlevel, len_seventhlevel, *seventhno,
01723 eighthlevel, len_eighthlevel, 0 );
01724
01725 return(result);
01726 }
01727
01728
01729 int sasa_c_get_number_9th_level (int *num_doc,
01730 char *firstlevel,
01731 int *firstno,
01732 char *secondlevel,
01733 int *secondno,
01734 char *thirdlevel,
01735 int *thirdno,
01736 char *fourthlevel,
01737 int *fourthno,
01738 char *fifthlevel,
01739 int *fifthno,
01740 char *sixthlevel,
01741 int *sixthno,
01742 char *seventhlevel,
01743 int *seventhno,
01744 char *eighthlevel,
01745 int *eighthno,
01746 char *ninthlevel,
01747 int *xml_number,
01748 int len_firstlevel,
01749 int len_secondlevel,
01750 int len_thirdlevel,
01751 int len_fourthlevel,
01752 int len_fifthlevel,
01753 int len_sixthlevel,
01754 int len_seventhlevel,
01755 int len_eighthlevel,
01756 int len_ninthlevel)
01757 {
01758 int result;
01759
01760 result = sasa_c_get_number(
01761 xml_number, *num_doc, 9,
01762 firstlevel, len_firstlevel, *firstno,
01763 secondlevel, len_secondlevel, *secondno,
01764 thirdlevel, len_thirdlevel, *thirdno,
01765 fourthlevel, len_fourthlevel, *fourthno,
01766 fifthlevel, len_fifthlevel, *fifthno,
01767 sixthlevel, len_sixthlevel, *sixthno,
01768 seventhlevel, len_seventhlevel, *seventhno,
01769 eighthlevel, len_eighthlevel, *eighthno,
01770 ninthlevel, len_ninthlevel, 0 );
01771
01772 return(result);
01773 }
01774
01775 int sasa_c_get_number_10th_level (int *num_doc,
01776 char *firstlevel,
01777 int *firstno,
01778 char *secondlevel,
01779 int *secondno,
01780 char *thirdlevel,
01781 int *thirdno,
01782 char *fourthlevel,
01783 int *fourthno,
01784 char *fifthlevel,
01785 int *fifthno,
01786 char *sixthlevel,
01787 int *sixthno,
01788 char *seventhlevel,
01789 int *seventhno,
01790 char *eighthlevel,
01791 int *eighthno,
01792 char *ninthlevel,
01793 int *ninthno,
01794 char *tenthlevel,
01795 int *xml_number,
01796 int len_firstlevel,
01797 int len_secondlevel,
01798 int len_thirdlevel,
01799 int len_fourthlevel,
01800 int len_fifthlevel,
01801 int len_sixthlevel,
01802 int len_seventhlevel,
01803 int len_eighthlevel,
01804 int len_ninthlevel,
01805 int len_tenthlevel)
01806 {
01807 int result;
01808
01809 result = sasa_c_get_number(
01810 xml_number, *num_doc, 10,
01811 firstlevel, len_firstlevel, *firstno,
01812 secondlevel, len_secondlevel, *secondno,
01813 thirdlevel, len_thirdlevel, *thirdno,
01814 fourthlevel, len_fourthlevel, *fourthno,
01815 fifthlevel, len_fifthlevel, *fifthno,
01816 sixthlevel, len_sixthlevel, *sixthno,
01817 seventhlevel, len_seventhlevel, *seventhno,
01818 eighthlevel, len_eighthlevel, *eighthno,
01819 ninthlevel, len_ninthlevel, *ninthno,
01820 tenthlevel, len_tenthlevel, 0 );
01821
01822 return(result);
01823 }
01824
01825 int sasa_c_get_number_11th_level (int *num_doc,
01826 char *firstlevel,
01827 int *firstno,
01828 char *secondlevel,
01829 int *secondno,
01830 char *thirdlevel,
01831 int *thirdno,
01832 char *fourthlevel,
01833 int *fourthno,
01834 char *fifthlevel,
01835 int *fifthno,
01836 char *sixthlevel,
01837 int *sixthno,
01838 char *seventhlevel,
01839 int *seventhno,
01840 char *eighthlevel,
01841 int *eighthno,
01842 char *ninthlevel,
01843 int *ninthno,
01844 char *tenthlevel,
01845 int *tenthno,
01846 char *elethlevel,
01847 int *xml_number,
01848 int len_firstlevel,
01849 int len_secondlevel,
01850 int len_thirdlevel,
01851 int len_fourthlevel,
01852 int len_fifthlevel,
01853 int len_sixthlevel,
01854 int len_seventhlevel,
01855 int len_eighthlevel,
01856 int len_ninthlevel,
01857 int len_tenthlevel,
01858 int len_elethlevel )
01859 {
01860 int result;
01861
01862 result = sasa_c_get_number(
01863 xml_number, *num_doc, 11,
01864 firstlevel, len_firstlevel, *firstno,
01865 secondlevel, len_secondlevel, *secondno,
01866 thirdlevel, len_thirdlevel, *thirdno,
01867 fourthlevel, len_fourthlevel, *fourthno,
01868 fifthlevel, len_fifthlevel, *fifthno,
01869 sixthlevel, len_sixthlevel, *sixthno,
01870 seventhlevel, len_seventhlevel, *seventhno,
01871 eighthlevel, len_eighthlevel, *eighthno,
01872 ninthlevel, len_ninthlevel, *ninthno,
01873 tenthlevel, len_tenthlevel, *tenthno,
01874 elethlevel, len_elethlevel, 0 );
01875
01876 return(result);
01877 }
01878
01879
01880
01881 int sasa_c_get_attri_1st_level (int *num_doc,
01882 char *firstlevel,
01883 int *firstno,
01884 char *attribute,
01885 char *xml_attribute,
01886 int *xml_attribute_length,
01887 int len_firstlevel,
01888 int len_attribute,
01889 int len_xml_attribute)
01890 {
01891 int result;
01892
01893 result = sasa_c_get_attribute(
01894 xml_attribute, xml_attribute_length, *num_doc, 1,
01895 firstlevel, len_firstlevel, *firstno,
01896 attribute, len_attribute );
01897
01898 return(result);
01899 }
01900
01901
01902 int sasa_c_get_attri_2nd_level (int *num_doc,
01903 char *firstlevel,
01904 int *firstno,
01905 char *secondlevel,
01906 int *secondno,
01907 char *attribute,
01908 char *xml_attribute,
01909 int *xml_attribute_length,
01910 int len_firstlevel,
01911 int len_secondlevel,
01912 int len_attribute,
01913 int len_xml_attribute)
01914 {
01915 int result;
01916
01917 result = sasa_c_get_attribute(
01918 xml_attribute, xml_attribute_length, *num_doc, 2,
01919 firstlevel, len_firstlevel, *firstno,
01920 secondlevel, len_secondlevel, *secondno,
01921 attribute, len_attribute );
01922
01923 return(result);
01924 }
01925
01926
01927 int sasa_c_get_attri_3rd_level (int *num_doc,
01928 char *firstlevel,
01929 int *firstno,
01930 char *secondlevel,
01931 int *secondno,
01932 char *thirdlevel,
01933 int *thirdno,
01934 char *attribute,
01935 char *xml_attribute,
01936 int *xml_attribute_length,
01937 int len_firstlevel,
01938 int len_secondlevel,
01939 int len_thirdlevel,
01940 int len_attribute,
01941 int len_xml_attribute)
01942 {
01943 int result;
01944
01945 result = sasa_c_get_attribute(
01946 xml_attribute, xml_attribute_length, *num_doc, 3,
01947 firstlevel, len_firstlevel, *firstno,
01948 secondlevel, len_secondlevel, *secondno,
01949 thirdlevel, len_thirdlevel, *thirdno,
01950 attribute, len_attribute );
01951
01952 return(result);
01953 }
01954
01955
01956 int sasa_c_get_attri_4th_level (int *num_doc,
01957 char *firstlevel,
01958 int *firstno,
01959 char *secondlevel,
01960 int *secondno,
01961 char *thirdlevel,
01962 int *thirdno,
01963 char *fourthlevel,
01964 int *fourthno,
01965 char *attribute,
01966 char *xml_attribute,
01967 int *xml_attribute_length,
01968 int len_firstlevel,
01969 int len_secondlevel,
01970 int len_thirdlevel,
01971 int len_fourthlevel,
01972 int len_attribute,
01973 int len_xml_attribute)
01974 {
01975 int result;
01976
01977 result = sasa_c_get_attribute(
01978 xml_attribute, xml_attribute_length, *num_doc, 4,
01979 firstlevel, len_firstlevel, *firstno,
01980 secondlevel, len_secondlevel, *secondno,
01981 thirdlevel, len_thirdlevel, *thirdno,
01982 fourthlevel, len_fourthlevel, *fourthno,
01983 attribute, len_attribute );
01984
01985 return(result);
01986 }
01987
01988
01989 int sasa_c_get_attri_5th_level (int *num_doc,
01990 char *firstlevel,
01991 int *firstno,
01992 char *secondlevel,
01993 int *secondno,
01994 char *thirdlevel,
01995 int *thirdno,
01996 char *fourthlevel,
01997 int *fourthno,
01998 char *fifthlevel,
01999 int *fifthno,
02000 char *attribute,
02001 char *xml_attribute,
02002 int *xml_attribute_length,
02003 int len_firstlevel,
02004 int len_secondlevel,
02005 int len_thirdlevel,
02006 int len_fourthlevel,
02007 int len_fifthlevel,
02008 int len_attribute,
02009 int len_xml_attribute)
02010 {
02011 int result;
02012
02013 result = sasa_c_get_attribute(
02014 xml_attribute, xml_attribute_length, *num_doc, 5,
02015 firstlevel, len_firstlevel, *firstno,
02016 secondlevel, len_secondlevel, *secondno,
02017 thirdlevel, len_thirdlevel, *thirdno,
02018 fourthlevel, len_fourthlevel, *fourthno,
02019 fifthlevel, len_fifthlevel, *fifthno,
02020 attribute, len_attribute );
02021
02022 return(result);
02023 }
02024
02025
02026
02027 int sasa_c_get_element_1st_level_c (int *num_doc,
02028 char *firstlevel,
02029 int *firstno,
02030 char *element,
02031 int *elementno,
02032 char *xml_element,
02033 int *xml_element_length,
02034 int len_firstlevel,
02035 int len_element,
02036 int len_xml_element)
02037 {
02038 int result;
02039
02040 result = sasa_c_get_element_c(
02041 xml_element, xml_element_length, *num_doc, 1,
02042 firstlevel, len_firstlevel, *firstno,
02043 element, len_element, *elementno );
02044
02045 return(result);
02046 }
02047
02048
02049 int sasa_c_get_element_1st_level_i (int *num_doc,
02050 char *firstlevel,
02051 int *firstno,
02052 char *element,
02053 int *elementno,
02054 int *xml_element,
02055 int len_firstlevel,
02056 int len_element)
02057 {
02058 int result;
02059
02060 result = sasa_c_get_element_i(
02061 xml_element, *num_doc, 1,
02062 firstlevel, len_firstlevel, *firstno,
02063 element, len_element, *elementno );
02064
02065 return(result);
02066 }
02067
02068
02069 int sasa_c_get_element_1st_level_d (int *num_doc,
02070 char *firstlevel,
02071 int *firstno,
02072 char *element,
02073 int *elementno,
02074 double *xml_element,
02075 int len_firstlevel,
02076 int len_element)
02077 {
02078 int result;
02079
02080 result = sasa_c_get_element_d(
02081 xml_element, *num_doc, 1,
02082 firstlevel, len_firstlevel, *firstno,
02083 element, len_element, *elementno );
02084
02085 return(result);
02086 }
02087
02088
02089 int sasa_c_get_element_2nd_level_c (int *num_doc,
02090 char *firstlevel,
02091 int *firstno,
02092 char *secondlevel,
02093 int *secondno,
02094 char *element,
02095 int *elementno,
02096 char *xml_element,
02097 int *xml_element_length,
02098 int len_firstlevel,
02099 int len_secondlevel,
02100 int len_element,
02101 int len_xml_element)
02102 {
02103 int result;
02104
02105 result = sasa_c_get_element_c(
02106 xml_element, xml_element_length, *num_doc, 2,
02107 firstlevel, len_firstlevel, *firstno,
02108 secondlevel, len_secondlevel, *secondno,
02109 element, len_element, *elementno );
02110
02111 return(result);
02112 }
02113
02114
02115 int sasa_c_get_element_2nd_level_i (int *num_doc,
02116 char *firstlevel,
02117 int *firstno,
02118 char *secondlevel,
02119 int *secondno,
02120 char *element,
02121 int *elementno,
02122 int *xml_element,
02123 int len_firstlevel,
02124 int len_secondlevel,
02125 int len_element)
02126 {
02127 int result;
02128
02129 result = sasa_c_get_element_i(
02130 xml_element, *num_doc, 2,
02131 firstlevel, len_firstlevel, *firstno,
02132 secondlevel, len_secondlevel, *secondno,
02133 element, len_element, *elementno );
02134
02135 return(result);
02136 }
02137
02138
02139 int sasa_c_get_element_2nd_level_d (int *num_doc,
02140 char *firstlevel,
02141 int *firstno,
02142 char *secondlevel,
02143 int *secondno,
02144 char *element,
02145 int *elementno,
02146 double *xml_element,
02147 int len_firstlevel,
02148 int len_secondlevel,
02149 int len_element)
02150 {
02151 int result;
02152
02153 result = sasa_c_get_element_d(
02154 xml_element, *num_doc, 2,
02155 firstlevel, len_firstlevel, *firstno,
02156 secondlevel, len_secondlevel, *secondno,
02157 element, len_element, *elementno );
02158
02159 return(result);
02160 }
02161
02162
02163 int sasa_c_get_element_3rd_level_c (int *num_doc,
02164 char *firstlevel,
02165 int *firstno,
02166 char *secondlevel,
02167 int *secondno,
02168 char *thirdlevel,
02169 int *thirdno,
02170 char *element,
02171 int *elementno,
02172 char *xml_element,
02173 int *xml_element_length,
02174 int len_firstlevel,
02175 int len_secondlevel,
02176 int len_thirdlevel,
02177 int len_element,
02178 int len_xml_element)
02179 {
02180 int result;
02181
02182 result = sasa_c_get_element_c(
02183 xml_element, xml_element_length, *num_doc, 3,
02184 firstlevel, len_firstlevel, *firstno,
02185 secondlevel, len_secondlevel, *secondno,
02186 thirdlevel, len_thirdlevel, *thirdno,
02187 element, len_element, *elementno );
02188
02189 return(result);
02190 }
02191
02192
02193 int sasa_c_get_element_3rd_level_i (int *num_doc,
02194 char *firstlevel,
02195 int *firstno,
02196 char *secondlevel,
02197 int *secondno,
02198 char *thirdlevel,
02199 int *thirdno,
02200 char *element,
02201 int *elementno,
02202 int *xml_element,
02203 int len_firstlevel,
02204 int len_secondlevel,
02205 int len_thirdlevel,
02206 int len_element)
02207 {
02208 int result;
02209
02210 result = sasa_c_get_element_i(
02211 xml_element, *num_doc, 3,
02212 firstlevel, len_firstlevel, *firstno,
02213 secondlevel, len_secondlevel, *secondno,
02214 thirdlevel, len_thirdlevel, *thirdno,
02215 element, len_element, *elementno );
02216
02217 return(result);
02218 }
02219
02220
02221 int sasa_c_get_element_3rd_level_d (int *num_doc,
02222 char *firstlevel,
02223 int *firstno,
02224 char *secondlevel,
02225 int *secondno,
02226 char *thirdlevel,
02227 int *thirdno,
02228 char *element,
02229 int *elementno,
02230 double *xml_element,
02231 int len_firstlevel,
02232 int len_secondlevel,
02233 int len_thirdlevel,
02234 int len_element)
02235 {
02236 int result;
02237
02238 result = sasa_c_get_element_d(
02239 xml_element, *num_doc, 3,
02240 firstlevel, len_firstlevel, *firstno,
02241 secondlevel, len_secondlevel, *secondno,
02242 thirdlevel, len_thirdlevel, *thirdno,
02243 element, len_element, *elementno );
02244
02245 return(result);
02246 }
02247
02248
02249 int sasa_c_get_element_4th_level_c (int *num_doc,
02250 char *firstlevel,
02251 int *firstno,
02252 char *secondlevel,
02253 int *secondno,
02254 char *thirdlevel,
02255 int *thirdno,
02256 char *fourthlevel,
02257 int *fourthno,
02258 char *element,
02259 int *elementno,
02260 char *xml_element,
02261 int *xml_element_length,
02262 int len_firstlevel,
02263 int len_secondlevel,
02264 int len_thirdlevel,
02265 int len_fourthlevel,
02266 int len_element,
02267 int len_xml_element)
02268 {
02269 int result;
02270
02271 result = sasa_c_get_element_c(
02272 xml_element, xml_element_length, *num_doc, 4,
02273 firstlevel, len_firstlevel, *firstno,
02274 secondlevel, len_secondlevel, *secondno,
02275 thirdlevel, len_thirdlevel, *thirdno,
02276 fourthlevel, len_fourthlevel, *fourthno,
02277 element, len_element, *elementno );
02278
02279 return(result);
02280 }
02281
02282
02283 int sasa_c_get_element_4th_level_i (int *num_doc,
02284 char *firstlevel,
02285 int *firstno,
02286 char *secondlevel,
02287 int *secondno,
02288 char *thirdlevel,
02289 int *thirdno,
02290 char *fourthlevel,
02291 int *fourthno,
02292 char *element,
02293 int *elementno,
02294 int *xml_element,
02295 int len_firstlevel,
02296 int len_secondlevel,
02297 int len_thirdlevel,
02298 int len_fourthlevel,
02299 int len_element)
02300 {
02301 int result;
02302
02303 result = sasa_c_get_element_i(
02304 xml_element, *num_doc, 4,
02305 firstlevel, len_firstlevel, *firstno,
02306 secondlevel, len_secondlevel, *secondno,
02307 thirdlevel, len_thirdlevel, *thirdno,
02308 fourthlevel, len_fourthlevel, *fourthno,
02309 element, len_element, *elementno );
02310
02311 return(result);
02312 }
02313
02314
02315 int sasa_c_get_element_4th_level_d (int *num_doc,
02316 char *firstlevel,
02317 int *firstno,
02318 char *secondlevel,
02319 int *secondno,
02320 char *thirdlevel,
02321 int *thirdno,
02322 char *fourthlevel,
02323 int *fourthno,
02324 char *element,
02325 int *elementno,
02326 double *xml_element,
02327 int len_firstlevel,
02328 int len_secondlevel,
02329 int len_thirdlevel,
02330 int len_fourthlevel,
02331 int len_element)
02332 {
02333 int result;
02334
02335 result = sasa_c_get_element_d(
02336 xml_element, *num_doc, 4,
02337 firstlevel, len_firstlevel, *firstno,
02338 secondlevel, len_secondlevel, *secondno,
02339 thirdlevel, len_thirdlevel, *thirdno,
02340 fourthlevel, len_fourthlevel, *fourthno,
02341 element, len_element, *elementno );
02342
02343 return(result);
02344 }
02345
02346
02347 int sasa_c_get_element_5th_level_c (int *num_doc,
02348 char *firstlevel,
02349 int *firstno,
02350 char *secondlevel,
02351 int *secondno,
02352 char *thirdlevel,
02353 int *thirdno,
02354 char *fourthlevel,
02355 int *fourthno,
02356 char *fifthlevel,
02357 int *fifthno,
02358 char *element,
02359 int *elementno,
02360 char *xml_element,
02361 int *xml_element_length,
02362 int len_firstlevel,
02363 int len_secondlevel,
02364 int len_thirdlevel,
02365 int len_fourthlevel,
02366 int len_fifthlevel,
02367 int len_element,
02368 int len_xml_element)
02369 {
02370 int result;
02371
02372 result = sasa_c_get_element_c(
02373 xml_element, xml_element_length, *num_doc, 5,
02374 firstlevel, len_firstlevel, *firstno,
02375 secondlevel, len_secondlevel, *secondno,
02376 thirdlevel, len_thirdlevel, *thirdno,
02377 fourthlevel, len_fourthlevel, *fourthno,
02378 fifthlevel, len_fifthlevel, *fifthno,
02379 element, len_element, *elementno );
02380
02381 return(result);
02382 }
02383
02384
02385 int sasa_c_get_element_5th_level_i (int *num_doc,
02386 char *firstlevel,
02387 int *firstno,
02388 char *secondlevel,
02389 int *secondno,
02390 char *thirdlevel,
02391 int *thirdno,
02392 char *fourthlevel,
02393 int *fourthno,
02394 char *fifthlevel,
02395 int *fifthno,
02396 char *element,
02397 int *elementno,
02398 int *xml_element,
02399 int len_firstlevel,
02400 int len_secondlevel,
02401 int len_thirdlevel,
02402 int len_fourthlevel,
02403 int len_fifthlevel,
02404 int len_element)
02405 {
02406 int result;
02407
02408 result = sasa_c_get_element_i(
02409 xml_element, *num_doc, 5,
02410 firstlevel, len_firstlevel, *firstno,
02411 secondlevel, len_secondlevel, *secondno,
02412 thirdlevel, len_thirdlevel, *thirdno,
02413 fourthlevel, len_fourthlevel, *fourthno,
02414 fifthlevel, len_fifthlevel, *fifthno,
02415 element, len_element, *elementno );
02416
02417 return(result);
02418 }
02419
02420
02421 int sasa_c_get_element_5th_level_d (int *num_doc,
02422 char *firstlevel,
02423 int *firstno,
02424 char *secondlevel,
02425 int *secondno,
02426 char *thirdlevel,
02427 int *thirdno,
02428 char *fourthlevel,
02429 int *fourthno,
02430 char *fifthlevel,
02431 int *fifthno,
02432 char *element,
02433 int *elementno,
02434 double *xml_element,
02435 int len_firstlevel,
02436 int len_secondlevel,
02437 int len_thirdlevel,
02438 int len_fourthlevel,
02439 int len_fifthlevel,
02440 int len_element)
02441 {
02442 int result;
02443
02444 result = sasa_c_get_element_d(
02445 xml_element, *num_doc, 5,
02446 firstlevel, len_firstlevel, *firstno,
02447 secondlevel, len_secondlevel, *secondno,
02448 thirdlevel, len_thirdlevel, *thirdno,
02449 fourthlevel, len_fourthlevel, *fourthno,
02450 fifthlevel, len_fifthlevel, *fifthno,
02451 element, len_element, *elementno );
02452
02453 return(result);
02454 }
02455
02456
02457 int sasa_c_get_element_6th_level_c (int *num_doc,
02458 char *firstlevel,
02459 int *firstno,
02460 char *secondlevel,
02461 int *secondno,
02462 char *thirdlevel,
02463 int *thirdno,
02464 char *fourthlevel,
02465 int *fourthno,
02466 char *fifthlevel,
02467 int *fifthno,
02468 char *sixthlevel,
02469 int *sixthno,
02470 char *element,
02471 int *elementno,
02472 char *xml_element,
02473 int *xml_element_length,
02474 int len_firstlevel,
02475 int len_secondlevel,
02476 int len_thirdlevel,
02477 int len_fourthlevel,
02478 int len_fifthlevel,
02479 int len_sixthlevel,
02480 int len_element,
02481 int len_xml_element)
02482 {
02483 int result;
02484
02485 result = sasa_c_get_element_c(
02486 xml_element, xml_element_length, *num_doc, 6,
02487 firstlevel, len_firstlevel, *firstno,
02488 secondlevel, len_secondlevel, *secondno,
02489 thirdlevel, len_thirdlevel, *thirdno,
02490 fourthlevel, len_fourthlevel, *fourthno,
02491 fifthlevel, len_fifthlevel, *fifthno,
02492 sixthlevel, len_sixthlevel, *sixthno,
02493 element, len_element, *elementno );
02494
02495 return(result);
02496 }
02497
02498
02499 int sasa_c_get_element_6th_level_i (int *num_doc,
02500 char *firstlevel,
02501 int *firstno,
02502 char *secondlevel,
02503 int *secondno,
02504 char *thirdlevel,
02505 int *thirdno,
02506 char *fourthlevel,
02507 int *fourthno,
02508 char *fifthlevel,
02509 int *fifthno,
02510 char *sixthlevel,
02511 int *sixthno,
02512 char *element,
02513 int *elementno,
02514 int *xml_element,
02515 int len_firstlevel,
02516 int len_secondlevel,
02517 int len_thirdlevel,
02518 int len_fourthlevel,
02519 int len_fifthlevel,
02520 int len_sixthlevel,
02521 int len_element)
02522 {
02523 int result;
02524
02525 result = sasa_c_get_element_i(
02526 xml_element, *num_doc, 6,
02527 firstlevel, len_firstlevel, *firstno,
02528 secondlevel, len_secondlevel, *secondno,
02529 thirdlevel, len_thirdlevel, *thirdno,
02530 fourthlevel, len_fourthlevel, *fourthno,
02531 fifthlevel, len_fifthlevel, *fifthno,
02532 sixthlevel, len_sixthlevel, *sixthno,
02533 element, len_element, *elementno );
02534
02535 return(result);
02536 }
02537
02538
02539 int sasa_c_get_element_6th_level_d (int *num_doc,
02540 char *firstlevel,
02541 int *firstno,
02542 char *secondlevel,
02543 int *secondno,
02544 char *thirdlevel,
02545 int *thirdno,
02546 char *fourthlevel,
02547 int *fourthno,
02548 char *fifthlevel,
02549 int *fifthno,
02550 char *sixthlevel,
02551 int *sixthno,
02552 char *element,
02553 int *elementno,
02554 double *xml_element,
02555 int len_firstlevel,
02556 int len_secondlevel,
02557 int len_thirdlevel,
02558 int len_fourthlevel,
02559 int len_fifthlevel,
02560 int len_sixthlevel,
02561 int len_element)
02562 {
02563 int result;
02564
02565 result = sasa_c_get_element_d(
02566 xml_element, *num_doc, 6,
02567 firstlevel, len_firstlevel, *firstno,
02568 secondlevel, len_secondlevel, *secondno,
02569 thirdlevel, len_thirdlevel, *thirdno,
02570 fourthlevel, len_fourthlevel, *fourthno,
02571 fifthlevel, len_fifthlevel, *fifthno,
02572 sixthlevel, len_sixthlevel, *sixthno,
02573 element, len_element, *elementno );
02574
02575 return(result);
02576 }
02577
02578
02579 int sasa_c_get_element_7th_level_c (int *num_doc,
02580 char *firstlevel,
02581 int *firstno,
02582 char *secondlevel,
02583 int *secondno,
02584 char *thirdlevel,
02585 int *thirdno,
02586 char *fourthlevel,
02587 int *fourthno,
02588 char *fifthlevel,
02589 int *fifthno,
02590 char *sixthlevel,
02591 int *sixthno,
02592 char *seventhlevel,
02593 int *seventhno,
02594 char *element,
02595 int *elementno,
02596 char *xml_element,
02597 int *xml_element_length,
02598 int len_firstlevel,
02599 int len_secondlevel,
02600 int len_thirdlevel,
02601 int len_fourthlevel,
02602 int len_fifthlevel,
02603 int len_sixthlevel,
02604 int len_seventhlevel,
02605 int len_element,
02606 int len_xml_element)
02607 {
02608 int result;
02609
02610 result = sasa_c_get_element_c(
02611 xml_element, xml_element_length, *num_doc, 7,
02612 firstlevel, len_firstlevel, *firstno,
02613 secondlevel, len_secondlevel, *secondno,
02614 thirdlevel, len_thirdlevel, *thirdno,
02615 fourthlevel, len_fourthlevel, *fourthno,
02616 fifthlevel, len_fifthlevel, *fifthno,
02617 sixthlevel, len_sixthlevel, *sixthno,
02618 seventhlevel, len_seventhlevel, *seventhno,
02619 element, len_element, *elementno );
02620
02621 return(result);
02622 }
02623
02624
02625 int sasa_c_get_element_7th_level_i (int *num_doc,
02626 char *firstlevel,
02627 int *firstno,
02628 char *secondlevel,
02629 int *secondno,
02630 char *thirdlevel,
02631 int *thirdno,
02632 char *fourthlevel,
02633 int *fourthno,
02634 char *fifthlevel,
02635 int *fifthno,
02636 char *sixthlevel,
02637 int *sixthno,
02638 char *seventhlevel,
02639 int *seventhno,
02640 char *element,
02641 int *elementno,
02642 int *xml_element,
02643 int len_firstlevel,
02644 int len_secondlevel,
02645 int len_thirdlevel,
02646 int len_fourthlevel,
02647 int len_fifthlevel,
02648 int len_sixthlevel,
02649 int len_seventhlevel,
02650 int len_element)
02651 {
02652 int result;
02653
02654 result = sasa_c_get_element_i(
02655 xml_element, *num_doc, 7,
02656 firstlevel, len_firstlevel, *firstno,
02657 secondlevel, len_secondlevel, *secondno,
02658 thirdlevel, len_thirdlevel, *thirdno,
02659 fourthlevel, len_fourthlevel, *fourthno,
02660 fifthlevel, len_fifthlevel, *fifthno,
02661 sixthlevel, len_sixthlevel, *sixthno,
02662 seventhlevel, len_seventhlevel, *seventhno,
02663 element, len_element, *elementno );
02664
02665 return(result);
02666 }
02667
02668 int sasa_c_get_element_7th_level_d (int *num_doc,
02669 char *firstlevel,
02670 int *firstno,
02671 char *secondlevel,
02672 int *secondno,
02673 char *thirdlevel,
02674 int *thirdno,
02675 char *fourthlevel,
02676 int *fourthno,
02677 char *fifthlevel,
02678 int *fifthno,
02679 char *sixthlevel,
02680 int *sixthno,
02681 char *seventhlevel,
02682 int *seventhno,
02683 char *element,
02684 int *elementno,
02685 double *xml_element,
02686 int len_firstlevel,
02687 int len_secondlevel,
02688 int len_thirdlevel,
02689 int len_fourthlevel,
02690 int len_fifthlevel,
02691 int len_sixthlevel,
02692 int len_seventhlevel,
02693 int len_element)
02694 {
02695 int result;
02696
02697 result = sasa_c_get_element_d(
02698 xml_element, *num_doc, 7,
02699 firstlevel, len_firstlevel, *firstno,
02700 secondlevel, len_secondlevel, *secondno,
02701 thirdlevel, len_thirdlevel, *thirdno,
02702 fourthlevel, len_fourthlevel, *fourthno,
02703 fifthlevel, len_fifthlevel, *fifthno,
02704 sixthlevel, len_sixthlevel, *sixthno,
02705 seventhlevel, len_seventhlevel, *seventhno,
02706 element, len_element, *elementno );
02707
02708 return(result);
02709 }
02710
02711 int sasa_c_get_element_8th_level_c (int *num_doc,
02712 char *firstlevel,
02713 int *firstno,
02714 char *secondlevel,
02715 int *secondno,
02716 char *thirdlevel,
02717 int *thirdno,
02718 char *fourthlevel,
02719 int *fourthno,
02720 char *fifthlevel,
02721 int *fifthno,
02722 char *sixthlevel,
02723 int *sixthno,
02724 char *seventhlevel,
02725 int *seventhno,
02726 char *eighthlevel,
02727 int *eighthno,
02728 char *element,
02729 int *elementno,
02730 char *xml_element,
02731 int *xml_element_length,
02732 int len_firstlevel,
02733 int len_secondlevel,
02734 int len_thirdlevel,
02735 int len_fourthlevel,
02736 int len_fifthlevel,
02737 int len_sixthlevel,
02738 int len_seventhlevel,
02739 int len_eighthlevel,
02740 int len_element,
02741 int len_xml_element)
02742 {
02743 int result;
02744
02745 result = sasa_c_get_element_c(
02746 xml_element, xml_element_length, *num_doc, 8,
02747 firstlevel, len_firstlevel, *firstno,
02748 secondlevel, len_secondlevel, *secondno,
02749 thirdlevel, len_thirdlevel, *thirdno,
02750 fourthlevel, len_fourthlevel, *fourthno,
02751 fifthlevel, len_fifthlevel, *fifthno,
02752 sixthlevel, len_sixthlevel, *sixthno,
02753 seventhlevel, len_seventhlevel, *seventhno,
02754 eighthlevel, len_eighthlevel, *eighthno,
02755 element, len_element, *elementno );
02756
02757 return(result);
02758 }
02759
02760
02761 int sasa_c_get_element_8th_level_i (int *num_doc,
02762 char *firstlevel,
02763 int *firstno,
02764 char *secondlevel,
02765 int *secondno,
02766 char *thirdlevel,
02767 int *thirdno,
02768 char *fourthlevel,
02769 int *fourthno,
02770 char *fifthlevel,
02771 int *fifthno,
02772 char *sixthlevel,
02773 int *sixthno,
02774 char *seventhlevel,
02775 int *seventhno,
02776 char *eighthlevel,
02777 int *eighthno,
02778 char *element,
02779 int *elementno,
02780 int *xml_element,
02781 int len_firstlevel,
02782 int len_secondlevel,
02783 int len_thirdlevel,
02784 int len_fourthlevel,
02785 int len_fifthlevel,
02786 int len_sixthlevel,
02787 int len_seventhlevel,
02788 int len_eighthlevel,
02789 int len_element)
02790 {
02791 int result;
02792
02793 result = sasa_c_get_element_i(
02794 xml_element, *num_doc, 8,
02795 firstlevel, len_firstlevel, *firstno,
02796 secondlevel, len_secondlevel, *secondno,
02797 thirdlevel, len_thirdlevel, *thirdno,
02798 fourthlevel, len_fourthlevel, *fourthno,
02799 fifthlevel, len_fifthlevel, *fifthno,
02800 sixthlevel, len_sixthlevel, *sixthno,
02801 seventhlevel, len_seventhlevel, *seventhno,
02802 eighthlevel, len_eighthlevel, *eighthno,
02803 element, len_element, *elementno );
02804
02805 return(result);
02806 }
02807
02808 int sasa_c_get_element_8th_level_d (int *num_doc,
02809 char *firstlevel,
02810 int *firstno,
02811 char *secondlevel,
02812 int *secondno,
02813 char *thirdlevel,
02814 int *thirdno,
02815 char *fourthlevel,
02816 int *fourthno,
02817 char *fifthlevel,
02818 int *fifthno,
02819 char *sixthlevel,
02820 int *sixthno,
02821 char *seventhlevel,
02822 int *seventhno,
02823 char *eighthlevel,
02824 int *eighthno,
02825 char *element,
02826 int *elementno,
02827 double *xml_element,
02828 int len_firstlevel,
02829 int len_secondlevel,
02830 int len_thirdlevel,
02831 int len_fourthlevel,
02832 int len_fifthlevel,
02833 int len_sixthlevel,
02834 int len_seventhlevel,
02835 int len_eighthlevel,
02836 int len_element)
02837 {
02838 int result;
02839
02840 result = sasa_c_get_element_d(
02841 xml_element, *num_doc, 8,
02842 firstlevel, len_firstlevel, *firstno,
02843 secondlevel, len_secondlevel, *secondno,
02844 thirdlevel, len_thirdlevel, *thirdno,
02845 fourthlevel, len_fourthlevel, *fourthno,
02846 fifthlevel, len_fifthlevel, *fifthno,
02847 sixthlevel, len_sixthlevel, *sixthno,
02848 seventhlevel, len_seventhlevel, *seventhno,
02849 eighthlevel, len_eighthlevel, *eighthno,
02850 element, len_element, *elementno );
02851
02852 return(result);
02853 }
02854
02855 int sasa_c_get_element_9th_level_c (int *num_doc,
02856 char *firstlevel,
02857 int *firstno,
02858 char *secondlevel,
02859 int *secondno,
02860 char *thirdlevel,
02861 int *thirdno,
02862 char *fourthlevel,
02863 int *fourthno,
02864 char *fifthlevel,
02865 int *fifthno,
02866 char *sixthlevel,
02867 int *sixthno,
02868 char *seventhlevel,
02869 int *seventhno,
02870 char *eighthlevel,
02871 int *eighthno,
02872 char *ninthlevel,
02873 int *ninthno,
02874 char *element,
02875 int *elementno,
02876 char *xml_element,
02877 int *xml_element_length,
02878 int len_firstlevel,
02879 int len_secondlevel,
02880 int len_thirdlevel,
02881 int len_fourthlevel,
02882 int len_fifthlevel,
02883 int len_sixthlevel,
02884 int len_seventhlevel,
02885 int len_eighthlevel,
02886 int len_ninthlevel,
02887 int len_element,
02888 int len_xml_element)
02889 {
02890 int result;
02891
02892 result = sasa_c_get_element_c(
02893 xml_element, xml_element_length, *num_doc, 9,
02894 firstlevel, len_firstlevel, *firstno,
02895 secondlevel, len_secondlevel, *secondno,
02896 thirdlevel, len_thirdlevel, *thirdno,
02897 fourthlevel, len_fourthlevel, *fourthno,
02898 fifthlevel, len_fifthlevel, *fifthno,
02899 sixthlevel, len_sixthlevel, *sixthno,
02900 seventhlevel, len_seventhlevel, *seventhno,
02901 eighthlevel, len_eighthlevel, *eighthno,
02902 ninthlevel, len_ninthlevel, *ninthno,
02903 element, len_element, *elementno );
02904
02905 return(result);
02906 }
02907
02908
02909 int sasa_c_get_element_9th_level_i (int *num_doc,
02910 char *firstlevel,
02911 int *firstno,
02912 char *secondlevel,
02913 int *secondno,
02914 char *thirdlevel,
02915 int *thirdno,
02916 char *fourthlevel,
02917 int *fourthno,
02918 char *fifthlevel,
02919 int *fifthno,
02920 char *sixthlevel,
02921 int *sixthno,
02922 char *seventhlevel,
02923 int *seventhno,
02924 char *eighthlevel,
02925 int *eighthno,
02926 char *ninthlevel,
02927 int *ninthno,
02928 char *element,
02929 int *elementno,
02930 int *xml_element,
02931 int len_firstlevel,
02932 int len_secondlevel,
02933 int len_thirdlevel,
02934 int len_fourthlevel,
02935 int len_fifthlevel,
02936 int len_sixthlevel,
02937 int len_seventhlevel,
02938 int len_eighthlevel,
02939 int len_ninthlevel,
02940 int len_element)
02941 {
02942 int result;
02943
02944 result = sasa_c_get_element_i(
02945 xml_element, *num_doc, 9,
02946 firstlevel, len_firstlevel, *firstno,
02947 secondlevel, len_secondlevel, *secondno,
02948 thirdlevel, len_thirdlevel, *thirdno,
02949 fourthlevel, len_fourthlevel, *fourthno,
02950 fifthlevel, len_fifthlevel, *fifthno,
02951 sixthlevel, len_sixthlevel, *sixthno,
02952 seventhlevel, len_seventhlevel, *seventhno,
02953 eighthlevel, len_eighthlevel, *eighthno,
02954 ninthlevel, len_ninthlevel, *ninthno,
02955 element, len_element, *elementno );
02956
02957 return(result);
02958 }
02959
02960
02961 int sasa_c_get_element_9th_level_d (int *num_doc,
02962 char *firstlevel,
02963 int *firstno,
02964 char *secondlevel,
02965 int *secondno,
02966 char *thirdlevel,
02967 int *thirdno,
02968 char *fourthlevel,
02969 int *fourthno,
02970 char *fifthlevel,
02971 int *fifthno,
02972 char *sixthlevel,
02973 int *sixthno,
02974 char *seventhlevel,
02975 int *seventhno,
02976 char *eighthlevel,
02977 int *eighthno,
02978 char *ninthlevel,
02979 int *ninthno,
02980 char *element,
02981 int *elementno,
02982 double *xml_element,
02983 int len_firstlevel,
02984 int len_secondlevel,
02985 int len_thirdlevel,
02986 int len_fourthlevel,
02987 int len_fifthlevel,
02988 int len_sixthlevel,
02989 int len_seventhlevel,
02990 int len_eighthlevel,
02991 int len_ninthlevel,
02992 int len_element)
02993 {
02994 int result;
02995
02996 result = sasa_c_get_element_d(
02997 xml_element, *num_doc, 9,
02998 firstlevel, len_firstlevel, *firstno,
02999 secondlevel, len_secondlevel, *secondno,
03000 thirdlevel, len_thirdlevel, *thirdno,
03001 fourthlevel, len_fourthlevel, *fourthno,
03002 fifthlevel, len_fifthlevel, *fifthno,
03003 sixthlevel, len_sixthlevel, *sixthno,
03004 seventhlevel, len_seventhlevel, *seventhno,
03005 eighthlevel, len_eighthlevel, *eighthno,
03006 ninthlevel, len_ninthlevel, *ninthno,
03007 element, len_element, *elementno );
03008
03009 return(result);
03010 }
03011
03012 int sasa_c_get_element_10th_level_c (int *num_doc,
03013 char *firstlevel,
03014 int *firstno,
03015 char *secondlevel,
03016 int *secondno,
03017 char *thirdlevel,
03018 int *thirdno,
03019 char *fourthlevel,
03020 int *fourthno,
03021 char *fifthlevel,
03022 int *fifthno,
03023 char *sixthlevel,
03024 int *sixthno,
03025 char *seventhlevel,
03026 int *seventhno,
03027 char *eighthlevel,
03028 int *eighthno,
03029 char *ninthlevel,
03030 int *ninthno,
03031 char *tenthlevel,
03032 int *tenthno,
03033 char *element,
03034 int *elementno,
03035 char *xml_element,
03036 int *xml_element_length,
03037 int len_firstlevel,
03038 int len_secondlevel,
03039 int len_thirdlevel,
03040 int len_fourthlevel,
03041 int len_fifthlevel,
03042 int len_sixthlevel,
03043 int len_seventhlevel,
03044 int len_eighthlevel,
03045 int len_ninthlevel,
03046 int len_tenthlevel,
03047 int len_element,
03048 int len_xml_element)
03049 {
03050 int result;
03051
03052 result = sasa_c_get_element_c(
03053 xml_element, xml_element_length, *num_doc, 10,
03054 firstlevel, len_firstlevel, *firstno,
03055 secondlevel, len_secondlevel, *secondno,
03056 thirdlevel, len_thirdlevel, *thirdno,
03057 fourthlevel, len_fourthlevel, *fourthno,
03058 fifthlevel, len_fifthlevel, *fifthno,
03059 sixthlevel, len_sixthlevel, *sixthno,
03060 seventhlevel, len_seventhlevel, *seventhno,
03061 eighthlevel, len_eighthlevel, *eighthno,
03062 ninthlevel, len_ninthlevel, *ninthno,
03063 tenthlevel, len_tenthlevel, *tenthno,
03064 element, len_element, *elementno );
03065
03066 return(result);
03067 }
03068
03069
03070 int sasa_c_get_element_10th_level_i (int *num_doc,
03071 char *firstlevel,
03072 int *firstno,
03073 char *secondlevel,
03074 int *secondno,
03075 char *thirdlevel,
03076 int *thirdno,
03077 char *fourthlevel,
03078 int *fourthno,
03079 char *fifthlevel,
03080 int *fifthno,
03081 char *sixthlevel,
03082 int *sixthno,
03083 char *seventhlevel,
03084 int *seventhno,
03085 char *eighthlevel,
03086 int *eighthno,
03087 char *ninthlevel,
03088 int *ninthno,
03089 char *tenthlevel,
03090 int *tenthno,
03091 char *element,
03092 int *elementno,
03093 int *xml_element,
03094 int len_firstlevel,
03095 int len_secondlevel,
03096 int len_thirdlevel,
03097 int len_fourthlevel,
03098 int len_fifthlevel,
03099 int len_sixthlevel,
03100 int len_seventhlevel,
03101 int len_eighthlevel,
03102 int len_ninthlevel,
03103 int len_tenthlevel,
03104 int len_element)
03105 {
03106 int result;
03107
03108 result = sasa_c_get_element_i(
03109 xml_element, *num_doc, 10,
03110 firstlevel, len_firstlevel, *firstno,
03111 secondlevel, len_secondlevel, *secondno,
03112 thirdlevel, len_thirdlevel, *thirdno,
03113 fourthlevel, len_fourthlevel, *fourthno,
03114 fifthlevel, len_fifthlevel, *fifthno,
03115 sixthlevel, len_sixthlevel, *sixthno,
03116 seventhlevel, len_seventhlevel, *seventhno,
03117 eighthlevel, len_eighthlevel, *eighthno,
03118 ninthlevel, len_ninthlevel, *ninthno,
03119 tenthlevel, len_tenthlevel, *tenthno,
03120 element, len_element, *elementno );
03121
03122 return(result);
03123 }
03124
03125
03126 int sasa_c_get_element_10th_level_d (int *num_doc,
03127 char *firstlevel,
03128 int *firstno,
03129 char *secondlevel,
03130 int *secondno,
03131 char *thirdlevel,
03132 int *thirdno,
03133 char *fourthlevel,
03134 int *fourthno,
03135 char *fifthlevel,
03136 int *fifthno,
03137 char *sixthlevel,
03138 int *sixthno,
03139 char *seventhlevel,
03140 int *seventhno,
03141 char *eighthlevel,
03142 int *eighthno,
03143 char *ninthlevel,
03144 int *ninthno,
03145 char *tenthlevel,
03146 int *tenthno,
03147 char *element,
03148 int *elementno,
03149 double *xml_element,
03150 int len_firstlevel,
03151 int len_secondlevel,
03152 int len_thirdlevel,
03153 int len_fourthlevel,
03154 int len_fifthlevel,
03155 int len_sixthlevel,
03156 int len_seventhlevel,
03157 int len_eighthlevel,
03158 int len_ninthlevel,
03159 int len_tenthlevel,
03160 int len_element)
03161 {
03162 int result;
03163
03164 result = sasa_c_get_element_d(
03165 xml_element, *num_doc, 10,
03166 firstlevel, len_firstlevel, *firstno,
03167 secondlevel, len_secondlevel, *secondno,
03168 thirdlevel, len_thirdlevel, *thirdno,
03169 fourthlevel, len_fourthlevel, *fourthno,
03170 fifthlevel, len_fifthlevel, *fifthno,
03171 sixthlevel, len_sixthlevel, *sixthno,
03172 seventhlevel, len_seventhlevel, *seventhno,
03173 eighthlevel, len_eighthlevel, *eighthno,
03174 ninthlevel, len_ninthlevel, *ninthno,
03175 tenthlevel, len_tenthlevel, *tenthno,
03176 element, len_element, *elementno );
03177
03178 return(result);
03179 }