Qore WSDL Module Reference 0.5.4
Loading...
Searching...
No Matches
WSDL.qm.dox.h
1// -*- mode: c++; indent-tabs-mode: nil -*-
3
4/* WSDL.qm Copyright (C) 2012 - 2022 Qore Technologies, s.r.o.
5
6 Permission is hereby granted, free of charge, to any person obtaining a
7 copy of this software and associated documentation files (the "Software"),
8 to deal in the Software without restriction, including without limitation
9 the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 and/or sell copies of the Software, and to permit persons to whom the
11 Software is furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 DEALINGS IN THE SOFTWARE.
23*/
24
25// make sure we have the required qore version
26
27// requires XML functionality
28
29// need mime definitions
30
31
32// do not use $ for vars
33
34// allow the use of the := weak reference assignment operator
35
36
37
38/*
39 WSDL classes
40 provides some minimal WSDL and XSD support for SOAP messaging used by the SoapClient class and the SoapHandler
41
42 not complete, needs namespace verification, improved XSD support, element groups, etc
43*/
44
175namespace WSDL {
177 const version = "0.3.6";
178
180 const SOAP_11_ENV = "http://schemas.xmlsoap.org/soap/envelope/";
182 const SOAP_12_ENV = "http://www.w3.org/2003/05/soap-envelope";
183
185 const SOAP_11_NS = "http://schemas.xmlsoap.org/wsdl/soap/";
186
188 const SOAP_12_NS = "http://schemas.xmlsoap.org/wsdl/soap12/";
189
191 const XSD_NS = "http://www.w3.org/2001/XMLSchema";
193 const XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
194
196 const HTTP_NS = "http://schemas.xmlsoap.org/wsdl/http/";
198 const MIME_NS = "http://schemas.xmlsoap.org/wsdl/mime/";
199
201 const ENVELOPE_11_NS = ...;
202
203
205 const ENVELOPE_12_NS = ...;
206
207
209 const SoapUseMap = ...;
210
211
213 const SoapStyleMap = ...;
214
215
217 const SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
218
220 const any_type_map = ...;
221
222
223 // error codes
224 const SOAP_SERIALIZATION_ERROR = "SOAP-SERIALIZATION-ERROR";
225 const SOAP_DESERIALIZATION_ERROR = "SOAP-DESERIALIZATION-ERROR";
226 const WSDL_ERROR = "WSDL-ERROR";
227
229 const SOAP_TRANSPORT_HTTP = "http://schemas.xmlsoap.org/soap/http";
230
232 const SOAP_TRANSPORT = ...;
233
234
236 const RANGE_SHORT = (-32768, 32767);
237
239 const RANGE_INT = (-2147483648, 2147483647);
240
241 // private global variables
242 extern bool global_compat_empty_string_is_nothing;
243 extern bool global_compat_allow_any_header;
244
247
248
251
252};
253
256
257public:
259 const SoapMimeTypes = (MimeTypeSoapXml, MimeTypeXml, MimeTypeXmlApp);
260
261 static string getSoapMimeType12(bool soap12);
262
264
266 static data getFile(string fn, bool as_string = True);
267
269
271 static string getHTTP(string url, *string path, *HTTPClient hc, *hash<auto> headers, bool as_string = True);
272
274
276 static data getFTP(string url, string path, bool as_string = True);
277
279
286 static data getFileFromURL(string url, string def_protocol = 'file', *HTTPClient http_client, *hash<auto> http_headers, bool as_string = True, *string def_path, *reference new_def_path);
287
289
296 static data getFileFromURL(string url, hash<auto> u, string def_protocol = 'file', *HTTPClient http_client, *hash<auto> http_headers, bool as_string = False, *string def_path, *reference new_def_path);
297
300
302
305 static string getWSDL(string wsdl, *HTTPClient http_client, *hash<auto> http_headers, *reference new_def_path);
306
308
312 static WebService getWebServiceFromUrl(string url, *HTTPClient http_client, *hash<auto> http_headers);
313
315 static hash<auto> parseMultiPartSOAPMessage(hash<auto> msg);
316
318 static bool isSOAPMessage(hash<auto> msg);
319
324 static *hash<auto> parseSOAPMessage(hash<auto> msg);
325
326protected:
327 static processHref(reference xmldata, string hr, hash<auto> parts);
328public:
329
330
331protected:
332 static substHref(reference xmldata, hash<auto> parts);
333public:
334
335};
336
337// private, nmon-exported class
338class WsdlLibPriv {
339
340public:
341 static bool isContentType(string ct, list<auto> MimeTypes);
342
343 static checkContentType(string ct, list<auto> MimeTypes);
344};
345
347class WSDL::XsdBase : public Qore::Serializable {
348
349public:
350 static removeNS(reference v);
351
352 static removeNS2(reference v);
353};
354
357
358public:
359 auto getValue(*hash<auto> mrh, auto val);
360
361};
362
365
366public:
367 // name of object
368 string name;
370 *string ns;
373
374 constructor(string n_name, string n_ns);
375
376
377 constructor(reference e, *string desc_name);
378
379
380 string getName();
381
382
383 *string getInputNamespacePrefix();
384
385
386 bool hasRealName();
387
388};
389
390class WSDL::XsdAbstractType : public WSDL::XsdNamedData {
391
392public:
394 Namespaces nsc;
395
397 string ons;
398
399 constructor(reference e, Namespaces nsc, *string desc_name) ;
400
401
402 constructor(string name, string ns, Namespaces nsc) ;
403
404
405protected:
406 resolveNamespace();
407public:
408
409
410 checkExtends(XsdAbstractType t, string ename);
411
412
413 string getNameWithNS();
414
415
416 bool isNillable();
417
418
419 bool isRequired();
420
421
422 bool requiresValue();
423
424
425 string getOutputNamespacePrefix();
426
427
428 *list<auto> getAllowedValues();
429
430
431 abstract auto serialize(Namespaces nsc, auto val, *softbool omitType);
432 abstract auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
433 abstract AbstractDataProviderType getDataProviderType();
434};
435
437class WSDL::XsdBaseType : public WSDL::XsdAbstractType {
438
439public:
440
441 constructor(string t, Namespaces nsc, string ns = 'xsd') ;
442
443
444 auto serialize(Namespaces nsc, auto val, *softbool omitType);
445
446
447 auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
448
449
450 AbstractDataProviderType getDataProviderType();
451
452
453 Type getDataProviderBaseType();
454
455};
456
458class WSDL::XsdArrayType : public WSDL::XsdAbstractType {
459
460public:
461protected:
462 bool finalized;
463
464public:
465
466 *hash<auto> typeinfo;
467 XsdAbstractType elementType;
468
469 constructor(string t, string ns, string arrayType, Namespaces nsc, XsdLateResolverHelper unresolved) ;
470
471
472 AbstractDataProviderType getDataProviderType();
473
474
475 finalize(hash<string, XsdAbstractType> tmap, Namespaces nsc);
476
477
478 auto serialize(Namespaces nsc, auto val, *softbool omitType);
479
480
481 auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
482
483};
484
487
488public:
489 *hash<auto> typeinfo;
490 XsdAbstractType type;
491
492 constructor(reference e) ;
493
494};
495
498
499public:
500 string use = "optional";
501
502 const AllowedUseValues = ...;
503
504
505 constructor(hash<auto> attr, Namespaces nsc, *XsdAbstractType n_type, XsdLateResolverHelper unresolved) ;
506
507
508 auto getValue(string val);
509
510};
511
514
515public:
516 int minOccurs = 1;
517 int maxOccurs = 1;
518 bool nillable = False;
519 // the resolved namespace URI for any reference
520 *string ref_ns;
521 // the source name for any reference
522 *string ref;
523 bool usedocns;
524
525 constructor(hash<auto> e, Namespaces nsc, *XsdAbstractType n_type, XsdLateResolverHelper unresolved, bool n_usedocns) ;
526
527
528 AbstractDataProviderType getDataProviderType();
529
530
531 *list<auto> getAllowedValues();
532
533
534 assimilate(WSDL::XsdElement other);
535
536
537 bool isRequired();
538
539
540 bool isNillable();
541
542
543 auto serialize(Namespaces nsc, auto h, *softbool omitType, string key, string typename);
544
545
546protected:
547 auto serializeAsIntern(Namespaces nsc, XsdAbstractType type, auto h, *softbool omitType, string key, string typename);
548public:
549
550
551 auto deserialize(hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val, bool present);
552
553};
554
555class WSDL::UnionDataType : public AbstractDataProviderType {
556
557public:
558 list<AbstractDataProviderType> types;
559
560 constructor(list<XsdAbstractType> unionTypes);
561
562
563 string getName();
564
565
566 bool isAssignableFrom(AbstractDataProviderType t);
567
568
569 *Type getValueType();
570
571
572 *AbstractDataProviderType getElementType();
573
574
575 *hash<string, AbstractDataField> getFields();
576
577
578 hash<string, bool> getAcceptTypeHash(*bool simple);
579
580
581 hash<string, bool> getReturnTypeHash(*bool simple);
582
583
584 auto acceptsValue(auto value);
585
586};
587
589class WSDL::XsdSimpleType : public WSDL::XsdAbstractType {
590
591public:
592 hash<auto> enum;
593 hash<auto> typeinfo;
594 list<hash<auto>> union;
595 list<XsdAbstractType> unionTypes;
596 XsdAbstractType type;
597 AbstractDataProviderType dataType;
598 bool usedocns;
599
600 constructor(hash<auto> st, Namespaces nsc, XsdLateResolverHelper unresolved, bool n_usedocns, *string desc_name) ;
601
602
603 finalizeResolved();
604
605
606 AbstractDataProviderType getDataProviderType();
607
608
609 *list<auto> getAllowedValues();
610
611
612 auto serialize(Namespaces nsc, auto val, *softbool omitType);
613
614
615 auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
616
617};
618
620public hashdecl WSDL::ChoiceInfo {
621 hash<string, XsdElement> elementmap;
622 bool required;
623};
624
626class WSDL::XsdComplexType : public WSDL::XsdAbstractType {
627
628public:
629 *XsdArrayType array;
630 *string arrayType;
631 *string restriction;
632 *string extension;
633
634 bool usedocns;
635
636 hash<string, XsdElement> elementmap();
637 bool anyAttribute = False;
638
639 bool nillable = False;
640 bool required = False;
641 bool requires_value = False;
642
643 // attributes
644 hash<string, XsdAttribute> attrs();
645
646 // any annotated documentation
647 *string documentation;
648
649 // temporarily used to store type information to resolve simpleType
650 *hash<auto> simpleTypeInfo;
651 // simpleContent type
652 XsdAbstractType simpleType;
653
654 // finalization flag
655 bool finalized = False;
656
657 // multiple choice blocks
658 list<hash<ChoiceInfo>> choices();
659
660protected:
662 string cx_type;
663
664 const XET_ALL = "ALL";
665 const XET_CHOICE = "CHOICE";
666 const XET_SEQUENCE = "SEQUENCE";
667 const XET_SIMPLE = "SIMPLE";
668 const XET_NONE = "NONE";
669
670public:
671
672 // ct can be NOTHING in case of an empty complex type
673 constructor(*hash<auto> ct, Namespaces nsc, XsdLateResolverHelper unresolved, bool n_usedocns, *string desc_name) ;
674
675
676 *list<auto> getAllowedValues();
677
678
679 finalize(hash<string, XsdAbstractType> tmap, Namespaces nsc);
680
681
683 checkExtends(XsdAbstractType t, string ename);
684
685
686protected:
687 parseData(hash<auto> d, XsdLateResolverHelper unresolved, Namespaces nsc);
688public:
689
690
691protected:
692 parseAttributes(reference d, XsdLateResolverHelper unresolved, Namespaces nsc);
693public:
694
695
696 bool isNillable();
697
698
699 bool isRequired();
700
701
702 bool requiresValue();
703
704
705 bool isEmpty();
706
707
708protected:
709 hash<string, XsdElement> parseElements(softlist<auto> el, XsdLateResolverHelper unresolved, Namespaces nsc, bool for_object = True);
710public:
711
712
713 AbstractDataProviderType getDataProviderType();
714
715
716protected:
717 AbstractDataProviderType getDataProviderTypeIntern();
718public:
719
720
721protected:
722 *hash<auto> serializeElement(Namespaces nsc, string key, XsdElement element, auto h, *softbool omitType);
723public:
724
725
726 *hash<auto> serialize(Namespaces nsc, auto h, *softbool omitType);
727
728
729protected:
730 hash<auto> serializeChoice(Namespaces nsc, hash<string, XsdElement> emap, hash<auto> h, *softbool omitType, bool all_members);
731public:
732
733
734 auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto oval);
735
736
737protected:
738 *hash<auto> parseChoice(hash<auto> val, hash<string, XsdElement> emap, string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, *bool required);
739public:
740
741};
742
745
746public:
752 *string input_name;
754 *string output_name;
755
758
760 *string soapAction;
761
763 hash<string, bool> reqh;
764
766 hash<string, OperationalBinding> bindings;
767
768protected:
770 hash<string, WSMessage> faults;
771
772public:
773
775
779 constructor(hash<auto> p, Namespaces nsc, *hash<auto> messages) ;
780
781
783 *hash<string, WSMessage> getFaultMessages();
784
785
787 bool hasFault(string fault);
788
789
791 setDocStyleBinding(reference idocmap);
792
793
796
797
800
801
803
812
813
815
823
824
826
846 hash<auto> serializeFault(*string fault, string faultmsg, auto h, *hash<auto> header, *string enc, *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string bname);
847
848
850
871 hash<auto> serializeRequest(auto h, *hash<auto> header, *string enc, *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string bname, *hash<auto> http_headers);
872
873
875
895 hash<auto> serializeResponse(auto h, *hash<auto> header, *string enc, *hash<auto> nsh, *bool soap12, *int xml_opts, *string bname, *hash<auto> http_headers);
896
897
899
904 auto deserializeRequest(hash<auto> o, *string bname);
905
906
908
913 auto deserializeResponse(hash<auto> o, *string bname);
914
915
920 *hash<auto> deserializeRequestPath(string path, *string bname);
921
922
924protected:
925 static hash<auto> processNSValue(hash<auto> h);
926public:
927
928
930
932 bool isSoap12();
933
934
936
938 string getTargetNS();
939
940};
941
943public hashdecl WSDL::ArgInfo {
945 string name;
946
948 string part;
949
951 XsdAbstractType type;
952
955};
956
958
965
966public:
968 hash<string, hash<WSDL::ArgInfo>> args;
969
971 hash<string, string> pmap;
972
974 hash<string, XsdAbstractType> tmap;
975
976 // keep a weak reference to the namespace map
977 Namespaces nsc;
978
979 constructor(hash<auto> m, hash<string, hash<string, XsdElement>> emap, hash<string, XsdAbstractType> tmap, Namespaces nsc) ;
980
981
983 AbstractDataProviderType getDataProviderType();
984
985
990 auto serializeRpcValue(string part, bool encoded, reference<hash<auto>> h, reference<string> ons);
991
992
994
1002 *hash<auto> serializeRpc(*softlist<auto> parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, string n_name, bool encoded, reference<auto> h, bool fault);
1003
1004
1006
1014 *hash<auto> serializeDocument(*softlist<auto> parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, bool encoded, reference<auto> h, bool fault);
1015
1016
1018
1023 *hash<auto> deserializeRpc(*hash<auto> mrh, hash<auto> val, *string part);
1024
1025
1026 *hash<auto> deserializeDocument(*hash<auto> mrh, auto val, *string parts);
1027
1028
1030
1033 hash<auto> serializeAllPartData(*hash<auto> val);
1034
1035
1037
1043 hash<auto> serializeData(Namespaces nsc, string key, *hash<auto> val);
1044
1045
1047
1050 hash<auto> deserializeData(string part, hash<auto> val);
1051
1052
1054
1057 hash<auto> deserializeAllPartData(hash<auto> val);
1058
1059
1061
1068private:
1069 auto getValueFromHash(string ename, reference<auto> v, bool removeFound);
1070public:
1071
1072
1074private:
1075 auto getValueFromHash(*WSDL::XsdElement element, reference<auto> v, bool removeFound);
1076public:
1077
1078
1079 string getSerializedKey(string part);
1080
1081
1083
1085 string checkPart(string pname);
1086
1087};
1088
1089// private helper class for lazy name resolution
1090class WSDL::XsdLateResolverHelper {
1091
1092public:
1093protected:
1094 list<object> l();
1095
1096public:
1097
1098 constructor();
1099
1100
1101 add(object v);
1102
1103
1104 list<auto> getList();
1105
1106
1107 clearResolved();
1108
1109
1110 static bool isResolved(XsdTypedData t);
1111
1112 static bool isResolved(XsdSimpleType t);
1113
1114 static bool isResolved(XsdComplexType t);
1115
1116 static bool isResolved(XsdArrayType t);
1117
1118 static bool isResolved(auto t);
1119};
1120
1123
1124public:
1125 bool docstyle;
1128 *string soapAction;
1129
1130 constructor(string name, string ns, bool docstyle, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output) ;
1131
1132
1133 hash<auto> serializeMessage(WSOperation op, *WSMessage msg, bool request, bool soap12, auto h, *hash<auto> header, string enc = 'UTF-8', *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string faultmsg, *hash<auto> http_headers);
1134
1135
1136 auto deserializeMessage(WSOperation op, hash<auto> o, bool request);
1137
1138
1139 auto deserializeRequestPath(WSOperation op, string path);
1140
1141
1142 abstract hash<auto> serializeMessageImpl(WSOperation op, *WSMessage msg, bool request, bool soap12, auto h, *hash<auto> header, string enc, *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string faultmsg, *hash<auto> http_headers);
1143
1144 abstract auto deserializeMessageImpl(WSOperation op, hash<auto> o, bool request);
1145
1146 abstract auto deserializeRequestPathImpl(WSOperation op, string path);
1147};
1148
1149class WSDL::SoapBinding : public WSDL::OperationalBinding {
1150
1151public:
1152 string soapTransport;
1153
1154 constructor(string name, string ns, bool docstyle, string soapTransport, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output) ;
1155
1156
1157 hash<auto> serializeMessageImpl(WSOperation op, *WSMessage msg, bool request, bool soap12, auto h, *hash<auto> header, string enc, *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string faultmsg, *hash<auto> http_headers);
1158
1159
1160private:
1161 hash<auto> serializeSoapMessage(WSOperation op, *WSMessage msg, auto val, *hash<auto> header, *hash<auto> nsh, bool request, bool soap12, reference mpm, *string faultmsg);
1162public:
1163
1164
1165 auto deserializeMessageImpl(WSOperation op, hash<auto> orig_msg, bool request);
1166
1167
1169private:
1170 static list<auto> processMultiRef(hash<auto> body);
1171public:
1172
1173
1174 hash<auto> deserializeRequestPathImpl(WSOperation op, string path);
1175
1176};
1177
1178class WSDL::HttpBinding : public WSDL::OperationalBinding {
1179
1180public:
1181 string httpMethod;
1182 string location;
1183
1184 constructor(string name, string ns, bool docstyle, string httpMethod, string location, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output)
1185 ;
1186
1187
1188 hash<auto> serializeMessageImpl(WSOperation op, *WSMessage msg, bool request, bool soap12, auto h, *hash<auto> header, string enc, *hash<auto> nsh, *int xml_opts, *string req_soapaction, *string faultmsg, *hash<auto> http_headers);
1189
1190
1192private:
1193 string serializeRequestPath(WSOperation op, auto h);
1194public:
1195
1196
1197 auto deserializeMessageImpl(WSOperation op, hash<auto> v, bool request);
1198
1199
1200 hash<auto> deserializeRequestPathImpl(WSOperation op, string path);
1201
1202};
1203
1205
1207class WSDL::BindingMessageBodyDescription : public Serializable {
1208
1209public:
1211
1215
1218
1220 *string ns;
1221
1223 *list<auto> parts;
1224
1225 constructor(bool encoded, *string encodingStyle, *string ns, *string parts);
1226
1227
1228 bool isMultipart();
1229
1230};
1231
1233class WSDL::BindingMessageHeaderDescription : public Serializable {
1234
1235public:
1237 string part;
1238
1240
1244
1247
1249 /*
1250 @param part message part name
1251 @param encoded if @ref Qore::True "True", then use = \c "encoded" (each message part references an abstract type using the \c type attribute), otherwise use = \c "literal" (each part references a concrete schema definition using either the \c element or \c type attribute)
1252 @param msg actual message
1253 */
1254 constructor(string part, bool encoded = False, WSMessage msg);
1255
1256};
1257
1259
1261class WSDL::BindingContentDescription : public Serializable {
1262
1263public:
1265 string part;
1266
1267 // list of accepted content types (with "xxx/*")
1268 list<auto> acceptedContentTypes = ();
1269
1270 // list of accepted specific content types
1271 list<auto> acceptedContentTypeSubtypes = ();
1272
1274 bool formUrlEncoded = False;
1275
1278
1279 addContentType(string type);
1280
1281};
1282
1284
1286class WSDL::MimeXmlMessageDescription : public Serializable {
1287
1288public:
1290
1292 string part;
1293
1294 constructor(string part);
1295
1296};
1297
1299class WSDL::BindingMessageDescription : public Serializable {
1300
1301public:
1304
1306
1308 *hash<auto> urlReplacement;
1309
1311
1322 bool urlEncoded = False;
1323
1326
1329
1330private:
1332 list<BindingMessageHeaderDescription> headers = cast<list<BindingMessageHeaderDescription>>(());
1333
1334public:
1335
1336 addHeader(BindingMessageHeaderDescription hdr);
1337
1338
1341
1342
1344 list<BindingMessageHeaderDescription> getHeaders();
1345
1346
1347 setUrlReplacement(string loc);
1348
1349};
1350
1353
1354public:
1355private:
1356 string port;
1357
1359
1362 bool docstyle = True;
1363
1364 *string httpMethod;
1365 *string soapTransport;
1366
1367public:
1368
1369 constructor(hash<auto> data, Namespaces nsc, reference portTypes, reference idocmap, *hash<auto> messages) ;
1370
1371
1373private:
1374 string checkMessagePart(WSMessage msg, *string partname, string errs);
1375public:
1376
1377
1378 string getPort();
1379
1380
1381 bool isSoapBinding();
1382
1383
1384 bool isHttpBinding();
1385
1386};
1387
1388// private namespace prefix redefinition class
1389class WSDL::NamespacePrefixHelper {
1390
1391public:
1392
1393protected:
1395 Namespaces nsc;
1396
1397 // overriden prefixes
1398 hash<auto> h;
1399
1400 // overridden target namespace
1401 bool targ_ns;
1402
1403 // overridden default namespace
1404 bool def_ns;
1405
1406 // schema description
1407 string desc;
1408
1410 int id = ++count;
1411
1413 static int count = 0;
1414
1415public:
1416
1417 constructor(Namespaces nsc, *hash<auto> nsattr);
1418
1419
1420 destructor();
1421
1422
1423 save(string k, string v);
1424
1425
1426 string getDesc();
1427
1428};
1429
1431class WSDL::Namespaces : public Serializable {
1432
1433public:
1434 // options are here since this object is passed through all serialization and deserialization
1435 bool opt_empty_string_is_nothing = False;
1436 bool opt_allow_any_header = False;
1437
1438protected:
1440 hash<string, string> ns = {
1441 "xsd": XSD_NS,
1442 };
1443
1445 hash<string, string> nsr = {
1446 XSD_NS: "xsd",
1447 };
1448
1450 hash<string, bool> xsd_schema = {
1451 "xsd": True,
1452 };
1453
1455 hash<string, string> imap = {
1456 "xsd": XSD_NS,
1457 };
1458
1460 hash<string, string> imapr = {
1461 XSD_NS: "xsd",
1462 };
1463
1465 bool hassoap11 = False;
1466
1468 bool hassoap12 = False;
1469
1471 *string target_ns;
1472
1474 list<auto> nss = ();
1475
1477 *string default_ns;
1478
1480 list<auto> dss = ();
1481
1483 hash<string, XsdBaseType> base_types;
1484
1486 const DefaultPrefixes = ...;
1487
1488
1489public:
1490
1492 constructor(hash<auto> nsh, *Namespaces nsc, *string targetNamespace);
1493
1494
1495 *string getDefaultNs();
1496
1497
1498 addNamespaces(hash<auto> nsh, *NamespacePrefixHelper nph);
1499
1500
1501 restorePrefixes(hash<auto> h);
1502
1503
1504protected:
1505 addNamespaceIntern(string ns, string val, *bool override);
1506public:
1507
1508
1511
1512
1514 string getUniquePrefix(string uri, *string default_prefix);
1515
1516
1518 string getOutputNamespaceUri(string nsp);
1519
1520
1522 *hash<auto> getOutputNamespaceHash(*hash<auto> nsh);
1523
1524
1527
1528
1530 *string getNamespaceUri(*string nsp);
1531
1532
1535
1536
1539
1540
1543
1544
1547
1548
1551
1552
1555
1556
1559
1560
1562protected:
1563 string registerNamespaceIntern(string uri, *string default_pfx);
1564public:
1565
1566
1569
1570
1573
1574
1577
1578
1580 *bool isSchema(string ns);
1581
1582
1584 string getInputNamespaceUri(string nsa);
1585
1586
1587 bool doType(string t, reference<hash> typeinfo, reference<XsdAbstractType> rtype, *hash<string, XsdAbstractType> tmap);
1588
1589
1590 hash<auto> getTypeHash(string t);
1591
1592
1593 XsdBaseType getBaseType(string t);
1594
1595
1598
1599};
1600
1601// private functions
1602XsdAbstractType tmap_get(hash<string, XsdAbstractType> tmap, string name);
1603
1604
1605*XsdAbstractType tmap_try_get(hash<string, XsdAbstractType> tmap, string name);
1606
1607
1608// private functions
1609XsdElement emap_get(hash<string, hash<string, XsdElement>> emap, string ns, string name);
1610
1611
1612*XsdElement emap_try_get(hash<string, hash<string, XsdElement>> emap, string ns, string name);
1613
1614
1616public hashdecl WSDL::PortTypeInfo {
1617 hash<string, WSOperation> operations;
1618};
1619
1621public hashdecl WSDL::ServiceInfo {
1623 string name;
1625 hash<string, hash> port;
1626};
1627
1629public hashdecl WSDL::OperationInfo {
1631 string port;
1632
1635};
1636
1638
1640class WSDL::WebService : public WSDL::XsdBase, public Qore::Serializable {
1641
1642public:
1644 string wsdl;
1645
1648
1650 *hash<auto> opts;
1651
1653 bool has_try_import = False;
1654
1656
1658 string name;
1659
1661
1663 string hash_str;
1664
1666 transient Namespaces nsc;
1667
1669 transient list<string> wsdl_services();
1670
1672 transient hash<string, XsdElement> idocmap();
1673
1675 transient hash<string, hash<string, XsdElement>> emap();
1676
1678 transient hash<string, WSMessage> messages();
1679
1681 transient hash<string, XsdAbstractType> tmap();
1682
1684 transient hash<string, hash<PortTypeInfo>> portType();
1685
1687 transient *code try_import;
1688
1690
1692 transient *string def_path;
1693
1694protected:
1695 // service definitions; name -> service info hash
1696 hash<string, hash<WSDL::ServiceInfo>> services();
1697
1698 // service bindings; name -> Binding
1699 hash<string, Binding> binding();
1700
1702 transient hash<string, bool> import_map;
1703
1704public:
1705
1707
1718 constructor(string str, *hash<auto> opts);
1719
1720
1722
1726 string getName();
1727
1728
1730
1734 synchronized string getHash();
1735
1737
1740
1741
1743 softlist<string> getOperationNames();
1744
1745
1747 WSDL::WSOperation getPortTypeOperation(string ptname, string opname);
1748
1749
1751 WSDL::WSOperation getBindingOperation(*string bname, string opname);
1752
1753
1755
1759 list<hash<OperationInfo>> listOperations();
1760
1761
1763
1770
1771
1773
1779 list<hash<WSDL::ServiceInfo>> listServices();
1780
1781
1783
1792 hash<WSDL::ServiceInfo> getService(string name);
1793
1794
1796 hash<auto> getType(string name, auto v);
1797
1798
1799protected:
1800 XsdBaseType getBaseType(string t);
1801public:
1802
1803
1804protected:
1805 resolveType(XsdSimpleType t);
1806public:
1807
1808
1809protected:
1810 resolveType(XsdElement xe);
1811public:
1812
1813
1814protected:
1815 resolveType(XsdAttribute xd);
1816public:
1817
1818
1819protected:
1820 resolveType(XsdComplexType ct);
1821public:
1822
1823
1824protected:
1825 resolveType(XsdArrayType t);
1826public:
1827
1828
1829protected:
1830 XsdAbstractType resolveType(hash<auto> v);
1831public:
1832
1833
1834 // parse XSD schema types
1835protected:
1836 parseTypes(*hash<auto> data, auto http_client, auto http_headers);
1837public:
1838
1839
1840protected:
1841 parseMessages(*softlist<auto> message);
1842public:
1843
1844
1845protected:
1846 parseService(*softlist<auto> svcs);
1847public:
1848
1849
1850protected:
1851 parsePortType(*softlist<auto> data);
1852public:
1853
1854
1855protected:
1856 parseBinding(*softlist<auto> bindings);
1857public:
1858
1859
1861
1863 bool isSoap12();
1864
1865
1867
1869 string getWSDL();
1870
1871
1873
1875 string getWSDLHash();
1876
1877
1879
1884 string getWSDL(string base_url);
1885
1886
1887protected:
1888 string getOperationParams(WSMessage msg);
1889public:
1890
1891
1893
1898 getReport(StringOutputStream stream, *string wsdl_name);
1899
1900
1902
1906 string getReport(*string wsdl_name);
1907
1908
1910
1912private:
1913 doInit(string str, *hash<auto> opts);
1914public:
1915
1916
1918
1920private:
1921 deserializeMembers(hash<auto> members);
1922public:
1923
1924};
1925
1927
1930
1931public:
1932protected:
1933 WebService ws;
1934 hash<auto> opts;
1935
1936public:
1937
1938 const DefaultOpts = ...;
1939
1940
1942
1948 constructor(WebService ws, *hash<auto> opts);
1949
1950
1951protected:
1952 hash<auto> getTypeInfo(XsdBaseType t);
1953public:
1954
1955
1956protected:
1957 hash<auto> getTypeInfo(XsdSimpleType t);
1958public:
1959
1960
1961protected:
1962 hash<auto> getTypeInfo(XsdComplexType t);
1963public:
1964
1965
1966 hash<auto> getMessage(XsdElement elem, *softlist<auto> comments);
1967
1968
1970
1974 hash<auto> getMessage(string name);
1975
1976
1978
1983
1984};
describes MIME content information for SOAP operational binding message descriptions
Definition WSDL.qm.dox.h:1261
string part
specifies the name of the message part
Definition WSDL.qm.dox.h:1265
bool acceptAllContentTypes
are all content-types accepted?
Definition WSDL.qm.dox.h:1277
bool formUrlEncoded
are all content-types form URL encoded?
Definition WSDL.qm.dox.h:1274
class for WSDL bindings
Definition WSDL.qm.dox.h:1352
bool docstyle
use RPC or document style
Definition WSDL.qm.dox.h:1362
string checkMessagePart(WSMessage msg, *string partname, string errs)
check if part exists in massage, if part is empty and message contains single part then return it oth...
describes the message body for a SOAP operational binding message description
Definition WSDL.qm.dox.h:1207
bool encoded
required attribute
Definition WSDL.qm.dox.h:1214
*string ns
namespace; "only applies to content not explicitly defined by the abstract types"
Definition WSDL.qm.dox.h:1220
*string encodingStyle
when encoded True, this is used to produce a concrete message by applying the specified encoding
Definition WSDL.qm.dox.h:1217
*list< auto > parts
indicates which parts appear somewhere within the SOAP Body portion of the message
Definition WSDL.qm.dox.h:1223
describes an input or output message in a SOAP operational binding
Definition WSDL.qm.dox.h:1299
bool urlEncoded
indicates that all the message parts are encoded into the HTTP request URI using the standard URI-enc...
Definition WSDL.qm.dox.h:1322
*WSDL::MimeXmlMessageDescription mimeXml
optional mimeXml message scription
Definition WSDL.qm.dox.h:1328
*WSDL::BindingContentDescription content
optional content-type descriptions
Definition WSDL.qm.dox.h:1325
list< BindingMessageHeaderDescription > headers
a list of WSDL::BindingMessageHeaderDescription objects
Definition WSDL.qm.dox.h:1332
list< BindingMessageHeaderDescription > getHeaders()
returns a list of WSDL::BindingMessageHeaderDescription objects
*hash< auto > urlReplacement
a hash of URL replacement values keyed by part name, values are URI paths
Definition WSDL.qm.dox.h:1308
*WSDL::BindingMessageBodyDescription body
the description of the message body
Definition WSDL.qm.dox.h:1303
bool hasHeaders()
returns True if the header descriptions are available
describes a SOAP message header for a SOAP operational binding message description
Definition WSDL.qm.dox.h:1233
bool encoded
required attribute
Definition WSDL.qm.dox.h:1243
string part
message part name
Definition WSDL.qm.dox.h:1237
WSMessage msg
a weak reference to the actual message
Definition WSDL.qm.dox.h:1246
constructor(string part, bool encoded=False, WSMessage msg)
creates the object
describes a mimeXml payload for a SOAP operational binding message description
Definition WSDL.qm.dox.h:1286
string part
refers to a message part defining the concrete schema of the root XML element
Definition WSDL.qm.dox.h:1292
namespace container class
Definition WSDL.qm.dox.h:1431
string getOutputNamespaceUri(string nsp)
returns the namespace URI for the given output namespace prefix
*string getTargetNamespaceUri()
returns the primary target namespace Uri
merge(Namespaces nsc)
merges namespaces when parsing imported schemas
string getTargetNamespaceInputPrefix()
returns the input namespace prefix for the target namespace, if any
popDefaultNamespace()
restores any previous default namespace URI from the stack to the current default namespace URI
bool hasSoap12()
returns True if using SOAP 1.2, False if not
string getUniquePrefix(string uri, *string default_prefix)
returns a unique namespace prefix from a URI path string
*hash< auto > getReferencedNamespaceMap()
returns a hash of namespace prefixes to namespaces URIs actually used
*bool isSchema(string ns)
returns True if if the input namespace prefix refers to the XSD namespace URI
*string getNamespaceUri(*string nsp)
returns the namespace URI for the given prefix or the target namespace Uri
hash< string, string > imapr
hash mapping input namespace URIs to input namespace prefixes
Definition WSDL.qm.dox.h:1460
string translateOutputNamespacePrefix(*string nsa)
returns the output namespace prefix for the given input namespace prefix
hash< string, bool > xsd_schema
hash for valid XSD namespaces, maps input namespace prefixes -> True if it refers to an XSD schema
Definition WSDL.qm.dox.h:1450
hash< string, string > nsr
maps namespace URIs to output namespace prefixes
Definition WSDL.qm.dox.h:1445
pushDefaultNamespace(string ns)
pushes the current default namespace URI on the stack when parsing schemas and sets the current defau...
list< auto > dss
default namespace stack;
Definition WSDL.qm.dox.h:1480
pushTargetNamespace(string ns)
pushes the current target namespace URI on the stack when parsing schemas and sets the current target...
const DefaultPrefixes
maps namespaces to default prefixes
Definition WSDL.qm.dox.h:1486
*string target_ns
current target namespace
Definition WSDL.qm.dox.h:1471
hash< string, string > ns
maps output namespace prefixes to namespace URIs
Definition WSDL.qm.dox.h:1440
string getOutputNamespacePrefix(string ns)
looks up and registers a namespace if necessary, returns the namespace's prefix
constructor(hash< auto > nsh, *Namespaces nsc, *string targetNamespace)
creates the object with the WSDL definitions attribute hash
bool hassoap11
if True then has SOAP 1.1
Definition WSDL.qm.dox.h:1465
list< auto > nss
target namespace stack;
Definition WSDL.qm.dox.h:1474
string registerNamespaceIntern(string uri, *string default_pfx)
registers a namespace internally
*string default_ns
default namespace for unprefixed definitions
Definition WSDL.qm.dox.h:1477
hash< string, string > imap
hash mapping input namespace prefixes to namespaces URIs
Definition WSDL.qm.dox.h:1455
bool hasSoap11()
returns True if using SOAP 1.1, False if not
*hash< auto > getOutputNamespaceHash(*hash< auto > nsh)
returns a hash of namespace attributes for outgoing SOAP messages
popTargetNamespace()
restores any previous target namespace URI from the stack to the current target namespace URI
hash< string, XsdBaseType > base_types
base type map
Definition WSDL.qm.dox.h:1483
string getInputNamespaceUri(string nsa)
returns the input namespace URI from the input namespace prefix
bool hassoap12
if True then has SOAP 1.2
Definition WSDL.qm.dox.h:1468
string getTargetNamespaceOutputPrefix()
returns the output namespace prefix for the target namespace, if any
class for WSDL bindings associated with a SOAP operation
Definition WSDL.qm.dox.h:1122
contains helper methods for retrieving WSDLs from a URL
Definition WSDL.qm.dox.h:255
static hash< auto > parseMultiPartSOAPMessage(hash< auto > msg)
takes a hash representation of a SOAP message and handles multipart messages, checks the content-type...
const SoapMimeTypes
Mime types recognized as SOAP messages.
Definition WSDL.qm.dox.h:259
static WebService getWebServiceFromUrl(string url, *HTTPClient http_client, *hash< auto > http_headers)
returns a WebService object from a URL and other optional arguments
static data getFile(string fn, bool as_string=True)
retrieves a local file and returns the file's contents as a string
static bool isSOAPMessage(hash< auto > msg)
returns True is the message has a SOAP mime type
static data getFTP(string url, string path, bool as_string=True)
retrieves a file from a URL with the FTP protocol and returns the file's contents as binary or string...
static WebService getWSDL(WebService wsdl)
returns the argument
static *hash< auto > parseSOAPMessage(hash< auto > msg)
static data getFileFromURL(string url, hash< auto > u, string def_protocol='file', *HTTPClient http_client, *hash< auto > http_headers, bool as_string=False, *string def_path, *reference new_def_path)
retrieves a file from an already-parsed URL
static string getHTTP(string url, *string path, *HTTPClient hc, *hash< auto > headers, bool as_string=True)
retrieves a file from a URL with HTTP and returns the file's contents as a string
static data getFileFromURL(string url, string def_protocol='file', *HTTPClient http_client, *hash< auto > http_headers, bool as_string=True, *string def_path, *reference new_def_path)
retrieves a file from a URL
static string getWSDL(string wsdl, *HTTPClient http_client, *hash< auto > http_headers, *reference new_def_path)
returns a WSDL string from a file name, optional HTTPClient object and optional header hash
helper class implementing sample message generation
Definition WSDL.qm.dox.h:1929
hash< auto > getMessage(string name)
prepare sample message
auto getMessage(WSMessage msg)
prepare sample message
constructor(WebService ws, *hash< auto > opts)
creates the WebService object
web service message class
Definition WSDL.qm.dox.h:964
auto getValueFromHash(*WSDL::XsdElement element, reference< auto > v, bool removeFound)
when only one arg then try to get values based on element keys
auto serializeRpcValue(string part, bool encoded, reference< hash< auto > > h, reference< string > ons)
hash< auto > serializeData(Namespaces nsc, string key, *hash< auto > val)
serialized value of particular type value as string or binary
auto getValueFromHash(string ename, reference< auto > v, bool removeFound)
find part in value, remove that value from the hash
hash< string, XsdAbstractType > tmap
type map
Definition WSDL.qm.dox.h:974
hash< auto > serializeAllPartData(*hash< auto > val)
serialize all values as string or binary
*hash< auto > serializeRpc(*softlist< auto > parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, string n_name, bool encoded, reference< auto > h, bool fault)
serializes data into a hash with SOAP namespaces etc. with RPC-style messages
hash< auto > deserializeAllPartData(hash< auto > val)
deserialize all values in string or binary form
*hash< auto > deserializeRpc(*hash< auto > mrh, hash< auto > val, *string part)
deserialize RPC message
AbstractDataProviderType getDataProviderType()
Returns the data provider type for this message.
string checkPart(string pname)
check if pname is defined as message part
hash< auto > deserializeData(string part, hash< auto > val)
deserialize value in string or binary form
hash< string, hash< WSDL::ArgInfo > > args
args keys are part names for types reps. element names for element. Definition must provide unique va...
Definition WSDL.qm.dox.h:968
*hash< auto > serializeDocument(*softlist< auto > parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, bool encoded, reference< auto > h, bool fault)
serializes data into a hash with SOAP namespaces etc. with document-style messages
hash< string, string > pmap
maps part names to args key, all parts are in hash
Definition WSDL.qm.dox.h:971
web service operation class
Definition WSDL.qm.dox.h:744
*WSMessage output
response message
Definition WSDL.qm.dox.h:750
hash< auto > serializeResponse(auto h, *hash< auto > header, *string enc, *hash< auto > nsh, *bool soap12, *int xml_opts, *string bname, *hash< auto > http_headers)
serializes a SOAP response to an XML string for the operation
hash< auto > serializeRequest(auto h, *hash< auto > header, *string enc, *hash< auto > nsh, *int xml_opts, *string req_soapaction, *string bname, *hash< auto > http_headers)
serializes a request to an XML string or HTTP payload for the operation.
*string soapAction
the SOAPAction header value to send with this operation
Definition WSDL.qm.dox.h:760
hash< string, bool > reqh
a hash of top-level request names for this operation (depends on bindings)
Definition WSDL.qm.dox.h:763
*string input_name
request message name
Definition WSDL.qm.dox.h:752
*hash< string, WSMessage > getFaultMessages()
returns a hash of fault messages keyed by fault name
list< auto > getTopLevelRequestNames()
returns all top-level request names for this operation
OperationalBinding getBinding(*string bname)
returns a hash representing the given binding
Namespaces nsc
namespace container
Definition WSDL.qm.dox.h:757
hash< auto > serializeFault(*string fault, string faultmsg, auto h, *hash< auto > header, *string enc, *hash< auto > nsh, *int xml_opts, *string req_soapaction, *string bname)
serializes a fault response to an XML string or HTTP payload for the operation.
*hash< auto > deserializeRequestPath(string path, *string bname)
auto deserializeRequest(hash< auto > o, *string bname)
parses a hash representing a parsed XML request (parsed with parse_xml(XPF_PRESERVE_ORDER)) for the o...
hash< string, OperationalBinding > bindings
params per associated binding; key = binding name; value = OperationalBinding object
Definition WSDL.qm.dox.h:766
*WSMessage input
request message
Definition WSDL.qm.dox.h:748
auto deserializeResponse(hash< auto > o, *string bname)
parses a hash representing a parsed XML response (parsed with parse_xml(XPF_PRESERVE_ORDER)) for the ...
static hash< auto > processNSValue(hash< auto > h)
processes a hash of raw deserialized XML data and removes any namespace prefix from keys (saved to a ...
setDocStyleBinding(reference idocmap)
this method is called if this operation supports at least one binding with document style
bool hasFault(string fault)
returns True if the given string is a valid fault message for the operation
constructor(hash< auto > p, Namespaces nsc, *hash< auto > messages)
creates the WSOperation object from the arguments supplied
*string output_name
response message name
Definition WSDL.qm.dox.h:754
bool isSoap12()
returns True if the operation is a SOAP 1.2 operation
markRpcStyleBinding()
this method is called if this operation supports at least one binding with RPC style
addBinding(WSDL::OperationalBinding b)
adds the given binding
string getTargetNS()
returns the target namespace for the operation
hash< string, WSMessage > faults
fault messages keyed by fault name
Definition WSDL.qm.dox.h:770
main class representing a parsed WSDL file
Definition WSDL.qm.dox.h:1640
getReport(StringOutputStream stream, *string wsdl_name)
prepare a WebService report enumerating the services and operations of the WSDL, outputs to the outpu...
string name
the name of the WebService
Definition WSDL.qm.dox.h:1658
WSDL::WSOperation getBindingOperation(*string bname, string opname)
returns the given operation for particular binding or throws an exception if it cannot be found
WSDL::Binding getBinding(string name)
return a WSDL::Binding object describing the requested binding
transient hash< string, bool > import_map
issue #4449: map of imports used while parsing
Definition WSDL.qm.dox.h:1702
transient Namespaces nsc
namespace container
Definition WSDL.qm.dox.h:1666
transient hash< string, hash< PortTypeInfo > > portType()
hash of port names to port type information hashes
transient hash< string, WSMessage > messages()
hash of messages names to messages
transient list< string > wsdl_services()
list of services in this WSDL
transient *code try_import
optional closure/call reference to try to resolve import declarations
Definition WSDL.qm.dox.h:1687
WSDL::WSOperation getOperation(string opname)
returns the given operation or throws an exception if it cannot be found; operations are searched in ...
transient hash< string, hash< string, XsdElement > > emap()
map of elements
synchronized string getHash()
returns a unique hash for the WSDL that can be used to compare schemas for equality
softlist< string > getOperationNames()
returns a list of known operation names
bool isSoap12()
returns True if the WSDL describes a SOAP 1.2 service
doInit(string str, *hash< auto > opts)
supports the constructor and deserialization
transient hash< string, XsdAbstractType > tmap()
map of types
*hash< auto > opts
options used in the constructor
Definition WSDL.qm.dox.h:1650
string getName()
returns the name of the service
hash< auto > getType(string name, auto v)
return a hash value that can be used to serialize a value as a particular type
constructor(string str, *hash< auto > opts)
creates the WebService object
string getWSDLHash()
returns a cryptographic hash for the WSDL source
string hash_str
the digest of the WSDL source
Definition WSDL.qm.dox.h:1663
string getWSDL(string base_url)
returns the XML string for the WSDL, adjusting the URLs for binding locations depending on the caller
string wsdl
the WSDL string
Definition WSDL.qm.dox.h:1644
WSDL::WSOperation getPortTypeOperation(string ptname, string opname)
returns the given operation for particular porttype or throws an exception if it cannot be found
transient *string def_path
default path for retrieving XSD references
Definition WSDL.qm.dox.h:1692
bool has_try_import
flag if the object has a "try_import" closure or call reference
Definition WSDL.qm.dox.h:1653
list< hash< WSDL::ServiceInfo > > listServices()
returns a list of services defined in the WSDL
deserializeMembers(hash< auto > members)
can be used to create a WebService object from a hash created with serialize()
string getWSDL()
returns the XML string for the WSDL
list< hash< OperationInfo > > listOperations()
returns a list of hashes giving supported operation names for each port in the WSDL
string wsdl_hash
a cryptographic hash for the WSDL source
Definition WSDL.qm.dox.h:1647
transient hash< string, XsdElement > idocmap()
a hash of element names to XsdElement objects for top-level document-style bindings
hash< WSDL::ServiceInfo > getService(string name)
returns a hash describing the requested service
string getReport(*string wsdl_name)
prepare a WebService report enumerating the services and operations of the WSDL
class for XSD array types; currently only supports single dimensional arrays
Definition WSDL.qm.dox.h:458
XSD attribute class.
Definition WSDL.qm.dox.h:497
base class with helper methods for XSD data processing
Definition WSDL.qm.dox.h:347
class for XSD base types
Definition WSDL.qm.dox.h:437
XSD complex type class.
Definition WSDL.qm.dox.h:626
string cx_type
type of complexType object
Definition WSDL.qm.dox.h:662
checkExtends(XsdAbstractType t, string ename)
throws an exception if the types are not compatible
base class for XSD data classes
Definition WSDL.qm.dox.h:356
XSD element class.
Definition WSDL.qm.dox.h:513
base class for XSD classes with a "name" attribute
Definition WSDL.qm.dox.h:364
descriptive_name
descriptive name flag
Definition WSDL.qm.dox.h:372
*string ns
input namespace prefix (if any given)
Definition WSDL.qm.dox.h:370
XSD simple type class.
Definition WSDL.qm.dox.h:589
XSD typed data class.
Definition WSDL.qm.dox.h:486
main WSDL namespace
Definition WSDL.qm.dox.h:175
const any_type_map
mapping from Qore types to xsd types for xsd type "anyType"
Definition WSDL.qm.dox.h:220
const SOAP_11_ENV
SOAP 1.1 envelope URI.
Definition WSDL.qm.dox.h:180
const SoapStyleMap
SOAP "style" to "document" mappings.
Definition WSDL.qm.dox.h:213
const SoapUseMap
SOAP "use" to "encoded" mappings.
Definition WSDL.qm.dox.h:209
const SOAP_TRANSPORT
known/supported transports
Definition WSDL.qm.dox.h:232
const HTTP_NS
HTTP namespace URI.
Definition WSDL.qm.dox.h:196
const version
this WSDL implementation version
Definition WSDL.qm.dox.h:177
const ENVELOPE_12_NS
soap 1.2 envelope namespaces
Definition WSDL.qm.dox.h:205
wsdl_set_global_compat_allow_any_header(softbool val)
sets the global_compat_allow_any_header variable to the given value to force the WSDL module to allow...
const XSI_NS
XSI namespace URI.
Definition WSDL.qm.dox.h:193
const XSD_NS
XSD namespace URI.
Definition WSDL.qm.dox.h:191
const SOAP_12_NS
SOAP 1.2 namespace URI.
Definition WSDL.qm.dox.h:188
const SOAP_TRANSPORT_HTTP
SOAP HTTP transport URI.
Definition WSDL.qm.dox.h:229
const SOAP_11_NS
SOAP 1.1 namespace URI.
Definition WSDL.qm.dox.h:185
wsdl_set_global_compat_empty_string_is_nothing(softbool val)
sets the global_compat_empty_string_is_nothing variable to the given value to force the WSDL module t...
const RANGE_INT
range of "int" values (32 bits)
Definition WSDL.qm.dox.h:239
const SOAP_12_ENV
SOAP 1.2 envelope URI.
Definition WSDL.qm.dox.h:182
const MIME_NS
MIME namespace URI.
Definition WSDL.qm.dox.h:198
const SOAP_ENCODING
soap encoding URI
Definition WSDL.qm.dox.h:217
const ENVELOPE_11_NS
soap 1.1 envelope namespaces
Definition WSDL.qm.dox.h:201
const RANGE_SHORT
range of "short" values (16 bits)
Definition WSDL.qm.dox.h:236
message argument hash description
Definition WSDL.qm.dox.h:943
XsdAbstractType type
type for the argument
Definition WSDL.qm.dox.h:951
string part
unique part name
Definition WSDL.qm.dox.h:948
XsdElement element
element for the argument
Definition WSDL.qm.dox.h:954
string name
the arg name
Definition WSDL.qm.dox.h:945
complex type choice hash
Definition WSDL.qm.dox.h:620
WSDL operation info.
Definition WSDL.qm.dox.h:1629
string port
the name of the port defining the operation
Definition WSDL.qm.dox.h:1631
WSDL::WSOperation operation
the operation object
Definition WSDL.qm.dox.h:1634
WSDL port type hash.
Definition WSDL.qm.dox.h:1616
WSDL service info hash.
Definition WSDL.qm.dox.h:1621
hash< string, hash > port
port info
Definition WSDL.qm.dox.h:1625
string name
service name
Definition WSDL.qm.dox.h:1623