Qore WSDL Module Reference  0.5.1
WSDL.qm.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
4 /* WSDL.qm Copyright (C) 2012 - 2021 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 
156 namespace WSDL {
158  const version = "0.3.6";
159 
161  const SOAP_11_ENV = "http://schemas.xmlsoap.org/soap/envelope/";
163  const SOAP_12_ENV = "http://www.w3.org/2003/05/soap-envelope";
164 
166  const SOAP_11_NS = "http://schemas.xmlsoap.org/wsdl/soap/";
167 
169  const SOAP_12_NS = "http://schemas.xmlsoap.org/wsdl/soap12/";
170 
172  const XSD_NS = "http://www.w3.org/2001/XMLSchema";
174  const XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
175 
177  const HTTP_NS = "http://schemas.xmlsoap.org/wsdl/http/";
179  const MIME_NS = "http://schemas.xmlsoap.org/wsdl/mime/";
180 
182  const ENVELOPE_11_NS = ...;
183 
184 
186  const ENVELOPE_12_NS = ...;
187 
188 
190  const SoapUseMap = ...;
191 
192 
194  const SoapStyleMap = ...;
195 
196 
198  const SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
199 
201  const any_type_map = ...;
202 
203 
204  // error codes
205  const SOAP_SERIALIZATION_ERROR = "SOAP-SERIALIZATION-ERROR";
206  const SOAP_DESERIALIZATION_ERROR = "SOAP-DESERIALIZATION-ERROR";
207  const WSDL_ERROR = "WSDL-ERROR";
208 
210  const SOAP_TRANSPORT_HTTP = "http://schemas.xmlsoap.org/soap/http";
211 
213  const SOAP_TRANSPORT = ...;
214 
215 
217  const RANGE_SHORT = (-32768, 32767);
218 
220  const RANGE_INT = (-2147483648, 2147483647);
221 
222  // private global variables
223  extern bool global_compat_empty_string_is_nothing;
224  extern bool global_compat_allow_any_header;
225 
228 
229 
232 
233 };
234 
237 
238 public:
240  const SoapMimeTypes = (MimeTypeSoapXml, MimeTypeXml, MimeTypeXmlApp);
241 
242  static string getSoapMimeType12(bool soap12);
243 
245 
247  static data getFile(string fn, bool as_string = True);
248 
250 
252  static string getHTTP(string url, *string path, *HTTPClient hc, *hash<auto> headers, bool as_string = True);
253 
255 
257  static data getFTP(string url, string path, bool as_string = True);
258 
260 
267  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);
268 
270 
277  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);
278 
281 
283 
286  static string getWSDL(string wsdl, *HTTPClient http_client, *hash<auto> http_headers, *reference new_def_path);
287 
289 
293  static WebService getWebServiceFromUrl(string url, *HTTPClient http_client, *hash<auto> http_headers);
294 
296  static hash<auto> parseMultiPartSOAPMessage(hash<auto> msg);
297 
299  static bool isSOAPMessage(hash<auto> msg);
300 
305  static *hash<auto> parseSOAPMessage(hash<auto> msg);
306 
307 protected:
308  static processHref(reference xmldata, string hr, hash<auto> parts);
309 public:
310 
311 
312 protected:
313  static substHref(reference xmldata, hash<auto> parts);
314 public:
315 
316 };
317 
318 // private, nmon-exported class
319 class WsdlLibPriv {
320 
321 public:
322  static bool isContentType(string ct, list<auto> MimeTypes);
323 
324  static checkContentType(string ct, list<auto> MimeTypes);
325 };
326 
328 class WSDL::XsdBase : public Qore::Serializable {
329 
330 public:
331  static removeNS(reference v);
332 
333  static removeNS2(reference v);
334 };
335 
337 class WSDL::XsdData : public WSDL::XsdBase {
338 
339 public:
340  auto getValue(*hash<auto> mrh, auto val);
341 
342 };
343 
346 
347 public:
348  // name of object
349  string name;
351  *string ns;
354 
355  constructor(string n_name, string n_ns);
356 
357 
358  constructor(reference e, *string desc_name);
359 
360 
361  string getName();
362 
363 
364  *string getInputNamespacePrefix();
365 
366 
367  bool hasRealName();
368 
369 };
370 
371 class WSDL::XsdAbstractType : public WSDL::XsdNamedData {
372 
373 public:
375  Namespaces nsc;
376 
378  string ons;
379 
380  constructor(reference e, Namespaces nsc, *string desc_name) ;
381 
382 
383  constructor(string name, string ns, Namespaces nsc) ;
384 
385 
386 protected:
387  resolveNamespace();
388 public:
389 
390 
391  checkExtends(XsdAbstractType t, string ename);
392 
393 
394  string getNameWithNS();
395 
396 
397  bool isNillable();
398 
399 
400  bool isRequired();
401 
402 
403  bool requiresValue();
404 
405 
406  string getOutputNamespacePrefix();
407 
408 
409  abstract auto serialize(Namespaces nsc, auto val, *softbool omitType);
410  abstract auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
411  abstract AbstractDataProviderType getDataProviderType();
412 };
413 
415 class WSDL::XsdBaseType : public WSDL::XsdAbstractType {
416 
417 public:
418 
419  constructor(string t, Namespaces nsc, string ns = 'xsd') ;
420 
421 
422  auto serialize(Namespaces nsc, auto val, *softbool omitType);
423 
424 
425  auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
426 
427 
428  AbstractDataProviderType getDataProviderType();
429 
430 
431  Type getDataProviderBaseType();
432 
433 };
434 
436 class WSDL::XsdArrayType : public WSDL::XsdAbstractType {
437 
438 public:
439 protected:
440  bool finalized;
441 
442 public:
443 
444  *hash<auto> typeinfo;
445  XsdAbstractType elementType;
446 
447  constructor(string t, string ns, string arrayType, Namespaces nsc, XsdLateResolverHelper unresolved) ;
448 
449 
450  AbstractDataProviderType getDataProviderType();
451 
452 
453  finalize(hash<string, XsdAbstractType> tmap, Namespaces nsc);
454 
455 
456  auto serialize(Namespaces nsc, auto val, *softbool omitType);
457 
458 
459  auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
460 
461 };
462 
465 
466 public:
467  *hash<auto> typeinfo;
468  XsdAbstractType type;
469 
470  constructor(reference e) ;
471 
472 };
473 
476 
477 public:
478  string use = "optional";
479 
480  const AllowedUseValues = ...;
481 
482 
483  constructor(hash<auto> attr, Namespaces nsc, *XsdAbstractType n_type, XsdLateResolverHelper unresolved) ;
484 
485 
486  auto getValue(string val);
487 
488 };
489 
492 
493 public:
494  int minOccurs = 1;
495  int maxOccurs = 1;
496  bool nillable = False;
497  // the resolved namespace URI for any reference
498  *string ref_ns;
499  // the source name for any reference
500  *string ref;
501  bool usedocns;
502 
503  constructor(hash<auto> e, Namespaces nsc, *XsdAbstractType n_type, XsdLateResolverHelper unresolved, bool n_usedocns) ;
504 
505 
506  AbstractDataProviderType getDataProviderType();
507 
508 
509  assimilate(WSDL::XsdElement other);
510 
511 
512  bool isRequired();
513 
514 
515  bool isNillable();
516 
517 
518  auto serialize(Namespaces nsc, auto h, *softbool omitType, string key, string typename);
519 
520 
521 protected:
522  auto serializeAsIntern(Namespaces nsc, XsdAbstractType type, auto h, *softbool omitType, string key, string typename);
523 public:
524 
525 
526  auto deserialize(hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val, bool present);
527 
528 };
529 
531 class WSDL::XsdSimpleType : public WSDL::XsdAbstractType {
532 
533 public:
534  hash<auto> enum;
535  hash<auto> typeinfo;
536  list<hash<auto>> union;
537  list<XsdAbstractType> unionTypes;
538  XsdSimpleType unionSimpleType;
539  XsdAbstractType type;
540  bool usedocns;
541 
542  constructor(hash<auto> st, Namespaces nsc, XsdLateResolverHelper unresolved, bool n_usedocns, *string desc_name) ;
543 
544 
545  AbstractDataProviderType getDataProviderType();
546 
547 
548  auto serialize(Namespaces nsc, auto val, *softbool omitType);
549 
550 
551  auto deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto val);
552 
553 };
554 
556 public hashdecl WSDL::ChoiceInfo {
557  hash<string, XsdElement> elementmap;
558  bool required;
559 };
560 
562 class WSDL::XsdComplexType : public WSDL::XsdAbstractType {
563 
564 public:
565  *XsdArrayType array;
566  *string arrayType;
567  *string restriction;
568  *string extension;
569 
570  bool usedocns;
571 
572  hash<string, XsdElement> elementmap();
573  bool anyAttribute = False;
574 
575  bool nillable = False;
576  bool required = False;
577  bool requires_value = False;
578 
579  // attributes
580  hash<string, XsdAttribute> attrs();
581 
582  // any annotated documentation
583  *string documentation;
584 
585  // temporarily used to store type information to resolve simpleType
586  *hash<auto> simpleTypeInfo;
587  // simpleContent type
588  XsdAbstractType simpleType;
589 
590  // finalization flag
591  bool finalized = False;
592 
593  // multiple choice blocks
594  list<hash<ChoiceInfo>> choices();
595 
596 protected:
598  string cx_type;
599 
600  const XET_ALL = "ALL";
601  const XET_CHOICE = "CHOICE";
602  const XET_SEQUENCE = "SEQUENCE";
603  const XET_SIMPLE = "SIMPLE";
604  const XET_NONE = "NONE";
605 
606 public:
607 
608  // ct can be NOTHING in case of an empty complex type
609  constructor(*hash<auto> ct, Namespaces nsc, XsdLateResolverHelper unresolved, bool n_usedocns, *string desc_name) ;
610 
611 
612  finalize(hash<string, XsdAbstractType> tmap, Namespaces nsc);
613 
614 
616  checkExtends(XsdAbstractType t, string ename);
617 
618 
619 protected:
620  parseData(hash<auto> d, XsdLateResolverHelper unresolved, Namespaces nsc);
621 public:
622 
623 
624 protected:
625  parseAttributes(reference d, XsdLateResolverHelper unresolved, Namespaces nsc);
626 public:
627 
628 
629  bool isNillable();
630 
631 
632  bool isRequired();
633 
634 
635  bool requiresValue();
636 
637 
638  bool isEmpty();
639 
640 
641 protected:
642  hash<string, XsdElement> parseElements(softlist<auto> el, XsdLateResolverHelper unresolved, Namespaces nsc, bool for_object = True);
643 public:
644 
645 
646  AbstractDataProviderType getDataProviderType();
647 
648 
649 protected:
650  *hash<auto> serializeElement(Namespaces nsc, string key, XsdElement element, auto h, *softbool omitType);
651 public:
652 
653 
654  *hash<auto> serialize(Namespaces nsc, auto h, *softbool omitType);
655 
656 
657 protected:
658  hash<auto> serializeChoice(Namespaces nsc, hash<string, XsdElement> emap, hash<auto> h, *softbool omitType, bool all_members);
659 public:
660 
661 
662  *hash<auto> deserialize(string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, auto oval);
663 
664 
665 protected:
666  *hash<auto> parseChoice(hash<auto> val, hash<string, XsdElement> emap, string en, hash<string, XsdAbstractType> tmap, *hash<auto> mrh, *bool required);
667 public:
668 
669 };
670 
673 
674 public:
680  *string input_name;
682  *string output_name;
683 
686 
688  *string soapAction;
689 
691  hash<string, bool> reqh;
692 
694  hash<string, OperationalBinding> bindings;
695 
696 protected:
698  hash<string, WSMessage> faults;
699 
700 public:
701 
703 
707  constructor(hash<auto> p, Namespaces nsc, *hash<auto> messages) ;
708 
709 
711  *hash<string, WSMessage> getFaultMessages();
712 
713 
715  bool hasFault(string fault);
716 
717 
719  setDocStyleBinding(reference idocmap);
720 
721 
724 
725 
728 
729 
731 
740 
741 
743 
751 
752 
754 
770  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);
771 
772 
774 
795  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);
796 
797 
799 
819  hash<auto> serializeResponse(auto h, *hash<auto> header, *string enc, *hash<auto> nsh, *bool soap12, *int xml_opts, *string bname, *hash<auto> http_headers);
820 
821 
823 
828  auto deserializeRequest(hash<auto> o, *string bname);
829 
830 
832 
837  auto deserializeResponse(hash<auto> o, *string bname);
838 
839 
844  *hash<auto> deserializeRequestPath(string path, *string bname);
845 
846 
848 protected:
849  static hash<auto> processNSValue(hash<auto> h);
850 public:
851 
852 
854 
856  bool isSoap12();
857 
858 
860 
862  string getTargetNS();
863 
864 };
865 
867 public hashdecl WSDL::ArgInfo {
869  string name;
870 
872  string part;
873 
875  XsdAbstractType type;
876 
879 };
880 
882 
889 
890 public:
892  hash<string, hash<WSDL::ArgInfo>> args;
893 
895  hash<string, string> pmap;
896 
898  hash<string, XsdAbstractType> tmap;
899 
900  // keep a weak reference to the namespace map
901  Namespaces nsc;
902 
903  constructor(hash<auto> m, hash<string, hash<string, XsdElement>> emap, hash<string, XsdAbstractType> tmap, Namespaces nsc) ;
904 
905 
907  AbstractDataProviderType getDataProviderType();
908 
909 
914  auto serializeRpcValue(string part, bool encoded, reference<hash<auto>> h, reference<string> ons);
915 
916 
918 
926  *hash<auto> serializeRpc(*softlist<auto> parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, string n_name, bool encoded, reference<auto> h, bool fault);
927 
928 
930 
938  *hash<auto> serializeDocument(*softlist<auto> parts, *WSDL::BindingMessageDescription msginfo, *MultiPartRelatedMessage mpm, bool encoded, reference<auto> h, bool fault);
939 
940 
942 
947  *hash<auto> deserializeRpc(*hash<auto> mrh, hash<auto> val, *string part);
948 
949 
950  *hash<auto> deserializeDocument(*hash<auto> mrh, auto val, *string parts);
951 
952 
954 
957  hash<auto> serializeAllPartData(*hash<auto> val);
958 
959 
961 
967  hash<auto> serializeData(Namespaces nsc, string key, *hash<auto> val);
968 
969 
971 
974  hash<auto> deserializeData(string part, hash<auto> val);
975 
976 
978 
981  hash<auto> deserializeAllPartData(hash<auto> val);
982 
983 
985 
992 private:
993  auto getValueFromHash(string ename, reference<auto> v, bool removeFound);
994 public:
995 
996 
998 private:
999  auto getValueFromHash(*WSDL::XsdElement element, reference<auto> v, bool removeFound);
1000 public:
1001 
1002 
1003  string getSerializedKey(string part);
1004 
1005 
1007 
1009  string checkPart(string pname);
1010 
1011 };
1012 
1013 // private helper class for lazy name resolution
1014 class WSDL::XsdLateResolverHelper {
1015 
1016 public:
1017 protected:
1018  list<object> l();
1019 
1020 public:
1021 
1022  constructor();
1023 
1024 
1025  add(object v);
1026 
1027 
1028  list<auto> getList();
1029 
1030 
1031  clearResolved();
1032 
1033 
1034  static bool isResolved(XsdTypedData t);
1035 
1036  static bool isResolved(XsdSimpleType t);
1037 
1038  static bool isResolved(XsdComplexType t);
1039 
1040  static bool isResolved(XsdArrayType t);
1041 
1042  static bool isResolved(auto t);
1043 };
1044 
1047 
1048 public:
1049  bool docstyle;
1052  *string soapAction;
1053 
1054  constructor(string name, string ns, bool docstyle, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output) ;
1055 
1056 
1057  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);
1058 
1059 
1060  auto deserializeMessage(WSOperation op, hash<auto> o, bool request);
1061 
1062 
1063  auto deserializeRequestPath(WSOperation op, string path);
1064 
1065 
1066  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);
1067 
1068  abstract auto deserializeMessageImpl(WSOperation op, hash<auto> o, bool request);
1069 
1070  abstract auto deserializeRequestPathImpl(WSOperation op, string path);
1071 };
1072 
1073 class WSDL::SoapBinding : public WSDL::OperationalBinding {
1074 
1075 public:
1076  string soapTransport;
1077 
1078  constructor(string name, string ns, bool docstyle, string soapTransport, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output) ;
1079 
1080 
1081  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);
1082 
1083 
1084 private:
1085  hash<auto> serializeSoapMessage(WSOperation op, *WSMessage msg, auto val, *hash<auto> header, *hash<auto> nsh, bool request, bool soap12, reference mpm, *string faultmsg);
1086 public:
1087 
1088 
1089  auto deserializeMessageImpl(WSOperation op, hash<auto> orig_msg, bool request);
1090 
1091 
1093 private:
1094  static list<auto> processMultiRef(hash<auto> body);
1095 public:
1096 
1097 
1098  hash<auto> deserializeRequestPathImpl(WSOperation op, string path);
1099 
1100 };
1101 
1102 class WSDL::HttpBinding : public WSDL::OperationalBinding {
1103 
1104 public:
1105  string httpMethod;
1106  string location;
1107 
1108 constructor(string name, string ns, bool docstyle, string httpMethod, string location, *string soapAction, *WSDL::BindingMessageDescription input, *WSDL::BindingMessageDescription output) ;
1109 
1110 
1111 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);
1112 
1113 
1115 private:
1116  string serializeRequestPath(WSOperation op, auto h);
1117 public:
1118 
1119 
1120  auto deserializeMessageImpl(WSOperation op, hash<auto> v, bool request);
1121 
1122 
1123  hash<auto> deserializeRequestPathImpl(WSOperation op, string path);
1124 
1125 };
1126 
1128 
1130 class WSDL::BindingMessageBodyDescription : public Serializable {
1131 
1132 public:
1134 
1137  bool encoded;
1138 
1140  *string encodingStyle;
1141 
1143  *string ns;
1144 
1146  *list<auto> parts;
1147 
1148  constructor(bool encoded, *string encodingStyle, *string ns, *string parts);
1149 
1150 
1151  bool isMultipart();
1152 
1153 };
1154 
1156 class WSDL::BindingMessageHeaderDescription : public Serializable {
1157 
1158 public:
1160  string part;
1161 
1163 
1166  bool encoded;
1167 
1170 
1172  /*
1173  @param part message part name
1174  @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)
1175  @param msg actual message
1176  */
1177  constructor(string part, bool encoded = False, WSMessage msg);
1178 
1179 };
1180 
1182 
1184 class WSDL::BindingContentDescription : public Serializable {
1185 
1186 public:
1188  string part;
1189 
1190  // list of accepted content types (with "xxx/*")
1191  list<auto> acceptedContentTypes = ();
1192 
1193  // list of accepted specific content types
1194  list<auto> acceptedContentTypeSubtypes = ();
1195 
1197  bool formUrlEncoded = False;
1198 
1201 
1202  addContentType(string type);
1203 
1204 };
1205 
1207 
1209 class WSDL::MimeXmlMessageDescription : public Serializable {
1210 
1211 public:
1213 
1215  string part;
1216 
1217  constructor(string part);
1218 
1219 };
1220 
1222 class WSDL::BindingMessageDescription : public Serializable {
1223 
1224 public:
1227 
1229 
1231  *hash<auto> urlReplacement;
1232 
1234 
1245  bool urlEncoded = False;
1246 
1249 
1252 
1253 private:
1255  list<BindingMessageHeaderDescription> headers = cast<list<BindingMessageHeaderDescription>>(());
1256 
1257 public:
1258 
1259  addHeader(BindingMessageHeaderDescription hdr);
1260 
1261 
1263  bool hasHeaders();
1264 
1265 
1267  list<BindingMessageHeaderDescription> getHeaders();
1268 
1269 
1270  setUrlReplacement(string loc);
1271 
1272 };
1273 
1276 
1277 public:
1278 private:
1279  string port;
1280 
1282 
1285  bool docstyle = True;
1286 
1287  *string httpMethod;
1288  *string soapTransport;
1289 
1290 public:
1291 
1292  constructor(hash<auto> data, Namespaces nsc, reference portTypes, reference idocmap, *hash<auto> messages) ;
1293 
1294 
1296 private:
1297  string checkMessagePart(WSMessage msg, *string partname, string errs);
1298 public:
1299 
1300 
1301  string getPort();
1302 
1303 
1304  bool isSoapBinding();
1305 
1306 
1307  bool isHttpBinding();
1308 
1309 };
1310 
1311 // private namespace prefix redefinition class
1312 class WSDL::NamespacePrefixHelper {
1313 
1314 public:
1315 
1316 protected:
1318  Namespaces nsc;
1319 
1320  // overriden prefixes
1321  hash<auto> h;
1322 
1323  // overridden target namespace
1324  bool targ_ns;
1325 
1326  // overridden default namespace
1327  bool def_ns;
1328 
1329 public:
1330 
1331  constructor(Namespaces nsc, *hash<auto> nsattr);
1332 
1333 
1334  destructor();
1335 
1336 
1337  save(string k, string v);
1338 
1339 };
1340 
1342 class WSDL::Namespaces : public Serializable {
1343 
1344 public:
1345  // options are here since this object is passed through all serialization and deserialization
1346  bool opt_empty_string_is_nothing = False;
1347  bool opt_allow_any_header = False;
1348 
1349 protected:
1351  hash<string, string> ns = {
1352  "xsd": XSD_NS,
1353  };
1354 
1356  hash<string, string> nsr = {
1357  XSD_NS: "xsd",
1358  };
1359 
1361  hash<string, bool> xsd_schema = {
1362  "xsd": True,
1363  };
1364 
1366  hash<string, string> imap = {
1367  "xsd": XSD_NS,
1368  };
1369 
1371  hash<string, string> imapr = {
1372  XSD_NS: "xsd",
1373  };
1374 
1376  bool hassoap11 = False;
1377 
1379  bool hassoap12 = False;
1380 
1382  *string target_ns;
1383 
1385  list<auto> nss = ();
1386 
1388  *string default_ns;
1389 
1391  list<auto> dss = ();
1392 
1394  hash<string, XsdBaseType> base_types;
1395 
1397  const DefaultPrefixes = ...;
1398 
1399 
1400 public:
1401 
1403  constructor(hash<auto> nsh, *Namespaces nsc, *string targetNamespace);
1404 
1405 
1406  *string getDefaultNs();
1407 
1408 
1409  addNamespaces(hash<auto> nsh, *NamespacePrefixHelper nph);
1410 
1411 
1412  restorePrefixes(hash<auto> h);
1413 
1414 
1415 protected:
1416  addNamespaceIntern(string ns, string val, *bool override);
1417 public:
1418 
1419 
1422 
1423 
1425  string getUniquePrefix(string uri, *string default_prefix);
1426 
1427 
1429  string getOutputNamespaceUri(string nsp);
1430 
1431 
1433  *hash<auto> getOutputNamespaceHash(*hash<auto> nsh);
1434 
1435 
1438 
1439 
1441  *string getNamespaceUri(*string nsp);
1442 
1443 
1446 
1447 
1450 
1451 
1454 
1455 
1458 
1459 
1462 
1463 
1466 
1467 
1470 
1471 
1473 protected:
1474  string registerNamespaceIntern(string uri, *string default_pfx);
1475 public:
1476 
1477 
1480 
1481 
1483  bool hasSoap11();
1484 
1485 
1487  bool hasSoap12();
1488 
1489 
1491  *bool isSchema(string ns);
1492 
1493 
1495  string getInputNamespaceUri(string nsa);
1496 
1497 
1498  bool doType(string t, reference<hash> typeinfo, reference<XsdAbstractType> rtype, *hash<string, XsdAbstractType> tmap);
1499 
1500 
1501  hash<auto> getTypeHash(string t);
1502 
1503 
1504  XsdBaseType getBaseType(string t);
1505 
1506 
1508  string translateOutputNamespacePrefix(*string nsa);
1509 
1510 };
1511 
1512 // private functions
1513 XsdAbstractType tmap_get(hash<string, XsdAbstractType> tmap, string name);
1514 
1515 
1516 *XsdAbstractType tmap_try_get(hash<string, XsdAbstractType> tmap, string name);
1517 
1518 
1519 // private functions
1520 XsdElement emap_get(hash<string, hash<string, XsdElement>> emap, string ns, string name);
1521 
1522 
1523 *XsdElement emap_try_get(hash<string, hash<string, XsdElement>> emap, string ns, string name);
1524 
1525 
1527 public hashdecl WSDL::PortTypeInfo {
1528  hash<string, WSOperation> operations;
1529 };
1530 
1532 public hashdecl WSDL::ServiceInfo {
1534  string name;
1536  hash<string, hash> port;
1537 };
1538 
1540 public hashdecl WSDL::OperationInfo {
1542  string port;
1543 
1546 };
1547 
1549 
1551 class WSDL::WebService : public WSDL::XsdBase,public Qore::Serializable {
1552 
1553 public:
1555  string wsdl;
1556 
1558  string wsdl_hash;
1559 
1561  *hash<auto> opts;
1562 
1564  bool has_try_import = False;
1565 
1567 
1569  string name;
1570 
1572 
1574  string hash_str;
1575 
1577  transient Namespaces nsc;
1578 
1580  transient list<string> wsdl_services();
1581 
1583  transient hash<string, XsdElement> idocmap();
1584 
1586  transient hash<string, hash<string, XsdElement>> emap();
1587 
1589  transient hash<string, WSMessage> messages();
1590 
1592  transient hash<string, XsdAbstractType> tmap();
1593 
1595  transient hash<string, hash<PortTypeInfo>> portType();
1596 
1598  transient *code try_import;
1599 
1601 
1603  transient *string def_path;
1604 
1605 protected:
1606  // service definitions; name -> service info hash
1607  hash<string, hash<WSDL::ServiceInfo>> services();
1608 
1609  // service bindings; name -> Binding
1610  hash<string, Binding> binding();
1611 
1612 public:
1613 
1615 
1626  constructor(string str, *hash<auto> opts);
1627 
1628 
1630 
1634  string getName();
1635 
1636 
1638 
1642  synchronized string getHash();
1643 
1645 
1648 
1649 
1651  softlist<string> getOperationNames();
1652 
1653 
1655  WSDL::WSOperation getPortTypeOperation(string ptname, string opname);
1656 
1657 
1659  WSDL::WSOperation getBindingOperation(*string bname, string opname);
1660 
1661 
1663 
1667  list<hash<OperationInfo>> listOperations();
1668 
1669 
1671 
1678 
1679 
1681 
1687  list<hash<WSDL::ServiceInfo>> listServices();
1688 
1689 
1691 
1700  hash<WSDL::ServiceInfo> getService(string name);
1701 
1702 
1704  hash<auto> getType(string name, auto v);
1705 
1706 
1707 protected:
1708  XsdBaseType getBaseType(string t);
1709 public:
1710 
1711 
1712 protected:
1713  resolveType(XsdSimpleType t);
1714 public:
1715 
1716 
1717 protected:
1718  resolveType(XsdElement xe);
1719 public:
1720 
1721 
1722 protected:
1723  resolveType(XsdAttribute xd);
1724 public:
1725 
1726 
1727 protected:
1728  resolveType(XsdComplexType ct);
1729 public:
1730 
1731 
1732 protected:
1733  resolveType(XsdArrayType t);
1734 public:
1735 
1736 
1737 protected:
1738  XsdAbstractType resolveType(hash<auto> v);
1739 public:
1740 
1741 
1742  // parse XSD schema types
1743 protected:
1744  parseTypes(*hash<auto> data, auto http_client, auto http_headers);
1745 public:
1746 
1747 
1748 protected:
1749  parseMessages(*softlist<auto> message);
1750 public:
1751 
1752 
1753 protected:
1754  parseService(*softlist<auto> svcs);
1755 public:
1756 
1757 
1758 protected:
1759  parsePortType(*softlist<auto> data);
1760 public:
1761 
1762 
1763 protected:
1764  parseBinding(*softlist<auto> bindings);
1765 public:
1766 
1767 
1769 
1771  bool isSoap12();
1772 
1773 
1775 
1777  string getWSDL();
1778 
1779 
1781 
1783  string getWSDLHash();
1784 
1785 
1787 
1792  string getWSDL(string base_url);
1793 
1794 
1795 protected:
1796  string getOperationParams(WSMessage msg);
1797 public:
1798 
1799 
1801 
1806  getReport(StringOutputStream stream, *string wsdl_name);
1807 
1808 
1810 
1814  string getReport(*string wsdl_name);
1815 
1816 
1818 
1820 private:
1821  doInit(string str, *hash<auto> opts);
1822 public:
1823 
1824 
1826 
1828 private:
1829  deserializeMembers(hash<auto> members);
1830 public:
1831 
1832 };
1833 
1835 
1838 
1839 public:
1840 protected:
1841  WebService ws;
1842  hash<auto> opts;
1843 
1844 public:
1845 
1846  const DefaultOpts = ...;
1847 
1848 
1850 
1856  constructor(WebService ws, *hash<auto> opts);
1857 
1858 
1859 protected:
1860  hash<auto> getTypeInfo(XsdBaseType t);
1861 public:
1862 
1863 
1864 protected:
1865  hash<auto> getTypeInfo(XsdSimpleType t);
1866 public:
1867 
1868 
1869 protected:
1870  hash<auto> getTypeInfo(XsdComplexType t);
1871 public:
1872 
1873 
1874  hash<auto> getMessage(XsdElement elem, *softlist<auto> comments);
1875 
1876 
1878 
1882  hash<auto> getMessage(string name);
1883 
1884 
1886 
1891 
1892 };
describes MIME content information for SOAP operational binding message descriptions
Definition: WSDL.qm.dox.h:1184
string part
specifies the name of the message part
Definition: WSDL.qm.dox.h:1188
bool acceptAllContentTypes
are all content-types accepted?
Definition: WSDL.qm.dox.h:1200
bool formUrlEncoded
are all content-types form URL encoded?
Definition: WSDL.qm.dox.h:1197
class for WSDL bindings
Definition: WSDL.qm.dox.h:1275
bool docstyle
use RPC or document style
Definition: WSDL.qm.dox.h:1285
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:1130
bool encoded
required attribute
Definition: WSDL.qm.dox.h:1137
*string ns
namespace; "only applies to content not explicitly defined by the abstract types"
Definition: WSDL.qm.dox.h:1143
*string encodingStyle
when encoded True, this is used to produce a concrete message by applying the specified encoding
Definition: WSDL.qm.dox.h:1140
*list< auto > parts
indicates which parts appear somewhere within the SOAP Body portion of the message
Definition: WSDL.qm.dox.h:1146
describes an input or output message in a SOAP operational binding
Definition: WSDL.qm.dox.h:1222
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:1245
*WSDL::MimeXmlMessageDescription mimeXml
optional mimeXml message scription
Definition: WSDL.qm.dox.h:1251
list< BindingMessageHeaderDescription > getHeaders()
returns a list of WSDL::BindingMessageHeaderDescription objects
*WSDL::BindingContentDescription content
optional content-type descriptions
Definition: WSDL.qm.dox.h:1248
list< BindingMessageHeaderDescription > headers
a list of WSDL::BindingMessageHeaderDescription objects
Definition: WSDL.qm.dox.h:1255
*hash< auto > urlReplacement
a hash of URL replacement values keyed by part name, values are URI paths
Definition: WSDL.qm.dox.h:1231
*WSDL::BindingMessageBodyDescription body
the description of the message body
Definition: WSDL.qm.dox.h:1226
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:1156
bool encoded
required attribute
Definition: WSDL.qm.dox.h:1166
string part
message part name
Definition: WSDL.qm.dox.h:1160
WSMessage msg
a weak reference to the actual message
Definition: WSDL.qm.dox.h:1169
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:1209
string part
refers to a message part defining the concrete schema of the root XML element
Definition: WSDL.qm.dox.h:1215
namespace container class
Definition: WSDL.qm.dox.h:1342
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
*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< auto > getReferencedNamespaceMap()
returns a hash of namespace prefixes to namespaces URIs actually used
*hash< auto > getOutputNamespaceHash(*hash< auto > nsh)
returns a hash of namespace attributes for outgoing SOAP messages
hash< string, string > imapr
hash mapping input namespace URIs to input namespace prefixes
Definition: WSDL.qm.dox.h:1371
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:1361
hash< string, string > nsr
maps namespace URIs to output namespace prefixes
Definition: WSDL.qm.dox.h:1356
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:1391
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:1397
*string target_ns
current target namespace
Definition: WSDL.qm.dox.h:1382
hash< string, string > ns
maps output namespace prefixes to namespace URIs
Definition: WSDL.qm.dox.h:1351
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:1376
list< auto > nss
target namespace stack;
Definition: WSDL.qm.dox.h:1385
string registerNamespaceIntern(string uri, *string default_pfx)
registers a namespace internally
*string default_ns
default namespace for unprefixed definitions
Definition: WSDL.qm.dox.h:1388
hash< string, string > imap
hash mapping input namespace prefixes to namespaces URIs
Definition: WSDL.qm.dox.h:1366
bool hasSoap11()
returns True if using SOAP 1.1, False if not
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:1394
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:1379
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:1046
contains helper methods for retrieving WSDLs from a URL
Definition: WSDL.qm.dox.h:236
static *hash< auto > parseSOAPMessage(hash< auto > msg)
const SoapMimeTypes
Mime types recognized as SOAP messages.
Definition: WSDL.qm.dox.h:240
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 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 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 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 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 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 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
static hash< auto > parseMultiPartSOAPMessage(hash< auto > msg)
takes a hash representation of a SOAP message and handles multipart messages, checks the content-type...
helper class implementing sample message generation
Definition: WSDL.qm.dox.h:1837
auto getMessage(WSMessage msg)
prepare sample message
constructor(WebService ws, *hash< auto > opts)
creates the WebService object
hash< auto > getMessage(string name)
prepare sample message
web service message class
Definition: WSDL.qm.dox.h:888
auto getValueFromHash(*WSDL::XsdElement element, reference< auto > v, bool removeFound)
when only one arg then try to get values based on element keys
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:898
auto serializeRpcValue(string part, bool encoded, reference< hash< auto >> h, reference< string > ons)
*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< auto > serializeAllPartData(*hash< auto > val)
serialize all values as string or binary
hash< auto > deserializeAllPartData(hash< auto > val)
deserialize all values in string or binary form
hash< auto > serializeData(Namespaces nsc, string key, *hash< auto > val)
serialized value of particular type value 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 > 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< 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:892
hash< string, string > pmap
maps part names to args key, all parts are in hash
Definition: WSDL.qm.dox.h:895
hash< auto > deserializeData(string part, hash< auto > val)
deserialize value in string or binary form
web service operation class
Definition: WSDL.qm.dox.h:672
*string soapAction
the SOAPAction header value to send with this operation
Definition: WSDL.qm.dox.h:688
hash< string, bool > reqh
a hash of top-level request names for this operation (depends on bindings)
Definition: WSDL.qm.dox.h:691
*string input_name
request message name
Definition: WSDL.qm.dox.h:680
OperationalBinding getBinding(*string bname)
returns a hash representing the given binding
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< string, WSMessage > getFaultMessages()
returns a hash of fault messages keyed by fault name
Namespaces nsc
namespace container
Definition: WSDL.qm.dox.h:685
WSMessage input
request message
Definition: WSDL.qm.dox.h:676
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< 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.
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 ...
hash< string, OperationalBinding > bindings
params per associated binding; key = binding name; value = OperationalBinding object
Definition: WSDL.qm.dox.h:694
auto deserializeResponse(hash< auto > o, *string bname)
parses a hash representing a parsed XML response (parsed with parse_xml(XPF_PRESERVE_ORDER)) for the ...
list< auto > getTopLevelRequestNames()
returns all top-level request names for this operation
WSMessage output
response message
Definition: WSDL.qm.dox.h:678
setDocStyleBinding(reference idocmap)
this method is called if this operation supports at least one binding with document style
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.
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:682
*hash< auto > deserializeRequestPath(string path, *string bname)
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:698
main class representing a parsed WSDL file
Definition: WSDL.qm.dox.h:1551
list< hash< WSDL::ServiceInfo > > listServices()
returns a list of services defined in the WSDL
transient hash< string, XsdElement > idocmap()
a hash of element names to XsdElement objects for top-level document-style bindings
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:1569
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, hash< PortTypeInfo > > portType()
hash of port names to port type information hashes
transient Namespaces nsc
namespace container
Definition: WSDL.qm.dox.h:1577
transient hash< string, hash< string, XsdElement > > emap()
map of elements
transient *code try_import
optional closure/call reference to try to resolve import declarations
Definition: WSDL.qm.dox.h:1598
hash< auto > getType(string name, auto v)
return a hash value that can be used to serialize a value as a particular type
transient hash< string, XsdAbstractType > tmap()
map of types
WSDL::WSOperation getOperation(string opname)
returns the given operation or throws an exception if it cannot be found; operations are searched in ...
transient list< string > wsdl_services()
list of services in this WSDL
synchronized string getHash()
returns a unique hash for the WSDL that can be used to compare schemas for equality
bool isSoap12()
returns True if the WSDL describes a SOAP 1.2 service
doInit(string str, *hash< auto > opts)
supports the constructor and deserialization
*hash< auto > opts
options used in the constructor
Definition: WSDL.qm.dox.h:1561
string getName()
returns the name of the service
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:1574
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:1555
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:1603
bool has_try_import
flag if the object has a "try_import" closure or call reference
Definition: WSDL.qm.dox.h:1564
transient hash< string, WSMessage > messages()
hash of messages names to messages
list< hash< OperationInfo > > listOperations()
returns a list of hashes giving supported operation names for each port in the WSDL
hash< WSDL::ServiceInfo > getService(string name)
returns a hash describing the requested service
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
string wsdl_hash
a cryptographic hash for the WSDL source
Definition: WSDL.qm.dox.h:1558
softlist< string > getOperationNames()
returns a list of known operation names
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:436
XSD attribute class.
Definition: WSDL.qm.dox.h:475
base class with helper methods for XSD data processing
Definition: WSDL.qm.dox.h:328
class for XSD base types
Definition: WSDL.qm.dox.h:415
XSD complex type class.
Definition: WSDL.qm.dox.h:562
string cx_type
type of complexType object
Definition: WSDL.qm.dox.h:598
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:337
XSD element class.
Definition: WSDL.qm.dox.h:491
base class for XSD classes with a "name" attribute
Definition: WSDL.qm.dox.h:345
descriptive_name
descriptive name flag
Definition: WSDL.qm.dox.h:353
*string ns
input namespace prefix (if any given)
Definition: WSDL.qm.dox.h:351
XSD simple type class.
Definition: WSDL.qm.dox.h:531
XSD typed data class.
Definition: WSDL.qm.dox.h:464
main WSDL namespace
Definition: WSDL.qm.dox.h:156
const any_type_map
mapping from Qore types to xsd types for xsd type "anyType"
Definition: WSDL.qm.dox.h:201
const SOAP_11_ENV
SOAP 1.1 envelope URI.
Definition: WSDL.qm.dox.h:161
const SoapStyleMap
SOAP "style" to "document" mappings.
Definition: WSDL.qm.dox.h:194
const SoapUseMap
SOAP "use" to "encoded" mappings.
Definition: WSDL.qm.dox.h:190
const SOAP_TRANSPORT
known/supported transports
Definition: WSDL.qm.dox.h:213
const HTTP_NS
HTTP namespace URI.
Definition: WSDL.qm.dox.h:177
const version
this WSDL implementation version
Definition: WSDL.qm.dox.h:158
const ENVELOPE_12_NS
soap 1.2 envelope namespaces
Definition: WSDL.qm.dox.h:186
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:174
const XSD_NS
XSD namespace URI.
Definition: WSDL.qm.dox.h:172
const SOAP_12_NS
SOAP 1.2 namespace URI.
Definition: WSDL.qm.dox.h:169
const SOAP_TRANSPORT_HTTP
SOAP HTTP transport URI.
Definition: WSDL.qm.dox.h:210
const SOAP_11_NS
SOAP 1.1 namespace URI.
Definition: WSDL.qm.dox.h:166
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:220
const SOAP_12_ENV
SOAP 1.2 envelope URI.
Definition: WSDL.qm.dox.h:163
const MIME_NS
MIME namespace URI.
Definition: WSDL.qm.dox.h:179
const SOAP_ENCODING
soap encoding URI
Definition: WSDL.qm.dox.h:198
const ENVELOPE_11_NS
soap 1.1 envelope namespaces
Definition: WSDL.qm.dox.h:182
const RANGE_SHORT
range of "short" values (16 bits)
Definition: WSDL.qm.dox.h:217
message argument hash description
Definition: WSDL.qm.dox.h:867
XsdAbstractType type
type for the argument
Definition: WSDL.qm.dox.h:875
string part
unique part name
Definition: WSDL.qm.dox.h:872
XsdElement element
element for the argument
Definition: WSDL.qm.dox.h:878
string name
the arg name
Definition: WSDL.qm.dox.h:869
complex type choice hash
Definition: WSDL.qm.dox.h:556
WSDL operation info.
Definition: WSDL.qm.dox.h:1540
string port
the name of the port defining the operation
Definition: WSDL.qm.dox.h:1542
WSDL::WSOperation operation
the operation object
Definition: WSDL.qm.dox.h:1545
WSDL port type hash.
Definition: WSDL.qm.dox.h:1527
WSDL service info hash.
Definition: WSDL.qm.dox.h:1532
hash< string, hash > port
port info
Definition: WSDL.qm.dox.h:1536
string name
service name
Definition: WSDL.qm.dox.h:1534