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 file_name[*len_file_name] = 0;
00536
00537 #ifdef DEBUG
00538 (void)printf("sasa_c_read_file : open file : %s\n", file_name);
00539 #endif
00540
00541 doc = sasaOpenXml ((const char*)file_name);
00542
00543 free(file_name);
00544
00545 return(doc);
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
00615 static int sasa_c_get_number( int *xml_number,
00616 int num_doc,
00617 size_t nodes_count,
00618 ... )
00619 {
00620 va_list nodes;
00621 int rc=EXIT_SUCCESS;
00622 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00623 int xpath_str_len;
00624 int number;
00625
00626 ASSERT( xml_number != NULL );
00627 ASSERT( nodes_count > 0 );
00628
00629 va_start( nodes, nodes_count );
00630
00631
00632 xpath_str_len = sasa_c_build_xpath_str(
00633 xpath_str,
00634 XPATH_START_CHILD_OF_CURRENT_NODE,
00635 XPATH_NODE_TYPE_ELEMENT,
00636 nodes_count - 1,
00637 nodes );
00638
00639 va_end( nodes );
00640
00641 if ( xpath_str_len > 0 )
00642 {
00643 #ifdef DEBUG
00644 printf("sasa_c_get_number (level %d) : xpath input : %s\n",
00645 nodes_count, xpath_str);
00646 fflush(stdout);
00647 #endif
00648
00649 rc=getXmlNodeCount (num_doc, xpath_str, &number);
00650
00651 if (rc != EXIT_FAILURE)
00652 rc = EXIT_SUCCESS;
00653
00654 *xml_number=number;
00655
00656 #ifdef DEBUG
00657 printf("sasa_c_get_number (level %d) : number : %d\n",
00658 nodes_count, *xml_number);
00659 puts("--------------------------------------------------------");
00660 #endif
00661 }
00662 else
00663 {
00664 rc = EXIT_FAILURE;
00665
00666 #ifdef DEBUG
00667 printf("sasa_c_get_number (level %d) : ERROR : building xpath string\n",
00668 nodes_count );
00669 printf("sasa_c_get_number (level %d) : return code %d\n",
00670 nodes_count, xpath_str_len );
00671 puts("--------------------------------------------------------");
00672 #endif
00673 }
00674
00675 return (rc);
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
00746
00747
00748
00749 static int sasa_c_get_attribute( char *xml_attribute,
00750 int *xml_attribute_length,
00751 int num_doc,
00752 size_t parent_nodes_count,
00753 ... )
00754 {
00755 va_list nodes;
00756 int rc=EXIT_SUCCESS;
00757 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00758 int xpath_str_len;
00759 char *att=NULL;
00760
00761 ASSERT( xml_attribute != NULL );
00762 ASSERT( xml_attribute_length != NULL );
00763 ASSERT( parent_nodes_count >= 0 );
00764
00765 va_start( nodes, parent_nodes_count );
00766
00767
00768 xpath_str_len = sasa_c_build_xpath_str(
00769 xpath_str,
00770 XPATH_START_DESCENDANT_OF_ROOT_NODE,
00771 XPATH_NODE_TYPE_ATTRIBUTE,
00772 parent_nodes_count,
00773 nodes );
00774
00775 va_end( nodes );
00776
00777
00778 #ifdef DEBUG
00779 printf("sasa_c_get_attribute (level %d) : xpath input : %s\n",
00780 parent_nodes_count, xpath_str);
00781 #endif
00782
00783 if ( xpath_str_len > 0 )
00784 {
00785
00786 rc = getXmlInfo(num_doc, xpath_str, &att);
00787 if (rc == EXIT_FOUND)
00788 {
00789 (void)strcpy (xml_attribute, (const char*)att );
00790
00791
00792 *xml_attribute_length = strlen(xml_attribute);
00793 xml_attribute[strlen (xml_attribute)]=' ';
00794 rc = EXIT_SUCCESS;
00795
00796 #ifdef DEBUG
00797 printf("sasa_c_get_attribute (level %d) : xml_attribute : %s\n",
00798 parent_nodes_count, att);
00799 #endif
00800 }
00801 else if (rc == EXIT_NOTFOUND)
00802 {
00803 int i;
00804 for(i=0;i < 256; i++) *(xml_attribute+i)=' ';
00805 *xml_attribute_length = 0;
00806 rc = EXIT_SUCCESS;
00807 #ifdef DEBUG
00808 printf("sasa_c_get_attribute (level %d) : not found\n",
00809 parent_nodes_count);
00810 #endif
00811 }
00812 if (att != NULL) free ((void*)att);
00813 }
00814 else
00815 {
00816 rc = EXIT_FAILURE;
00817
00818 #ifdef DEBUG
00819 printf("sasa_c_get_attribute (level %d) : ERROR : building xpath string\n",
00820 parent_nodes_count );
00821 printf("sasa_c_get_attribute (level %d) : return code %d\n",
00822 parent_nodes_count, xpath_str_len );
00823 #endif
00824 }
00825
00826 #ifdef DEBUG
00827 puts("--------------------------------------------------------");
00828 #endif
00829
00830 return (rc);
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
00890
00891
00892
00893
00894
00895
00896
00897
00898
00899
00900
00901
00902
00903
00904
00905
00906
00907
00908
00909
00910 static int sasa_c_get_element_c( char *xml_element,
00911 int *xml_element_length,
00912 int num_doc,
00913 size_t parent_nodes_count,
00914 ... )
00915 {
00916 va_list nodes;
00917 int rc=EXIT_SUCCESS;
00918 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
00919 int xpath_str_len;
00920 char *elt=NULL;
00921
00922 ASSERT( xml_element != NULL );
00923 ASSERT( xml_element_length != NULL );
00924
00925 va_start( nodes, parent_nodes_count );
00926
00927 if (parent_nodes_count == (size_t)(-1))
00928 {
00929
00930 const char *given_xpath = va_arg( nodes, char * );
00931 int given_xpath_len = va_arg( nodes, int );
00932
00933 xpath_str_len = (XPATH_STR_LEN_MAX < given_xpath_len) ? XPATH_STR_LEN_MAX : given_xpath_len ;
00934 strncpy (xpath_str, given_xpath, xpath_str_len);
00935 xpath_str[xpath_str_len] = 0;
00936 }
00937 else
00938 {
00939
00940 xpath_str_len = sasa_c_build_xpath_str(
00941 xpath_str,
00942 XPATH_START_DESCENDANT_OF_ROOT_NODE,
00943 XPATH_NODE_TYPE_ELEMENT,
00944 parent_nodes_count,
00945 nodes );
00946 }
00947
00948 va_end( nodes );
00949
00950 if ( xpath_str_len > 0 )
00951 {
00952 #ifdef DEBUG
00953 printf("sasa_c_get_element_c (level %d) : xpath input : %s\n",
00954 parent_nodes_count, xpath_str);
00955 #endif
00956
00957 rc=getXmlInfo (num_doc, xpath_str, &elt);
00958 if (rc == EXIT_FOUND)
00959 {
00960 int length = 0;
00961
00962 if (elt != NULL)
00963 {
00964
00965 char *target = xml_element;
00966 char *source;
00967 for (source = elt; *source != 0; source += 1)
00968 {
00969
00970 if (*source >= 0x20 && *source < 0x7F)
00971 {
00972 *target++ = *source;
00973 length += 1;
00974 }
00975 }
00976 }
00977 else
00978 {
00979 length = 0;
00980 }
00981 #ifdef DEBUG
00982 xml_element[length] = 0;
00983 printf("sasa_c_get_element_c (level %d) : xml_element : %s\n",
00984 parent_nodes_count, xml_element);
00985 #endif
00986 *xml_element_length = length;
00987 xml_element[length]=' ';
00988 rc = EXIT_SUCCESS;
00989 }
00990 else if (rc == EXIT_NOTFOUND)
00991 {
00992 #ifdef DEBUG
00993 printf("sasa_c_get_element_c (level %d) : element NOT found\n",
00994 parent_nodes_count);
00995 #endif
00996 xml_element[0] = ' ';
00997 *xml_element_length = 0;
00998 rc = EXIT_SUCCESS;
00999 }
01000 if (elt != NULL) free ((void*)elt);
01001 #ifdef DEBUG
01002 puts("--------------------------------------------------------");
01003 #endif
01004
01005 }
01006 else
01007 {
01008 rc = EXIT_FAILURE;
01009
01010 #ifdef DEBUG
01011 printf("sasa_c_get_element_c (level %d) : ERROR : building xpath string\n",
01012 parent_nodes_count );
01013 printf("sasa_c_get_element_c (level %d) : return code %d\n",
01014 parent_nodes_count, xpath_str_len );
01015 puts("--------------------------------------------------------");
01016 #endif
01017 }
01018
01019 return (rc);
01020
01021 }
01022
01023
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034
01035
01036
01037
01038
01039
01040
01041
01042
01043
01044
01045
01046
01047
01048
01049
01050
01051
01052
01053
01054
01055
01056
01057
01058
01059
01060
01061
01062
01063
01064
01065
01066
01067
01068
01069
01070
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081
01082
01083
01084
01085
01086
01087
01088
01089
01090
01091
01092
01093
01094
01095
01096
01097
01098
01099
01100 static int sasa_c_get_element_i( int *xml_element,
01101 int num_doc,
01102 size_t parent_nodes_count,
01103 ... )
01104 {
01105 va_list nodes;
01106 int rc=EXIT_SUCCESS;
01107 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
01108 int xpath_str_len;
01109 char *elt=NULL;
01110
01111 ASSERT( xml_element != NULL );
01112
01113 va_start( nodes, parent_nodes_count );
01114
01115 if (parent_nodes_count == (size_t)(-1))
01116 {
01117
01118 const char *given_xpath = va_arg( nodes, char * );
01119 int given_xpath_len = va_arg( nodes, int );
01120
01121 xpath_str_len = (XPATH_STR_LEN_MAX < given_xpath_len) ? XPATH_STR_LEN_MAX : given_xpath_len ;
01122 strncpy (xpath_str, given_xpath, xpath_str_len);
01123 xpath_str[xpath_str_len] = 0;
01124 }
01125 else
01126 {
01127
01128 xpath_str_len = sasa_c_build_xpath_str(
01129 xpath_str,
01130 XPATH_START_DESCENDANT_OF_ROOT_NODE,
01131 XPATH_NODE_TYPE_ELEMENT,
01132 parent_nodes_count,
01133 nodes );
01134 }
01135
01136 va_end( nodes );
01137
01138 if ( xpath_str_len > 0 )
01139 {
01140
01141 rc=getXmlInfo (num_doc, xpath_str, &elt);
01142 if (rc == EXIT_FOUND)
01143 {
01144 *xml_element = atoi(elt);
01145 rc = EXIT_SUCCESS;
01146 }
01147 else if (rc == EXIT_NOTFOUND)
01148 {
01149 *xml_element = PSMILE_UNDEF;
01150 rc = EXIT_SUCCESS;
01151 }
01152 free ((void*)elt);
01153
01154 #ifdef DEBUG
01155 printf("sasa_c_get_element_i (level %d) : xpath input : %s\n",
01156 parent_nodes_count, xpath_str);
01157 printf("sasa_c_get_element_i (level %d) : xml_element : %d\n",
01158 parent_nodes_count, *xml_element);
01159 puts("--------------------------------------------------------");
01160 #endif
01161 }
01162 else
01163 {
01164 rc = EXIT_FAILURE;
01165
01166 #ifdef DEBUG
01167 printf("sasa_c_get_element_i (level %d) : ERROR : building xpath string\n",
01168 parent_nodes_count );
01169 printf("sasa_c_get_element_i (level %d) : return code %d\n",
01170 parent_nodes_count, xpath_str_len );
01171 puts("--------------------------------------------------------");
01172 #endif
01173 }
01174
01175 return (rc);
01176
01177 }
01178
01179
01180
01181
01182
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192
01193
01194
01195
01196
01197
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218
01219
01220
01221
01222
01223
01224
01225
01226
01227
01228
01229
01230
01231
01232
01233
01234
01235
01236
01237
01238
01239
01240
01241
01242
01243
01244
01245 static int sasa_c_get_element_d( double *xml_element,
01246 int num_doc,
01247 size_t parent_nodes_count,
01248 ... )
01249 {
01250 va_list nodes;
01251 int rc=EXIT_SUCCESS;
01252 char xpath_str[ XPATH_STR_LEN_MAX + 1 ];
01253 int xpath_str_len;
01254 char *elt=NULL;
01255
01256 ASSERT( xml_element != NULL );
01257 ASSERT( parent_nodes_count >= 0 );
01258
01259 va_start( nodes, parent_nodes_count );
01260
01261
01262 xpath_str_len = sasa_c_build_xpath_str(
01263 xpath_str,
01264 XPATH_START_DESCENDANT_OF_ROOT_NODE,
01265 XPATH_NODE_TYPE_ELEMENT,
01266 parent_nodes_count,
01267 nodes );
01268
01269 va_end( nodes );
01270
01271 if ( xpath_str_len > 0 )
01272 {
01273
01274 rc=getXmlInfo (num_doc, xpath_str, &elt);
01275 if (rc == EXIT_FOUND)
01276 {
01277 sscanf(elt,"%lf",xml_element);
01278 rc = EXIT_SUCCESS;
01279 }
01280 else if (rc == EXIT_NOTFOUND)
01281 {
01282 *xml_element = PSMILE_UNDEF;
01283 rc = EXIT_SUCCESS;
01284 }
01285 free ((void*)elt);
01286
01287 #ifdef DEBUG
01288 printf("sasa_c_get_element_d (level %d) : xpath input : %s\n",
01289 parent_nodes_count, xpath_str);
01290 printf("sasa_c_get_element_d (level %d) : xml_element : %lf\n",
01291 parent_nodes_count, *xml_element);
01292 puts("--------------------------------------------------------");
01293 #endif
01294 }
01295 else
01296 {
01297 rc = EXIT_FAILURE;
01298
01299 #ifdef DEBUG
01300 printf("sasa_c_get_element_d (level %d) : ERROR : building xpath string\n",
01301 parent_nodes_count );
01302 printf("sasa_c_get_element_d (level %d) : return code %d\n",
01303 parent_nodes_count, xpath_str_len );
01304 puts("--------------------------------------------------------");
01305 #endif
01306 }
01307
01308 return (rc);
01309
01310 }
01311
01312
01313
01314
01315
01316
01317
01318
01319
01320
01321
01322
01323
01324
01325
01326
01327
01328
01329
01330
01331
01332
01333
01334
01335
01336
01337
01338
01339
01340
01341
01342
01343
01344
01345
01346
01347
01348
01349
01350
01351
01352
01353
01354
01355
01356
01357
01358
01359
01360
01361
01362
01363
01364
01365
01366
01367
01368
01369
01370
01371
01372
01373
01374
01375
01376
01377
01378
01379
01380
01381
01382
01383
01384
01385
01386 static int sasa_c_build_xpath_str( char *xpath_str,
01387 XPathStartType xpath_start_type,
01388 XPathNodeType xpath_target_node_type,
01389 size_t parent_nodes_count,
01390 va_list xpath_nodes )
01391 {
01392 size_t elements_loop;
01393 int xpath_str_len, chars_count;
01394 char format_str[ 32 ];
01395
01396 ASSERT( xpath_str != NULL );
01397 ASSERT( xpath_start_type >= XPATH_START_FIRST
01398 && xpath_start_type <= XPATH_START_LAST );
01399 ASSERT( xpath_target_node_type >= XPATH_NODE_TYPE_FIRST
01400 && xpath_target_node_type <= XPATH_NODE_TYPE_LAST );
01401 ASSERT( parent_nodes_count >= 0 );
01402
01403
01404
01405 switch ( xpath_start_type )
01406 {
01407 case XPATH_START_CHILD_OF_ROOT_NODE:
01408 {
01409 strcpy( xpath_str, "/" );
01410 }
01411 break;
01412 case XPATH_START_DESCENDANT_OF_ROOT_NODE:
01413 {
01414 strcpy( xpath_str, "//" );
01415 }
01416 break;
01417 case XPATH_START_CHILD_OF_CURRENT_NODE:
01418 {
01419 xpath_str[ 0 ] = '\0';
01420 }
01421 break;
01422 default:
01423 {
01424 ASSERT( 0 );
01425 }
01426 break;
01427 }
01428 xpath_str_len = chars_count = strlen( xpath_str );
01429
01430
01431
01432 elements_loop = 0;
01433 while ( elements_loop < parent_nodes_count && chars_count != -1 )
01434 {
01435 const char *element_name = va_arg( xpath_nodes, char * );
01436 int element_name_len = va_arg( xpath_nodes, int );
01437 int element_count = va_arg( xpath_nodes, int );
01438
01439
01440
01441
01442 if ( element_count == 0 )
01443 {
01444 sprintf( format_str, "%%.%ds/", element_name_len );
01445 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01446 element_name );
01447 }
01448 else
01449 {
01450 sprintf( format_str, "%%.%ds[%%d]/", element_name_len );
01451 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01452 element_name, element_count );
01453 }
01454
01455 xpath_str_len += chars_count;
01456 elements_loop++;
01457 }
01458
01459
01460
01461 if ( chars_count != -1 )
01462 {
01463 switch ( xpath_target_node_type )
01464 {
01465 case XPATH_NODE_TYPE_ATTRIBUTE:
01466 {
01467 const char *attribute_name = va_arg( xpath_nodes, char * );
01468 int attribute_name_len = va_arg( xpath_nodes, int );
01469
01470
01471
01472 sprintf( format_str, "@%%.%ds", attribute_name_len );
01473 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01474 attribute_name );
01475 }
01476 break;
01477 case XPATH_NODE_TYPE_ELEMENT:
01478 {
01479 const char *element_name = va_arg( xpath_nodes, char * );
01480 int element_name_len = va_arg( xpath_nodes, int );
01481 int element_count = va_arg( xpath_nodes, int );
01482
01483 if ( element_count == 0 )
01484 {
01485 sprintf( format_str, "%%.%ds", element_name_len );
01486 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01487 element_name );
01488 }
01489 else
01490 {
01491 sprintf( format_str, "%%.%ds[%%d]", element_name_len );
01492 chars_count = sprintf( xpath_str + xpath_str_len, format_str,
01493 element_name, element_count );
01494 }
01495 }
01496 break;
01497 default:
01498 {
01499 ASSERT( 0 );
01500 }
01501 break;
01502 }
01503
01504 xpath_str_len += chars_count;
01505 }
01506
01507 return ( chars_count != -1 ? xpath_str_len : chars_count );
01508
01509 }
01510
01511
01512
01513
01514
01515
01516
01517
01518
01519
01520
01521
01522
01523
01524
01525
01526
01527
01528
01529
01530
01531
01532
01533
01534
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544
01545
01546
01547
01548 int
01549 sasa_c_close (int *num_doc)
01550 {
01551
01552 return (sasaCloseXml (*num_doc));
01553
01554 }
01555
01556
01557
01558
01559
01560
01561 int sasa_c_convert_char2int (char *charcode, int len_charcode)
01562 {
01563 int result;
01564 char *name;
01565
01566 name = (char *) calloc(len_charcode+1, sizeof(char));
01567 strncpy(name,charcode,len_charcode);
01568
01569 result = __sasa_c_convert_char2int (name, len_charcode);
01570
01571 free(name);
01572
01573 return(result);
01574 }
01575
01576
01577
01578 int sasa_c_get_number_1st_level ( int *num_doc,
01579 char *firstlevel,
01580 int *xml_number,
01581 int len_firstlevel)
01582 {
01583 int result;
01584
01585 result = sasa_c_get_number(
01586 xml_number, *num_doc, 1,
01587 firstlevel, len_firstlevel, 0 );
01588
01589 return(result);
01590 }
01591
01592
01593 int sasa_c_get_number_2nd_level (int *num_doc,
01594 char *firstlevel,
01595 int *firstno,
01596 char *secondlevel,
01597 int *xml_number,
01598 int len_firstlevel,
01599 int len_secondlevel)
01600 {
01601 int result;
01602
01603 result = sasa_c_get_number(
01604 xml_number, *num_doc, 2,
01605 firstlevel, len_firstlevel, *firstno,
01606 secondlevel, len_secondlevel, 0 );
01607
01608 return(result);
01609 }
01610
01611
01612 int sasa_c_get_number_3rd_level (int *num_doc,
01613 char *firstlevel,
01614 int *firstno,
01615 char *secondlevel,
01616 int *secondno,
01617 char *thirdlevel,
01618 int *xml_number,
01619 int len_firstlevel,
01620 int len_secondlevel,
01621 int len_thirdlevel)
01622 {
01623 int result;
01624
01625 result = sasa_c_get_number(
01626 xml_number, *num_doc, 3,
01627 firstlevel, len_firstlevel, *firstno,
01628 secondlevel, len_secondlevel, *secondno,
01629 thirdlevel, len_thirdlevel, 0 );
01630
01631 return(result);
01632 }
01633
01634
01635 int sasa_c_get_number_4th_level (int *num_doc,
01636 char *firstlevel,
01637 int *firstno,
01638 char *secondlevel,
01639 int *secondno,
01640 char *thirdlevel,
01641 int *thirdno,
01642 char *fourthlevel,
01643 int *xml_number,
01644 int len_firstlevel,
01645 int len_secondlevel,
01646 int len_thirdlevel,
01647 int len_fourthlevel)
01648 {
01649 int result;
01650
01651 result = sasa_c_get_number(
01652 xml_number, *num_doc, 4,
01653 firstlevel, len_firstlevel, *firstno,
01654 secondlevel, len_secondlevel, *secondno,
01655 thirdlevel, len_thirdlevel, *thirdno,
01656 fourthlevel, len_fourthlevel, 0 );
01657
01658 return(result);
01659 }
01660
01661
01662 int sasa_c_get_number_5th_level (int *num_doc,
01663 char *firstlevel,
01664 int *firstno,
01665 char *secondlevel,
01666 int *secondno,
01667 char *thirdlevel,
01668 int *thirdno,
01669 char *fourthlevel,
01670 int *fourthno,
01671 char *fifthlevel,
01672 int *xml_number,
01673 int len_firstlevel,
01674 int len_secondlevel,
01675 int len_thirdlevel,
01676 int len_fourthlevel,
01677 int len_fifthlevel)
01678 {
01679 int result;
01680
01681 result = sasa_c_get_number(
01682 xml_number, *num_doc, 5,
01683 firstlevel, len_firstlevel, *firstno,
01684 secondlevel, len_secondlevel, *secondno,
01685 thirdlevel, len_thirdlevel, *thirdno,
01686 fourthlevel, len_fourthlevel, *fourthno,
01687 fifthlevel, len_fifthlevel, 0 );
01688
01689 return(result);
01690 }
01691
01692
01693 int sasa_c_get_number_6th_level (int *num_doc,
01694 char *firstlevel,
01695 int *firstno,
01696 char *secondlevel,
01697 int *secondno,
01698 char *thirdlevel,
01699 int *thirdno,
01700 char *fourthlevel,
01701 int *fourthno,
01702 char *fifthlevel,
01703 int *fifthno,
01704 char *sixthlevel,
01705 int *xml_number,
01706 int len_firstlevel,
01707 int len_secondlevel,
01708 int len_thirdlevel,
01709 int len_fourthlevel,
01710 int len_fifthlevel,
01711 int len_sixthlevel)
01712 {
01713 int result;
01714
01715 result = sasa_c_get_number(
01716 xml_number, *num_doc, 6,
01717 firstlevel, len_firstlevel, *firstno,
01718 secondlevel, len_secondlevel, *secondno,
01719 thirdlevel, len_thirdlevel, *thirdno,
01720 fourthlevel, len_fourthlevel, *fourthno,
01721 fifthlevel, len_fifthlevel, *fifthno,
01722 sixthlevel, len_sixthlevel, 0 );
01723
01724 return(result);
01725 }
01726
01727
01728 int sasa_c_get_number_7th_level (int *num_doc,
01729 char *firstlevel,
01730 int *firstno,
01731 char *secondlevel,
01732 int *secondno,
01733 char *thirdlevel,
01734 int *thirdno,
01735 char *fourthlevel,
01736 int *fourthno,
01737 char *fifthlevel,
01738 int *fifthno,
01739 char *sixthlevel,
01740 int *sixthno,
01741 char *seventhlevel,
01742 int *xml_number,
01743 int len_firstlevel,
01744 int len_secondlevel,
01745 int len_thirdlevel,
01746 int len_fourthlevel,
01747 int len_fifthlevel,
01748 int len_sixthlevel,
01749 int len_seventhlevel)
01750 {
01751 int result;
01752
01753 result = sasa_c_get_number(
01754 xml_number, *num_doc, 7,
01755 firstlevel, len_firstlevel, *firstno,
01756 secondlevel, len_secondlevel, *secondno,
01757 thirdlevel, len_thirdlevel, *thirdno,
01758 fourthlevel, len_fourthlevel, *fourthno,
01759 fifthlevel, len_fifthlevel, *fifthno,
01760 sixthlevel, len_sixthlevel, *sixthno,
01761 seventhlevel, len_seventhlevel, 0 );
01762
01763 return(result);
01764 }
01765
01766
01767 int sasa_c_get_number_8th_level (int *num_doc,
01768 char *firstlevel,
01769 int *firstno,
01770 char *secondlevel,
01771 int *secondno,
01772 char *thirdlevel,
01773 int *thirdno,
01774 char *fourthlevel,
01775 int *fourthno,
01776 char *fifthlevel,
01777 int *fifthno,
01778 char *sixthlevel,
01779 int *sixthno,
01780 char *seventhlevel,
01781 int *seventhno,
01782 char *eighthlevel,
01783 int *xml_number,
01784 int len_firstlevel,
01785 int len_secondlevel,
01786 int len_thirdlevel,
01787 int len_fourthlevel,
01788 int len_fifthlevel,
01789 int len_sixthlevel,
01790 int len_seventhlevel,
01791 int len_eighthlevel)
01792 {
01793 int result;
01794
01795 result = sasa_c_get_number(
01796 xml_number, *num_doc, 8,
01797 firstlevel, len_firstlevel, *firstno,
01798 secondlevel, len_secondlevel, *secondno,
01799 thirdlevel, len_thirdlevel, *thirdno,
01800 fourthlevel, len_fourthlevel, *fourthno,
01801 fifthlevel, len_fifthlevel, *fifthno,
01802 sixthlevel, len_sixthlevel, *sixthno,
01803 seventhlevel, len_seventhlevel, *seventhno,
01804 eighthlevel, len_eighthlevel, 0 );
01805
01806 return(result);
01807 }
01808
01809
01810 int sasa_c_get_number_9th_level (int *num_doc,
01811 char *firstlevel,
01812 int *firstno,
01813 char *secondlevel,
01814 int *secondno,
01815 char *thirdlevel,
01816 int *thirdno,
01817 char *fourthlevel,
01818 int *fourthno,
01819 char *fifthlevel,
01820 int *fifthno,
01821 char *sixthlevel,
01822 int *sixthno,
01823 char *seventhlevel,
01824 int *seventhno,
01825 char *eighthlevel,
01826 int *eighthno,
01827 char *ninthlevel,
01828 int *xml_number,
01829 int len_firstlevel,
01830 int len_secondlevel,
01831 int len_thirdlevel,
01832 int len_fourthlevel,
01833 int len_fifthlevel,
01834 int len_sixthlevel,
01835 int len_seventhlevel,
01836 int len_eighthlevel,
01837 int len_ninthlevel)
01838 {
01839 int result;
01840
01841 result = sasa_c_get_number(
01842 xml_number, *num_doc, 9,
01843 firstlevel, len_firstlevel, *firstno,
01844 secondlevel, len_secondlevel, *secondno,
01845 thirdlevel, len_thirdlevel, *thirdno,
01846 fourthlevel, len_fourthlevel, *fourthno,
01847 fifthlevel, len_fifthlevel, *fifthno,
01848 sixthlevel, len_sixthlevel, *sixthno,
01849 seventhlevel, len_seventhlevel, *seventhno,
01850 eighthlevel, len_eighthlevel, *eighthno,
01851 ninthlevel, len_ninthlevel, 0 );
01852
01853 return(result);
01854 }
01855
01856 int sasa_c_get_number_10th_level (int *num_doc,
01857 char *firstlevel,
01858 int *firstno,
01859 char *secondlevel,
01860 int *secondno,
01861 char *thirdlevel,
01862 int *thirdno,
01863 char *fourthlevel,
01864 int *fourthno,
01865 char *fifthlevel,
01866 int *fifthno,
01867 char *sixthlevel,
01868 int *sixthno,
01869 char *seventhlevel,
01870 int *seventhno,
01871 char *eighthlevel,
01872 int *eighthno,
01873 char *ninthlevel,
01874 int *ninthno,
01875 char *tenthlevel,
01876 int *xml_number,
01877 int len_firstlevel,
01878 int len_secondlevel,
01879 int len_thirdlevel,
01880 int len_fourthlevel,
01881 int len_fifthlevel,
01882 int len_sixthlevel,
01883 int len_seventhlevel,
01884 int len_eighthlevel,
01885 int len_ninthlevel,
01886 int len_tenthlevel)
01887 {
01888 int result;
01889
01890 result = sasa_c_get_number(
01891 xml_number, *num_doc, 10,
01892 firstlevel, len_firstlevel, *firstno,
01893 secondlevel, len_secondlevel, *secondno,
01894 thirdlevel, len_thirdlevel, *thirdno,
01895 fourthlevel, len_fourthlevel, *fourthno,
01896 fifthlevel, len_fifthlevel, *fifthno,
01897 sixthlevel, len_sixthlevel, *sixthno,
01898 seventhlevel, len_seventhlevel, *seventhno,
01899 eighthlevel, len_eighthlevel, *eighthno,
01900 ninthlevel, len_ninthlevel, *ninthno,
01901 tenthlevel, len_tenthlevel, 0 );
01902
01903 return(result);
01904 }
01905
01906 int sasa_c_get_number_11th_level (int *num_doc,
01907 char *firstlevel,
01908 int *firstno,
01909 char *secondlevel,
01910 int *secondno,
01911 char *thirdlevel,
01912 int *thirdno,
01913 char *fourthlevel,
01914 int *fourthno,
01915 char *fifthlevel,
01916 int *fifthno,
01917 char *sixthlevel,
01918 int *sixthno,
01919 char *seventhlevel,
01920 int *seventhno,
01921 char *eighthlevel,
01922 int *eighthno,
01923 char *ninthlevel,
01924 int *ninthno,
01925 char *tenthlevel,
01926 int *tenthno,
01927 char *elethlevel,
01928 int *xml_number,
01929 int len_firstlevel,
01930 int len_secondlevel,
01931 int len_thirdlevel,
01932 int len_fourthlevel,
01933 int len_fifthlevel,
01934 int len_sixthlevel,
01935 int len_seventhlevel,
01936 int len_eighthlevel,
01937 int len_ninthlevel,
01938 int len_tenthlevel,
01939 int len_elethlevel )
01940 {
01941 int result;
01942
01943 result = sasa_c_get_number(
01944 xml_number, *num_doc, 11,
01945 firstlevel, len_firstlevel, *firstno,
01946 secondlevel, len_secondlevel, *secondno,
01947 thirdlevel, len_thirdlevel, *thirdno,
01948 fourthlevel, len_fourthlevel, *fourthno,
01949 fifthlevel, len_fifthlevel, *fifthno,
01950 sixthlevel, len_sixthlevel, *sixthno,
01951 seventhlevel, len_seventhlevel, *seventhno,
01952 eighthlevel, len_eighthlevel, *eighthno,
01953 ninthlevel, len_ninthlevel, *ninthno,
01954 tenthlevel, len_tenthlevel, *tenthno,
01955 elethlevel, len_elethlevel, 0 );
01956
01957 return(result);
01958 }
01959
01960
01961
01962 int sasa_c_get_attri_1st_level (int *num_doc,
01963 char *firstlevel,
01964 int *firstno,
01965 char *attribute,
01966 char *xml_attribute,
01967 int *xml_attribute_length,
01968 int len_firstlevel,
01969 int len_attribute,
01970 int len_xml_attribute)
01971 {
01972 int result;
01973
01974 result = sasa_c_get_attribute(
01975 xml_attribute, xml_attribute_length, *num_doc, 1,
01976 firstlevel, len_firstlevel, *firstno,
01977 attribute, len_attribute );
01978
01979 return(result);
01980 }
01981
01982
01983 int sasa_c_get_attri_2nd_level (int *num_doc,
01984 char *firstlevel,
01985 int *firstno,
01986 char *secondlevel,
01987 int *secondno,
01988 char *attribute,
01989 char *xml_attribute,
01990 int *xml_attribute_length,
01991 int len_firstlevel,
01992 int len_secondlevel,
01993 int len_attribute,
01994 int len_xml_attribute)
01995 {
01996 int result;
01997
01998 result = sasa_c_get_attribute(
01999 xml_attribute, xml_attribute_length, *num_doc, 2,
02000 firstlevel, len_firstlevel, *firstno,
02001 secondlevel, len_secondlevel, *secondno,
02002 attribute, len_attribute );
02003
02004 return(result);
02005 }
02006
02007
02008 int sasa_c_get_attri_3rd_level (int *num_doc,
02009 char *firstlevel,
02010 int *firstno,
02011 char *secondlevel,
02012 int *secondno,
02013 char *thirdlevel,
02014 int *thirdno,
02015 char *attribute,
02016 char *xml_attribute,
02017 int *xml_attribute_length,
02018 int len_firstlevel,
02019 int len_secondlevel,
02020 int len_thirdlevel,
02021 int len_attribute,
02022 int len_xml_attribute)
02023 {
02024 int result;
02025
02026 result = sasa_c_get_attribute(
02027 xml_attribute, xml_attribute_length, *num_doc, 3,
02028 firstlevel, len_firstlevel, *firstno,
02029 secondlevel, len_secondlevel, *secondno,
02030 thirdlevel, len_thirdlevel, *thirdno,
02031 attribute, len_attribute );
02032
02033 return(result);
02034 }
02035
02036
02037 int sasa_c_get_attri_4th_level (int *num_doc,
02038 char *firstlevel,
02039 int *firstno,
02040 char *secondlevel,
02041 int *secondno,
02042 char *thirdlevel,
02043 int *thirdno,
02044 char *fourthlevel,
02045 int *fourthno,
02046 char *attribute,
02047 char *xml_attribute,
02048 int *xml_attribute_length,
02049 int len_firstlevel,
02050 int len_secondlevel,
02051 int len_thirdlevel,
02052 int len_fourthlevel,
02053 int len_attribute,
02054 int len_xml_attribute)
02055 {
02056 int result;
02057
02058 result = sasa_c_get_attribute(
02059 xml_attribute, xml_attribute_length, *num_doc, 4,
02060 firstlevel, len_firstlevel, *firstno,
02061 secondlevel, len_secondlevel, *secondno,
02062 thirdlevel, len_thirdlevel, *thirdno,
02063 fourthlevel, len_fourthlevel, *fourthno,
02064 attribute, len_attribute );
02065
02066 return(result);
02067 }
02068
02069
02070 int sasa_c_get_attri_5th_level (int *num_doc,
02071 char *firstlevel,
02072 int *firstno,
02073 char *secondlevel,
02074 int *secondno,
02075 char *thirdlevel,
02076 int *thirdno,
02077 char *fourthlevel,
02078 int *fourthno,
02079 char *fifthlevel,
02080 int *fifthno,
02081 char *attribute,
02082 char *xml_attribute,
02083 int *xml_attribute_length,
02084 int len_firstlevel,
02085 int len_secondlevel,
02086 int len_thirdlevel,
02087 int len_fourthlevel,
02088 int len_fifthlevel,
02089 int len_attribute,
02090 int len_xml_attribute)
02091 {
02092 int result;
02093
02094 result = sasa_c_get_attribute(
02095 xml_attribute, xml_attribute_length, *num_doc, 5,
02096 firstlevel, len_firstlevel, *firstno,
02097 secondlevel, len_secondlevel, *secondno,
02098 thirdlevel, len_thirdlevel, *thirdno,
02099 fourthlevel, len_fourthlevel, *fourthno,
02100 fifthlevel, len_fifthlevel, *fifthno,
02101 attribute, len_attribute );
02102
02103 return(result);
02104 }
02105
02106
02107 int sasa_c_get_attri_6th_level (int *num_doc,
02108 char *firstlevel,
02109 int *firstno,
02110 char *secondlevel,
02111 int *secondno,
02112 char *thirdlevel,
02113 int *thirdno,
02114 char *fourthlevel,
02115 int *fourthno,
02116 char *fifthlevel,
02117 int *fifthno,
02118 char *sixthlevel,
02119 int *sixthno,
02120 char *attribute,
02121 char *xml_attribute,
02122 int *xml_attribute_length,
02123 int len_firstlevel,
02124 int len_secondlevel,
02125 int len_thirdlevel,
02126 int len_fourthlevel,
02127 int len_fifthlevel,
02128 int len_sixthlevel,
02129 int len_attribute,
02130 int len_xml_attribute)
02131 {
02132 int result;
02133
02134 result = sasa_c_get_attribute(
02135 xml_attribute, xml_attribute_length, *num_doc, 6,
02136 firstlevel, len_firstlevel, *firstno,
02137 secondlevel, len_secondlevel, *secondno,
02138 thirdlevel, len_thirdlevel, *thirdno,
02139 fourthlevel, len_fourthlevel, *fourthno,
02140 fifthlevel, len_fifthlevel, *fifthno,
02141 sixthlevel, len_sixthlevel, *sixthno,
02142 attribute, len_attribute );
02143
02144 return(result);
02145 }
02146
02147
02148 int sasa_c_get_attri_8th_level (int *num_doc,
02149 char *firstlevel,
02150 int *firstno,
02151 char *secondlevel,
02152 int *secondno,
02153 char *thirdlevel,
02154 int *thirdno,
02155 char *fourthlevel,
02156 int *fourthno,
02157 char *fifthlevel,
02158 int *fifthno,
02159 char *sixthlevel,
02160 int *sixthno,
02161 char *seventhlevel,
02162 int *seventhno,
02163 char *eighthlevel,
02164 int *eighthno,
02165 char *attribute,
02166 char *xml_attribute,
02167 int *xml_attribute_length,
02168 int len_firstlevel,
02169 int len_secondlevel,
02170 int len_thirdlevel,
02171 int len_fourthlevel,
02172 int len_fifthlevel,
02173 int len_sixthlevel,
02174 int len_seventhlevel,
02175 int len_eighthlevel,
02176 int len_attribute,
02177 int len_xml_attribute)
02178 {
02179 int result;
02180
02181 result = sasa_c_get_attribute(
02182 xml_attribute, xml_attribute_length, *num_doc, 8,
02183 firstlevel, len_firstlevel, *firstno,
02184 secondlevel, len_secondlevel, *secondno,
02185 thirdlevel, len_thirdlevel, *thirdno,
02186 fourthlevel, len_fourthlevel, *fourthno,
02187 fifthlevel, len_fifthlevel, *fifthno,
02188 sixthlevel, len_sixthlevel, *sixthno,
02189 seventhlevel, len_seventhlevel, *seventhno,
02190 eighthlevel, len_eighthlevel, *eighthno,
02191 attribute, len_attribute );
02192
02193 return(result);
02194 }
02195
02196
02197 int sasa_c_get_attri_10th_level (int *num_doc,
02198 char *firstlevel,
02199 int *firstno,
02200 char *secondlevel,
02201 int *secondno,
02202 char *thirdlevel,
02203 int *thirdno,
02204 char *fourthlevel,
02205 int *fourthno,
02206 char *fifthlevel,
02207 int *fifthno,
02208 char *sixthlevel,
02209 int *sixthno,
02210 char *seventhlevel,
02211 int *seventhno,
02212 char *eighthlevel,
02213 int *eighthno,
02214 char *ninthlevel,
02215 int *ninthno,
02216 char *tenthlevel,
02217 int *tenthno,
02218 char *attribute,
02219 char *xml_attribute,
02220 int *xml_attribute_length,
02221 int len_firstlevel,
02222 int len_secondlevel,
02223 int len_thirdlevel,
02224 int len_fourthlevel,
02225 int len_fifthlevel,
02226 int len_sixthlevel,
02227 int len_seventhlevel,
02228 int len_eighthlevel,
02229 int len_ninthlevel,
02230 int len_tenthlevel,
02231 int len_attribute,
02232 int len_xml_attribute)
02233 {
02234 int result;
02235
02236 result = sasa_c_get_attribute(
02237 xml_attribute, xml_attribute_length, *num_doc, 10,
02238 firstlevel, len_firstlevel, *firstno,
02239 secondlevel, len_secondlevel, *secondno,
02240 thirdlevel, len_thirdlevel, *thirdno,
02241 fourthlevel, len_fourthlevel, *fourthno,
02242 fifthlevel, len_fifthlevel, *fifthno,
02243 sixthlevel, len_sixthlevel, *sixthno,
02244 seventhlevel, len_seventhlevel, *seventhno,
02245 eighthlevel, len_eighthlevel, *eighthno,
02246 ninthlevel, len_ninthlevel, *ninthno,
02247 tenthlevel, len_tenthlevel, *tenthno,
02248 attribute, len_attribute );
02249
02250 return(result);
02251 }
02252
02253
02254
02255 int sasa_c_get_element_xpath_c (int *num_doc,
02256 char *xpath,
02257 char *xml_element,
02258 int *xml_element_length,
02259 int len_xpath,
02260 int len_xml_element)
02261 {
02262 int result;
02263
02264 result = sasa_c_get_element_c(
02265 xml_element, xml_element_length, *num_doc, -1,
02266 xpath, len_xpath);
02267
02268 return(result);
02269 }
02270
02271
02272 int sasa_c_get_element_1st_level_c (int *num_doc,
02273 char *firstlevel,
02274 int *firstno,
02275 char *element,
02276 int *elementno,
02277 char *xml_element,
02278 int *xml_element_length,
02279 int len_firstlevel,
02280 int len_element,
02281 int len_xml_element)
02282 {
02283 int result;
02284
02285 result = sasa_c_get_element_c(
02286 xml_element, xml_element_length, *num_doc, 1,
02287 firstlevel, len_firstlevel, *firstno,
02288 element, len_element, *elementno );
02289
02290 return(result);
02291 }
02292
02293
02294 int sasa_c_get_element_xpath_i (int *num_doc,
02295 char *xpath,
02296 int *xml_element,
02297 int len_xpath)
02298 {
02299 int result;
02300
02301 result = sasa_c_get_element_i(
02302 xml_element, *num_doc, -1, xpath, len_xpath);
02303
02304 return(result);
02305 }
02306
02307
02308 int sasa_c_get_element_1st_level_i (int *num_doc,
02309 char *firstlevel,
02310 int *firstno,
02311 char *element,
02312 int *elementno,
02313 int *xml_element,
02314 int len_firstlevel,
02315 int len_element)
02316 {
02317 int result;
02318
02319 result = sasa_c_get_element_i(
02320 xml_element, *num_doc, 1,
02321 firstlevel, len_firstlevel, *firstno,
02322 element, len_element, *elementno );
02323
02324 return(result);
02325 }
02326
02327
02328 int sasa_c_get_element_1st_level_d (int *num_doc,
02329 char *firstlevel,
02330 int *firstno,
02331 char *element,
02332 int *elementno,
02333 double *xml_element,
02334 int len_firstlevel,
02335 int len_element)
02336 {
02337 int result;
02338
02339 result = sasa_c_get_element_d(
02340 xml_element, *num_doc, 1,
02341 firstlevel, len_firstlevel, *firstno,
02342 element, len_element, *elementno );
02343
02344 return(result);
02345 }
02346
02347
02348 int sasa_c_get_element_2nd_level_c (int *num_doc,
02349 char *firstlevel,
02350 int *firstno,
02351 char *secondlevel,
02352 int *secondno,
02353 char *element,
02354 int *elementno,
02355 char *xml_element,
02356 int *xml_element_length,
02357 int len_firstlevel,
02358 int len_secondlevel,
02359 int len_element,
02360 int len_xml_element)
02361 {
02362 int result;
02363
02364 result = sasa_c_get_element_c(
02365 xml_element, xml_element_length, *num_doc, 2,
02366 firstlevel, len_firstlevel, *firstno,
02367 secondlevel, len_secondlevel, *secondno,
02368 element, len_element, *elementno );
02369
02370 return(result);
02371 }
02372
02373
02374 int sasa_c_get_element_2nd_level_i (int *num_doc,
02375 char *firstlevel,
02376 int *firstno,
02377 char *secondlevel,
02378 int *secondno,
02379 char *element,
02380 int *elementno,
02381 int *xml_element,
02382 int len_firstlevel,
02383 int len_secondlevel,
02384 int len_element)
02385 {
02386 int result;
02387
02388 result = sasa_c_get_element_i(
02389 xml_element, *num_doc, 2,
02390 firstlevel, len_firstlevel, *firstno,
02391 secondlevel, len_secondlevel, *secondno,
02392 element, len_element, *elementno );
02393
02394 return(result);
02395 }
02396
02397
02398 int sasa_c_get_element_2nd_level_d (int *num_doc,
02399 char *firstlevel,
02400 int *firstno,
02401 char *secondlevel,
02402 int *secondno,
02403 char *element,
02404 int *elementno,
02405 double *xml_element,
02406 int len_firstlevel,
02407 int len_secondlevel,
02408 int len_element)
02409 {
02410 int result;
02411
02412 result = sasa_c_get_element_d(
02413 xml_element, *num_doc, 2,
02414 firstlevel, len_firstlevel, *firstno,
02415 secondlevel, len_secondlevel, *secondno,
02416 element, len_element, *elementno );
02417
02418 return(result);
02419 }
02420
02421
02422 int sasa_c_get_element_3rd_level_c (int *num_doc,
02423 char *firstlevel,
02424 int *firstno,
02425 char *secondlevel,
02426 int *secondno,
02427 char *thirdlevel,
02428 int *thirdno,
02429 char *element,
02430 int *elementno,
02431 char *xml_element,
02432 int *xml_element_length,
02433 int len_firstlevel,
02434 int len_secondlevel,
02435 int len_thirdlevel,
02436 int len_element,
02437 int len_xml_element)
02438 {
02439 int result;
02440
02441 result = sasa_c_get_element_c(
02442 xml_element, xml_element_length, *num_doc, 3,
02443 firstlevel, len_firstlevel, *firstno,
02444 secondlevel, len_secondlevel, *secondno,
02445 thirdlevel, len_thirdlevel, *thirdno,
02446 element, len_element, *elementno );
02447
02448 return(result);
02449 }
02450
02451
02452 int sasa_c_get_element_3rd_level_i (int *num_doc,
02453 char *firstlevel,
02454 int *firstno,
02455 char *secondlevel,
02456 int *secondno,
02457 char *thirdlevel,
02458 int *thirdno,
02459 char *element,
02460 int *elementno,
02461 int *xml_element,
02462 int len_firstlevel,
02463 int len_secondlevel,
02464 int len_thirdlevel,
02465 int len_element)
02466 {
02467 int result;
02468
02469 result = sasa_c_get_element_i(
02470 xml_element, *num_doc, 3,
02471 firstlevel, len_firstlevel, *firstno,
02472 secondlevel, len_secondlevel, *secondno,
02473 thirdlevel, len_thirdlevel, *thirdno,
02474 element, len_element, *elementno );
02475
02476 return(result);
02477 }
02478
02479
02480 int sasa_c_get_element_3rd_level_d (int *num_doc,
02481 char *firstlevel,
02482 int *firstno,
02483 char *secondlevel,
02484 int *secondno,
02485 char *thirdlevel,
02486 int *thirdno,
02487 char *element,
02488 int *elementno,
02489 double *xml_element,
02490 int len_firstlevel,
02491 int len_secondlevel,
02492 int len_thirdlevel,
02493 int len_element)
02494 {
02495 int result;
02496
02497 result = sasa_c_get_element_d(
02498 xml_element, *num_doc, 3,
02499 firstlevel, len_firstlevel, *firstno,
02500 secondlevel, len_secondlevel, *secondno,
02501 thirdlevel, len_thirdlevel, *thirdno,
02502 element, len_element, *elementno );
02503
02504 return(result);
02505 }
02506
02507
02508 int sasa_c_get_element_4th_level_c (int *num_doc,
02509 char *firstlevel,
02510 int *firstno,
02511 char *secondlevel,
02512 int *secondno,
02513 char *thirdlevel,
02514 int *thirdno,
02515 char *fourthlevel,
02516 int *fourthno,
02517 char *element,
02518 int *elementno,
02519 char *xml_element,
02520 int *xml_element_length,
02521 int len_firstlevel,
02522 int len_secondlevel,
02523 int len_thirdlevel,
02524 int len_fourthlevel,
02525 int len_element,
02526 int len_xml_element)
02527 {
02528 int result;
02529
02530 result = sasa_c_get_element_c(
02531 xml_element, xml_element_length, *num_doc, 4,
02532 firstlevel, len_firstlevel, *firstno,
02533 secondlevel, len_secondlevel, *secondno,
02534 thirdlevel, len_thirdlevel, *thirdno,
02535 fourthlevel, len_fourthlevel, *fourthno,
02536 element, len_element, *elementno );
02537
02538 return(result);
02539 }
02540
02541
02542 int sasa_c_get_element_4th_level_i (int *num_doc,
02543 char *firstlevel,
02544 int *firstno,
02545 char *secondlevel,
02546 int *secondno,
02547 char *thirdlevel,
02548 int *thirdno,
02549 char *fourthlevel,
02550 int *fourthno,
02551 char *element,
02552 int *elementno,
02553 int *xml_element,
02554 int len_firstlevel,
02555 int len_secondlevel,
02556 int len_thirdlevel,
02557 int len_fourthlevel,
02558 int len_element)
02559 {
02560 int result;
02561
02562 result = sasa_c_get_element_i(
02563 xml_element, *num_doc, 4,
02564 firstlevel, len_firstlevel, *firstno,
02565 secondlevel, len_secondlevel, *secondno,
02566 thirdlevel, len_thirdlevel, *thirdno,
02567 fourthlevel, len_fourthlevel, *fourthno,
02568 element, len_element, *elementno );
02569
02570 return(result);
02571 }
02572
02573
02574 int sasa_c_get_element_4th_level_d (int *num_doc,
02575 char *firstlevel,
02576 int *firstno,
02577 char *secondlevel,
02578 int *secondno,
02579 char *thirdlevel,
02580 int *thirdno,
02581 char *fourthlevel,
02582 int *fourthno,
02583 char *element,
02584 int *elementno,
02585 double *xml_element,
02586 int len_firstlevel,
02587 int len_secondlevel,
02588 int len_thirdlevel,
02589 int len_fourthlevel,
02590 int len_element)
02591 {
02592 int result;
02593
02594 result = sasa_c_get_element_d(
02595 xml_element, *num_doc, 4,
02596 firstlevel, len_firstlevel, *firstno,
02597 secondlevel, len_secondlevel, *secondno,
02598 thirdlevel, len_thirdlevel, *thirdno,
02599 fourthlevel, len_fourthlevel, *fourthno,
02600 element, len_element, *elementno );
02601
02602 return(result);
02603 }
02604
02605
02606 int sasa_c_get_element_5th_level_c (int *num_doc,
02607 char *firstlevel,
02608 int *firstno,
02609 char *secondlevel,
02610 int *secondno,
02611 char *thirdlevel,
02612 int *thirdno,
02613 char *fourthlevel,
02614 int *fourthno,
02615 char *fifthlevel,
02616 int *fifthno,
02617 char *element,
02618 int *elementno,
02619 char *xml_element,
02620 int *xml_element_length,
02621 int len_firstlevel,
02622 int len_secondlevel,
02623 int len_thirdlevel,
02624 int len_fourthlevel,
02625 int len_fifthlevel,
02626 int len_element,
02627 int len_xml_element)
02628 {
02629 int result;
02630
02631 result = sasa_c_get_element_c(
02632 xml_element, xml_element_length, *num_doc, 5,
02633 firstlevel, len_firstlevel, *firstno,
02634 secondlevel, len_secondlevel, *secondno,
02635 thirdlevel, len_thirdlevel, *thirdno,
02636 fourthlevel, len_fourthlevel, *fourthno,
02637 fifthlevel, len_fifthlevel, *fifthno,
02638 element, len_element, *elementno );
02639
02640 return(result);
02641 }
02642
02643
02644 int sasa_c_get_element_5th_level_i (int *num_doc,
02645 char *firstlevel,
02646 int *firstno,
02647 char *secondlevel,
02648 int *secondno,
02649 char *thirdlevel,
02650 int *thirdno,
02651 char *fourthlevel,
02652 int *fourthno,
02653 char *fifthlevel,
02654 int *fifthno,
02655 char *element,
02656 int *elementno,
02657 int *xml_element,
02658 int len_firstlevel,
02659 int len_secondlevel,
02660 int len_thirdlevel,
02661 int len_fourthlevel,
02662 int len_fifthlevel,
02663 int len_element)
02664 {
02665 int result;
02666
02667 result = sasa_c_get_element_i(
02668 xml_element, *num_doc, 5,
02669 firstlevel, len_firstlevel, *firstno,
02670 secondlevel, len_secondlevel, *secondno,
02671 thirdlevel, len_thirdlevel, *thirdno,
02672 fourthlevel, len_fourthlevel, *fourthno,
02673 fifthlevel, len_fifthlevel, *fifthno,
02674 element, len_element, *elementno );
02675
02676 return(result);
02677 }
02678
02679
02680 int sasa_c_get_element_5th_level_d (int *num_doc,
02681 char *firstlevel,
02682 int *firstno,
02683 char *secondlevel,
02684 int *secondno,
02685 char *thirdlevel,
02686 int *thirdno,
02687 char *fourthlevel,
02688 int *fourthno,
02689 char *fifthlevel,
02690 int *fifthno,
02691 char *element,
02692 int *elementno,
02693 double *xml_element,
02694 int len_firstlevel,
02695 int len_secondlevel,
02696 int len_thirdlevel,
02697 int len_fourthlevel,
02698 int len_fifthlevel,
02699 int len_element)
02700 {
02701 int result;
02702
02703 result = sasa_c_get_element_d(
02704 xml_element, *num_doc, 5,
02705 firstlevel, len_firstlevel, *firstno,
02706 secondlevel, len_secondlevel, *secondno,
02707 thirdlevel, len_thirdlevel, *thirdno,
02708 fourthlevel, len_fourthlevel, *fourthno,
02709 fifthlevel, len_fifthlevel, *fifthno,
02710 element, len_element, *elementno );
02711
02712 return(result);
02713 }
02714
02715
02716 int sasa_c_get_element_6th_level_c (int *num_doc,
02717 char *firstlevel,
02718 int *firstno,
02719 char *secondlevel,
02720 int *secondno,
02721 char *thirdlevel,
02722 int *thirdno,
02723 char *fourthlevel,
02724 int *fourthno,
02725 char *fifthlevel,
02726 int *fifthno,
02727 char *sixthlevel,
02728 int *sixthno,
02729 char *element,
02730 int *elementno,
02731 char *xml_element,
02732 int *xml_element_length,
02733 int len_firstlevel,
02734 int len_secondlevel,
02735 int len_thirdlevel,
02736 int len_fourthlevel,
02737 int len_fifthlevel,
02738 int len_sixthlevel,
02739 int len_element,
02740 int len_xml_element)
02741 {
02742 int result;
02743
02744 result = sasa_c_get_element_c(
02745 xml_element, xml_element_length, *num_doc, 6,
02746 firstlevel, len_firstlevel, *firstno,
02747 secondlevel, len_secondlevel, *secondno,
02748 thirdlevel, len_thirdlevel, *thirdno,
02749 fourthlevel, len_fourthlevel, *fourthno,
02750 fifthlevel, len_fifthlevel, *fifthno,
02751 sixthlevel, len_sixthlevel, *sixthno,
02752 element, len_element, *elementno );
02753
02754 return(result);
02755 }
02756
02757
02758 int sasa_c_get_element_6th_level_i (int *num_doc,
02759 char *firstlevel,
02760 int *firstno,
02761 char *secondlevel,
02762 int *secondno,
02763 char *thirdlevel,
02764 int *thirdno,
02765 char *fourthlevel,
02766 int *fourthno,
02767 char *fifthlevel,
02768 int *fifthno,
02769 char *sixthlevel,
02770 int *sixthno,
02771 char *element,
02772 int *elementno,
02773 int *xml_element,
02774 int len_firstlevel,
02775 int len_secondlevel,
02776 int len_thirdlevel,
02777 int len_fourthlevel,
02778 int len_fifthlevel,
02779 int len_sixthlevel,
02780 int len_element)
02781 {
02782 int result;
02783
02784 result = sasa_c_get_element_i(
02785 xml_element, *num_doc, 6,
02786 firstlevel, len_firstlevel, *firstno,
02787 secondlevel, len_secondlevel, *secondno,
02788 thirdlevel, len_thirdlevel, *thirdno,
02789 fourthlevel, len_fourthlevel, *fourthno,
02790 fifthlevel, len_fifthlevel, *fifthno,
02791 sixthlevel, len_sixthlevel, *sixthno,
02792 element, len_element, *elementno );
02793
02794 return(result);
02795 }
02796
02797
02798 int sasa_c_get_element_6th_level_d (int *num_doc,
02799 char *firstlevel,
02800 int *firstno,
02801 char *secondlevel,
02802 int *secondno,
02803 char *thirdlevel,
02804 int *thirdno,
02805 char *fourthlevel,
02806 int *fourthno,
02807 char *fifthlevel,
02808 int *fifthno,
02809 char *sixthlevel,
02810 int *sixthno,
02811 char *element,
02812 int *elementno,
02813 double *xml_element,
02814 int len_firstlevel,
02815 int len_secondlevel,
02816 int len_thirdlevel,
02817 int len_fourthlevel,
02818 int len_fifthlevel,
02819 int len_sixthlevel,
02820 int len_element)
02821 {
02822 int result;
02823
02824 result = sasa_c_get_element_d(
02825 xml_element, *num_doc, 6,
02826 firstlevel, len_firstlevel, *firstno,
02827 secondlevel, len_secondlevel, *secondno,
02828 thirdlevel, len_thirdlevel, *thirdno,
02829 fourthlevel, len_fourthlevel, *fourthno,
02830 fifthlevel, len_fifthlevel, *fifthno,
02831 sixthlevel, len_sixthlevel, *sixthno,
02832 element, len_element, *elementno );
02833
02834 return(result);
02835 }
02836
02837
02838 int sasa_c_get_element_7th_level_c (int *num_doc,
02839 char *firstlevel,
02840 int *firstno,
02841 char *secondlevel,
02842 int *secondno,
02843 char *thirdlevel,
02844 int *thirdno,
02845 char *fourthlevel,
02846 int *fourthno,
02847 char *fifthlevel,
02848 int *fifthno,
02849 char *sixthlevel,
02850 int *sixthno,
02851 char *seventhlevel,
02852 int *seventhno,
02853 char *element,
02854 int *elementno,
02855 char *xml_element,
02856 int *xml_element_length,
02857 int len_firstlevel,
02858 int len_secondlevel,
02859 int len_thirdlevel,
02860 int len_fourthlevel,
02861 int len_fifthlevel,
02862 int len_sixthlevel,
02863 int len_seventhlevel,
02864 int len_element,
02865 int len_xml_element)
02866 {
02867 int result;
02868
02869 result = sasa_c_get_element_c(
02870 xml_element, xml_element_length, *num_doc, 7,
02871 firstlevel, len_firstlevel, *firstno,
02872 secondlevel, len_secondlevel, *secondno,
02873 thirdlevel, len_thirdlevel, *thirdno,
02874 fourthlevel, len_fourthlevel, *fourthno,
02875 fifthlevel, len_fifthlevel, *fifthno,
02876 sixthlevel, len_sixthlevel, *sixthno,
02877 seventhlevel, len_seventhlevel, *seventhno,
02878 element, len_element, *elementno );
02879
02880 return(result);
02881 }
02882
02883
02884 int sasa_c_get_element_7th_level_i (int *num_doc,
02885 char *firstlevel,
02886 int *firstno,
02887 char *secondlevel,
02888 int *secondno,
02889 char *thirdlevel,
02890 int *thirdno,
02891 char *fourthlevel,
02892 int *fourthno,
02893 char *fifthlevel,
02894 int *fifthno,
02895 char *sixthlevel,
02896 int *sixthno,
02897 char *seventhlevel,
02898 int *seventhno,
02899 char *element,
02900 int *elementno,
02901 int *xml_element,
02902 int len_firstlevel,
02903 int len_secondlevel,
02904 int len_thirdlevel,
02905 int len_fourthlevel,
02906 int len_fifthlevel,
02907 int len_sixthlevel,
02908 int len_seventhlevel,
02909 int len_element)
02910 {
02911 int result;
02912
02913 result = sasa_c_get_element_i(
02914 xml_element, *num_doc, 7,
02915 firstlevel, len_firstlevel, *firstno,
02916 secondlevel, len_secondlevel, *secondno,
02917 thirdlevel, len_thirdlevel, *thirdno,
02918 fourthlevel, len_fourthlevel, *fourthno,
02919 fifthlevel, len_fifthlevel, *fifthno,
02920 sixthlevel, len_sixthlevel, *sixthno,
02921 seventhlevel, len_seventhlevel, *seventhno,
02922 element, len_element, *elementno );
02923
02924 return(result);
02925 }
02926
02927 int sasa_c_get_element_7th_level_d (int *num_doc,
02928 char *firstlevel,
02929 int *firstno,
02930 char *secondlevel,
02931 int *secondno,
02932 char *thirdlevel,
02933 int *thirdno,
02934 char *fourthlevel,
02935 int *fourthno,
02936 char *fifthlevel,
02937 int *fifthno,
02938 char *sixthlevel,
02939 int *sixthno,
02940 char *seventhlevel,
02941 int *seventhno,
02942 char *element,
02943 int *elementno,
02944 double *xml_element,
02945 int len_firstlevel,
02946 int len_secondlevel,
02947 int len_thirdlevel,
02948 int len_fourthlevel,
02949 int len_fifthlevel,
02950 int len_sixthlevel,
02951 int len_seventhlevel,
02952 int len_element)
02953 {
02954 int result;
02955
02956 result = sasa_c_get_element_d(
02957 xml_element, *num_doc, 7,
02958 firstlevel, len_firstlevel, *firstno,
02959 secondlevel, len_secondlevel, *secondno,
02960 thirdlevel, len_thirdlevel, *thirdno,
02961 fourthlevel, len_fourthlevel, *fourthno,
02962 fifthlevel, len_fifthlevel, *fifthno,
02963 sixthlevel, len_sixthlevel, *sixthno,
02964 seventhlevel, len_seventhlevel, *seventhno,
02965 element, len_element, *elementno );
02966
02967 return(result);
02968 }
02969
02970 int sasa_c_get_element_8th_level_c (int *num_doc,
02971 char *firstlevel,
02972 int *firstno,
02973 char *secondlevel,
02974 int *secondno,
02975 char *thirdlevel,
02976 int *thirdno,
02977 char *fourthlevel,
02978 int *fourthno,
02979 char *fifthlevel,
02980 int *fifthno,
02981 char *sixthlevel,
02982 int *sixthno,
02983 char *seventhlevel,
02984 int *seventhno,
02985 char *eighthlevel,
02986 int *eighthno,
02987 char *element,
02988 int *elementno,
02989 char *xml_element,
02990 int *xml_element_length,
02991 int len_firstlevel,
02992 int len_secondlevel,
02993 int len_thirdlevel,
02994 int len_fourthlevel,
02995 int len_fifthlevel,
02996 int len_sixthlevel,
02997 int len_seventhlevel,
02998 int len_eighthlevel,
02999 int len_element,
03000 int len_xml_element)
03001 {
03002 int result;
03003
03004 result = sasa_c_get_element_c(
03005 xml_element, xml_element_length, *num_doc, 8,
03006 firstlevel, len_firstlevel, *firstno,
03007 secondlevel, len_secondlevel, *secondno,
03008 thirdlevel, len_thirdlevel, *thirdno,
03009 fourthlevel, len_fourthlevel, *fourthno,
03010 fifthlevel, len_fifthlevel, *fifthno,
03011 sixthlevel, len_sixthlevel, *sixthno,
03012 seventhlevel, len_seventhlevel, *seventhno,
03013 eighthlevel, len_eighthlevel, *eighthno,
03014 element, len_element, *elementno );
03015
03016 return(result);
03017 }
03018
03019
03020 int sasa_c_get_element_8th_level_i (int *num_doc,
03021 char *firstlevel,
03022 int *firstno,
03023 char *secondlevel,
03024 int *secondno,
03025 char *thirdlevel,
03026 int *thirdno,
03027 char *fourthlevel,
03028 int *fourthno,
03029 char *fifthlevel,
03030 int *fifthno,
03031 char *sixthlevel,
03032 int *sixthno,
03033 char *seventhlevel,
03034 int *seventhno,
03035 char *eighthlevel,
03036 int *eighthno,
03037 char *element,
03038 int *elementno,
03039 int *xml_element,
03040 int len_firstlevel,
03041 int len_secondlevel,
03042 int len_thirdlevel,
03043 int len_fourthlevel,
03044 int len_fifthlevel,
03045 int len_sixthlevel,
03046 int len_seventhlevel,
03047 int len_eighthlevel,
03048 int len_element)
03049 {
03050 int result;
03051
03052 result = sasa_c_get_element_i(
03053 xml_element, *num_doc, 8,
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 element, len_element, *elementno );
03063
03064 return(result);
03065 }
03066
03067 int sasa_c_get_element_8th_level_d (int *num_doc,
03068 char *firstlevel,
03069 int *firstno,
03070 char *secondlevel,
03071 int *secondno,
03072 char *thirdlevel,
03073 int *thirdno,
03074 char *fourthlevel,
03075 int *fourthno,
03076 char *fifthlevel,
03077 int *fifthno,
03078 char *sixthlevel,
03079 int *sixthno,
03080 char *seventhlevel,
03081 int *seventhno,
03082 char *eighthlevel,
03083 int *eighthno,
03084 char *element,
03085 int *elementno,
03086 double *xml_element,
03087 int len_firstlevel,
03088 int len_secondlevel,
03089 int len_thirdlevel,
03090 int len_fourthlevel,
03091 int len_fifthlevel,
03092 int len_sixthlevel,
03093 int len_seventhlevel,
03094 int len_eighthlevel,
03095 int len_element)
03096 {
03097 int result;
03098
03099 result = sasa_c_get_element_d(
03100 xml_element, *num_doc, 8,
03101 firstlevel, len_firstlevel, *firstno,
03102 secondlevel, len_secondlevel, *secondno,
03103 thirdlevel, len_thirdlevel, *thirdno,
03104 fourthlevel, len_fourthlevel, *fourthno,
03105 fifthlevel, len_fifthlevel, *fifthno,
03106 sixthlevel, len_sixthlevel, *sixthno,
03107 seventhlevel, len_seventhlevel, *seventhno,
03108 eighthlevel, len_eighthlevel, *eighthno,
03109 element, len_element, *elementno );
03110
03111 return(result);
03112 }
03113
03114 int sasa_c_get_element_9th_level_c (int *num_doc,
03115 char *firstlevel,
03116 int *firstno,
03117 char *secondlevel,
03118 int *secondno,
03119 char *thirdlevel,
03120 int *thirdno,
03121 char *fourthlevel,
03122 int *fourthno,
03123 char *fifthlevel,
03124 int *fifthno,
03125 char *sixthlevel,
03126 int *sixthno,
03127 char *seventhlevel,
03128 int *seventhno,
03129 char *eighthlevel,
03130 int *eighthno,
03131 char *ninthlevel,
03132 int *ninthno,
03133 char *element,
03134 int *elementno,
03135 char *xml_element,
03136 int *xml_element_length,
03137 int len_firstlevel,
03138 int len_secondlevel,
03139 int len_thirdlevel,
03140 int len_fourthlevel,
03141 int len_fifthlevel,
03142 int len_sixthlevel,
03143 int len_seventhlevel,
03144 int len_eighthlevel,
03145 int len_ninthlevel,
03146 int len_element,
03147 int len_xml_element)
03148 {
03149 int result;
03150
03151 result = sasa_c_get_element_c(
03152 xml_element, xml_element_length, *num_doc, 9,
03153 firstlevel, len_firstlevel, *firstno,
03154 secondlevel, len_secondlevel, *secondno,
03155 thirdlevel, len_thirdlevel, *thirdno,
03156 fourthlevel, len_fourthlevel, *fourthno,
03157 fifthlevel, len_fifthlevel, *fifthno,
03158 sixthlevel, len_sixthlevel, *sixthno,
03159 seventhlevel, len_seventhlevel, *seventhno,
03160 eighthlevel, len_eighthlevel, *eighthno,
03161 ninthlevel, len_ninthlevel, *ninthno,
03162 element, len_element, *elementno );
03163
03164 return(result);
03165 }
03166
03167
03168 int sasa_c_get_element_9th_level_i (int *num_doc,
03169 char *firstlevel,
03170 int *firstno,
03171 char *secondlevel,
03172 int *secondno,
03173 char *thirdlevel,
03174 int *thirdno,
03175 char *fourthlevel,
03176 int *fourthno,
03177 char *fifthlevel,
03178 int *fifthno,
03179 char *sixthlevel,
03180 int *sixthno,
03181 char *seventhlevel,
03182 int *seventhno,
03183 char *eighthlevel,
03184 int *eighthno,
03185 char *ninthlevel,
03186 int *ninthno,
03187 char *element,
03188 int *elementno,
03189 int *xml_element,
03190 int len_firstlevel,
03191 int len_secondlevel,
03192 int len_thirdlevel,
03193 int len_fourthlevel,
03194 int len_fifthlevel,
03195 int len_sixthlevel,
03196 int len_seventhlevel,
03197 int len_eighthlevel,
03198 int len_ninthlevel,
03199 int len_element)
03200 {
03201 int result;
03202
03203 result = sasa_c_get_element_i(
03204 xml_element, *num_doc, 9,
03205 firstlevel, len_firstlevel, *firstno,
03206 secondlevel, len_secondlevel, *secondno,
03207 thirdlevel, len_thirdlevel, *thirdno,
03208 fourthlevel, len_fourthlevel, *fourthno,
03209 fifthlevel, len_fifthlevel, *fifthno,
03210 sixthlevel, len_sixthlevel, *sixthno,
03211 seventhlevel, len_seventhlevel, *seventhno,
03212 eighthlevel, len_eighthlevel, *eighthno,
03213 ninthlevel, len_ninthlevel, *ninthno,
03214 element, len_element, *elementno );
03215
03216 return(result);
03217 }
03218
03219
03220 int sasa_c_get_element_9th_level_d (int *num_doc,
03221 char *firstlevel,
03222 int *firstno,
03223 char *secondlevel,
03224 int *secondno,
03225 char *thirdlevel,
03226 int *thirdno,
03227 char *fourthlevel,
03228 int *fourthno,
03229 char *fifthlevel,
03230 int *fifthno,
03231 char *sixthlevel,
03232 int *sixthno,
03233 char *seventhlevel,
03234 int *seventhno,
03235 char *eighthlevel,
03236 int *eighthno,
03237 char *ninthlevel,
03238 int *ninthno,
03239 char *element,
03240 int *elementno,
03241 double *xml_element,
03242 int len_firstlevel,
03243 int len_secondlevel,
03244 int len_thirdlevel,
03245 int len_fourthlevel,
03246 int len_fifthlevel,
03247 int len_sixthlevel,
03248 int len_seventhlevel,
03249 int len_eighthlevel,
03250 int len_ninthlevel,
03251 int len_element)
03252 {
03253 int result;
03254
03255 result = sasa_c_get_element_d(
03256 xml_element, *num_doc, 9,
03257 firstlevel, len_firstlevel, *firstno,
03258 secondlevel, len_secondlevel, *secondno,
03259 thirdlevel, len_thirdlevel, *thirdno,
03260 fourthlevel, len_fourthlevel, *fourthno,
03261 fifthlevel, len_fifthlevel, *fifthno,
03262 sixthlevel, len_sixthlevel, *sixthno,
03263 seventhlevel, len_seventhlevel, *seventhno,
03264 eighthlevel, len_eighthlevel, *eighthno,
03265 ninthlevel, len_ninthlevel, *ninthno,
03266 element, len_element, *elementno );
03267
03268 return(result);
03269 }
03270
03271 int sasa_c_get_element_10th_level_c (int *num_doc,
03272 char *firstlevel,
03273 int *firstno,
03274 char *secondlevel,
03275 int *secondno,
03276 char *thirdlevel,
03277 int *thirdno,
03278 char *fourthlevel,
03279 int *fourthno,
03280 char *fifthlevel,
03281 int *fifthno,
03282 char *sixthlevel,
03283 int *sixthno,
03284 char *seventhlevel,
03285 int *seventhno,
03286 char *eighthlevel,
03287 int *eighthno,
03288 char *ninthlevel,
03289 int *ninthno,
03290 char *tenthlevel,
03291 int *tenthno,
03292 char *element,
03293 int *elementno,
03294 char *xml_element,
03295 int *xml_element_length,
03296 int len_firstlevel,
03297 int len_secondlevel,
03298 int len_thirdlevel,
03299 int len_fourthlevel,
03300 int len_fifthlevel,
03301 int len_sixthlevel,
03302 int len_seventhlevel,
03303 int len_eighthlevel,
03304 int len_ninthlevel,
03305 int len_tenthlevel,
03306 int len_element,
03307 int len_xml_element)
03308 {
03309 int result;
03310
03311 result = sasa_c_get_element_c(
03312 xml_element, xml_element_length, *num_doc, 10,
03313 firstlevel, len_firstlevel, *firstno,
03314 secondlevel, len_secondlevel, *secondno,
03315 thirdlevel, len_thirdlevel, *thirdno,
03316 fourthlevel, len_fourthlevel, *fourthno,
03317 fifthlevel, len_fifthlevel, *fifthno,
03318 sixthlevel, len_sixthlevel, *sixthno,
03319 seventhlevel, len_seventhlevel, *seventhno,
03320 eighthlevel, len_eighthlevel, *eighthno,
03321 ninthlevel, len_ninthlevel, *ninthno,
03322 tenthlevel, len_tenthlevel, *tenthno,
03323 element, len_element, *elementno );
03324
03325 return(result);
03326 }
03327
03328
03329 int sasa_c_get_element_10th_level_i (int *num_doc,
03330 char *firstlevel,
03331 int *firstno,
03332 char *secondlevel,
03333 int *secondno,
03334 char *thirdlevel,
03335 int *thirdno,
03336 char *fourthlevel,
03337 int *fourthno,
03338 char *fifthlevel,
03339 int *fifthno,
03340 char *sixthlevel,
03341 int *sixthno,
03342 char *seventhlevel,
03343 int *seventhno,
03344 char *eighthlevel,
03345 int *eighthno,
03346 char *ninthlevel,
03347 int *ninthno,
03348 char *tenthlevel,
03349 int *tenthno,
03350 char *element,
03351 int *elementno,
03352 int *xml_element,
03353 int len_firstlevel,
03354 int len_secondlevel,
03355 int len_thirdlevel,
03356 int len_fourthlevel,
03357 int len_fifthlevel,
03358 int len_sixthlevel,
03359 int len_seventhlevel,
03360 int len_eighthlevel,
03361 int len_ninthlevel,
03362 int len_tenthlevel,
03363 int len_element)
03364 {
03365 int result;
03366
03367 result = sasa_c_get_element_i(
03368 xml_element, *num_doc, 10,
03369 firstlevel, len_firstlevel, *firstno,
03370 secondlevel, len_secondlevel, *secondno,
03371 thirdlevel, len_thirdlevel, *thirdno,
03372 fourthlevel, len_fourthlevel, *fourthno,
03373 fifthlevel, len_fifthlevel, *fifthno,
03374 sixthlevel, len_sixthlevel, *sixthno,
03375 seventhlevel, len_seventhlevel, *seventhno,
03376 eighthlevel, len_eighthlevel, *eighthno,
03377 ninthlevel, len_ninthlevel, *ninthno,
03378 tenthlevel, len_tenthlevel, *tenthno,
03379 element, len_element, *elementno );
03380
03381 return(result);
03382 }
03383
03384
03385 int sasa_c_get_element_10th_level_d (int *num_doc,
03386 char *firstlevel,
03387 int *firstno,
03388 char *secondlevel,
03389 int *secondno,
03390 char *thirdlevel,
03391 int *thirdno,
03392 char *fourthlevel,
03393 int *fourthno,
03394 char *fifthlevel,
03395 int *fifthno,
03396 char *sixthlevel,
03397 int *sixthno,
03398 char *seventhlevel,
03399 int *seventhno,
03400 char *eighthlevel,
03401 int *eighthno,
03402 char *ninthlevel,
03403 int *ninthno,
03404 char *tenthlevel,
03405 int *tenthno,
03406 char *element,
03407 int *elementno,
03408 double *xml_element,
03409 int len_firstlevel,
03410 int len_secondlevel,
03411 int len_thirdlevel,
03412 int len_fourthlevel,
03413 int len_fifthlevel,
03414 int len_sixthlevel,
03415 int len_seventhlevel,
03416 int len_eighthlevel,
03417 int len_ninthlevel,
03418 int len_tenthlevel,
03419 int len_element)
03420 {
03421 int result;
03422
03423 result = sasa_c_get_element_d(
03424 xml_element, *num_doc, 10,
03425 firstlevel, len_firstlevel, *firstno,
03426 secondlevel, len_secondlevel, *secondno,
03427 thirdlevel, len_thirdlevel, *thirdno,
03428 fourthlevel, len_fourthlevel, *fourthno,
03429 fifthlevel, len_fifthlevel, *fifthno,
03430 sixthlevel, len_sixthlevel, *sixthno,
03431 seventhlevel, len_seventhlevel, *seventhno,
03432 eighthlevel, len_eighthlevel, *eighthno,
03433 ninthlevel, len_ninthlevel, *ninthno,
03434 tenthlevel, len_tenthlevel, *tenthno,
03435 element, len_element, *elementno );
03436
03437 return(result);
03438 }