--- /srv/reproducible-results/rbuild-debian/r-b-build.9xE4bAyM/b1/gsoap_2.8.104-3_arm64.changes
+++ /srv/reproducible-results/rbuild-debian/r-b-build.9xE4bAyM/b2/gsoap_2.8.104-3_arm64.changes
├── Files
│ @@ -1,7 +1,7 @@
│
│ 961afd9d051e2533b68a82735ac6ed43 6207180 debug optional gsoap-dbgsym_2.8.104-3_arm64.deb
│ - caabd438a59305a49fbd7f046e490d73 12593248 doc optional gsoap-doc_2.8.104-3_all.deb
│ + a671e7e02d1ea2a4e007e6dcc90b7c75 12593200 doc optional gsoap-doc_2.8.104-3_all.deb
│ 2dad25441fe959b61875423a2b18d369 1409252 devel optional gsoap_2.8.104-3_arm64.deb
│ 5d99ba78a590eaa7e7729caa3009f7c5 1656048 debug optional libgsoap-2.8.104-dbgsym_2.8.104-3_arm64.deb
│ 5c5f7c246a08e3017c982769a3b644fa 275316 libs optional libgsoap-2.8.104_2.8.104-3_arm64.deb
│ 9987f06b6bf1b661c7e16f876fb7bc39 287912 libdevel optional libgsoap-dev_2.8.104-3_arm64.deb
├── gsoap-doc_2.8.104-3_all.deb
│ ├── file list
│ │ @@ -1,3 +1,3 @@
│ │ -rw-r--r-- 0 0 0 4 2021-03-08 13:06:23.000000 debian-binary
│ │ --rw-r--r-- 0 0 0 46976 2021-03-08 13:06:23.000000 control.tar.xz
│ │ --rw-r--r-- 0 0 0 12546080 2021-03-08 13:06:23.000000 data.tar.xz
│ │ +-rw-r--r-- 0 0 0 46988 2021-03-08 13:06:23.000000 control.tar.xz
│ │ +-rw-r--r-- 0 0 0 12546020 2021-03-08 13:06:23.000000 data.tar.xz
│ ├── control.tar.xz
│ │ ├── control.tar
│ │ │ ├── ./md5sums
│ │ │ │ ├── ./md5sums
│ │ │ │ │┄ Files differ
│ ├── data.tar.xz
│ │ ├── data.tar
│ │ │ ├── file list
│ │ │ │ @@ -355,15 +355,15 @@
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 5162 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__soap.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 133290 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__ssl.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 2377 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__ssl.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 74502 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__threads.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 1922 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__threads.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 126767 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__with.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 3411 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/group__group__with.js
│ │ │ │ --rw-r--r-- 0 root (0) root (0) 1834652 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/index.html
│ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1834626 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/index.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 2872 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/index_8md.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 175457 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/jquery.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 3222 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/menu.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 5236 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/menudata.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 10253 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/modules.html
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 1709 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/modules.js
│ │ │ │ -rw-r--r-- 0 root (0) root (0) 153 2021-03-08 13:06:23.000000 ./usr/share/doc/gsoap-doc/guide/html/nav_f.png
│ │ │ ├── ./usr/share/doc/gsoap-doc/guide/html/index.html
│ │ │ │ @@ -56951,57716 +56951,57715 @@
│ │ │ │ 000de760: 6c69 7374 3c2f 7370 616e 3e20 3c73 7061 list In case m
│ │ │ │ -000dea00: 756c 7469 2d72 6566 6572 656e 6365 6420 ulti-referenced
│ │ │ │ -000dea10: 6461 7461 2069 7320 7265 6365 6976 6564 data is received
│ │ │ │ -000dea20: 2074 6861 7420 2264 6f65 7320 6e6f 7420 that "does not
│ │ │ │ -000dea30: 6669 7420 696e 2061 2070 6f69 6e74 6572 fit in a pointer
│ │ │ │ -000dea40: 2d62 6173 6564 2073 7472 7563 7475 7265 -based structure
│ │ │ │ -000dea50: 222c 2074 6865 2064 6174 6120 6973 2063 ", the data is c
│ │ │ │ -000dea60: 6f70 6965 642e 2046 6f72 2065 7861 6d70 opied. For examp
│ │ │ │ -000dea70: 6c65 2c20 7468 6520 666f 6c6c 6f77 696e le, the followin
│ │ │ │ -000dea80: 6720 7477 6f20 7374 7275 6374 7320 6172 g two structs ar
│ │ │ │ -000dea90: 6520 7369 6d69 6c61 722c 2065 7863 6570 e similar, excep
│ │ │ │ -000deaa0: 7420 7468 6174 2074 6865 2066 6972 7374 t that the first
│ │ │ │ -000deab0: 2075 7365 7320 706f 696e 7465 722d 6261 uses pointer-ba
│ │ │ │ -000deac0: 7365 6420 6d65 6d62 6572 7320 7768 696c sed members whil
│ │ │ │ -000dead0: 6520 7468 6520 6f74 6865 7220 7573 6573 e the other uses
│ │ │ │ -000deae0: 206e 6f6e 2d70 6f69 6e74 6572 2d62 6173 non-pointer-bas
│ │ │ │ -000deaf0: 6564 206d 656d 6265 7273 3a3c 2f70 3e0a ed members: Since b
│ │ │ │ -000deea0: 6f74 6820 3c63 6f64 653e 613c 2f63 6f64 oth The deserial
│ │ │ │ -000df240: 697a 6174 696f 6e20 6f66 2074 6865 2063 ization of the c
│ │ │ │ -000df250: 6f6e 7465 6e74 2069 6e20 7468 6520 3c63 ontent in the A NULL point
│ │ │ │ -000df3f0: 6572 2069 7320 6e6f 7420 7365 7269 616c er is not serial
│ │ │ │ -000df400: 697a 6564 2c20 756e 6c65 7373 2074 6865 ized, unless the
│ │ │ │ -000df410: 2070 6f69 6e74 6572 206d 656d 6265 7220 pointer member
│ │ │ │ -000df420: 6f66 2061 2073 7472 7563 7420 6f72 2063 of a struct or c
│ │ │ │ -000df430: 6c61 7373 2069 7320 6465 636c 6172 6564 lass is declared
│ │ │ │ -000df440: 2069 6e20 7468 6520 696e 7465 7266 6163 in the interfac
│ │ │ │ -000df450: 6520 6865 6164 6572 2066 696c 6520 6173 e header file as
│ │ │ │ -000df460: 206e 696c 6c61 626c 6520 7769 7468 203c nillable with <
│ │ │ │ -000df470: 636f 6465 3e6e 756c 6c70 7472 3c2f 636f code>nullptr or in the un
│ │ │ │ -000df490: 6c69 6b65 6c79 2063 6173 6520 7468 6520 likely case the
│ │ │ │ -000df4a0: 706f 696e 7465 7220 6974 7365 6c66 2069 pointer itself i
│ │ │ │ -000df4b0: 7320 706f 696e 7465 6420 746f 2062 7920 s pointed to by
│ │ │ │ -000df4c0: 616e 6f74 6865 7220 706f 696e 7465 7220 another pointer
│ │ │ │ -000df4d0: 2862 7574 2073 6565 2053 6563 7469 6f6e (but see Section
│ │ │ │ -000df4e0: 203c 6120 636c 6173 733d 2265 6c22 2068 Run-time
│ │ │ │ -000df510: 666c 6167 733c 2f61 3e20 746f 2063 6f6e flags to con
│ │ │ │ -000df520: 7472 6f6c 2074 6865 2073 6572 6961 6c69 trol the seriali
│ │ │ │ -000df530: 7a61 7469 6f6e 206f 6620 4e55 4c4c 7329 zation of NULLs)
│ │ │ │ -000df540: 2c20 666f 7220 6578 616d 706c 653a 3c2f , for example:
│ │ │ │ -000df550: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. T
│ │ │ │ -000df6f0: 6865 2074 7970 6573 2073 6563 7469 6f6e he types section
│ │ │ │ -000df700: 206f 6620 6120 5753 444c 2064 6573 6372 of a WSDL descr
│ │ │ │ -000df710: 6970 7469 6f6e 2063 6f6e 7461 696e 7320 iption contains
│ │ │ │ -000df720: 696e 666f 726d 6174 696f 6e20 6f6e 2074 information on t
│ │ │ │ -000df730: 6865 2022 6e69 6c6c 6162 696c 6974 7922 he "nillability"
│ │ │ │ -000df740: 206f 6620 6461 7461 2c20 7768 6963 6820 of data, which
│ │ │ │ -000df750: 6973 2064 6563 6c61 7265 6420 6173 203c is declared as <
│ │ │ │ -000df760: 636f 6465 3e6e 756c 6c70 7472 3c2f 636f code>nullptr members wher
│ │ │ │ -000df780: 6520 7468 6520 3c63 6f64 653e 313c 2f63 e the T
│ │ │ │ +000df220: 6865 2064 6573 6572 6961 6c69 7a61 7469 he deserializati
│ │ │ │ +000df230: 6f6e 206f 6620 7468 6520 636f 6e74 656e on of the conten
│ │ │ │ +000df240: 7420 696e 2074 6865 203c 636f 6465 3e52 t in the
│ │ │ │ +000df350: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +000df370: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +000df380: 703e 0a3c 6833 3e3c 6120 636c 6173 733d p>. A
│ │ │ │ +000df3d0: 204e 554c 4c20 706f 696e 7465 7220 6973 NULL pointer is
│ │ │ │ +000df3e0: 206e 6f74 2073 6572 6961 6c69 7a65 642c not serialized,
│ │ │ │ +000df3f0: 2075 6e6c 6573 7320 7468 6520 706f 696e unless the poin
│ │ │ │ +000df400: 7465 7220 6d65 6d62 6572 206f 6620 6120 ter member of a
│ │ │ │ +000df410: 7374 7275 6374 206f 7220 636c 6173 7320 struct or class
│ │ │ │ +000df420: 6973 2064 6563 6c61 7265 6420 696e 2074 is declared in t
│ │ │ │ +000df430: 6865 2069 6e74 6572 6661 6365 2068 6561 he interface hea
│ │ │ │ +000df440: 6465 7220 6669 6c65 2061 7320 6e69 6c6c der file as nill
│ │ │ │ +000df450: 6162 6c65 2077 6974 6820 3c63 6f64 653e able with The ty
│ │ │ │ +000df6e0: 7065 7320 7365 6374 696f 6e20 6f66 2061 pes section of a
│ │ │ │ +000df6f0: 2057 5344 4c20 6465 7363 7269 7074 696f WSDL descriptio
│ │ │ │ +000df700: 6e20 636f 6e74 6169 6e73 2069 6e66 6f72 n contains infor
│ │ │ │ +000df710: 6d61 7469 6f6e 206f 6e20 7468 6520 226e mation on the "n
│ │ │ │ +000df720: 696c 6c61 6269 6c69 7479 2220 6f66 2064 illability" of d
│ │ │ │ +000df730: 6174 612c 2077 6869 6368 2069 7320 6465 ata, which is de
│ │ │ │ +000df740: 636c 6172 6564 2061 7320 3c63 6f64 653e clared as Sup
│ │ │ │ +000df830: 706f 7365 2070 6f69 6e74 6572 203c 636f pose pointer When
│ │ │ │ +000dfca0: 7468 6520 6465 7365 7269 616c 697a 6572 the deserializer
│ │ │ │ +000dfcb0: 2065 6e63 6f75 6e74 6572 7320 616e 2058 encounters an X
│ │ │ │ +000dfcc0: 4d4c 2065 6c65 6d65 6e74 2074 6861 7420 ML element that
│ │ │ │ +000dfcd0: 6861 7320 6120 3c65 6d3e 3c63 6f64 653e has a
│ │ │ │ +000dfe40: 566f 6964 2070 6f69 6e74 6572 7320 283c Void pointers (<
│ │ │ │ +000dfe50: 636f 6465 3e76 6f69 642a 3c2f 636f 6465 code>void*) cannot be ser
│ │ │ │ +000dfe70: 6961 6c69 7a65 6420 696e 2058 4d4c 2062 ialized in XML b
│ │ │ │ +000dfe80: 6563 6175 7365 2074 6865 2074 7970 6520 ecause the type
│ │ │ │ +000dfe90: 6f66 2064 6174 6120 7265 6665 7272 6564 of data referred
│ │ │ │ +000dfea0: 2074 6f20 6973 2075 6e74 7970 6564 2e20 to is untyped.
│ │ │ │ +000dfeb0: 546f 2065 6e61 626c 6520 7468 6520 7365 To enable the se
│ │ │ │ +000dfec0: 7269 616c 697a 6174 696f 6e20 6f66 2076 rialization of v
│ │ │ │ +000dfed0: 6f69 6420 706f 696e 7465 7273 2074 6861 oid pointers tha
│ │ │ │ +000dfee0: 7420 6172 6520 6d65 6d62 6572 7320 6f66 t are members of
│ │ │ │ +000dfef0: 2073 7472 7563 7473 2061 6e64 2063 6c61 structs and cla
│ │ │ │ +000dff00: 7373 6573 2c20 796f 7520 6361 6e20 696e sses, you can in
│ │ │ │ +000dff10: 7365 7274 2061 203c 636f 6465 3e69 6e74 sert a Here is an
│ │ │ │ +000e02a0: 6578 616d 706c 6520 746f 2069 6c6c 7573 example to illus
│ │ │ │ +000e02b0: 7472 6174 6520 7468 6520 7365 7269 616c trate the serial
│ │ │ │ +000e02c0: 697a 6174 696f 6e20 6f66 2061 203c 636f ization of a The The
│ │ │ │ -000e0560: 666f 6c6c 6f77 696e 6720 6578 616d 706c following exampl
│ │ │ │ -000e0570: 6520 696c 6c75 7374 7261 7465 7320 7468 e illustrates th
│ │ │ │ -000e0580: 6520 696e 6974 6961 6c69 7a61 7469 6f6e e initialization
│ │ │ │ -000e0590: 206f 6620 3c63 6f64 653e 6d79 5374 7275 of The serialize
│ │ │ │ -000e0720: 6420 6f75 7470 7574 206f 6620 3c63 6f64 d output of struct ns__record.a and
b
│ │ │ │ -000deec0: 636f 6465 3e20 6d65 6d62 6572 7320 6f66 code> members of
│ │ │ │ -000deed0: 203c 636f 6465 3e50 3c2f 636f 6465 3e20
P
│ │ │ │ -000deee0: 706f 696e 7420 746f 2074 6865 2073 616d point to the sam
│ │ │ │ -000deef0: 6520 696e 7465 6765 722c 2074 6865 2073 e integer, the s
│ │ │ │ -000def00: 6572 6961 6c69 7a61 7469 6f6e 206f 6620 erialization of
│ │ │ │ -000def10: 3c63 6f64 653e 503c 2f63 6f64 653e 2070 P
p
│ │ │ │ -000def20: 726f 6475 6365 7320 6120 6d75 6c74 692d roduces a multi-
│ │ │ │ -000def30: 7265 6665 7265 6e63 6520 696e 2053 4f41 reference in SOA
│ │ │ │ -000def40: 5020 312e 3120 5250 4320 656e 636f 6469 P 1.1 RPC encodi
│ │ │ │ -000def50: 6e67 3a3c 2f70 3e0a 3c64 6976 2063 6c61 ng:.NUL
│ │ │ │ -000df3c0: 4c20 706f 696e 7465 7273 2061 6e64 206e L pointers and n
│ │ │ │ -000df3d0: 696c 2065 6c65 6d65 6e74 733c 2f68 333e il elements
│ │ │ │ -000df3e0: 0a3c 703e 4120 4e55 4c4c 2070 6f69 6e74 .int **q; 1 indicates t
│ │ │ │ -000df7a0: 6861 7420 7468 6520 6d65 6d62 6572 2069 hat the member i
│ │ │ │ -000df7b0: 7320 7265 7175 6972 6564 2028 3c65 6d3e s required (
│ │ │ │ -000df7c0: 3c63 6f64 653e 6d69 6e4f 6363 7572 733c
│ │ │ │ -000df820: 6f72 2073 696d 706c 7920 3c63 6f64 653e or simply minOccurs<
│ │ │ │ -000df7d0: 2f63 6f64 653e 3c2f 656d 3e20 616e 6420 /code>
and
│ │ │ │ -000df7e0: 3c65 6d3e 3c63 6f64 653e 6d61 784f 6363 maxOcc
│ │ │ │ -000df7f0: 7572 733c 2f63 6f64 653e 3c2f 656d 3e20 urs
│ │ │ │ -000df800: 6172 6520 3120 7365 7420 7769 7468 203c are 1 set with <
│ │ │ │ -000df810: 636f 6465 3e31 3a31 3c2f 636f 6465 3e20 code>1:1
│ │ │ │ -000df830: 313c 2f63 6f64 653e 292e 3c2f 703e 0a3c 1
).q
│ │ │ │ -000df860: 2070 6f69 6e74 7320 746f 2070 6f69 6e74 points to point
│ │ │ │ -000df870: 6572 203c 636f 6465 3e70 3c2f 636f 6465 er p
and suppose r
│ │ │ │ -000df8b0: 6172 6520 4e55 4c4c 2e20 496e 2074 6861 are NULL. In tha
│ │ │ │ -000df8c0: 7420 6361 7365 2074 6865 203c 636f 6465 t case the X
struct
│ │ │ │ -000df8e0: 2069 7320 7365 7269 616c 697a 6564 2077 is serialized w
│ │ │ │ -000df8f0: 6974 6820 3c63 6f64 653e 2353 4f41 505f ith #SOAP_
│ │ │ │ -000df900: 584d 4c5f 4752 4150 483c 2f63 6f64 653e XML_GRAPH
│ │ │ │ -000df910: 2061 733a 3c2f 703e 0a3c 6469 7620 636c as:.X
│ │ │ │ -000dfbf0: 2667 743b 3c2f 6469 763e 0a3c 2f64 6976 >R
│ │ │ │ +000df250: 3c2f 636f 6465 3e20 6461 7461 2073 7472
data str
│ │ │ │ +000df260: 7563 7475 7265 2074 6861 7420 646f 6573 ucture that does
│ │ │ │ +000df270: 206e 6f74 2075 7365 2070 6f69 6e74 6572 not use pointer
│ │ │ │ +000df280: 7320 746f 2069 6e74 6567 6572 7320 7265 s to integers re
│ │ │ │ +000df290: 7375 6c74 7320 696e 2061 2063 6f70 7920 sults in a copy
│ │ │ │ +000df2a0: 6f66 2065 6163 6820 6d75 6c74 692d 7265 of each multi-re
│ │ │ │ +000df2b0: 6665 7265 6e63 6520 696e 7465 6765 722e ference integer.
│ │ │ │ +000df2c0: 204e 6f74 6520 7468 6174 2074 6865 2074 Note that the t
│ │ │ │ +000df2d0: 776f 2073 7472 7563 7473 2072 6573 656d wo structs resem
│ │ │ │ +000df2e0: 626c 6520 7468 6520 7361 6d65 2058 4d4c ble the same XML
│ │ │ │ +000df2f0: 2064 6174 6120 7479 7065 2062 6563 6175 data type becau
│ │ │ │ +000df300: 7365 2074 6865 2074 7261 696c 696e 6720 se the trailing
│ │ │ │ +000df310: 756e 6465 7273 636f 7265 2077 696c 6c20 underscore will
│ │ │ │ +000df320: 6265 2069 676e 6f72 6564 2069 6e20 584d be ignored in XM
│ │ │ │ +000df330: 4c20 656e 636f 6469 6e67 2061 6e64 2064 L encoding and d
│ │ │ │ +000df340: 6563 6f64 696e 672e 3c2f 703e 0a3c 703e ecoding..NULL poi
│ │ │ │ +000df3b0: 6e74 6572 7320 616e 6420 6e69 6c20 656c nters and nil el
│ │ │ │ +000df3c0: 656d 656e 7473 3c2f 6833 3e0a 3c70 3e41 ements
.
│ │ │ │ +000df460: 6e75 6c6c 7074 723c 2f63 6f64 653e 206f nullptr
o
│ │ │ │ +000df470: 7220 696e 2074 6865 2075 6e6c 696b 656c r in the unlikel
│ │ │ │ +000df480: 7920 6361 7365 2074 6865 2070 6f69 6e74 y case the point
│ │ │ │ +000df490: 6572 2069 7473 656c 6620 6973 2070 6f69 er itself is poi
│ │ │ │ +000df4a0: 6e74 6564 2074 6f20 6279 2061 6e6f 7468 nted to by anoth
│ │ │ │ +000df4b0: 6572 2070 6f69 6e74 6572 2028 6275 7420 er pointer (but
│ │ │ │ +000df4c0: 7365 6520 5365 6374 696f 6e20 3c61 2063 see Section Run-time flags
│ │ │ │ +000df500: 3c2f 613e 2074 6f20 636f 6e74 726f 6c20 to control
│ │ │ │ +000df510: 7468 6520 7365 7269 616c 697a 6174 696f the serializatio
│ │ │ │ +000df520: 6e20 6f66 204e 554c 4c73 292c 2066 6f72 n of NULLs), for
│ │ │ │ +000df530: 2065 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 example:
│ │ │ │ +000df750: 6e75 6c6c 7074 723c 2f63 6f64 653e 206d nullptr
m
│ │ │ │ +000df760: 656d 6265 7273 2077 6865 7265 2074 6865 embers where the
│ │ │ │ +000df770: 203c 636f 6465 3e31 3c2f 636f 6465 3e20 1
│ │ │ │ +000df780: 696e 6469 6361 7465 7320 7468 6174 2074 indicates that t
│ │ │ │ +000df790: 6865 206d 656d 6265 7220 6973 2072 6571 he member is req
│ │ │ │ +000df7a0: 7569 7265 6420 283c 656d 3e3c 636f 6465 uired (minOccurs
and <
│ │ │ │ +000df7d0: 636f 6465 3e6d 6178 4f63 6375 7273 3c2f code>maxOccurs
│ │ │ │ +000df7e0: 636f 6465 3e3c 2f65 6d3e 2061 7265 2031 code> are 1
│ │ │ │ +000df7f0: 2073 6574 2077 6974 6820 3c63 6f64 653e set with
│ │ │ │ +000df800: 313a 313c 2f63 6f64 653e 206f 7220 7369 1:1
or si
│ │ │ │ +000df810: 6d70 6c79 203c 636f 6465 3e31 3c2f 636f mply 1).
p
│ │ │ │ +000df880: 3c2f 636f 6465 3e20 616e 6420 3c63 6f64
and X
X
from t
│ │ │ │ +000dfc40: 6869 7320 666f 726d 206f 6620 584d 4c2c his form of XML,
│ │ │ │ +000dfc50: 2074 6865 7265 6279 2070 7265 7365 7276 thereby preserv
│ │ │ │ +000dfc60: 696e 6720 7468 6520 696e 7465 6772 6974 ing the integrit
│ │ │ │ +000dfc70: 7920 6f66 2074 6865 2064 6174 6120 7374 y of the data st
│ │ │ │ +000dfc80: 7275 6374 7572 6520 7365 7269 616c 697a ructure serializ
│ │ │ │ +000dfc90: 6564 2e3c 2f70 3e0a 3c70 3e57 6865 6e20 ed..
│ │ │ │ +000dfce0: 7873 693a 6e69 6c3d 2274 7275 6522 3c2f xsi:nil="true"
│ │ │ │ +000dfcf0: 636f 6465 3e3c 2f65 6d3e 2061 7474 7269 code>
attri
│ │ │ │ +000dfd00: 6275 7465 2062 7574 2074 6865 2063 6f72 bute but the cor
│ │ │ │ +000dfd10: 7265 7370 6f6e 6469 6e67 2043 2f43 2b2b responding C/C++
│ │ │ │ +000dfd20: 2064 6174 6120 6973 206e 6f74 2061 2070 data is not a p
│ │ │ │ +000dfd30: 6f69 6e74 6572 206f 7220 7265 6665 7265 ointer or refere
│ │ │ │ +000dfd40: 6e63 652c 2074 6865 2064 6573 6572 6961 nce, the deseria
│ │ │ │ +000dfd50: 6c69 7a65 7220 7769 6c6c 2074 6572 6d69 lizer will termi
│ │ │ │ +000dfd60: 6e61 7465 2077 6974 6820 6120 3c63 6f64 nate with a #SOAP_X
│ │ │ │ +000dfda0: 4d4c 5f53 5452 4943 543c 2f63 6f64 653e ML_STRICT
│ │ │ │ +000dfdb0: 2066 6c61 6720 6973 2073 6574 2e3c 2f70 flag is set..Voi
│ │ │ │ +000dfe20: 6420 706f 696e 7465 7220 7365 7269 616c d pointer serial
│ │ │ │ +000dfe30: 697a 6174 696f 6e3c 2f68 323e 0a3c 703e ization
.int
│ │ │ │ +000dff20: 205f 5f74 7970 653c 2f63 6f64 653e 206d __type
m
│ │ │ │ +000dff30: 656d 6265 7220 7269 6768 7420 6265 666f ember right befo
│ │ │ │ +000dff40: 7265 2074 6865 2076 6f69 6420 706f 696e re the void poin
│ │ │ │ +000dff50: 7465 7220 6d65 6d62 6572 2e20 5468 6520 ter member. The
│ │ │ │ +000dff60: 3c63 6f64 653e 696e 7420 5f5f 7479 7065 int __type
│ │ │ │ +000dff70: 3c2f 636f 6465 3e20 6d65 6d62 6572 2063
member c
│ │ │ │ +000dff80: 6f6e 7461 696e 7320 7275 6e20 7469 6d65 ontains run time
│ │ │ │ +000dff90: 2069 6e66 6f72 6d61 7469 6f6e 206f 6e20 information on
│ │ │ │ +000dffa0: 7468 6520 7479 7065 206f 6620 7468 6520 the type of the
│ │ │ │ +000dffb0: 6461 7461 2070 6f69 6e74 6564 2074 6f20 data pointed to
│ │ │ │ +000dffc0: 6279 203c 636f 6465 3e76 6f69 642a 3c2f by void*
│ │ │ │ +000dffd0: 636f 6465 3e20 6d65 6d62 6572 2069 6e20 code> member in
│ │ │ │ +000dffe0: 6120 7374 7275 6374 2f63 6c61 7373 2074 a struct/class t
│ │ │ │ +000dfff0: 6f20 656e 6162 6c65 2074 6865 2073 6572 o enable the ser
│ │ │ │ +000e0000: 6961 6c69 7a61 7469 6f6e 206f 6620 7468 ialization of th
│ │ │ │ +000e0010: 6973 2064 6174 612e 2054 6865 203c 636f is data. The
is
│ │ │ │ +000e0080: 7468 6520 6e61 6d65 206f 6620 6120 7479 the name of a ty
│ │ │ │ +000e0090: 7065 2e20 5468 6520 736f 6170 6370 7032 pe. The soapcpp2
│ │ │ │ +000e00a0: 2074 6f6f 6c20 6765 6e65 7261 7465 7320 tool generates
│ │ │ │ +000e00b0: 7468 6520 3c63 6f64 653e 534f 4150 5f54 the SO
│ │ │ │ +000e0050: 4150 5f54 5950 455f 543c 2f63 6f64 653e AP_TYPE_T
│ │ │ │ +000e0060: 2076 616c 7565 2c20 7768 6572 6520 3c63 value, where SOAP_T
│ │ │ │ +000e00c0: 5950 455f 543c 2f63 6f64 653e 2064 6566 YPE_T
def
│ │ │ │ +000e00d0: 696e 6974 696f 6e73 2069 6e20 3c65 6d3e initions in
│ │ │ │ +000e00e0: 3c63 6f64 653e 736f 6170 482e 683c 2f63 soapH.h
and us
│ │ │ │ +000e0100: 6573 2074 6865 6d20 696e 7465 726e 616c es them internal
│ │ │ │ +000e0110: 6c79 2074 6f20 756e 6971 7565 6c79 2069 ly to uniquely i
│ │ │ │ +000e0120: 6465 6e74 6966 7920 7468 6520 7479 7065 dentify the type
│ │ │ │ +000e0130: 206f 6620 6561 6368 206f 626a 6563 742e of each object.
│ │ │ │ +000e0140: 2054 6865 2074 7970 6520 6e61 6d69 6e67 The type naming
│ │ │ │ +000e0150: 2063 6f6e 7665 6e74 696f 6e73 206f 7574 conventions out
│ │ │ │ +000e0160: 6c69 6e65 6420 696e 2053 6563 7469 6f6e lined in Section
│ │ │ │ +000e0170: 203c 6120 636c 6173 733d 2265 6c22 2068 Seria
│ │ │ │ +000e01a0: 6c69 7a69 6e67 2043 2f43 2b2b 2064 6174 lizing C/C++ dat
│ │ │ │ +000e01b0: 6120 746f 2058 4d4c 3c2f 613e 2061 7265 a to XML are
│ │ │ │ +000e01c0: 2075 7365 6420 746f 2064 6574 6572 6d69 used to determi
│ │ │ │ +000e01d0: 6e65 2074 6865 2074 7970 6520 6e61 6d65 ne the type name
│ │ │ │ +000e01e0: 2066 6f72 203c 636f 6465 3e54 3c2f 636f for T. Values seri
│ │ │ │ +000e0200: 616c 697a 6564 2069 6e20 584d 4c20 7769 alized in XML wi
│ │ │ │ +000e0210: 7468 2074 6869 7320 6170 7072 6f61 6368 th this approach
│ │ │ │ +000e0220: 2061 6c77 6179 7320 6361 7272 7920 7468 always carry th
│ │ │ │ +000e0230: 6520 3c65 6d3e 3c63 6f64 653e 7873 693a e
xsi:
│ │ │ │ +000e0240: 7479 7065 3c2f 636f 6465 3e3c 2f65 6d3e type
│ │ │ │ +000e0250: 2061 7474 7269 6275 7465 2069 6e20 584d attribute in XM
│ │ │ │ +000e0260: 4c20 746f 2069 6e64 6963 6174 6520 7468 L to indicate th
│ │ │ │ +000e0270: 6520 7479 7065 206f 6620 636f 6e74 656e e type of conten
│ │ │ │ +000e0280: 7420 7365 7269 616c 697a 6564 2e3c 2f70 t serialized.// serialize
│ │ │ │ -000e0480: 2061 6e79 2074 7970 6520 696e 2065 6c65 any type in ele
│ │ │ │ -000e0490: 6d65 6e74 2026 6c74 3b76 616c 2667 743b ment <val>
│ │ │ │ -000e04a0: 3c2f 7370 616e 3e3c 2f64 6976 3e0a 3c64 __t
│ │ │ │ -000e04f0: 7970 653c 2f63 6f64 653e 2069 6e74 6567 ype
integ
│ │ │ │ -000e0500: 6572 2063 616e 2062 6520 7365 7420 746f er can be set to
│ │ │ │ -000e0510: 2030 2061 7420 7275 6e20 7469 6d65 2074 0 at run time t
│ │ │ │ -000e0520: 6f20 6f6d 6974 2074 6865 2073 6572 6961 o omit the seria
│ │ │ │ -000e0530: 6c69 7a61 7469 6f6e 206f 6620 7468 6520 lization of the
│ │ │ │ -000e0540: 766f 6964 2070 6f69 6e74 6572 206d 656d void pointer mem
│ │ │ │ -000e0550: 6265 722e 3c2f 703e 0a3c 703e 5468 6520 ber.myStru
│ │ │ │ -000e05a0: 6374 3c2f 636f 6465 3e20 7769 7468 2061 ct
with a
│ │ │ │ -000e05b0: 2076 6f69 6420 706f 696e 7465 7220 746f void pointer to
│ │ │ │ -000e05c0: 2061 6e20 696e 743a 3c2f 703e 0a3c 6469 an int:val
│ │ │ │ -000e0770: 2065 6c65 6d65 6e74 3a3c 2f70 3e0a 3c64 element:xsi:type=
│ │ │ │ -000e0870: 2671 756f 743b 7873 643a 696e 7426 7175 "xsd:int&qu
│ │ │ │ -000e0880: 6f74 3b3c 2f73 7061 6e3e 2667 743b 3132 ot;>12
│ │ │ │ -000e0890: 3326 6c74 3b2f 3c73 7061 6e20 636c 6173 3</
│ │ │ │ -000e08b0: 7661 6c3c 2f73 7061 6e3e 2667 743b 3c2f val>
│ │ │ │ -000e08c0: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.ns_
│ │ │ │ -000e0950: 5f72 6563 6f72 643c 2f63 6f64 653e 2077 _record
w
│ │ │ │ -000e0960: 696c 6c20 6175 746f 6d61 7469 6361 6c6c ill automaticall
│ │ │ │ -000e0970: 7920 7365 7420 7468 6520 3c63 6f64 653e y set the
│ │ │ │ -000e0980: 5f5f 7479 7065 3c2f 636f 6465 3e20 6669 __type
fi
│ │ │ │ -000e0990: 656c 6420 616e 6420 766f 6964 2070 6f69 eld and void poi
│ │ │ │ -000e09a0: 6e74 6572 2077 6865 6e20 6465 7365 7269 nter when deseri
│ │ │ │ -000e09b0: 616c 697a 696e 6720 7468 6520 6461 7461 alizing the data
│ │ │ │ -000e09c0: 2c20 7072 6f76 6964 6564 2074 6861 7420 , provided that
│ │ │ │ -000e09d0: 7468 6520 584d 4c20 656c 656d 656e 7420 the XML element
│ │ │ │ -000e09e0: 3c65 6d3e 3c63 6f64 653e 7661 6c3c 2f63 val
carrie
│ │ │ │ -000e0a00: 7320 7468 6520 3c65 6d3e 3c63 6f64 653e s the
│ │ │ │ -000e0a10: 7873 693a 7479 7065 3c2f 636f 6465 3e3c xsi:type
<
│ │ │ │ -000e0a20: 2f65 6d3e 2061 7474 7269 6275 7465 2066 /em> attribute f
│ │ │ │ -000e0a30: 726f 6d20 7768 6963 6820 6974 2063 616e rom which it can
│ │ │ │ -000e0a40: 2064 6574 6572 6d69 6e65 2074 6865 2074 determine the t
│ │ │ │ -000e0a50: 7970 652e 3c2f 703e 0a3c 646c 2063 6c61 ype.
void* member, the
│ │ │ │ -000e0ac0: 203c 636f 6465 3e76 6f69 642a 3c2f 636f void* pointer must
│ │ │ │ -000e0ae0: 2064 6972 6563 746c 7920 706f 696e 7420 directly point
│ │ │ │ -000e0af0: 746f 2074 6865 2073 7472 696e 6720 7661 to the string va
│ │ │ │ -000e0b00: 6c75 6520 7261 7468 6572 2074 6861 6e20 lue rather than
│ │ │ │ -000e0b10: 696e 6469 7265 6374 6c79 2061 7320 7769 indirectly as wi
│ │ │ │ -000e0b20: 7468 2061 6c6c 206f 7468 6572 2074 7970 th all other typ
│ │ │ │ -000e0b30: 6573 2e20 466f 7220 6578 616d 706c 653a es. For example:
│ │ │ │ -000e0b40: 3c2f 6464 3e3c 2f64 6c3e 0a3c 6469 7620
This
│ │ │ │ -000e0c80: 6973 2074 6865 2063 6173 6520 666f 7220 is the case for
│ │ │ │ -000e0c90: 616c 6c20 7374 7269 6e67 2d62 6173 6564 all string-based
│ │ │ │ -000e0ca0: 2074 7970 6573 2c20 696e 636c 7564 696e types, includin
│ │ │ │ -000e0cb0: 6720 7479 7065 7320 6465 6669 6e65 6420 g types defined
│ │ │ │ -000e0cc0: 7769 7468 203c 636f 6465 3e74 7970 6564 with typed
│ │ │ │ -000e0cd0: 6566 2063 6861 722a 3c2f 636f 6465 3e2e ef char*
.
│ │ │ │ -000e0ce0: 3c2f 703e 0a3c 703e 596f 7520 6d61 7920
You may
│ │ │ │ -000e0cf0: 7573 6520 616e 2061 7262 6974 7261 7279 use an arbitrary
│ │ │ │ -000e0d00: 2073 7566 6669 7820 7769 7468 2074 6865 suffix with the
│ │ │ │ -000e0d10: 203c 636f 6465 3e5f 5f74 7970 653c 2f63 The The ser
│ │ │ │ +000e0700: 6961 6c69 7a65 6420 6f75 7470 7574 206f ialized output o
│ │ │ │ +000e0710: 6620 3c63 6f64 653e 533c 2f63 6f64 653e f The dese
│ │ │ │ +000e0920: 7269 616c 697a 6572 2066 6f72 203c 636f rializer for This is the cas
│ │ │ │ +000e0c70: 6520 666f 7220 616c 6c20 7374 7269 6e67 e for all string
│ │ │ │ +000e0c80: 2d62 6173 6564 2074 7970 6573 2c20 696e -based types, in
│ │ │ │ +000e0c90: 636c 7564 696e 6720 7479 7065 7320 6465 cluding types de
│ │ │ │ +000e0ca0: 6669 6e65 6420 7769 7468 203c 636f 6465 fined with Yo
│ │ │ │ +000e0cd0: 7520 6d61 7920 7573 6520 616e 2061 7262 u may use an arb
│ │ │ │ +000e0ce0: 6974 7261 7279 2073 7566 6669 7820 7769 itrary suffix wi
│ │ │ │ +000e0cf0: 7468 2074 6865 203c 636f 6465 3e5f 5f74 th the Because se
│ │ │ │ -000e1040: 7276 6963 6520 6d65 7468 6f64 2070 6172 rvice method par
│ │ │ │ -000e1050: 616d 6574 6572 7320 6172 6520 7374 6f72 ameters are stor
│ │ │ │ -000e1060: 6564 2077 6974 6869 6e20 7374 7275 6374 ed within struct
│ │ │ │ -000e1070: 732c 2079 6f75 2063 616e 2075 7365 203c s, you can use <
│ │ │ │ -000e1080: 636f 6465 3e5f 5f74 7970 653c 2f63 6f64 code>__type and Beca
│ │ │ │ +000e1020: 7573 6520 7365 7276 6963 6520 6d65 7468 use service meth
│ │ │ │ +000e1030: 6f64 2070 6172 616d 6574 6572 7320 6172 od parameters ar
│ │ │ │ +000e1040: 6520 7374 6f72 6564 2077 6974 6869 6e20 e stored within
│ │ │ │ +000e1050: 7374 7275 6374 732c 2079 6f75 2063 616e structs, you can
│ │ │ │ +000e1060: 2075 7365 203c 636f 6465 3e5f 5f74 7970 use This m
│ │ │ │ +000e15f0: 6574 686f 6420 6861 7320 6120 706f 6c79 ethod has a poly
│ │ │ │ +000e1600: 6d6f 7270 6869 6320 696e 7075 7420 7061 morphic input pa
│ │ │ │ +000e1610: 7261 6d65 7465 7220 3c63 6f64 653e 6461 rameter To declare a
│ │ │ │ +000e17f0: 7772 6170 7065 7220 7374 7275 6374 2f63 wrapper struct/c
│ │ │ │ +000e1800: 6c61 7373 2066 6f72 203c 636f 6465 3e76 lass for The seri
│ │ │ │ -000e1d10: 616c 697a 6564 206f 7574 7075 7420 6f66 alized output of
│ │ │ │ -000e1d20: 203c 636f 6465 3e53 3c2f 636f 6465 3e20 ..
│ │ │ │ -000e1f00: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ -000e1f10: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ -000e1f20: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents Fixed size a
│ │ │ │ -000e1f90: 7272 6179 7320 6172 6520 7365 7269 616c rrays are serial
│ │ │ │ -000e1fa0: 697a 6564 2061 7320 7265 7065 7469 7469 ized as repetiti
│ │ │ │ -000e1fb0: 6f6e 7320 6f66 203c 656d 3e3c 636f 6465 ons of The seria
│ │ │ │ -000e2090: 6c69 7a61 7469 6f6e 206f 6620 6669 7865 lization of fixe
│ │ │ │ -000e20a0: 642d 7369 7a65 2061 7272 6179 7320 7375 d-size arrays su
│ │ │ │ -000e20b0: 7070 6f72 7473 2074 6865 2053 4f41 5020 pports the SOAP
│ │ │ │ -000e20c0: 5250 4320 656e 636f 6469 6e67 206d 756c RPC encoding mul
│ │ │ │ -000e20d0: 7469 2d64 696d 656e 7369 6f6e 616c 2061 ti-dimensional a
│ │ │ │ -000e20e0: 7272 6179 2066 6f72 6d61 7420 6173 2077 rray format as w
│ │ │ │ -000e20f0: 656c 6c20 6173 2070 6172 7469 616c 6c79 ell as partially
│ │ │ │ -000e2100: 2074 7261 6e73 6d69 7474 6564 2061 6e64 transmitted and
│ │ │ │ -000e2110: 2073 7061 7273 6520 6172 7261 7920 666f sparse array fo
│ │ │ │ -000e2120: 726d 6174 7320 7374 616e 6461 7264 697a rmats standardiz
│ │ │ │ -000e2130: 6564 2069 6e20 534f 4150 2031 2e31 2061 ed in SOAP 1.1 a
│ │ │ │ -000e2140: 6e64 2031 2e32 2e3c 2f70 3e0a 3c70 3e46 nd 1.2. F
│ │ │ │ -000e2150: 6f72 2065 7861 6d70 6c65 3a3c 2f70 3e0a or example: This specifie
│ │ │ │ -000e22c0: 7320 6120 6669 7865 642d 7369 7a65 2061 s a fixed-size a
│ │ │ │ -000e22d0: 7272 6179 2070 6172 7420 6f66 2074 6865 rray part of the
│ │ │ │ -000e22e0: 203c 636f 6465 3e73 7472 7563 7420 4578 A
│ │ │ │ -000e2570: 6e79 2064 6573 6572 6961 6c69 7a65 6420 ny deserialized
│ │ │ │ -000e2580: 6974 656d 7320 6f66 2061 6e20 6172 7261 items of an arra
│ │ │ │ -000e2590: 7920 7468 6174 2064 6f20 6e6f 7420 6669 y that do not fi
│ │ │ │ -000e25a0: 7420 696e 2074 6865 2066 6978 6564 2073 t in the fixed s
│ │ │ │ -000e25b0: 697a 6520 6172 7261 792c 2069 2e65 2e20 ize array, i.e.
│ │ │ │ -000e25c0: 6172 6520 6f75 7420 6f66 2062 6f75 6e64 are out of bound
│ │ │ │ -000e25d0: 732c 2061 7265 2069 676e 6f72 6564 2062 s, are ignored b
│ │ │ │ -000e25e0: 7920 7468 6520 6465 7365 7269 616c 697a y the deserializ
│ │ │ │ -000e25f0: 6572 2077 6865 6e20 7468 6520 3c63 6f64 er when the .... <
│ │ │ │ -000e2680: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -000e2690: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -000e26a0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents Dynami
│ │ │ │ -000e2700: 6320 6172 7261 7973 2061 7265 206d 7563 c arrays are muc
│ │ │ │ -000e2710: 6820 6d6f 7265 2066 6c65 7869 626c 6520 h more flexible
│ │ │ │ -000e2720: 7468 616e 2066 6978 6564 2d73 697a 6520 than fixed-size
│ │ │ │ -000e2730: 6172 7261 7973 2e20 4479 6e61 6d69 6320 arrays. Dynamic
│ │ │ │ -000e2740: 6172 7261 7973 2064 6563 6c61 7265 6420 arrays declared
│ │ │ │ -000e2750: 696e 2074 6865 2069 6e74 6572 6661 6365 in the interface
│ │ │ │ -000e2760: 2068 6561 6465 7220 6669 6c65 2066 6f72 header file for
│ │ │ │ -000e2770: 2073 6f61 7063 7070 3220 6172 6520 6120 soapcpp2 are a
│ │ │ │ -000e2780: 7370 6563 6961 6c20 7374 7275 6374 206f special struct o
│ │ │ │ -000e2790: 7220 636c 6173 7320 6f72 2061 7265 2070 r class or are p
│ │ │ │ -000e27a0: 6172 7420 6f66 2061 2073 7472 7563 7420 art of a struct
│ │ │ │ -000e27b0: 6f72 2063 6c61 7373 2077 6974 6820 6120 or class with a
│ │ │ │ -000e27c0: 6d65 6d62 6572 2070 6f69 6e74 696e 6720 member pointing
│ │ │ │ -000e27d0: 746f 2061 6e20 6172 7261 7920 6f66 2065 to an array of e
│ │ │ │ -000e27e0: 6c65 6d65 6e74 7320 616e 6420 6120 6d65 lements and a me
│ │ │ │ -000e27f0: 6d62 6572 2074 6861 7420 7374 6f72 6573 mber that stores
│ │ │ │ -000e2800: 2074 6865 2073 697a 6520 6f66 2074 6865 the size of the
│ │ │ │ -000e2810: 2061 7272 6179 2e20 4479 6e61 6d69 6320 array. Dynamic
│ │ │ │ -000e2820: 6172 7261 7920 616c 6c6f 6361 7469 6f6e array allocation
│ │ │ │ -000e2830: 7320 6172 6520 6561 7379 2075 7369 6e67 s are easy using
│ │ │ │ -000e2840: 2074 6865 2073 6f61 7063 7070 2d67 656e the soapcpp-gen
│ │ │ │ -000e2850: 6572 6174 6564 203c 636f 6465 3e73 6f61 erated
│ │ │ │ -000e2940: 546f 2066 6163 696c 6974 6174 6520 534f To facilitate SO
│ │ │ │ -000e2950: 4150 2052 5043 2065 6e63 6f64 696e 672c AP RPC encoding,
│ │ │ │ -000e2960: 2053 4f41 502d 656e 636f 6465 6420 6172 SOAP-encoded ar
│ │ │ │ -000e2970: 7261 7973 2072 6571 7569 7265 2073 7065 rays require spe
│ │ │ │ -000e2980: 6369 616c 2074 7265 6174 6d65 6e74 2e20 cial treatment.
│ │ │ │ -000e2990: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ -000e29a0: 6179 7320 6172 6520 7369 6e67 6c65 2d20 ays are single-
│ │ │ │ -000e29b0: 6f72 206d 756c 7469 2d64 696d 656e 7369 or multi-dimensi
│ │ │ │ -000e29c0: 6f6e 616c 2061 7272 6179 7320 7769 7468 onal arrays with
│ │ │ │ -000e29d0: 2062 6f75 6e64 7320 7468 6174 2061 7070 bounds that app
│ │ │ │ -000e29e0: 6561 7220 696e 2058 4d4c 2e20 5468 6573 ear in XML. Thes
│ │ │ │ -000e29f0: 6520 6172 7261 7973 206d 6179 2061 6c73 e arrays may als
│ │ │ │ -000e2a00: 6f20 6861 7665 206f 6666 7365 7473 2074 o have offsets t
│ │ │ │ -000e2a10: 6861 7420 6469 6666 6572 2066 726f 6d20 hat differ from
│ │ │ │ -000e2a20: 7a65 726f 2e20 5468 6520 696e 7465 6e74 zero. The intent
│ │ │ │ -000e2a30: 206f 6620 534f 4150 2d65 6e63 6f64 6564 of SOAP-encoded
│ │ │ │ -000e2a40: 2061 7272 6179 7320 6973 2074 6f20 7265 arrays is to re
│ │ │ │ -000e2a50: 706c 6963 6174 6520 6d75 6c74 692d 6469 plicate multi-di
│ │ │ │ -000e2a60: 6d65 6e73 696f 6e61 6c20 6172 7261 7973 mensional arrays
│ │ │ │ -000e2a70: 2063 6f6d 6d6f 6e6c 7920 666f 756e 6420 commonly found
│ │ │ │ -000e2a80: 696e 2070 726f 6772 616d 6d69 6e67 206c in programming l
│ │ │ │ -000e2a90: 616e 6775 6167 6573 2e3c 2f70 3e0a 3c70 anguages. However, XML al
│ │ │ │ -000e2ab0: 736f 2070 726f 7669 6465 7320 6120 7369 so provides a si
│ │ │ │ -000e2ac0: 6d70 6c65 2077 6179 2074 6f20 7265 7072 mple way to repr
│ │ │ │ -000e2ad0: 6573 656e 7420 6120 7365 7175 656e 6365 esent a sequence
│ │ │ │ -000e2ae0: 206f 6620 7661 6c75 6573 2077 6974 6820 of values with
│ │ │ │ -000e2af0: 6120 7365 7175 656e 6365 206f 6620 584d a sequence of XM
│ │ │ │ -000e2b00: 4c20 656c 656d 656e 7473 2e20 5468 6973 L elements. This
│ │ │ │ -000e2b10: 2064 6966 6665 7273 2066 726f 6d20 534f differs from SO
│ │ │ │ -000e2b20: 4150 2d65 6e63 6f64 6564 2061 7272 6179 AP-encoded array
│ │ │ │ -000e2b30: 7320 696e 2074 6861 7420 534f 4150 2d65 s in that SOAP-e
│ │ │ │ -000e2b40: 6e63 6f64 6564 2061 7272 6179 7320 6172 ncoded arrays ar
│ │ │ │ -000e2b50: 6520 656c 656d 656e 7473 2077 6974 6820 e elements with
│ │ │ │ -000e2b60: 6e65 7374 6564 203c 656d 3e3c 636f 6465 nested Both SOAP-
│ │ │ │ -000e2c20: 656e 636f 6465 6420 6172 7261 7973 2061 encoded arrays a
│ │ │ │ -000e2c30: 6e64 2073 6571 7565 6e63 6573 206f 6620 nd sequences of
│ │ │ │ -000e2c40: 584d 4c20 656c 656d 656e 7473 2061 7265 XML elements are
│ │ │ │ -000e2c50: 2073 7570 706f 7274 6564 2069 6e20 6753 supported in gS
│ │ │ │ -000e2c60: 4f41 502c 2075 7369 6e67 2064 796e 616d OAP, using dynam
│ │ │ │ -000e2c70: 6963 2061 7272 6179 7320 616e 6420 636f ic arrays and co
│ │ │ │ -000e2c80: 6e74 6169 6e65 7273 2e20 5468 6520 6261 ntainers. The ba
│ │ │ │ -000e2c90: 7369 6373 2077 696c 6c20 6265 2064 6573 sics will be des
│ │ │ │ -000e2ca0: 6372 6962 6564 206e 6578 742e 2046 6f72 cribed next. For
│ │ │ │ -000e2cb0: 2061 6464 6974 696f 6e61 6c20 6465 7461 additional deta
│ │ │ │ -000e2cc0: 696c 732c 2073 6565 2074 6865 203c 6120 ils, see the C and C
│ │ │ │ -000e2d00: 2b2b 2058 4d4c 2044 6174 6120 4269 6e64 ++ XML Data Bind
│ │ │ │ -000e2d10: 696e 6773 3c2f 613e 2064 6f63 756d 656e ings documen
│ │ │ │ -000e2d20: 7461 7469 6f6e 2e3c 2f70 3e0a 3c70 3ef0 tation. .
│ │ │ │ -000e2d30: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ -000e2d40: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ -000e2d50: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents
│ │ │ │ -000e2db0: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ -000e2dc0: 6179 7320 7573 6520 7468 6520 3c65 6d3e ays use the
│ │ │ │ -000e2dd0: 3c63 6f64 653e 534f 4150 2d45 4e43 3a41 As
│ │ │ │ -000e2e90: 6120 7365 6375 7269 7479 206d 6561 7375 a security measu
│ │ │ │ -000e2ea0: 7265 2074 6f20 6176 6f69 6420 6465 6e69 re to avoid deni
│ │ │ │ -000e2eb0: 616c 206f 6620 7365 7276 6963 6520 6174 al of service at
│ │ │ │ -000e2ec0: 7461 636b 7320 6261 7365 6420 6f6e 2073 tacks based on s
│ │ │ │ -000e2ed0: 656e 6469 6e67 2061 2068 7567 6520 6172 ending a huge ar
│ │ │ │ -000e2ee0: 7261 7920 7369 7a65 2076 616c 7565 2075 ray size value u
│ │ │ │ -000e2ef0: 7369 6e67 2074 6865 203c 656d 3e3c 636f sing the .... Back to table
│ │ │ │ -000e3350: 6f66 2063 6f6e 7465 6e74 733c 2f61 3e3c of contents<
│ │ │ │ -000e3360: 2f70 3e0a 3c68 333e 3c61 2063 6c61 7373 /p>. A s
│ │ │ │ -000e33c0: 7065 6369 616c 2066 6f72 6d20 6f66 2073 pecial form of s
│ │ │ │ -000e33d0: 7472 7563 7420 6f72 2063 6c61 7373 2069 truct or class i
│ │ │ │ -000e33e0: 7320 7573 6564 2074 6f20 6465 6669 6e65 s used to define
│ │ │ │ -000e33f0: 206f 6e65 2d64 696d 656e 7369 6f6e 616c one-dimensional
│ │ │ │ -000e3400: 2064 796e 616d 6963 2053 4f41 502d 656e dynamic SOAP-en
│ │ │ │ -000e3410: 636f 6465 6420 6172 7261 7973 2069 6e20 coded arrays in
│ │ │ │ -000e3420: 616e 2069 6e74 6572 6661 6365 2068 6561 an interface hea
│ │ │ │ -000e3430: 6465 7220 6669 6c65 2066 6f72 2073 6f61 der file for soa
│ │ │ │ -000e3440: 7063 7070 322e 2045 6163 6820 6172 7261 pcpp2. Each arra
│ │ │ │ -000e3450: 7920 6861 7320 6120 706f 696e 7465 7220 y has a pointer
│ │ │ │ -000e3460: 7661 7269 6162 6c65 2061 6e64 2061 206d variable and a m
│ │ │ │ -000e3470: 656d 6265 7220 7468 6174 2072 6563 6f72 ember that recor
│ │ │ │ -000e3480: 6473 2074 6865 206e 756d 6265 7220 6f66 ds the number of
│ │ │ │ -000e3490: 2065 6c65 6d65 6e74 7320 7468 6520 706f elements the po
│ │ │ │ -000e34a0: 696e 7465 7220 706f 696e 7473 2074 6f20 inter points to
│ │ │ │ -000e34b0: 696e 206d 656d 6f72 792e 3c2f 703e 0a3c in memory. The foll
│ │ │ │ +000e1b30: 6f77 696e 6720 6578 616d 706c 6520 696c owing example il
│ │ │ │ +000e1b40: 6c75 7374 7261 7465 7320 7468 6520 696e lustrates the in
│ │ │ │ +000e1b50: 6974 6961 6c69 7a61 7469 6f6e 206f 6620 itialization of
│ │ │ │ +000e1b60: 3c63 6f64 653e 5f5f 6e73 5f5f 7265 636f Th
│ │ │ │ +000e1cf0: 6520 7365 7269 616c 697a 6564 206f 7574 e serialized out
│ │ │ │ +000e1d00: 7075 7420 6f66 203c 636f 6465 3e53 3c2f put of Fixed
│ │ │ │ +000e1f70: 7369 7a65 2061 7272 6179 7320 6172 6520 size arrays are
│ │ │ │ +000e1f80: 7365 7269 616c 697a 6564 2061 7320 7265 serialized as re
│ │ │ │ +000e1f90: 7065 7469 7469 6f6e 7320 6f66 203c 656d petitions of The
│ │ │ │ +000e2070: 2073 6572 6961 6c69 7a61 7469 6f6e 206f serialization o
│ │ │ │ +000e2080: 6620 6669 7865 642d 7369 7a65 2061 7272 f fixed-size arr
│ │ │ │ +000e2090: 6179 7320 7375 7070 6f72 7473 2074 6865 ays supports the
│ │ │ │ +000e20a0: 2053 4f41 5020 5250 4320 656e 636f 6469 SOAP RPC encodi
│ │ │ │ +000e20b0: 6e67 206d 756c 7469 2d64 696d 656e 7369 ng multi-dimensi
│ │ │ │ +000e20c0: 6f6e 616c 2061 7272 6179 2066 6f72 6d61 onal array forma
│ │ │ │ +000e20d0: 7420 6173 2077 656c 6c20 6173 2070 6172 t as well as par
│ │ │ │ +000e20e0: 7469 616c 6c79 2074 7261 6e73 6d69 7474 tially transmitt
│ │ │ │ +000e20f0: 6564 2061 6e64 2073 7061 7273 6520 6172 ed and sparse ar
│ │ │ │ +000e2100: 7261 7920 666f 726d 6174 7320 7374 616e ray formats stan
│ │ │ │ +000e2110: 6461 7264 697a 6564 2069 6e20 534f 4150 dardized in SOAP
│ │ │ │ +000e2120: 2031 2e31 2061 6e64 2031 2e32 2e3c 2f70 1.1 and 1.2. For example
│ │ │ │ +000e2140: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 : This sp
│ │ │ │ +000e22a0: 6563 6966 6965 7320 6120 6669 7865 642d ecifies a fixed-
│ │ │ │ +000e22b0: 7369 7a65 2061 7272 6179 2070 6172 7420 size array part
│ │ │ │ +000e22c0: 6f66 2074 6865 203c 636f 6465 3e73 7472 of the Any deseria
│ │ │ │ +000e2560: 6c69 7a65 6420 6974 656d 7320 6f66 2061 lized items of a
│ │ │ │ +000e2570: 6e20 6172 7261 7920 7468 6174 2064 6f20 n array that do
│ │ │ │ +000e2580: 6e6f 7420 6669 7420 696e 2074 6865 2066 not fit in the f
│ │ │ │ +000e2590: 6978 6564 2073 697a 6520 6172 7261 792c ixed size array,
│ │ │ │ +000e25a0: 2069 2e65 2e20 6172 6520 6f75 7420 6f66 i.e. are out of
│ │ │ │ +000e25b0: 2062 6f75 6e64 732c 2061 7265 2069 676e bounds, are ign
│ │ │ │ +000e25c0: 6f72 6564 2062 7920 7468 6520 6465 7365 ored by the dese
│ │ │ │ +000e25d0: 7269 616c 697a 6572 2077 6865 6e20 7468 rializer when th
│ │ │ │ +000e25e0: 6520 3c63 6f64 653e 2353 4f41 505f 435f e
│ │ │ │ +000e2660: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +000e2680: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +000e2690: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>.
│ │ │ │ +000e26e0: 4479 6e61 6d69 6320 6172 7261 7973 2061 Dynamic arrays a
│ │ │ │ +000e26f0: 7265 206d 7563 6820 6d6f 7265 2066 6c65 re much more fle
│ │ │ │ +000e2700: 7869 626c 6520 7468 616e 2066 6978 6564 xible than fixed
│ │ │ │ +000e2710: 2d73 697a 6520 6172 7261 7973 2e20 4479 -size arrays. Dy
│ │ │ │ +000e2720: 6e61 6d69 6320 6172 7261 7973 2064 6563 namic arrays dec
│ │ │ │ +000e2730: 6c61 7265 6420 696e 2074 6865 2069 6e74 lared in the int
│ │ │ │ +000e2740: 6572 6661 6365 2068 6561 6465 7220 6669 erface header fi
│ │ │ │ +000e2750: 6c65 2066 6f72 2073 6f61 7063 7070 3220 le for soapcpp2
│ │ │ │ +000e2760: 6172 6520 6120 7370 6563 6961 6c20 7374 are a special st
│ │ │ │ +000e2770: 7275 6374 206f 7220 636c 6173 7320 6f72 ruct or class or
│ │ │ │ +000e2780: 2061 7265 2070 6172 7420 6f66 2061 2073 are part of a s
│ │ │ │ +000e2790: 7472 7563 7420 6f72 2063 6c61 7373 2077 truct or class w
│ │ │ │ +000e27a0: 6974 6820 6120 6d65 6d62 6572 2070 6f69 ith a member poi
│ │ │ │ +000e27b0: 6e74 696e 6720 746f 2061 6e20 6172 7261 nting to an arra
│ │ │ │ +000e27c0: 7920 6f66 2065 6c65 6d65 6e74 7320 616e y of elements an
│ │ │ │ +000e27d0: 6420 6120 6d65 6d62 6572 2074 6861 7420 d a member that
│ │ │ │ +000e27e0: 7374 6f72 6573 2074 6865 2073 697a 6520 stores the size
│ │ │ │ +000e27f0: 6f66 2074 6865 2061 7272 6179 2e20 4479 of the array. Dy
│ │ │ │ +000e2800: 6e61 6d69 6320 6172 7261 7920 616c 6c6f namic array allo
│ │ │ │ +000e2810: 6361 7469 6f6e 7320 6172 6520 6561 7379 cations are easy
│ │ │ │ +000e2820: 2075 7369 6e67 2074 6865 2073 6f61 7063 using the soapc
│ │ │ │ +000e2830: 7070 2d67 656e 6572 6174 6564 203c 636f pp-generated To facilit
│ │ │ │ +000e2930: 6174 6520 534f 4150 2052 5043 2065 6e63 ate SOAP RPC enc
│ │ │ │ +000e2940: 6f64 696e 672c 2053 4f41 502d 656e 636f oding, SOAP-enco
│ │ │ │ +000e2950: 6465 6420 6172 7261 7973 2072 6571 7569 ded arrays requi
│ │ │ │ +000e2960: 7265 2073 7065 6369 616c 2074 7265 6174 re special treat
│ │ │ │ +000e2970: 6d65 6e74 2e20 534f 4150 2d65 6e63 6f64 ment. SOAP-encod
│ │ │ │ +000e2980: 6564 2061 7272 6179 7320 6172 6520 7369 ed arrays are si
│ │ │ │ +000e2990: 6e67 6c65 2d20 6f72 206d 756c 7469 2d64 ngle- or multi-d
│ │ │ │ +000e29a0: 696d 656e 7369 6f6e 616c 2061 7272 6179 imensional array
│ │ │ │ +000e29b0: 7320 7769 7468 2062 6f75 6e64 7320 7468 s with bounds th
│ │ │ │ +000e29c0: 6174 2061 7070 6561 7220 696e 2058 4d4c at appear in XML
│ │ │ │ +000e29d0: 2e20 5468 6573 6520 6172 7261 7973 206d . These arrays m
│ │ │ │ +000e29e0: 6179 2061 6c73 6f20 6861 7665 206f 6666 ay also have off
│ │ │ │ +000e29f0: 7365 7473 2074 6861 7420 6469 6666 6572 sets that differ
│ │ │ │ +000e2a00: 2066 726f 6d20 7a65 726f 2e20 5468 6520 from zero. The
│ │ │ │ +000e2a10: 696e 7465 6e74 206f 6620 534f 4150 2d65 intent of SOAP-e
│ │ │ │ +000e2a20: 6e63 6f64 6564 2061 7272 6179 7320 6973 ncoded arrays is
│ │ │ │ +000e2a30: 2074 6f20 7265 706c 6963 6174 6520 6d75 to replicate mu
│ │ │ │ +000e2a40: 6c74 692d 6469 6d65 6e73 696f 6e61 6c20 lti-dimensional
│ │ │ │ +000e2a50: 6172 7261 7973 2063 6f6d 6d6f 6e6c 7920 arrays commonly
│ │ │ │ +000e2a60: 666f 756e 6420 696e 2070 726f 6772 616d found in program
│ │ │ │ +000e2a70: 6d69 6e67 206c 616e 6775 6167 6573 2e3c ming languages.<
│ │ │ │ +000e2a80: 2f70 3e0a 3c70 3e48 6f77 6576 6572 2c20 /p>. However,
│ │ │ │ +000e2a90: 584d 4c20 616c 736f 2070 726f 7669 6465 XML also provide
│ │ │ │ +000e2aa0: 7320 6120 7369 6d70 6c65 2077 6179 2074 s a simple way t
│ │ │ │ +000e2ab0: 6f20 7265 7072 6573 656e 7420 6120 7365 o represent a se
│ │ │ │ +000e2ac0: 7175 656e 6365 206f 6620 7661 6c75 6573 quence of values
│ │ │ │ +000e2ad0: 2077 6974 6820 6120 7365 7175 656e 6365 with a sequence
│ │ │ │ +000e2ae0: 206f 6620 584d 4c20 656c 656d 656e 7473 of XML elements
│ │ │ │ +000e2af0: 2e20 5468 6973 2064 6966 6665 7273 2066 . This differs f
│ │ │ │ +000e2b00: 726f 6d20 534f 4150 2d65 6e63 6f64 6564 rom SOAP-encoded
│ │ │ │ +000e2b10: 2061 7272 6179 7320 696e 2074 6861 7420 arrays in that
│ │ │ │ +000e2b20: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ +000e2b30: 6179 7320 6172 6520 656c 656d 656e 7473 ays are elements
│ │ │ │ +000e2b40: 2077 6974 6820 6e65 7374 6564 203c 656d with nested Both
│ │ │ │ +000e2c00: 2053 4f41 502d 656e 636f 6465 6420 6172 SOAP-encoded ar
│ │ │ │ +000e2c10: 7261 7973 2061 6e64 2073 6571 7565 6e63 rays and sequenc
│ │ │ │ +000e2c20: 6573 206f 6620 584d 4c20 656c 656d 656e es of XML elemen
│ │ │ │ +000e2c30: 7473 2061 7265 2073 7570 706f 7274 6564 ts are supported
│ │ │ │ +000e2c40: 2069 6e20 6753 4f41 502c 2075 7369 6e67 in gSOAP, using
│ │ │ │ +000e2c50: 2064 796e 616d 6963 2061 7272 6179 7320 dynamic arrays
│ │ │ │ +000e2c60: 616e 6420 636f 6e74 6169 6e65 7273 2e20 and containers.
│ │ │ │ +000e2c70: 5468 6520 6261 7369 6373 2077 696c 6c20 The basics will
│ │ │ │ +000e2c80: 6265 2064 6573 6372 6962 6564 206e 6578 be described nex
│ │ │ │ +000e2c90: 742e 2046 6f72 2061 6464 6974 696f 6e61 t. For additiona
│ │ │ │ +000e2ca0: 6c20 6465 7461 696c 732c 2073 6565 2074 l details, see t
│ │ │ │ +000e2cb0: 6865 203c 6120 6872 6566 3d22 2e2e 2f2e he C
│ │ │ │ +000e2ce0: 2061 6e64 2043 2b2b 2058 4d4c 2044 6174 and C++ XML Dat
│ │ │ │ +000e2cf0: 6120 4269 6e64 696e 6773 3c2f 613e 2064 a Bindings d
│ │ │ │ +000e2d00: 6f63 756d 656e 7461 7469 6f6e 2e3c 2f70 ocumentation. SOAP-encod
│ │ │ │ +000e2da0: 6564 2061 7272 6179 7320 7573 6520 7468 ed arrays use th
│ │ │ │ +000e2db0: 6520 3c65 6d3e 3c63 6f64 653e 534f 4150 e As a security
│ │ │ │ +000e2e80: 206d 6561 7375 7265 2074 6f20 6176 6f69 measure to avoi
│ │ │ │ +000e2e90: 6420 6465 6e69 616c 206f 6620 7365 7276 d denial of serv
│ │ │ │ +000e2ea0: 6963 6520 6174 7461 636b 7320 6261 7365 ice attacks base
│ │ │ │ +000e2eb0: 6420 6f6e 2073 656e 6469 6e67 2061 2068 d on sending a h
│ │ │ │ +000e2ec0: 7567 6520 6172 7261 7920 7369 7a65 2076 uge array size v
│ │ │ │ +000e2ed0: 616c 7565 2075 7369 6e67 2074 6865 203c alue using the <
│ │ │ │ +000e2ee0: 656d 3e3c 636f 6465 3e53 4f41 502d 454e em> A special for
│ │ │ │ +000e33b0: 6d20 6f66 2073 7472 7563 7420 6f72 2063 m of struct or c
│ │ │ │ +000e33c0: 6c61 7373 2069 7320 7573 6564 2074 6f20 lass is used to
│ │ │ │ +000e33d0: 6465 6669 6e65 206f 6e65 2d64 696d 656e define one-dimen
│ │ │ │ +000e33e0: 7369 6f6e 616c 2064 796e 616d 6963 2053 sional dynamic S
│ │ │ │ +000e33f0: 4f41 502d 656e 636f 6465 6420 6172 7261 OAP-encoded arra
│ │ │ │ +000e3400: 7973 2069 6e20 616e 2069 6e74 6572 6661 ys in an interfa
│ │ │ │ +000e3410: 6365 2068 6561 6465 7220 6669 6c65 2066 ce header file f
│ │ │ │ +000e3420: 6f72 2073 6f61 7063 7070 322e 2045 6163 or soapcpp2. Eac
│ │ │ │ +000e3430: 6820 6172 7261 7920 6861 7320 6120 706f h array has a po
│ │ │ │ +000e3440: 696e 7465 7220 7661 7269 6162 6c65 2061 inter variable a
│ │ │ │ +000e3450: 6e64 2061 206d 656d 6265 7220 7468 6174 nd a member that
│ │ │ │ +000e3460: 2072 6563 6f72 6473 2074 6865 206e 756d records the num
│ │ │ │ +000e3470: 6265 7220 6f66 2065 6c65 6d65 6e74 7320 ber of elements
│ │ │ │ +000e3480: 7468 6520 706f 696e 7465 7220 706f 696e the pointer poin
│ │ │ │ +000e3490: 7473 2074 6f20 696e 206d 656d 6f72 792e ts to in memory.
│ │ │ │ +000e34a0: 3c2f 703e 0a3c 703e 5468 6520 6765 6e65 The gene
│ │ │ │ +000e34b0: 7261 6c20 666f 726d 206f 6620 7468 6520 ral form of the
│ │ │ │ +000e34c0: 7374 7275 6374 206f 7220 636c 6173 7320 struct or class
│ │ │ │ +000e34d0: 6465 636c 6172 6174 696f 6e20 7468 6174 declaration that
│ │ │ │ +000e34e0: 2063 6f6e 7461 696e 7320 6120 6f6e 652d contains a one-
│ │ │ │ +000e34f0: 6469 6d65 6e73 696f 6e61 6c20 6479 6e61 dimensional dyna
│ │ │ │ +000e3500: 6d69 6320 534f 4150 2d65 6e63 6f64 6564 mic SOAP-encoded
│ │ │ │ +000e3510: 2061 7272 6179 2069 733a 3c2f 703e 0a3c array is: where the If
│ │ │ │ -000e39a0: 7468 6520 3c63 6f64 653e 6172 7261 795f the The soapcpp2-
│ │ │ │ -000e3aa0: 6765 6e65 7261 7465 6420 6465 7365 7269 generated deseri
│ │ │ │ -000e3ab0: 616c 697a 6572 206f 6620 6120 6f6e 652d alizer of a one-
│ │ │ │ -000e3ac0: 6469 6d65 6e73 696f 6e61 6c20 6479 6e61 dimensional dyna
│ │ │ │ -000e3ad0: 6d69 6320 6172 7261 7920 6361 6e20 6465 mic array can de
│ │ │ │ -000e3ae0: 7365 7269 616c 697a 6520 7061 7274 6961 serialize partia
│ │ │ │ -000e3af0: 6c6c 7920 7472 616e 736d 6974 7465 6420 lly transmitted
│ │ │ │ -000e3b00: 616e 642f 6f72 2053 4f41 502d 656e 636f and/or SOAP-enco
│ │ │ │ -000e3b10: 6465 6420 7370 6172 7365 2061 7272 6179 ded sparse array
│ │ │ │ -000e3b20: 732c 2061 6e64 2065 7665 6e20 6d75 6c74 s, and even mult
│ │ │ │ -000e3b30: 692d 6469 6d65 6e73 696f 6e61 6c20 6172 i-dimensional ar
│ │ │ │ -000e3b40: 7261 7973 2077 6869 6368 2077 696c 6c20 rays which will
│ │ │ │ -000e3b50: 6265 2063 6f6c 6c61 7073 6564 2069 6e74 be collapsed int
│ │ │ │ -000e3b60: 6f20 6120 6f6e 652d 6469 6d65 6e73 696f o a one-dimensio
│ │ │ │ -000e3b70: 6e61 6c20 6172 7261 7920 7769 7468 2072 nal array with r
│ │ │ │ -000e3b80: 6f77 2d6d 616a 6f72 206f 7264 6572 696e ow-major orderin
│ │ │ │ -000e3b90: 672e 3c2f 703e 0a3c 646c 2063 6c61 7373 g. .
│ │ │ │ -000e3c50: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ -000e3c60: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ -000e3c70: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents The decla
│ │ │ │ -000e3d00: 7261 7469 6f6e 206f 6620 6120 6479 6e61 ration of a dyna
│ │ │ │ -000e3d10: 6d69 6320 6172 7261 7920 6173 2064 6573 mic array as des
│ │ │ │ -000e3d20: 6372 6962 6564 2069 6e20 5365 6374 696f cribed in Sectio
│ │ │ │ -000e3d30: 6e20 3c61 2063 6c61 7373 3d22 656c 2220 n One-dimen
│ │ │ │ -000e3d60: 7369 6f6e 616c 2064 796e 616d 6963 2053 sional dynamic S
│ │ │ │ -000e3d70: 4f41 502d 656e 636f 6465 6420 6172 7261 OAP-encoded arra
│ │ │ │ -000e3d80: 7973 3c2f 613e 206d 6179 2069 6e63 6c75 ys may inclu
│ │ │ │ -000e3d90: 6465 2061 6e20 3c63 6f64 653e 696e 7420 de an For example,
│ │ │ │ -000e3f10: 7468 6520 666f 6c6c 6f77 696e 6720 6865 the following he
│ │ │ │ -000e3f20: 6164 6572 2066 696c 6520 6465 636c 6172 ader file declar
│ │ │ │ -000e3f30: 6573 2061 206e 756d 6572 6963 203c 636f es a numeric The imple
│ │ │ │ -000e43d0: 6d65 6e74 6174 696f 6e73 206f 6620 7468 mentations of th
│ │ │ │ -000e43e0: 6520 3c63 6f64 653e 5665 6374 6f72 3c2f e where the
│ │ │ │ +000e37d0: 203c 636f 6465 3e61 7272 6179 5f6e 616d If the The soa
│ │ │ │ +000e3a80: 7063 7070 322d 6765 6e65 7261 7465 6420 pcpp2-generated
│ │ │ │ +000e3a90: 6465 7365 7269 616c 697a 6572 206f 6620 deserializer of
│ │ │ │ +000e3aa0: 6120 6f6e 652d 6469 6d65 6e73 696f 6e61 a one-dimensiona
│ │ │ │ +000e3ab0: 6c20 6479 6e61 6d69 6320 6172 7261 7920 l dynamic array
│ │ │ │ +000e3ac0: 6361 6e20 6465 7365 7269 616c 697a 6520 can deserialize
│ │ │ │ +000e3ad0: 7061 7274 6961 6c6c 7920 7472 616e 736d partially transm
│ │ │ │ +000e3ae0: 6974 7465 6420 616e 642f 6f72 2053 4f41 itted and/or SOA
│ │ │ │ +000e3af0: 502d 656e 636f 6465 6420 7370 6172 7365 P-encoded sparse
│ │ │ │ +000e3b00: 2061 7272 6179 732c 2061 6e64 2065 7665 arrays, and eve
│ │ │ │ +000e3b10: 6e20 6d75 6c74 692d 6469 6d65 6e73 696f n multi-dimensio
│ │ │ │ +000e3b20: 6e61 6c20 6172 7261 7973 2077 6869 6368 nal arrays which
│ │ │ │ +000e3b30: 2077 696c 6c20 6265 2063 6f6c 6c61 7073 will be collaps
│ │ │ │ +000e3b40: 6564 2069 6e74 6f20 6120 6f6e 652d 6469 ed into a one-di
│ │ │ │ +000e3b50: 6d65 6e73 696f 6e61 6c20 6172 7261 7920 mensional array
│ │ │ │ +000e3b60: 7769 7468 2072 6f77 2d6d 616a 6f72 206f with row-major o
│ │ │ │ +000e3b70: 7264 6572 696e 672e 3c2f 703e 0a3c 646c rdering. The
│ │ │ │ +000e3ce0: 2064 6563 6c61 7261 7469 6f6e 206f 6620 declaration of
│ │ │ │ +000e3cf0: 6120 6479 6e61 6d69 6320 6172 7261 7920 a dynamic array
│ │ │ │ +000e3d00: 6173 2064 6573 6372 6962 6564 2069 6e20 as described in
│ │ │ │ +000e3d10: 5365 6374 696f 6e20 3c61 2063 6c61 7373 Section One
│ │ │ │ +000e3d40: 2d64 696d 656e 7369 6f6e 616c 2064 796e -dimensional dyn
│ │ │ │ +000e3d50: 616d 6963 2053 4f41 502d 656e 636f 6465 amic SOAP-encode
│ │ │ │ +000e3d60: 6420 6172 7261 7973 3c2f 613e 206d 6179 d arrays may
│ │ │ │ +000e3d70: 2069 6e63 6c75 6465 2061 6e20 3c63 6f64 include an For exa
│ │ │ │ +000e3ef0: 6d70 6c65 2c20 7468 6520 666f 6c6c 6f77 mple, the follow
│ │ │ │ +000e3f00: 696e 6720 6865 6164 6572 2066 696c 6520 ing header file
│ │ │ │ +000e3f10: 6465 636c 6172 6573 2061 206e 756d 6572 declares a numer
│ │ │ │ +000e3f20: 6963 203c 636f 6465 3e56 6563 746f 723c ic The
│ │ │ │ +000e43b0: 2069 6d70 6c65 6d65 6e74 6174 696f 6e73 implementations
│ │ │ │ +000e43c0: 206f 6620 7468 6520 3c63 6f64 653e 5665 of the An example
│ │ │ │ -000e4820: 2070 726f 6772 616d 2066 7261 676d 656e program fragmen
│ │ │ │ -000e4830: 7420 7468 6174 2073 6572 6961 6c69 7a65 t that serialize
│ │ │ │ -000e4840: 7320 6120 7665 6374 6f72 206f 6620 3320 s a vector of 3
│ │ │ │ -000e4850: 656c 656d 656e 7473 3a3c 2f70 3e0a 3c64 elements: Note that <
│ │ │ │ -000e5020: 656d 3e3c 636f 6465 3e78 7364 3a66 6c6f em> On
│ │ │ │ -000e5150: 652d 6469 6d65 6e73 696f 6e61 6c20 534f e-dimensional SO
│ │ │ │ -000e5160: 4150 2d65 6e63 6f64 6564 2064 796e 616d AP-encoded dynam
│ │ │ │ -000e5170: 6963 2061 7272 6179 7320 6d61 7920 6265 ic arrays may be
│ │ │ │ -000e5180: 206e 6573 7465 642e 2046 6f72 2065 7861 nested. For exa
│ │ │ │ -000e5190: 6d70 6c65 2c20 7573 696e 6720 3c63 6f64 mple, using The Matri
│ │ │ │ -000e5640: 7820 7479 7065 2069 7320 6573 7365 6e74 x type is essent
│ │ │ │ -000e5650: 6961 6c6c 7920 616e 2061 7272 6179 206f ially an array o
│ │ │ │ -000e5660: 6620 706f 696e 7465 7273 2074 6f20 6172 f pointers to ar
│ │ │ │ -000e5670: 7261 7973 2077 6869 6368 206d 616b 6520 rays which make
│ │ │ │ -000e5680: 7570 2074 6865 2072 6f77 7320 6f66 2061 up the rows of a
│ │ │ │ -000e5690: 206d 6174 7269 782e 2054 6865 2073 6572 matrix. The ser
│ │ │ │ -000e56a0: 6961 6c69 7a61 7469 6f6e 206f 6620 7468 ialization of th
│ │ │ │ -000e56b0: 6520 7477 6f2d 6469 6d65 6e73 696f 6e61 e two-dimensiona
│ │ │ │ -000e56c0: 6c20 6479 6e61 6d69 6320 6172 7261 7920 l dynamic array
│ │ │ │ -000e56d0: 696e 2069 7320 6e65 7374 6564 2066 6f72 in is nested for
│ │ │ │ -000e56e0: 6d20 696e 2058 4d4c 2e3c 2f70 3e0a 3c70 m in XML. .... Back to table
│ │ │ │ -000e5710: 6f66 2063 6f6e 7465 6e74 733c 2f61 3e3c of contents<
│ │ │ │ -000e5720: 2f70 3e0a 3c68 333e 3c61 2063 6c61 7373 /p>. A special form
│ │ │ │ -000e5790: 6f66 203c 636f 6465 3e73 7472 7563 743c of An e
│ │ │ │ +000e4800: 7861 6d70 6c65 2070 726f 6772 616d 2066 xample program f
│ │ │ │ +000e4810: 7261 676d 656e 7420 7468 6174 2073 6572 ragment that ser
│ │ │ │ +000e4820: 6961 6c69 7a65 7320 6120 7665 6374 6f72 ializes a vector
│ │ │ │ +000e4830: 206f 6620 3320 656c 656d 656e 7473 3a3c of 3 elements:<
│ │ │ │ +000e4840: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. The o
│ │ │ │ +000e4cb0: 7574 7075 7420 6973 2061 2070 6172 7469 utput is a parti
│ │ │ │ +000e4cc0: 616c 6c79 2074 7261 6e73 6d69 7474 6564 ally transmitted
│ │ │ │ +000e4cd0: 2061 7272 6179 3a3c 2f70 3e0a 3c64 6976 array: The
│ │ │ │ +000e5620: 204d 6174 7269 7820 7479 7065 2069 7320 Matrix type is
│ │ │ │ +000e5630: 6573 7365 6e74 6961 6c6c 7920 616e 2061 essentially an a
│ │ │ │ +000e5640: 7272 6179 206f 6620 706f 696e 7465 7273 rray of pointers
│ │ │ │ +000e5650: 2074 6f20 6172 7261 7973 2077 6869 6368 to arrays which
│ │ │ │ +000e5660: 206d 616b 6520 7570 2074 6865 2072 6f77 make up the row
│ │ │ │ +000e5670: 7320 6f66 2061 206d 6174 7269 782e 2054 s of a matrix. T
│ │ │ │ +000e5680: 6865 2073 6572 6961 6c69 7a61 7469 6f6e he serialization
│ │ │ │ +000e5690: 206f 6620 7468 6520 7477 6f2d 6469 6d65 of the two-dime
│ │ │ │ +000e56a0: 6e73 696f 6e61 6c20 6479 6e61 6d69 6320 nsional dynamic
│ │ │ │ +000e56b0: 6172 7261 7920 696e 2069 7320 6e65 7374 array in is nest
│ │ │ │ +000e56c0: 6564 2066 6f72 6d20 696e 2058 4d4c 2e3c ed form in XML.<
│ │ │ │ +000e56d0: 2f70 3e0a 3c70 3ef0 9f94 9d20 3c61 2068 /p>. A special
│ │ │ │ +000e5770: 2066 6f72 6d20 6f66 203c 636f 6465 3e73 form of whe
│ │ │ │ -000e5b50: 7265 2074 6865 203c 636f 6465 3e61 7272 re the Fo
│ │ │ │ -000e5cb0: 7220 6578 616d 706c 652c 2074 6865 2066 r example, the f
│ │ │ │ -000e5cc0: 6f6c 6c6f 7769 6e67 2064 6563 6c61 7261 ollowing declara
│ │ │ │ -000e5cd0: 7469 6f6e 2073 7065 6369 6669 6573 2061 tion specifies a
│ │ │ │ -000e5ce0: 206d 6174 7269 7820 636c 6173 733a 3c2f matrix class:
│ │ │ │ -000e5cf0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. By con
│ │ │ │ -000e5eb0: 7472 6173 7420 746f 2074 6865 206d 6174 trast to the mat
│ │ │ │ -000e5ec0: 7269 7820 636c 6173 7320 6f66 2053 6563 rix class of Sec
│ │ │ │ -000e5ed0: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Nest
│ │ │ │ -000e5f00: 6564 206f 6e65 2d64 696d 656e 7369 6f6e ed one-dimension
│ │ │ │ -000e5f10: 616c 2064 796e 616d 6963 2053 4f41 502d al dynamic SOAP-
│ │ │ │ -000e5f20: 656e 636f 6465 6420 6172 7261 7973 3c2f encoded arrays
│ │ │ │ -000e5f30: 613e 2074 6861 7420 6465 6669 6e65 7320 a> that defines
│ │ │ │ -000e5f40: 6120 6d61 7472 6978 2061 7320 616e 2061 a matrix as an a
│ │ │ │ -000e5f50: 7272 6179 206f 6620 706f 696e 7465 7273 rray of pointers
│ │ │ │ -000e5f60: 2074 6f20 6d61 7472 6978 2072 6f77 732c to matrix rows,
│ │ │ │ -000e5f70: 2074 6869 7320 636c 6173 7320 6861 7320 this class has
│ │ │ │ -000e5f80: 6f6e 6520 706f 696e 7465 7220 746f 2061 one pointer to a
│ │ │ │ -000e5f90: 206d 6174 7269 7820 7374 6f72 6564 2069 matrix stored i
│ │ │ │ -000e5fa0: 6e20 726f 772d 6d61 6a6f 7220 6f72 6465 n row-major orde
│ │ │ │ -000e5fb0: 722e 2054 6865 2073 697a 6520 6f66 2074 r. The size of t
│ │ │ │ -000e5fc0: 6865 206d 6174 7269 7820 6973 2064 6574 he matrix is det
│ │ │ │ -000e5fd0: 6572 6d69 6e65 6420 6279 2074 6865 203c ermined by the <
│ │ │ │ -000e5fe0: 636f 6465 3e5f 5f73 697a 653c 2f63 6f64 code>__size member: An
│ │ │ │ -000e6210: 2061 7272 6179 2069 7320 7365 7269 616c array is serial
│ │ │ │ -000e6220: 697a 6564 2061 7320 6120 7365 7175 656e ized as a sequen
│ │ │ │ -000e6230: 6365 206f 6620 584d 4c20 656c 656d 656e ce of XML elemen
│ │ │ │ -000e6240: 7473 2e20 4279 2063 6f6e 7472 6173 742c ts. By contrast,
│ │ │ │ -000e6250: 2061 2053 4f41 502d 656e 636f 6465 6420 a SOAP-encoded
│ │ │ │ -000e6260: 6172 7261 7920 6973 2073 6572 6961 6c69 array is seriali
│ │ │ │ -000e6270: 7a65 6420 6173 2061 6e20 656c 656d 656e zed as an elemen
│ │ │ │ -000e6280: 7420 7769 7468 2061 2073 6571 7565 6e63 t with a sequenc
│ │ │ │ -000e6290: 6520 6f66 2073 7562 2d65 6c65 6d65 6e74 e of sub-element
│ │ │ │ -000e62a0: 732c 2077 686f 7365 2074 6167 206e 616d s, whose tag nam
│ │ │ │ -000e62b0: 6573 2061 7265 2069 7272 656c 6576 616e es are irrelevan
│ │ │ │ -000e62c0: 7420 746f 2074 6865 2053 4f41 5020 7072 t to the SOAP pr
│ │ │ │ -000e62d0: 6f63 6573 736f 722c 2073 6565 203c 6120 ocessor, see One-dimensiona
│ │ │ │ -000e6310: 6c20 6479 6e61 6d69 6320 534f 4150 2d65 l dynamic SOAP-e
│ │ │ │ -000e6320: 6e63 6f64 6564 2061 7272 6179 733c 2f61 ncoded arrays. An arr
│ │ │ │ -000e6340: 6179 2069 7320 6465 636c 6172 6564 2069 ay is declared i
│ │ │ │ -000e6350: 6e20 616e 2069 6e74 6572 6661 6365 2068 n an interface h
│ │ │ │ -000e6360: 6561 6465 7220 6669 6c65 2066 6f72 2073 eader file for s
│ │ │ │ -000e6370: 6f61 7063 7070 3220 6173 2061 2073 7472 oapcpp2 as a str
│ │ │ │ -000e6380: 7563 7420 6f72 2063 6c61 7373 2077 6974 uct or class wit
│ │ │ │ -000e6390: 6820 6120 6e61 6d65 2074 6861 7420 6973 h a name that is
│ │ │ │ -000e63a0: 2071 7561 6c69 6669 6564 2077 6974 6820 qualified with
│ │ │ │ -000e63b0: 6120 6e61 6d65 7370 6163 6520 7072 6566 a namespace pref
│ │ │ │ -000e63c0: 6978 2e20 5468 6572 6520 6172 6520 7477 ix. There are tw
│ │ │ │ -000e63d0: 6f20 666f 726d 732e 2054 6865 2066 6972 o forms. The fir
│ │ │ │ -000e63e0: 7374 2066 6f72 6d20 6973 2073 696d 696c st form is simil
│ │ │ │ -000e63f0: 6172 2074 6f20 7468 6520 534f 4150 2d65 ar to the SOAP-e
│ │ │ │ -000e6400: 6e63 6f64 6564 2061 7272 6179 2064 6563 ncoded array dec
│ │ │ │ -000e6410: 6c61 7261 7469 6f6e 2074 6861 7420 7772 laration that wr
│ │ │ │ -000e6420: 6170 7320 7468 6520 3c63 6f64 653e 5f5f aps the where the For example,
│ │ │ │ +000e5ca0: 2074 6865 2066 6f6c 6c6f 7769 6e67 2064 the following d
│ │ │ │ +000e5cb0: 6563 6c61 7261 7469 6f6e 2073 7065 6369 eclaration speci
│ │ │ │ +000e5cc0: 6669 6573 2061 206d 6174 7269 7820 636c fies a matrix cl
│ │ │ │ +000e5cd0: 6173 733a 3c2f 703e 0a3c 6469 7620 636c ass:
│ │ │ │ +000e5e90: 4279 2063 6f6e 7472 6173 7420 746f 2074 By contrast to t
│ │ │ │ +000e5ea0: 6865 206d 6174 7269 7820 636c 6173 7320 he matrix class
│ │ │ │ +000e5eb0: 6f66 2053 6563 7469 6f6e 203c 6120 636c of Section Nested one-dim
│ │ │ │ +000e5ef0: 656e 7369 6f6e 616c 2064 796e 616d 6963 ensional dynamic
│ │ │ │ +000e5f00: 2053 4f41 502d 656e 636f 6465 6420 6172 SOAP-encoded ar
│ │ │ │ +000e5f10: 7261 7973 3c2f 613e 2074 6861 7420 6465 rays that de
│ │ │ │ +000e5f20: 6669 6e65 7320 6120 6d61 7472 6978 2061 fines a matrix a
│ │ │ │ +000e5f30: 7320 616e 2061 7272 6179 206f 6620 706f s an array of po
│ │ │ │ +000e5f40: 696e 7465 7273 2074 6f20 6d61 7472 6978 inters to matrix
│ │ │ │ +000e5f50: 2072 6f77 732c 2074 6869 7320 636c 6173 rows, this clas
│ │ │ │ +000e5f60: 7320 6861 7320 6f6e 6520 706f 696e 7465 s has one pointe
│ │ │ │ +000e5f70: 7220 746f 2061 206d 6174 7269 7820 7374 r to a matrix st
│ │ │ │ +000e5f80: 6f72 6564 2069 6e20 726f 772d 6d61 6a6f ored in row-majo
│ │ │ │ +000e5f90: 7220 6f72 6465 722e 2054 6865 2073 697a r order. The siz
│ │ │ │ +000e5fa0: 6520 6f66 2074 6865 206d 6174 7269 7820 e of the matrix
│ │ │ │ +000e5fb0: 6973 2064 6574 6572 6d69 6e65 6420 6279 is determined by
│ │ │ │ +000e5fc0: 2074 6865 203c 636f 6465 3e5f 5f73 697a the ....
│ │ │ │ +000e6180: 203c 6120 6872 6566 3d22 2322 3e42 6163 Bac
│ │ │ │ +000e6190: 6b20 746f 2074 6162 6c65 206f 6620 636f k to table of co
│ │ │ │ +000e61a0: 6e74 656e 7473 3c2f 613e 3c2f 703e 0a3c ntents An array is
│ │ │ │ +000e6200: 7365 7269 616c 697a 6564 2061 7320 6120 serialized as a
│ │ │ │ +000e6210: 7365 7175 656e 6365 206f 6620 584d 4c20 sequence of XML
│ │ │ │ +000e6220: 656c 656d 656e 7473 2e20 4279 2063 6f6e elements. By con
│ │ │ │ +000e6230: 7472 6173 742c 2061 2053 4f41 502d 656e trast, a SOAP-en
│ │ │ │ +000e6240: 636f 6465 6420 6172 7261 7920 6973 2073 coded array is s
│ │ │ │ +000e6250: 6572 6961 6c69 7a65 6420 6173 2061 6e20 erialized as an
│ │ │ │ +000e6260: 656c 656d 656e 7420 7769 7468 2061 2073 element with a s
│ │ │ │ +000e6270: 6571 7565 6e63 6520 6f66 2073 7562 2d65 equence of sub-e
│ │ │ │ +000e6280: 6c65 6d65 6e74 732c 2077 686f 7365 2074 lements, whose t
│ │ │ │ +000e6290: 6167 206e 616d 6573 2061 7265 2069 7272 ag names are irr
│ │ │ │ +000e62a0: 656c 6576 616e 7420 746f 2074 6865 2053 elevant to the S
│ │ │ │ +000e62b0: 4f41 5020 7072 6f63 6573 736f 722c 2073 OAP processor, s
│ │ │ │ +000e62c0: 6565 203c 6120 636c 6173 733d 2265 6c22 ee One-dime
│ │ │ │ +000e62f0: 6e73 696f 6e61 6c20 6479 6e61 6d69 6320 nsional dynamic
│ │ │ │ +000e6300: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ +000e6310: 6179 733c 2f61 3e2e 3c2f 703e 0a3c 703e ays.
│ │ │ │ +000e6320: 416e 2061 7272 6179 2069 7320 6465 636c An array is decl
│ │ │ │ +000e6330: 6172 6564 2069 6e20 616e 2069 6e74 6572 ared in an inter
│ │ │ │ +000e6340: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ +000e6350: 2066 6f72 2073 6f61 7063 7070 3220 6173 for soapcpp2 as
│ │ │ │ +000e6360: 2061 2073 7472 7563 7420 6f72 2063 6c61 a struct or cla
│ │ │ │ +000e6370: 7373 2077 6974 6820 6120 6e61 6d65 2074 ss with a name t
│ │ │ │ +000e6380: 6861 7420 6973 2071 7561 6c69 6669 6564 hat is qualified
│ │ │ │ +000e6390: 2077 6974 6820 6120 6e61 6d65 7370 6163 with a namespac
│ │ │ │ +000e63a0: 6520 7072 6566 6978 2e20 5468 6572 6520 e prefix. There
│ │ │ │ +000e63b0: 6172 6520 7477 6f20 666f 726d 732e 2054 are two forms. T
│ │ │ │ +000e63c0: 6865 2066 6972 7374 2066 6f72 6d20 6973 he first form is
│ │ │ │ +000e63d0: 2073 696d 696c 6172 2074 6f20 7468 6520 similar to the
│ │ │ │ +000e63e0: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ +000e63f0: 6179 2064 6563 6c61 7261 7469 6f6e 2074 ay declaration t
│ │ │ │ +000e6400: 6861 7420 7772 6170 7320 7468 6520 3c63 hat wraps the The second
│ │ │ │ -000e6690: 2066 6f72 6d20 6973 206d 6f72 6520 6765 form is more ge
│ │ │ │ -000e66a0: 6e65 7269 632c 2062 6563 6175 7365 2074 neric, because t
│ │ │ │ -000e66b0: 6865 2061 7272 6179 2063 616e 2062 6520 he array can be
│ │ │ │ -000e66c0: 6465 636c 6172 6564 2061 6e79 7768 6572 declared anywher
│ │ │ │ -000e66d0: 6520 696e 2074 6865 2073 7472 7563 7420 e in the struct
│ │ │ │ -000e66e0: 6f72 2063 6c61 7373 2061 6e64 206d 756c or class and mul
│ │ │ │ -000e66f0: 7469 706c 6520 6172 7261 7973 2063 616e tiple arrays can
│ │ │ │ -000e6700: 2062 6520 7573 6564 2061 7320 6d65 6d62 be used as memb
│ │ │ │ -000e6710: 6572 732c 2065 6163 6820 7769 7468 2061 ers, each with a
│ │ │ │ -000e6720: 203c 636f 6465 3e5f 5f73 697a 653c 2f63 The
│ │ │ │ +000e6670: 7365 636f 6e64 2066 6f72 6d20 6973 206d second form is m
│ │ │ │ +000e6680: 6f72 6520 6765 6e65 7269 632c 2062 6563 ore generic, bec
│ │ │ │ +000e6690: 6175 7365 2074 6865 2061 7272 6179 2063 ause the array c
│ │ │ │ +000e66a0: 616e 2062 6520 6465 636c 6172 6564 2061 an be declared a
│ │ │ │ +000e66b0: 6e79 7768 6572 6520 696e 2074 6865 2073 nywhere in the s
│ │ │ │ +000e66c0: 7472 7563 7420 6f72 2063 6c61 7373 2061 truct or class a
│ │ │ │ +000e66d0: 6e64 206d 756c 7469 706c 6520 6172 7261 nd multiple arra
│ │ │ │ +000e66e0: 7973 2063 616e 2062 6520 7573 6564 2061 ys can be used a
│ │ │ │ +000e66f0: 7320 6d65 6d62 6572 732c 2065 6163 6820 s members, each
│ │ │ │ +000e6700: 7769 7468 2061 203c 636f 6465 3e5f 5f73 with a The For ex
│ │ │ │ -000e6c40: 616d 706c 652c 2077 6520 6465 6669 6e65 ample, we define
│ │ │ │ -000e6c50: 2061 204d 6170 2073 7472 7563 7475 7265 a Map structure
│ │ │ │ -000e6c60: 2074 6861 7420 636f 6e74 6169 6e73 2061 that contains a
│ │ │ │ -000e6c70: 2073 6571 7565 6e63 6520 6f66 206b 6579 sequence of key
│ │ │ │ -000e6c80: 2d76 616c 2070 6169 7273 3a3c 2f70 3e0a -val pairs: Since
│ │ │ │ -000e6f10: 322e 372e 3136 2069 7420 6973 2061 6c73 2.7.16 it is als
│ │ │ │ -000e6f20: 6f20 706f 7373 6962 6c65 2074 6f20 7573 o possible to us
│ │ │ │ -000e6f30: 6520 6120 273c 636f 6465 3e24 3c2f 636f e a ' The array
│ │ │ │ -000e7240: 7769 6c6c 2062 6520 7365 7269 616c 697a will be serializ
│ │ │ │ -000e7250: 6564 2069 6e20 584d 4c20 6173 2061 2073 ed in XML as a s
│ │ │ │ -000e7260: 6571 7565 6e63 6520 6f66 2070 6169 7273 equence of pairs
│ │ │ │ -000e7270: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 : Deserial
│ │ │ │ -000e7860: 697a 6174 696f 6e20 6973 206c 6573 7320 ization is less
│ │ │ │ -000e7870: 6566 6669 6369 656e 7420 636f 6d70 6172 efficient compar
│ │ │ │ -000e7880: 6564 2074 6f20 6120 534f 4150 2d65 6e63 ed to a SOAP-enc
│ │ │ │ -000e7890: 6f64 6564 2061 7272 6179 2c20 6265 6361 oded array, beca
│ │ │ │ -000e78a0: 7573 6520 7468 6520 7369 7a65 206f 6620 use the size of
│ │ │ │ -000e78b0: 7468 6520 7365 7175 656e 6365 2069 7320 the sequence is
│ │ │ │ -000e78c0: 6e6f 7420 7061 7274 206f 6620 7468 6520 not part of the
│ │ │ │ -000e78d0: 534f 4150 2065 6e63 6f64 696e 672e 2042 SOAP encoding. B
│ │ │ │ -000e78e0: 7566 6665 7269 6e67 2069 7320 7573 6564 uffering is used
│ │ │ │ -000e78f0: 2062 7920 7468 6520 6465 7365 7269 616c by the deserial
│ │ │ │ -000e7900: 697a 6572 2074 6f20 636f 6c6c 6563 7420 izer to collect
│ │ │ │ -000e7910: 7468 6520 656c 656d 656e 7473 2069 6e20 the elements in
│ │ │ │ -000e7920: 6d65 6d6f 7279 2e20 5768 656e 2074 6865 memory. When the
│ │ │ │ -000e7930: 2065 6e64 206f 6620 7468 6520 6c69 7374 end of the list
│ │ │ │ -000e7940: 2069 7320 7265 6163 6865 642c 2074 6865 is reached, the
│ │ │ │ -000e7950: 2062 7566 6665 7265 6420 656c 656d 656e buffered elemen
│ │ │ │ -000e7960: 7473 2061 7265 2063 6f70 6965 6420 746f ts are copied to
│ │ │ │ -000e7970: 2061 206e 6577 6c79 2061 6c6c 6f63 6174 a newly allocat
│ │ │ │ -000e7980: 6564 206d 616e 6167 6564 2073 7061 6365 ed managed space
│ │ │ │ -000e7990: 206f 6e20 7468 6520 6865 6170 2066 6f72 on the heap for
│ │ │ │ -000e79a0: 2074 6865 2064 796e 616d 6963 2061 7272 the dynamic arr
│ │ │ │ -000e79b0: 6179 2e3c 2f70 3e0a 3c70 3e4d 756c 7469 ay. Multi
│ │ │ │ -000e79c0: 706c 6520 6172 7261 7973 2063 616e 2062 ple arrays can b
│ │ │ │ -000e79d0: 6520 7061 7274 206f 6620 6120 7374 7275 e part of a stru
│ │ │ │ -000e79e0: 6374 206f 7220 636c 6173 732e 2046 6f72 ct or class. For
│ │ │ │ -000e79f0: 2065 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 example: T
│ │ │ │ -000e7da0: 6865 2058 4d4c 2073 6572 6961 6c69 7a61 he XML serializa
│ │ │ │ -000e7db0: 7469 6f6e 206f 6620 616e 2065 7861 6d70 tion of an examp
│ │ │ │ -000e7dc0: 6c65 203c 636f 6465 3e6e 735f 5f43 6f6e le For C++,
│ │ │ │ -000e8360: 6120 6265 7474 6572 2061 6c74 6572 6e61 a better alterna
│ │ │ │ -000e8370: 7469 7665 2074 6f20 6172 7261 7973 2061 tive to arrays a
│ │ │ │ -000e8380: 7265 2063 6f6e 7461 696e 6572 732c 2077 re containers, w
│ │ │ │ -000e8390: 6869 6368 2061 7265 2064 6573 6372 6962 hich are describ
│ │ │ │ -000e83a0: 6564 206e 6578 742e 3c2f 703e 0a3c 703e ed next.
│ │ │ │ -000e83b0: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ -000e83d0: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ -000e83e0: 703e 0a3c 6833 3e3c 6120 636c 6173 733d p>. The STL cont
│ │ │ │ -000e8430: 6169 6e65 7273 203c 636f 6465 3e73 7464 ainers The use o
│ │ │ │ -000e8870: 6620 706f 696e 7465 7220 6d65 6d62 6572 f pointer member
│ │ │ │ -000e8880: 7320 7375 6368 2061 7320 666f 7220 3c63 s such as for You can also im
│ │ │ │ -000e8ef0: 706c 656d 656e 7420 796f 7572 206f 776e plement your own
│ │ │ │ -000e8f00: 2063 6f6e 7461 696e 6572 732e 2054 6865 containers. The
│ │ │ │ -000e8f10: 2063 6f6e 7461 696e 6572 7320 6d75 7374 containers must
│ │ │ │ -000e8f20: 2062 6520 636c 6173 7320 7465 6d70 6c61 be class templa
│ │ │ │ -000e8f30: 7465 7320 616e 6420 7368 6f75 6c64 2064 tes and should d
│ │ │ │ -000e8f40: 6566 696e 6520 6120 666f 7277 6172 6420 efine a forward
│ │ │ │ -000e8f50: 6974 6572 6174 6f72 2074 7970 652c 2061 iterator type, a
│ │ │ │ -000e8f60: 6e64 2070 726f 7669 6465 2074 6865 2066 nd provide the f
│ │ │ │ -000e8f70: 6f6c 6c6f 7769 6e67 206d 6574 686f 6473 ollowing methods
│ │ │ │ -000e8f80: 3a3c 2f70 3e0a 3c75 6c3e 0a3c 6c69 3e3c : Th
│ │ │ │ -000e9180: 6520 3c63 6f64 653e 6974 6572 6174 6f72 e Here
│ │ │ │ -000e9350: 2069 7320 696e 2065 7861 6d70 6c65 2063 is in example c
│ │ │ │ -000e9360: 6f6e 7461 696e 6572 2074 656d 706c 6174 ontainer templat
│ │ │ │ -000e9370: 6520 636c 6173 733a 3c2f 703e 0a3c 6469 e class: The
│ │ │ │ +000e6c20: 466f 7220 6578 616d 706c 652c 2077 6520 For example, we
│ │ │ │ +000e6c30: 6465 6669 6e65 2061 204d 6170 2073 7472 define a Map str
│ │ │ │ +000e6c40: 7563 7475 7265 2074 6861 7420 636f 6e74 ucture that cont
│ │ │ │ +000e6c50: 6169 6e73 2061 2073 6571 7565 6e63 6520 ains a sequence
│ │ │ │ +000e6c60: 6f66 206b 6579 2d76 616c 2070 6169 7273 of key-val pairs
│ │ │ │ +000e6c70: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 :
│ │ │ │ +000e6ef0: 5369 6e63 6520 322e 372e 3136 2069 7420 Since 2.7.16 it
│ │ │ │ +000e6f00: 6973 2061 6c73 6f20 706f 7373 6962 6c65 is also possible
│ │ │ │ +000e6f10: 2074 6f20 7573 6520 6120 273c 636f 6465 to use a ' The
│ │ │ │ +000e7220: 6172 7261 7920 7769 6c6c 2062 6520 7365 array will be se
│ │ │ │ +000e7230: 7269 616c 697a 6564 2069 6e20 584d 4c20 rialized in XML
│ │ │ │ +000e7240: 6173 2061 2073 6571 7565 6e63 6520 6f66 as a sequence of
│ │ │ │ +000e7250: 2070 6169 7273 3a3c 2f70 3e0a 3c64 6976 pairs: De
│ │ │ │ +000e7840: 7365 7269 616c 697a 6174 696f 6e20 6973 serialization is
│ │ │ │ +000e7850: 206c 6573 7320 6566 6669 6369 656e 7420 less efficient
│ │ │ │ +000e7860: 636f 6d70 6172 6564 2074 6f20 6120 534f compared to a SO
│ │ │ │ +000e7870: 4150 2d65 6e63 6f64 6564 2061 7272 6179 AP-encoded array
│ │ │ │ +000e7880: 2c20 6265 6361 7573 6520 7468 6520 7369 , because the si
│ │ │ │ +000e7890: 7a65 206f 6620 7468 6520 7365 7175 656e ze of the sequen
│ │ │ │ +000e78a0: 6365 2069 7320 6e6f 7420 7061 7274 206f ce is not part o
│ │ │ │ +000e78b0: 6620 7468 6520 534f 4150 2065 6e63 6f64 f the SOAP encod
│ │ │ │ +000e78c0: 696e 672e 2042 7566 6665 7269 6e67 2069 ing. Buffering i
│ │ │ │ +000e78d0: 7320 7573 6564 2062 7920 7468 6520 6465 s used by the de
│ │ │ │ +000e78e0: 7365 7269 616c 697a 6572 2074 6f20 636f serializer to co
│ │ │ │ +000e78f0: 6c6c 6563 7420 7468 6520 656c 656d 656e llect the elemen
│ │ │ │ +000e7900: 7473 2069 6e20 6d65 6d6f 7279 2e20 5768 ts in memory. Wh
│ │ │ │ +000e7910: 656e 2074 6865 2065 6e64 206f 6620 7468 en the end of th
│ │ │ │ +000e7920: 6520 6c69 7374 2069 7320 7265 6163 6865 e list is reache
│ │ │ │ +000e7930: 642c 2074 6865 2062 7566 6665 7265 6420 d, the buffered
│ │ │ │ +000e7940: 656c 656d 656e 7473 2061 7265 2063 6f70 elements are cop
│ │ │ │ +000e7950: 6965 6420 746f 2061 206e 6577 6c79 2061 ied to a newly a
│ │ │ │ +000e7960: 6c6c 6f63 6174 6564 206d 616e 6167 6564 llocated managed
│ │ │ │ +000e7970: 2073 7061 6365 206f 6e20 7468 6520 6865 space on the he
│ │ │ │ +000e7980: 6170 2066 6f72 2074 6865 2064 796e 616d ap for the dynam
│ │ │ │ +000e7990: 6963 2061 7272 6179 2e3c 2f70 3e0a 3c70 ic array. Multiple arrays
│ │ │ │ +000e79b0: 2063 616e 2062 6520 7061 7274 206f 6620 can be part of
│ │ │ │ +000e79c0: 6120 7374 7275 6374 206f 7220 636c 6173 a struct or clas
│ │ │ │ +000e79d0: 732e 2046 6f72 2065 7861 6d70 6c65 3a3c s. For example:<
│ │ │ │ +000e79e0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. For
│ │ │ │ +000e8340: 2043 2b2b 2c20 6120 6265 7474 6572 2061 C++, a better a
│ │ │ │ +000e8350: 6c74 6572 6e61 7469 7665 2074 6f20 6172 lternative to ar
│ │ │ │ +000e8360: 7261 7973 2061 7265 2063 6f6e 7461 696e rays are contain
│ │ │ │ +000e8370: 6572 732c 2077 6869 6368 2061 7265 2064 ers, which are d
│ │ │ │ +000e8380: 6573 6372 6962 6564 206e 6578 742e 3c2f escribed next.
│ │ │ │ +000e8390: 703e 0a3c 703e f09f 949d 203c 6120 6872 p>. The ST
│ │ │ │ +000e8410: 4c20 636f 6e74 6169 6e65 7273 203c 636f L containers In order
│ │ │ │ +000e84d0: 2074 6f20 7573 6520 636f 6e74 6169 6e65 to use containe
│ │ │ │ +000e84e0: 7273 2069 6e20 616e 2069 6e74 6572 6661 rs in an interfa
│ │ │ │ +000e84f0: 6365 2068 6561 6465 7220 6669 6c65 2066 ce header file f
│ │ │ │ +000e8500: 6f72 2073 6f61 7063 7070 322c 2069 6d70 or soapcpp2, imp
│ │ │ │ +000e8510: 6f72 7420 3c65 6d3e 3c63 6f64 653e 7374 ort The
│ │ │ │ +000e8850: 2075 7365 206f 6620 706f 696e 7465 7220 use of pointer
│ │ │ │ +000e8860: 6d65 6d62 6572 7320 7375 6368 2061 7320 members such as
│ │ │ │ +000e8870: 666f 7220 3c63 6f64 653e 6e61 6d65 3c2f for You can a
│ │ │ │ +000e8ed0: 6c73 6f20 696d 706c 656d 656e 7420 796f lso implement yo
│ │ │ │ +000e8ee0: 7572 206f 776e 2063 6f6e 7461 696e 6572 ur own container
│ │ │ │ +000e8ef0: 732e 2054 6865 2063 6f6e 7461 696e 6572 s. The container
│ │ │ │ +000e8f00: 7320 6d75 7374 2062 6520 636c 6173 7320 s must be class
│ │ │ │ +000e8f10: 7465 6d70 6c61 7465 7320 616e 6420 7368 templates and sh
│ │ │ │ +000e8f20: 6f75 6c64 2064 6566 696e 6520 6120 666f ould define a fo
│ │ │ │ +000e8f30: 7277 6172 6420 6974 6572 6174 6f72 2074 rward iterator t
│ │ │ │ +000e8f40: 7970 652c 2061 6e64 2070 726f 7669 6465 ype, and provide
│ │ │ │ +000e8f50: 2074 6865 2066 6f6c 6c6f 7769 6e67 206d the following m
│ │ │ │ +000e8f60: 6574 686f 6473 3a3c 2f70 3e0a 3c75 6c3e ethods: The To en
│ │ │ │ -000eaa80: 6162 6c65 2074 6865 2063 6f6e 7461 696e able the contain
│ │ │ │ -000eaa90: 6572 2c20 7765 2061 6464 2074 6865 2066 er, we add the f
│ │ │ │ -000eaaa0: 6f6c 6c6f 7769 6e67 2074 776f 206c 696e ollowing two lin
│ │ │ │ -000eaab0: 6573 2074 6f20 7468 6520 696e 7465 7266 es to the interf
│ │ │ │ -000eaac0: 6163 6520 6865 6164 6572 2066 696c 6520 ace header file
│ │ │ │ -000eaad0: 666f 7220 736f 6170 6370 7032 3a3c 2f70 for soapcpp2: The
│ │ │ │ -000eac10: 2063 6f6e 7461 696e 6572 2063 6c61 7373 container class
│ │ │ │ -000eac20: 2069 7473 656c 6620 7368 6f75 6c64 206e itself should n
│ │ │ │ -000eac30: 6f74 2062 6520 6465 6669 6e65 6420 696e ot be defined in
│ │ │ │ -000eac40: 2074 6865 2069 6e74 6572 6661 6365 2068 the interface h
│ │ │ │ -000eac50: 6561 6465 7220 6669 6c65 2c20 6f6e 6c79 eader file, only
│ │ │ │ -000eac60: 2074 6865 2074 656d 706c 6174 6520 6465 the template de
│ │ │ │ -000eac70: 636c 6172 6174 696f 6e20 7375 6666 6963 claration suffic
│ │ │ │ -000eac80: 6573 2066 6f72 2073 6f61 7063 7070 3220 es for soapcpp2
│ │ │ │ -000eac90: 746f 2067 656e 6572 6174 6520 7365 7269 to generate seri
│ │ │ │ -000eaca0: 616c 697a 6572 732e 2052 6563 616c 6c20 alizers. Recall
│ │ │ │ -000eacb0: 7468 6174 2074 6865 203c 636f 6465 3e23 that the ..
│ │ │ │ -000ead90: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ -000eada0: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ -000eadb0: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents
│ │ │ │ -000eae20: 506f 6c79 6d6f 7270 6869 6320 6172 7261 Polymorphic arra
│ │ │ │ -000eae30: 7973 2c20 7468 6174 2069 732c 2061 7272 ys, that is, arr
│ │ │ │ -000eae40: 6179 7320 6f66 2076 616c 7565 7320 6f66 ays of values of
│ │ │ │ -000eae50: 2061 6e79 2074 7970 652c 2063 616e 2062 any type, can b
│ │ │ │ -000eae60: 6520 7365 7269 616c 697a 6564 2069 6e20 e serialized in
│ │ │ │ -000eae70: 584d 4c20 7768 656e 2064 6563 6c61 7265 XML when declare
│ │ │ │ -000eae80: 6420 6173 2061 6e20 6172 7261 7920 6f66 d as an array of
│ │ │ │ -000eae90: 2070 6f69 6e74 6572 7320 746f 2061 2062 pointers to a b
│ │ │ │ -000eaea0: 6173 6520 636c 6173 732e 2046 6f72 2065 ase class. For e
│ │ │ │ -000eaeb0: 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 6976 xample: The pointe
│ │ │ │ -000eb3f0: 7273 2069 6e20 7468 6520 6172 7261 7920 rs in the array
│ │ │ │ -000eb400: 6361 6e20 706f 696e 7420 746f 2074 6865 can point to the
│ │ │ │ -000eb410: 203c 636f 6465 3e6e 735f 5f4f 626a 6563 Since we cannot
│ │ │ │ -000eb640: 2075 7365 2064 796e 616d 6963 2062 696e use dynamic bin
│ │ │ │ -000eb650: 6469 6e67 2074 6f20 7375 7070 6f72 7420 ding to support
│ │ │ │ -000eb660: 706f 6c79 6d6f 7270 6869 736d 2069 6e20 polymorphism in
│ │ │ │ -000eb670: 432c 2061 6e6f 7468 6572 206d 6563 6861 C, another mecha
│ │ │ │ -000eb680: 6e69 736d 2077 6520 6361 6e20 7573 6520 nism we can use
│ │ │ │ -000eb690: 6973 2076 6f69 6420 706f 696e 7465 7273 is void pointers
│ │ │ │ -000eb6a0: 202e 2048 6572 6520 6973 2061 6e20 6578 . Here is an ex
│ │ │ │ -000eb6b0: 616d 706c 6520 6f66 2061 2070 6f6c 796d ample of a polym
│ │ │ │ -000eb6c0: 6f72 7068 6963 2053 4f41 502d 656e 636f orphic SOAP-enco
│ │ │ │ -000eb6d0: 6465 6420 6172 7261 7920 3c63 6f64 653e ded array To enable the c
│ │ │ │ +000eaa70: 6f6e 7461 696e 6572 2c20 7765 2061 6464 ontainer, we add
│ │ │ │ +000eaa80: 2074 6865 2066 6f6c 6c6f 7769 6e67 2074 the following t
│ │ │ │ +000eaa90: 776f 206c 696e 6573 2074 6f20 7468 6520 wo lines to the
│ │ │ │ +000eaaa0: 696e 7465 7266 6163 6520 6865 6164 6572 interface header
│ │ │ │ +000eaab0: 2066 696c 6520 666f 7220 736f 6170 6370 file for soapcp
│ │ │ │ +000eaac0: 7032 3a3c 2f70 3e0a 3c64 6976 2063 6c61 p2: The container
│ │ │ │ +000eac00: 2063 6c61 7373 2069 7473 656c 6620 7368 class itself sh
│ │ │ │ +000eac10: 6f75 6c64 206e 6f74 2062 6520 6465 6669 ould not be defi
│ │ │ │ +000eac20: 6e65 6420 696e 2074 6865 2069 6e74 6572 ned in the inter
│ │ │ │ +000eac30: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ +000eac40: 2c20 6f6e 6c79 2074 6865 2074 656d 706c , only the templ
│ │ │ │ +000eac50: 6174 6520 6465 636c 6172 6174 696f 6e20 ate declaration
│ │ │ │ +000eac60: 7375 6666 6963 6573 2066 6f72 2073 6f61 suffices for soa
│ │ │ │ +000eac70: 7063 7070 3220 746f 2067 656e 6572 6174 pcpp2 to generat
│ │ │ │ +000eac80: 6520 7365 7269 616c 697a 6572 732e 2052 e serializers. R
│ │ │ │ +000eac90: 6563 616c 6c20 7468 6174 2074 6865 203c ecall that the <
│ │ │ │ +000eaca0: 636f 6465 3e23 696e 636c 7564 653c 2f63 code>#include directives
│ │ │ │ +000eacc0: 6172 6520 6e6f 7420 6578 6563 7574 6564 are not executed
│ │ │ │ +000eacd0: 2062 7920 736f 6170 6370 7032 2062 7574 by soapcpp2 but
│ │ │ │ +000eace0: 2073 696d 706c 7920 7061 7373 6564 206f simply passed o
│ │ │ │ +000eacf0: 6e20 746f 2074 6865 2067 656e 6572 6174 n to the generat
│ │ │ │ +000ead00: 6564 2073 6f75 7263 6520 636f 6465 2e20 ed source code.
│ │ │ │ +000ead10: 5468 6973 2069 6e63 6c75 6465 2073 7065 This include spe
│ │ │ │ +000ead20: 6369 6669 6573 2069 6e20 7468 6520 6765 cifies in the ge
│ │ │ │ +000ead30: 6e65 7261 7465 6420 736f 7572 6365 2063 nerated source c
│ │ │ │ +000ead40: 6f64 6520 7768 6572 6520 7468 6520 636f ode where the co
│ │ │ │ +000ead50: 6e74 6169 6e65 7220 6973 2061 6374 7561 ntainer is actua
│ │ │ │ +000ead60: 6c6c 7920 6465 6669 6e65 642e 3c2f 703e lly defined. Polymorphi
│ │ │ │ +000eae10: 6320 6172 7261 7973 2c20 7468 6174 2069 c arrays, that i
│ │ │ │ +000eae20: 732c 2061 7272 6179 7320 6f66 2076 616c s, arrays of val
│ │ │ │ +000eae30: 7565 7320 6f66 2061 6e79 2074 7970 652c ues of any type,
│ │ │ │ +000eae40: 2063 616e 2062 6520 7365 7269 616c 697a can be serializ
│ │ │ │ +000eae50: 6564 2069 6e20 584d 4c20 7768 656e 2064 ed in XML when d
│ │ │ │ +000eae60: 6563 6c61 7265 6420 6173 2061 6e20 6172 eclared as an ar
│ │ │ │ +000eae70: 7261 7920 6f66 2070 6f69 6e74 6572 7320 ray of pointers
│ │ │ │ +000eae80: 746f 2061 2062 6173 6520 636c 6173 732e to a base class.
│ │ │ │ +000eae90: 2046 6f72 2065 7861 6d70 6c65 3a3c 2f70 For example: The
│ │ │ │ +000eb3d0: 706f 696e 7465 7273 2069 6e20 7468 6520 pointers in the
│ │ │ │ +000eb3e0: 6172 7261 7920 6361 6e20 706f 696e 7420 array can point
│ │ │ │ +000eb3f0: 746f 2074 6865 203c 636f 6465 3e6e 735f to the Since we
│ │ │ │ +000eb620: 6361 6e6e 6f74 2075 7365 2064 796e 616d cannot use dynam
│ │ │ │ +000eb630: 6963 2062 696e 6469 6e67 2074 6f20 7375 ic binding to su
│ │ │ │ +000eb640: 7070 6f72 7420 706f 6c79 6d6f 7270 6869 pport polymorphi
│ │ │ │ +000eb650: 736d 2069 6e20 432c 2061 6e6f 7468 6572 sm in C, another
│ │ │ │ +000eb660: 206d 6563 6861 6e69 736d 2077 6520 6361 mechanism we ca
│ │ │ │ +000eb670: 6e20 7573 6520 6973 2076 6f69 6420 706f n use is void po
│ │ │ │ +000eb680: 696e 7465 7273 202e 2048 6572 6520 6973 inters . Here is
│ │ │ │ +000eb690: 2061 6e20 6578 616d 706c 6520 6f66 2061 an example of a
│ │ │ │ +000eb6a0: 2070 6f6c 796d 6f72 7068 6963 2053 4f41 polymorphic SOA
│ │ │ │ +000eb6b0: 502d 656e 636f 6465 6420 6172 7261 7920 P-encoded array
│ │ │ │ +000eb6c0: 3c63 6f64 653e 4172 7261 794f 664f 626a This ex
│ │ │ │ -000ebc40: 616d 706c 6520 7573 6573 2061 6e20 2269 ample uses an "i
│ │ │ │ -000ebc50: 6e76 6973 6962 6c65 2220 7479 7065 203c nvisible" type <
│ │ │ │ -000ebc60: 636f 6465 3e5f 5f77 7261 7070 6572 3c2f code>__wrapper
│ │ │ │ -000ebc70: 636f 6465 3e20 616e 6420 6d65 6d62 6572 code> and member
│ │ │ │ -000ebc80: 203c 636f 6465 3e5f 5f61 7272 6179 3c2f .
│ │ │ │ -000ebdf0: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ -000ebe00: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ -000ebe10: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents The defa
│ │ │ │ -000ebe90: 756c 7420 584d 4c20 656c 656d 656e 7420 ult XML element
│ │ │ │ -000ebea0: 7461 6720 6e61 6d65 2066 6f72 2061 7272 tag name for arr
│ │ │ │ -000ebeb0: 6179 2065 6c65 6d65 6e74 7320 6973 203c ay elements is <
│ │ │ │ -000ebec0: 656d 3e3c 636f 6465 3e69 7465 6d3c 2f63 em> T
│ │ │ │ +000ebc20: 6869 7320 6578 616d 706c 6520 7573 6573 his example uses
│ │ │ │ +000ebc30: 2061 6e20 2269 6e76 6973 6962 6c65 2220 an "invisible"
│ │ │ │ +000ebc40: 7479 7065 203c 636f 6465 3e5f 5f77 7261 type Th
│ │ │ │ +000ebe70: 6520 6465 6661 756c 7420 584d 4c20 656c e default XML el
│ │ │ │ +000ebe80: 656d 656e 7420 7461 6720 6e61 6d65 2066 ement tag name f
│ │ │ │ +000ebe90: 6f72 2061 7272 6179 2065 6c65 6d65 6e74 or array element
│ │ │ │ +000ebea0: 7320 6973 203c 656d 3e3c 636f 6465 3e69 s is Consid
│ │ │ │ +000ec020: 6572 2066 6f72 2065 7861 6d70 6c65 3a3c er for example:<
│ │ │ │ +000ec030: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. The arra
│ │ │ │ -000ec1a0: 7920 6973 2073 6572 6961 6c69 7a65 6420 y is serialized
│ │ │ │ -000ec1b0: 6173 3a3c 2f70 3e0a 3c64 6976 2063 6c61 as: SOAP 1
│ │ │ │ -000ec450: 2e31 2f31 2e32 2064 6f65 7320 6e6f 7420 .1/1.2 does not
│ │ │ │ -000ec460: 6d61 6e64 6174 6520 6120 7370 6563 6966 mandate a specif
│ │ │ │ -000ec470: 6963 2074 6167 206e 616d 6520 666f 7220 ic tag name for
│ │ │ │ -000ec480: 534f 4150 2d65 6e63 6f64 6564 2061 7272 SOAP-encoded arr
│ │ │ │ -000ec490: 6179 2065 6c65 6d65 6e74 7320 616e 6420 ay elements and
│ │ │ │ -000ec4a0: 7468 6520 736f 6170 6370 7032 2d67 656e the soapcpp2-gen
│ │ │ │ -000ec4b0: 6572 6174 6564 2073 6572 6961 6c69 7a65 erated serialize
│ │ │ │ -000ec4c0: 7273 2077 696c 6c20 6967 6e6f 7265 2074 rs will ignore t
│ │ │ │ -000ec4d0: 6865 206e 616d 6520 7573 6564 2074 6f20 he name used to
│ │ │ │ -000ec4e0: 6974 656d 697a 6520 534f 4150 2d65 6e63 itemize SOAP-enc
│ │ │ │ -000ec4f0: 6f64 6564 2061 7272 6179 2076 616c 7565 oded array value
│ │ │ │ -000ec500: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ -000ec510: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -000ec520: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -000ec530: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents The
│ │ │ │ -000ec590: 203c 656d 3e3c 636f 6465 3e62 6173 6536 Th
│ │ │ │ +000ec180: 6520 6172 7261 7920 6973 2073 6572 6961 e array is seria
│ │ │ │ +000ec190: 6c69 7a65 6420 6173 3a3c 2f70 3e0a 3c64 lized as:
│ │ │ │ +000ec430: 534f 4150 2031 2e31 2f31 2e32 2064 6f65 SOAP 1.1/1.2 doe
│ │ │ │ +000ec440: 7320 6e6f 7420 6d61 6e64 6174 6520 6120 s not mandate a
│ │ │ │ +000ec450: 7370 6563 6966 6963 2074 6167 206e 616d specific tag nam
│ │ │ │ +000ec460: 6520 666f 7220 534f 4150 2d65 6e63 6f64 e for SOAP-encod
│ │ │ │ +000ec470: 6564 2061 7272 6179 2065 6c65 6d65 6e74 ed array element
│ │ │ │ +000ec480: 7320 616e 6420 7468 6520 736f 6170 6370 s and the soapcp
│ │ │ │ +000ec490: 7032 2d67 656e 6572 6174 6564 2073 6572 p2-generated ser
│ │ │ │ +000ec4a0: 6961 6c69 7a65 7273 2077 696c 6c20 6967 ializers will ig
│ │ │ │ +000ec4b0: 6e6f 7265 2074 6865 206e 616d 6520 7573 nore the name us
│ │ │ │ +000ec4c0: 6564 2074 6f20 6974 656d 697a 6520 534f ed to itemize SO
│ │ │ │ +000ec4d0: 4150 2d65 6e63 6f64 6564 2061 7272 6179 AP-encoded array
│ │ │ │ +000ec4e0: 2076 616c 7565 732e 3c2f 703e 0a3c 703e values.
│ │ │ │ +000ec4f0: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +000ec510: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +000ec520: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>. The The a
│ │ │ │ +000ec8a0: 6476 616e 7461 6765 206f 6620 7468 6973 dvantage of this
│ │ │ │ +000ec8b0: 2073 7472 7563 7420 6f72 2063 6c61 7373 struct or class
│ │ │ │ +000ec8c0: 2069 7320 7468 6520 6162 696c 6974 7920 is the ability
│ │ │ │ +000ec8d0: 746f 2073 6572 6961 6c69 7a65 7220 7261 to serializer ra
│ │ │ │ +000ec8e0: 7720 6269 6e61 7279 2064 6174 6120 6672 w binary data fr
│ │ │ │ +000ec8f0: 6f6d 206d 656d 6f72 792c 2073 696e 6365 om memory, since
│ │ │ │ +000ec900: 2074 6865 2073 6f61 7063 7070 322d 6765 the soapcpp2-ge
│ │ │ │ +000ec910: 6e65 7261 7465 6420 7365 7269 616c 697a nerated serializ
│ │ │ │ +000ec920: 6572 2063 6f6e 7665 7274 7320 7468 6520 er converts the
│ │ │ │ +000ec930: 6269 6e61 7279 2064 6174 6120 746f 2f66 binary data to/f
│ │ │ │ +000ec940: 726f 6d20 6261 7365 3634 2069 6e20 584d rom base64 in XM
│ │ │ │ +000ec950: 4c2e 3c2f 703e 0a3c 703e 546f 2069 6e74 L. To int
│ │ │ │ +000ec960: 726f 6475 6365 2061 206e 6577 2058 4d4c roduce a new XML
│ │ │ │ +000ec970: 2073 6368 656d 6120 7479 7065 2064 6572 schema type der
│ │ │ │ +000ec980: 6976 6564 2066 726f 6d20 3c65 6d3e 3c63 ived from .... Back to tabl
│ │ │ │ -000ece00: 6520 6f66 2063 6f6e 7465 6e74 733c 2f61 e of contents
│ │ │ │ -000ece60: 5468 6520 3c65 6d3e 3c63 6f64 653e 6261 The The
│ │ │ │ -000ed180: 6164 7661 6e74 6167 6520 6f66 2074 6869 advantage of thi
│ │ │ │ -000ed190: 7320 7374 7275 6374 206f 7220 636c 6173 s struct or clas
│ │ │ │ -000ed1a0: 7320 6973 2074 6865 2061 6269 6c69 7479 s is the ability
│ │ │ │ -000ed1b0: 2074 6f20 7365 7269 616c 697a 6572 2072 to serializer r
│ │ │ │ -000ed1c0: 6177 2062 696e 6172 7920 6461 7461 2066 aw binary data f
│ │ │ │ -000ed1d0: 726f 6d20 6d65 6d6f 7279 2c20 7369 6e63 rom memory, sinc
│ │ │ │ -000ed1e0: 6520 7468 6520 736f 6170 6370 7032 2d67 e the soapcpp2-g
│ │ │ │ -000ed1f0: 656e 6572 6174 6564 2073 6572 6961 6c69 enerated seriali
│ │ │ │ -000ed200: 7a65 7220 636f 6e76 6572 7473 2074 6865 zer converts the
│ │ │ │ -000ed210: 2062 696e 6172 7920 6461 7461 2074 6f2f binary data to/
│ │ │ │ -000ed220: 6672 6f6d 2068 6578 6164 6563 696d 616c from hexadecimal
│ │ │ │ -000ed230: 2069 6e20 584d 4c2e 3c2f 703e 0a3c 703e in XML.
│ │ │ │ -000ed240: 4966 2061 2062 696e 6172 7920 7479 7065 If a binary type
│ │ │ │ -000ed250: 2073 7563 6820 6173 203c 636f 6465 3e3c such as This le
│ │ │ │ -000ed6f0: 7473 2073 6f61 7063 7070 3220 6765 6e65 ts soapcpp2 gene
│ │ │ │ -000ed700: 7261 7465 203c 656d 3e3c 636f 6465 3e78 rate SOAP h
│ │ │ │ -000ed800: 6173 2073 6576 6572 616c 2073 7479 6c65 as several style
│ │ │ │ -000ed810: 733a 3c2f 703e 0a3c 756c 3e0a 3c6c 693e s: Bes
│ │ │ │ -000ee3b0: 6964 6573 203c 636f 6465 3e2f 2f67 736f ides
│ │ │ │ -000ee5a0: 546f 2065 6e61 626c 6520 534f 4150 2052 To enable SOAP R
│ │ │ │ -000ee5b0: 5043 2065 6e63 6f64 696e 6720 666f 7220 PC encoding for
│ │ │ │ -000ee5c0: 6120 7061 7274 6963 756c 6172 2073 6572 a particular ser
│ │ │ │ -000ee5d0: 7669 6365 206f 7065 7261 7469 6f6e 2c20 vice operation,
│ │ │ │ -000ee5e0: 7573 653a 3c2f 703e 0a3c 6469 7620 636c use: To
│ │ │ │ -000ee740: 656e 6162 6c65 2053 4f41 5020 5250 4320 enable SOAP RPC
│ │ │ │ -000ee750: 656e 636f 6469 6e67 2066 6f72 2061 2070 encoding for a p
│ │ │ │ -000ee760: 6172 7469 6375 6c61 7220 7365 7276 6963 articular servic
│ │ │ │ -000ee770: 6520 6f70 6572 6174 696f 6e20 7265 7370 e operation resp
│ │ │ │ -000ee780: 6f6e 7365 2c20 7573 653a 3c2f 703e 0a3c onse, use: The differ
│ │ │ │ -000ef100: 656e 6365 7320 6265 7477 6565 6e20 7468 ences between th
│ │ │ │ -000ef110: 6520 7573 6520 6f66 2072 6567 756c 6172 e use of regular
│ │ │ │ -000ef120: 2038 2d62 6974 2073 7472 696e 6773 2076 8-bit strings v
│ │ │ │ -000ef130: 6572 7375 7320 7769 6465 2063 6861 7261 ersus wide chara
│ │ │ │ -000ef140: 6374 6572 2073 7472 696e 6773 2066 6f72 cter strings for
│ │ │ │ -000ef150: 2058 4d4c 2064 6f63 756d 656e 7473 2061 XML documents a
│ │ │ │ -000ef160: 7265 3a3c 2f70 3e0a 3c75 6c3e 0a3c 6c69 re: ...
│ │ │ │ -000ef200: 9d20 3c61 2068 7265 663d 2223 223e 4261 . Ba
│ │ │ │ -000ef210: 636b 2074 6f20 7461 626c 6520 6f66 2063 ck to table of c
│ │ │ │ -000ef220: 6f6e 7465 6e74 733c 2f61 3e3c 2f70 3e0a ontents Strict va
│ │ │ │ -000ef450: 6c69 6461 7469 6f6e 2063 6f6e 7374 7261 lidation constra
│ │ │ │ -000ef460: 696e 7473 2061 7265 2065 6e61 626c 6564 ints are enabled
│ │ │ │ -000ef470: 2077 6974 6820 7468 6520 3c63 6f64 653e with the The n
│ │ │ │ -000ef580: 6578 7420 7365 6374 696f 6e73 2064 6573 ext sections des
│ │ │ │ -000ef590: 6372 6962 6520 7468 6520 7479 7065 206f cribe the type o
│ │ │ │ -000ef5a0: 6620 636f 6e73 7472 6169 6e74 7320 7661 f constraints va
│ │ │ │ -000ef5b0: 6c69 6461 7465 6420 7768 656e 203c 636f lidated when Use compiler
│ │ │ │ -000ef640: 2066 6c61 6720 3c63 6f64 653e 2357 4954 flag See also
│ │ │ │ -000ef6d0: 3c61 2068 7265 663d 222e 2e2f 2e2e 2f64 C an
│ │ │ │ -000ef700: 6420 432b 2b20 584d 4c20 6461 7461 2062 d C++ XML data b
│ │ │ │ -000ef710: 696e 6469 6e67 733c 2f61 3e20 646f 6375 indings docu
│ │ │ │ -000ef720: 6d65 6e74 6174 696f 6e20 666f 7220 6d6f mentation for mo
│ │ │ │ -000ef730: 7265 2064 6574 6169 6c73 2e3c 2f70 3e0a re details. .... Back to tabl
│ │ │ │ -000ef760: 6520 6f66 2063 6f6e 7465 6e74 733c 2f61 e of contents Defau
│ │ │ │ -000ef7c0: 6c74 2076 616c 7565 7320 6361 6e20 6265 lt values can be
│ │ │ │ -000ef7d0: 2064 6566 696e 6564 2066 6f72 206f 7074 defined for opt
│ │ │ │ -000ef7e0: 696f 6e61 6c20 656c 656d 656e 7473 2061 ional elements a
│ │ │ │ -000ef7f0: 6e64 2061 7474 7269 6275 7465 732c 2077 nd attributes, w
│ │ │ │ -000ef800: 6869 6368 206d 6561 6e73 2074 6861 7420 hich means that
│ │ │ │ -000ef810: 7468 6520 6465 6661 756c 7420 7661 6c75 the default valu
│ │ │ │ -000ef820: 6520 7769 6c6c 2062 6520 7573 6564 2077 e will be used w
│ │ │ │ -000ef830: 6865 6e20 7468 6520 656c 656d 656e 7420 hen the element
│ │ │ │ -000ef840: 6f72 2061 7474 7269 6275 7465 2076 616c or attribute val
│ │ │ │ -000ef850: 7565 2069 7320 6e6f 7420 7072 6573 656e ue is not presen
│ │ │ │ -000ef860: 7420 696e 2074 6865 2070 6172 7365 6420 t in the parsed
│ │ │ │ -000ef870: 584d 4c2e 2053 6565 2061 6c73 6f20 5365 XML. See also Se
│ │ │ │ -000ef880: 6374 696f 6e20 3c61 2063 6c61 7373 3d22 ction De
│ │ │ │ -000ef8b0: 6661 756c 7420 7661 6c75 6573 2066 6f72 fault values for
│ │ │ │ -000ef8c0: 206f 6d69 7474 6564 2058 4d4c 2065 6c65 omitted XML ele
│ │ │ │ -000ef8d0: 6d65 6e74 7320 616e 6420 6174 7472 6962 ments and attrib
│ │ │ │ -000ef8e0: 7574 6573 3c2f 613e 2061 6e64 2065 7861 utes and exa
│ │ │ │ -000ef8f0: 6d70 6c65 7320 696e 2073 7562 7365 7175 mples in subsequ
│ │ │ │ -000ef900: 656e 7420 7375 6273 6563 7469 6f6e 7320 ent subsections
│ │ │ │ -000ef910: 6265 6c6f 772e 3c2f 703e 0a3c 703e 4465 below. De
│ │ │ │ -000ef920: 6661 756c 7420 7661 6c75 6573 206d 7573 fault values mus
│ │ │ │ -000ef930: 7420 6265 2070 7269 6d69 7469 7665 2074 t be primitive t
│ │ │ │ -000ef940: 7970 6573 2c20 696e 7465 6765 722c 2066 ypes, integer, f
│ │ │ │ -000ef950: 6c6f 6174 2c20 7374 7269 6e67 2c20 6574 loat, string, et
│ │ │ │ -000ef960: 632e 206f 7220 706f 696e 7465 7273 2074 c. or pointers t
│ │ │ │ -000ef970: 6f20 7072 696d 6974 6976 6520 7479 7065 o primitive type
│ │ │ │ -000ef980: 732e 2044 6566 6175 6c74 2076 616c 7565 s. Default value
│ │ │ │ -000ef990: 7320 6361 6e20 6265 2073 7065 6369 6669 s can be specifi
│ │ │ │ -000ef9a0: 6564 2066 6f72 2073 7472 7563 7420 616e ed for struct an
│ │ │ │ -000ef9b0: 6420 636c 6173 7320 6d65 6d62 6572 732c d class members,
│ │ │ │ -000ef9c0: 2061 7320 7368 6f77 6e20 696e 2074 6865 as shown in the
│ │ │ │ -000ef9d0: 2065 7861 6d70 6c65 2062 656c 6f77 3a3c example below:<
│ │ │ │ -000ef9e0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. The resu
│ │ │ │ +000ecb70: 6c74 696e 6720 584d 4c20 7363 6865 6d61 lting XML schema
│ │ │ │ +000ecb80: 2074 7970 6520 6973 3a3c 2f70 3e0a 3c64 type is: The If a binar
│ │ │ │ +000ed230: 7920 7479 7065 2073 7563 6820 6173 203c y type such as <
│ │ │ │ +000ed240: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>xsd__base64Bi
│ │ │ │ +000ed2c0: 6e61 7279 3c2f 613e 3c2f 636f 6465 3e20 nary
│ │ │ │ +000ed2d0: 6973 2061 6c72 6561 6479 2064 6566 696e is already defin
│ │ │ │ +000ed2e0: 6564 2c20 7468 656e 2077 6520 6361 6e20 ed, then we can
│ │ │ │ +000ed2f0: 7369 6d70 6c79 2075 7365 2061 203c 636f simply use a T
│ │ │ │ +000ed6d0: 6869 7320 6c65 7473 2073 6f61 7063 7070 his lets soapcpp
│ │ │ │ +000ed6e0: 3220 6765 6e65 7261 7465 203c 656d 3e3c 2 generate <
│ │ │ │ +000ed6f0: 636f 6465 3e78 7364 3a62 6173 6536 3442 code>xsd:base64B
│ │ │ │ +000ed700: 696e 6172 793c 2f63 6f64 653e 3c2f 656d inary and ..
│ │ │ │ +000ed750: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ +000ed760: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ +000ed770: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents
│ │ │ │ +000ed7e0: 534f 4150 2068 6173 2073 6576 6572 616c SOAP has several
│ │ │ │ +000ed7f0: 2073 7479 6c65 733a 3c2f 703e 0a3c 756c styles: Besides To enable
│ │ │ │ +000ee590: 534f 4150 2052 5043 2065 6e63 6f64 696e SOAP RPC encodin
│ │ │ │ +000ee5a0: 6720 666f 7220 6120 7061 7274 6963 756c g for a particul
│ │ │ │ +000ee5b0: 6172 2073 6572 7669 6365 206f 7065 7261 ar service opera
│ │ │ │ +000ee5c0: 7469 6f6e 2c20 7573 653a 3c2f 703e 0a3c tion, use: To enable SOA
│ │ │ │ +000ee730: 5020 5250 4320 656e 636f 6469 6e67 2066 P RPC encoding f
│ │ │ │ +000ee740: 6f72 2061 2070 6172 7469 6375 6c61 7220 or a particular
│ │ │ │ +000ee750: 7365 7276 6963 6520 6f70 6572 6174 696f service operatio
│ │ │ │ +000ee760: 6e20 7265 7370 6f6e 7365 2c20 7573 653a n response, use:
│ │ │ │ +000ee770: 3c2f 703e 0a3c 6469 7620 636c 6173 733d Likew
│ │ │ │ +000ee8e0: 6973 652c 2079 6f75 2063 616e 2073 7065 ise, you can spe
│ │ │ │ +000ee8f0: 6369 6679 2064 6f63 756d 656e 742f 6c69 cify document/li
│ │ │ │ +000ee900: 7465 7261 6c20 616e 6420 5250 4320 6c69 teral and RPC li
│ │ │ │ +000ee910: 7465 7261 6c20 6d65 7373 6167 6573 2e20 teral messages.
│ │ │ │ +000ee920: 5468 6520 6465 6661 756c 7420 7374 796c The default styl
│ │ │ │ +000ee930: 6520 6973 2064 6f63 756d 656e 742f 6c69 e is document/li
│ │ │ │ +000ee940: 7465 7261 6c2c 2075 6e6c 6573 7320 3c62 teral, unless
│ │ │ │ +000ee9c0: 466f 7220 7468 6520 3c63 6f64 653e 7374 For the See
│ │ │ │ +000eeba0: 616c 736f 203c 6120 6872 6566 3d22 2e2e also C and C++ XML d
│ │ │ │ +000eebe0: 6174 6120 6269 6e64 696e 6773 3c2f 613e ata bindings
│ │ │ │ +000eebf0: 2064 6f63 756d 656e 7461 7469 6f6e 2066 documentation f
│ │ │ │ +000eec00: 6f72 2064 6966 6665 7265 6e63 6573 2069 or differences i
│ │ │ │ +000eec10: 6e20 584d 4c20 7365 7269 616c 697a 6174 n XML serializat
│ │ │ │ +000eec20: 696f 6e20 7768 656e 2075 7369 6e67 2074 ion when using t
│ │ │ │ +000eec30: 6865 2053 4f41 5020 5250 4320 656e 636f he SOAP RPC enco
│ │ │ │ +000eec40: 6465 6420 616e 6420 646f 6375 6d65 6e74 ded and document
│ │ │ │ +000eec50: 2f6c 6974 6572 616c 206d 6573 7361 6769 /literal messagi
│ │ │ │ +000eec60: 6e67 2073 7479 6c65 732e 3c2f 703e 0a3c ng styles. XML is
│ │ │ │ +000eed10: 7374 6f72 6564 2069 6e20 226c 6974 6572 stored in "liter
│ │ │ │ +000eed20: 616c 2220 584d 4c20 7374 7269 6e67 7320 al" XML strings
│ │ │ │ +000eed30: 7768 6963 6820 6172 6520 7468 6520 6275 which are the bu
│ │ │ │ +000eed40: 696c 742d 696e 203c 636f 6465 3e5f 584d ilt-in To dec
│ │ │ │ +000eee90: 6c61 7265 2061 2043 2b2b 203c 636f 6465 lare a C++ Or use a
│ │ │ │ +000eef50: 2077 6964 6520 6368 6172 6163 7465 7220 wide character
│ │ │ │ +000eef60: 7374 7269 6e67 3a3c 2f70 3e0a 3c64 6976 string: To us
│ │ │ │ +000eeff0: 6520 626f 7468 2061 7420 7468 6520 7361 e both at the sa
│ │ │ │ +000ef000: 6d65 2074 696d 653a 3c2f 703e 0a3c 6469 me time: The
│ │ │ │ +000ef0e0: 6469 6666 6572 656e 6365 7320 6265 7477 differences betw
│ │ │ │ +000ef0f0: 6565 6e20 7468 6520 7573 6520 6f66 2072 een the use of r
│ │ │ │ +000ef100: 6567 756c 6172 2038 2d62 6974 2073 7472 egular 8-bit str
│ │ │ │ +000ef110: 696e 6773 2076 6572 7375 7320 7769 6465 ings versus wide
│ │ │ │ +000ef120: 2063 6861 7261 6374 6572 2073 7472 696e character strin
│ │ │ │ +000ef130: 6773 2066 6f72 2058 4d4c 2064 6f63 756d gs for XML docum
│ │ │ │ +000ef140: 656e 7473 2061 7265 3a3c 2f70 3e0a 3c75 ents are: .... Back to tabl
│ │ │ │ +000ef200: 6520 6f66 2063 6f6e 7465 6e74 733c 2f61 e of contents Some XML
│ │ │ │ +000ef260: 2076 616c 6964 6174 696f 6e20 636f 6e73 validation cons
│ │ │ │ +000ef270: 7472 6169 6e74 7320 6172 6520 6e6f 7420 traints are not
│ │ │ │ +000ef280: 6175 746f 6d61 7469 6361 6c6c 7920 7665 automatically ve
│ │ │ │ +000ef290: 7269 6669 6564 2075 6e6c 6573 7320 6578 rified unless ex
│ │ │ │ +000ef2a0: 706c 6963 6974 6c79 2073 6574 2075 7369 plicitly set usi
│ │ │ │ +000ef2b0: 6e67 2074 6865 203c 636f 6465 3e23 534f ng the Str
│ │ │ │ +000ef430: 6963 7420 7661 6c69 6461 7469 6f6e 2063 ict validation c
│ │ │ │ +000ef440: 6f6e 7374 7261 696e 7473 2061 7265 2065 onstraints are e
│ │ │ │ +000ef450: 6e61 626c 6564 2077 6974 6820 7468 6520 nabled with the
│ │ │ │ +000ef460: 3c63 6f64 653e 2353 4f41 505f 584d 4c5f The next sectio
│ │ │ │ +000ef570: 6e73 2064 6573 6372 6962 6520 7468 6520 ns describe the
│ │ │ │ +000ef580: 7479 7065 206f 6620 636f 6e73 7472 6169 type of constrai
│ │ │ │ +000ef590: 6e74 7320 7661 6c69 6461 7465 6420 7768 nts validated wh
│ │ │ │ +000ef5a0: 656e 203c 636f 6465 3e23 534f 4150 5f58 en Use co
│ │ │ │ +000ef620: 6d70 696c 6572 2066 6c61 6720 3c63 6f64 mpiler flag See
│ │ │ │ +000ef6b0: 2061 6c73 6f20 3c61 2068 7265 663d 222e also C and C++ XML
│ │ │ │ +000ef6f0: 6461 7461 2062 696e 6469 6e67 733c 2f61 data bindings documentation
│ │ │ │ +000ef710: 666f 7220 6d6f 7265 2064 6574 6169 6c73 for more details
│ │ │ │ +000ef720: 2e3c 2f70 3e0a 3c70 3ef0 9f94 9d20 3c61 . Default values
│ │ │ │ +000ef7b0: 6361 6e20 6265 2064 6566 696e 6564 2066 can be defined f
│ │ │ │ +000ef7c0: 6f72 206f 7074 696f 6e61 6c20 656c 656d or optional elem
│ │ │ │ +000ef7d0: 656e 7473 2061 6e64 2061 7474 7269 6275 ents and attribu
│ │ │ │ +000ef7e0: 7465 732c 2077 6869 6368 206d 6561 6e73 tes, which means
│ │ │ │ +000ef7f0: 2074 6861 7420 7468 6520 6465 6661 756c that the defaul
│ │ │ │ +000ef800: 7420 7661 6c75 6520 7769 6c6c 2062 6520 t value will be
│ │ │ │ +000ef810: 7573 6564 2077 6865 6e20 7468 6520 656c used when the el
│ │ │ │ +000ef820: 656d 656e 7420 6f72 2061 7474 7269 6275 ement or attribu
│ │ │ │ +000ef830: 7465 2076 616c 7565 2069 7320 6e6f 7420 te value is not
│ │ │ │ +000ef840: 7072 6573 656e 7420 696e 2074 6865 2070 present in the p
│ │ │ │ +000ef850: 6172 7365 6420 584d 4c2e 2053 6565 2061 arsed XML. See a
│ │ │ │ +000ef860: 6c73 6f20 5365 6374 696f 6e20 3c61 2063 lso Section Default valu
│ │ │ │ +000ef8a0: 6573 2066 6f72 206f 6d69 7474 6564 2058 es for omitted X
│ │ │ │ +000ef8b0: 4d4c 2065 6c65 6d65 6e74 7320 616e 6420 ML elements and
│ │ │ │ +000ef8c0: 6174 7472 6962 7574 6573 3c2f 613e 2061 attributes a
│ │ │ │ +000ef8d0: 6e64 2065 7861 6d70 6c65 7320 696e 2073 nd examples in s
│ │ │ │ +000ef8e0: 7562 7365 7175 656e 7420 7375 6273 6563 ubsequent subsec
│ │ │ │ +000ef8f0: 7469 6f6e 7320 6265 6c6f 772e 3c2f 703e tions below. Default valu
│ │ │ │ +000ef910: 6573 206d 7573 7420 6265 2070 7269 6d69 es must be primi
│ │ │ │ +000ef920: 7469 7665 2074 7970 6573 2c20 696e 7465 tive types, inte
│ │ │ │ +000ef930: 6765 722c 2066 6c6f 6174 2c20 7374 7269 ger, float, stri
│ │ │ │ +000ef940: 6e67 2c20 6574 632e 206f 7220 706f 696e ng, etc. or poin
│ │ │ │ +000ef950: 7465 7273 2074 6f20 7072 696d 6974 6976 ters to primitiv
│ │ │ │ +000ef960: 6520 7479 7065 732e 2044 6566 6175 6c74 e types. Default
│ │ │ │ +000ef970: 2076 616c 7565 7320 6361 6e20 6265 2073 values can be s
│ │ │ │ +000ef980: 7065 6369 6669 6564 2066 6f72 2073 7472 pecified for str
│ │ │ │ +000ef990: 7563 7420 616e 6420 636c 6173 7320 6d65 uct and class me
│ │ │ │ +000ef9a0: 6d62 6572 732c 2061 7320 7368 6f77 6e20 mbers, as shown
│ │ │ │ +000ef9b0: 696e 2074 6865 2065 7861 6d70 6c65 2062 in the example b
│ │ │ │ +000ef9c0: 656c 6f77 3a3c 2f70 3e0a 3c64 6976 2063 elow: Upon deser
│ │ │ │ -000efcc0: 6961 6c69 7a61 7469 6f6e 206f 6620 6162 ialization of ab
│ │ │ │ -000efcd0: 7365 6e74 2064 6174 612c 2074 6865 7365 sent data, these
│ │ │ │ -000efce0: 206d 656d 6265 7273 2077 696c 6c20 6265 members will be
│ │ │ │ -000efcf0: 2073 6574 2061 6363 6f72 6469 6e67 6c79 set accordingly
│ │ │ │ -000efd00: 2e20 5768 656e 2063 6c61 7373 6573 2061 . When classes a
│ │ │ │ -000efd10: 7265 2069 6e73 7461 6e74 6961 7465 6420 re instantiated
│ │ │ │ -000efd20: 7769 7468 203c 636f 6465 3e73 6f61 705f with ..
│ │ │ │ -000efe00: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ -000efe10: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ -000efe20: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents Occur
│ │ │ │ -000efe80: 7265 6e63 6520 636f 6e73 7472 6169 6e74 rence constraint
│ │ │ │ -000efe90: 7320 7370 6563 6966 7920 7468 6520 6d69 s specify the mi
│ │ │ │ -000efea0: 6e69 6d75 6d20 616e 642f 6f72 206d 6178 nimum and/or max
│ │ │ │ -000efeb0: 696d 756d 2066 7265 7175 656e 6379 206f imum frequency o
│ │ │ │ -000efec0: 7220 6f70 7469 6f6e 616c 6974 7920 6f66 r optionality of
│ │ │ │ -000efed0: 206f 6620 6174 7472 6962 7574 6573 2061 of attributes a
│ │ │ │ -000efee0: 6e64 2065 6c65 6d65 6e74 732e 3c2f 703e nd elements. To forc
│ │ │ │ -000eff90: 6520 7468 6520 7661 6c69 6461 7469 6f6e e the validation
│ │ │ │ -000effa0: 206f 6620 6d69 6e4f 6363 7572 7320 616e of minOccurs an
│ │ │ │ -000effb0: 6420 6d61 784f 6363 7572 7320 636f 6e73 d maxOccurs cons
│ │ │ │ -000effc0: 7472 6169 6e74 7320 7468 6520 3c63 6f64 traints the The The A de
│ │ │ │ -000f03c0: 6661 756c 7420 696e 6974 6961 6c69 7a61 fault initializa
│ │ │ │ -000f03d0: 7469 6f6e 203c 636f 6465 3e76 616c 7565 tion
│ │ │ │ -000f0410: 4120 6669 7865 6420 696e 6974 6961 6c69 A fixed initiali
│ │ │ │ -000f0420: 7a61 7469 6f6e 2076 616c 7565 2063 616e zation value can
│ │ │ │ -000f0430: 2062 6520 7370 6563 6966 6965 6420 7769 be specified wi
│ │ │ │ -000f0440: 7468 203c 636f 6465 3e3d 3d3c 2f63 6f64 th For
│ │ │ │ -000f0480: 2065 7861 6d70 6c65 3c2f 703e 0a3c 6469 example Upon
│ │ │ │ +000efca0: 2064 6573 6572 6961 6c69 7a61 7469 6f6e deserialization
│ │ │ │ +000efcb0: 206f 6620 6162 7365 6e74 2064 6174 612c of absent data,
│ │ │ │ +000efcc0: 2074 6865 7365 206d 656d 6265 7273 2077 these members w
│ │ │ │ +000efcd0: 696c 6c20 6265 2073 6574 2061 6363 6f72 ill be set accor
│ │ │ │ +000efce0: 6469 6e67 6c79 2e20 5768 656e 2063 6c61 dingly. When cla
│ │ │ │ +000efcf0: 7373 6573 2061 7265 2069 6e73 7461 6e74 sses are instant
│ │ │ │ +000efd00: 6961 7465 6420 7769 7468 203c 636f 6465 iated with See also
│ │ │ │ +000efd70: 203c 6120 6872 6566 3d22 2e2e 2f2e 2e2f C a
│ │ │ │ +000efda0: 6e64 2043 2b2b 2058 4d4c 2064 6174 6120 nd C++ XML data
│ │ │ │ +000efdb0: 6269 6e64 696e 6773 3c2f 613e 2064 6f63 bindings doc
│ │ │ │ +000efdc0: 756d 656e 7461 7469 6f6e 2066 6f72 206d umentation for m
│ │ │ │ +000efdd0: 6f72 6520 6465 7461 696c 732e 3c2f 703e ore details. Occurrence cons
│ │ │ │ +000efe70: 7472 6169 6e74 7320 7370 6563 6966 7920 traints specify
│ │ │ │ +000efe80: 7468 6520 6d69 6e69 6d75 6d20 616e 642f the minimum and/
│ │ │ │ +000efe90: 6f72 206d 6178 696d 756d 2066 7265 7175 or maximum frequ
│ │ │ │ +000efea0: 656e 6379 206f 7220 6f70 7469 6f6e 616c ency or optional
│ │ │ │ +000efeb0: 6974 7920 6f66 206f 6620 6174 7472 6962 ity of of attrib
│ │ │ │ +000efec0: 7574 6573 2061 6e64 2065 6c65 6d65 6e74 utes and element
│ │ │ │ +000efed0: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ +000efee0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +000efef0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +000eff00: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6833 ents T
│ │ │ │ +000eff70: 6f20 666f 7263 6520 7468 6520 7661 6c69 o force the vali
│ │ │ │ +000eff80: 6461 7469 6f6e 206f 6620 6d69 6e4f 6363 dation of minOcc
│ │ │ │ +000eff90: 7572 7320 616e 6420 6d61 784f 6363 7572 urs and maxOccur
│ │ │ │ +000effa0: 7320 636f 6e73 7472 6169 6e74 7320 7468 s constraints th
│ │ │ │ +000effb0: 6520 3c63 6f64 653e 2353 4f41 505f 584d e T
│ │ │ │ +000f0120: 6865 203c 636f 6465 3e6e 756c 6c70 7472 he Th
│ │ │ │ +000f0210: 6520 3c63 6f64 653e 6d69 6e4f 6363 7572 e A fixed in
│ │ │ │ +000f0400: 6974 6961 6c69 7a61 7469 6f6e 2076 616c itialization val
│ │ │ │ +000f0410: 7565 2063 616e 2062 6520 7370 6563 6966 ue can be specif
│ │ │ │ +000f0420: 6965 6420 7769 7468 203c 636f 6465 3e3d ied with For example
│ │ │ │ +000f0470: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. See also C and C++
│ │ │ │ -000f0af0: 584d 4c20 6461 7461 2062 696e 6469 6e67 XML data binding
│ │ │ │ -000f0b00: 733c 2f61 3e20 646f 6375 6d65 6e74 6174 s documentat
│ │ │ │ -000f0b10: 696f 6e20 666f 7220 6d6f 7265 2064 6574 ion for more det
│ │ │ │ -000f0b20: 6169 6c73 2e3c 2f70 3e0a 3c70 3ef0 9f94 ails. ...
│ │ │ │ -000f0b30: 9d20 3c61 2068 7265 663d 2223 223e 4261 . Ba
│ │ │ │ -000f0b40: 636b 2074 6f20 7461 626c 6520 6f66 2063 ck to table of c
│ │ │ │ -000f0b50: 6f6e 7465 6e74 733c 2f61 3e3c 2f70 3e0a ontents Similar to the
│ │ │ │ -000f0bd0: 6d69 6e4f 6363 7572 7320 616e 6420 6d61 minOccurs and ma
│ │ │ │ -000f0be0: 784f 6363 7572 7320 616e 6e6f 7461 7469 xOccurs annotati
│ │ │ │ -000f0bf0: 6f6e 7320 6465 6669 6e65 6420 696e 2074 ons defined in t
│ │ │ │ -000f0c00: 6865 2070 7265 7669 6f75 7320 7365 6374 he previous sect
│ │ │ │ -000f0c10: 696f 6e2c 2061 7474 7269 6275 7465 7320 ion, attributes
│ │ │ │ -000f0c20: 696e 2061 2073 7472 7563 7420 6f72 2063 in a struct or c
│ │ │ │ -000f0c30: 6c61 7373 2063 616e 2062 6520 616e 6e6f lass can be anno
│ │ │ │ -000f0c40: 7461 7465 6420 7769 7468 206f 6363 7572 tated with occur
│ │ │ │ -000f0c50: 7265 6e63 6520 636f 6e73 7472 6169 6e74 rence constraint
│ │ │ │ -000f0c60: 7320 746f 206d 616b 6520 7468 656d 206f s to make them o
│ │ │ │ -000f0c70: 7074 696f 6e61 6c20 2830 292c 2072 6571 ptional (0), req
│ │ │ │ -000f0c80: 7569 7265 6420 2831 292c 206f 7220 7072 uired (1), or pr
│ │ │ │ -000f0c90: 6f68 6962 6974 6564 2028 303a 3029 2e20 ohibited (0:0).
│ │ │ │ -000f0ca0: 4465 6661 756c 7420 7661 6c75 6573 2063 Default values c
│ │ │ │ -000f0cb0: 616e 2062 6520 6173 7369 676e 6564 2074 an be assigned t
│ │ │ │ -000f0cc0: 6f20 6f70 7469 6f6e 616c 2061 7474 7269 o optional attri
│ │ │ │ -000f0cd0: 6275 7465 732e 3c2f 703e 0a3c 703e 466f butes. Fo
│ │ │ │ -000f0ce0: 7220 6578 616d 706c 653c 2f70 3e0a 3c64 r example See also
│ │ │ │ +000f0aa0: 3c61 2068 7265 663d 222e 2e2f 2e2e 2f64 C an
│ │ │ │ +000f0ad0: 6420 432b 2b20 584d 4c20 6461 7461 2062 d C++ XML data b
│ │ │ │ +000f0ae0: 696e 6469 6e67 733c 2f61 3e20 646f 6375 indings docu
│ │ │ │ +000f0af0: 6d65 6e74 6174 696f 6e20 666f 7220 6d6f mentation for mo
│ │ │ │ +000f0b00: 7265 2064 6574 6169 6c73 2e3c 2f70 3e0a re details. .... Back to tabl
│ │ │ │ +000f0b30: 6520 6f66 2063 6f6e 7465 6e74 733c 2f61 e of contents Similar t
│ │ │ │ +000f0bb0: 6f20 7468 6520 6d69 6e4f 6363 7572 7320 o the minOccurs
│ │ │ │ +000f0bc0: 616e 6420 6d61 784f 6363 7572 7320 616e and maxOccurs an
│ │ │ │ +000f0bd0: 6e6f 7461 7469 6f6e 7320 6465 6669 6e65 notations define
│ │ │ │ +000f0be0: 6420 696e 2074 6865 2070 7265 7669 6f75 d in the previou
│ │ │ │ +000f0bf0: 7320 7365 6374 696f 6e2c 2061 7474 7269 s section, attri
│ │ │ │ +000f0c00: 6275 7465 7320 696e 2061 2073 7472 7563 butes in a struc
│ │ │ │ +000f0c10: 7420 6f72 2063 6c61 7373 2063 616e 2062 t or class can b
│ │ │ │ +000f0c20: 6520 616e 6e6f 7461 7465 6420 7769 7468 e annotated with
│ │ │ │ +000f0c30: 206f 6363 7572 7265 6e63 6520 636f 6e73 occurrence cons
│ │ │ │ +000f0c40: 7472 6169 6e74 7320 746f 206d 616b 6520 traints to make
│ │ │ │ +000f0c50: 7468 656d 206f 7074 696f 6e61 6c20 2830 them optional (0
│ │ │ │ +000f0c60: 292c 2072 6571 7569 7265 6420 2831 292c ), required (1),
│ │ │ │ +000f0c70: 206f 7220 7072 6f68 6962 6974 6564 2028 or prohibited (
│ │ │ │ +000f0c80: 303a 3029 2e20 4465 6661 756c 7420 7661 0:0). Default va
│ │ │ │ +000f0c90: 6c75 6573 2063 616e 2062 6520 6173 7369 lues can be assi
│ │ │ │ +000f0ca0: 676e 6564 2074 6f20 6f70 7469 6f6e 616c gned to optional
│ │ │ │ +000f0cb0: 2061 7474 7269 6275 7465 732e 3c2f 703e attributes. For example<
│ │ │ │ +000f0cd0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. Remember to set
│ │ │ │ -000f0fe0: 2074 6865 203c 636f 6465 3e23 534f 4150 the See also
│ │ │ │ -000f1060: 203c 6120 6872 6566 3d22 2e2e 2f2e 2e2f C a
│ │ │ │ -000f1090: 6e64 2043 2b2b 2058 4d4c 2064 6174 6120 nd C++ XML data
│ │ │ │ -000f10a0: 6269 6e64 696e 6773 3c2f 613e 2064 6f63 bindings doc
│ │ │ │ -000f10b0: 756d 656e 7461 7469 6f6e 2066 6f72 206d umentation for m
│ │ │ │ -000f10c0: 6f72 6520 6465 7461 696c 732e 3c2f 703e ore details. A sche
│ │ │ │ -000f1240: 6d61 2073 696d 706c 6554 7970 6520 6973 ma simpleType is
│ │ │ │ -000f1250: 2064 6566 696e 6564 2077 6974 6820 6120 defined with a
│ │ │ │ -000f1260: 3c63 6f64 653e 7479 7065 6465 663c 2f63 This defines
│ │ │ │ -000f1370: 7468 6520 666f 6c6c 6f77 696e 6720 7363 the following sc
│ │ │ │ -000f1380: 6865 6d61 2074 7970 6520 696e 203c 656d hema type in A complex
│ │ │ │ -000f15a0: 5479 7065 2077 6974 6820 7369 6d70 6c65 Type with simple
│ │ │ │ -000f15b0: 436f 6e74 656e 7420 6973 2064 6566 696e Content is defin
│ │ │ │ -000f15c0: 6564 2077 6974 6820 6120 7772 6170 7065 ed with a wrappe
│ │ │ │ -000f15d0: 7220 7374 7275 6374 2f63 6c61 7373 3a3c r struct/class:<
│ │ │ │ -000f15e0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. Remember
│ │ │ │ +000f0fc0: 746f 2073 6574 2074 6865 203c 636f 6465 to set the Se
│ │ │ │ +000f1040: 6520 616c 736f 203c 6120 6872 6566 3d22 e also C and C++ XML
│ │ │ │ +000f1080: 2064 6174 6120 6269 6e64 696e 6773 3c2f data bindings
│ │ │ │ +000f1090: 613e 2064 6f63 756d 656e 7461 7469 6f6e a> documentation
│ │ │ │ +000f10a0: 2066 6f72 206d 6f72 6520 6465 7461 696c for more detail
│ │ │ │ +000f10b0: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ +000f10c0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +000f10d0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +000f10e0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents Value co
│ │ │ │ +000f1140: 6e73 7472 6169 6e74 7320 7265 7374 7269 nstraints restri
│ │ │ │ +000f1150: 6374 2074 6865 206c 656e 6774 6820 6f66 ct the length of
│ │ │ │ +000f1160: 2073 7472 696e 6773 2061 6e64 2074 6865 strings and the
│ │ │ │ +000f1170: 2072 616e 6765 206f 6620 7661 6c75 6573 range of values
│ │ │ │ +000f1180: 206f 6620 6e75 6d65 7269 6320 7479 7065 of numeric type
│ │ │ │ +000f1190: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ +000f11a0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +000f11b0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +000f11c0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6833 ents
│ │ │ │ +000f1220: 4120 7363 6865 6d61 2073 696d 706c 6554 A schema simpleT
│ │ │ │ +000f1230: 7970 6520 6973 2064 6566 696e 6564 2077 ype is defined w
│ │ │ │ +000f1240: 6974 6820 6120 3c63 6f64 653e 7479 7065 ith a This de
│ │ │ │ +000f1350: 6669 6e65 7320 7468 6520 666f 6c6c 6f77 fines the follow
│ │ │ │ +000f1360: 696e 6720 7363 6865 6d61 2074 7970 6520 ing schema type
│ │ │ │ +000f1370: 696e 203c 656d 3e3c 636f 6465 3e74 696d in A c
│ │ │ │ +000f1580: 6f6d 706c 6578 5479 7065 2077 6974 6820 omplexType with
│ │ │ │ +000f1590: 7369 6d70 6c65 436f 6e74 656e 7420 6973 simpleContent is
│ │ │ │ +000f15a0: 2064 6566 696e 6564 2077 6974 6820 6120 defined with a
│ │ │ │ +000f15b0: 7772 6170 7065 7220 7374 7275 6374 2f63 wrapper struct/c
│ │ │ │ +000f15c0: 6c61 7373 3a3c 2f70 3e0a 3c64 6976 2063 lass: Th
│ │ │ │ -000f1790: 6973 2064 6566 696e 6573 2074 6865 2066 is defines the f
│ │ │ │ -000f17a0: 6f6c 6c6f 7769 6e67 2073 6368 656d 6120 ollowing schema
│ │ │ │ -000f17b0: 7479 7065 2069 6e20 3c65 6d3e 3c63 6f64 type in Data val
│ │ │ │ +000f1f10: 7565 206c 656e 6774 6820 636f 6e73 7472 ue length constr
│ │ │ │ +000f1f20: 6169 6e74 7320 6f66 2073 696d 706c 6554 aints of simpleT
│ │ │ │ +000f1f30: 7970 6573 2061 6e64 2063 6f6d 706c 6578 ypes and complex
│ │ │ │ +000f1f40: 5479 7065 7320 7769 7468 2073 696d 706c Types with simpl
│ │ │ │ +000f1f50: 6543 6f6e 7465 6e74 2061 7265 2064 6566 eContent are def
│ │ │ │ +000f1f60: 696e 6564 2061 7320 666f 6c6c 6f77 733a ined as follows:
│ │ │ │ +000f1f70: 3c2f 703e 0a3c 6469 7620 636c 6173 733d Set the <
│ │ │ │ -000f2570: 636f 6465 3e23 534f 4150 5f58 4d4c 5f53 code>#SOAP_XML_S
│ │ │ │ -000f2580: 5452 4943 543c 2f63 6f64 653e 206d 6f64 TRICT mod
│ │ │ │ -000f2590: 6520 666c 6167 2074 6f20 656e 6162 6c65 e flag to enable
│ │ │ │ -000f25a0: 2074 6865 2076 616c 6964 6174 696f 6e20 the validation
│ │ │ │ -000f25b0: 6f66 2076 616c 7565 206c 656e 6774 6820 of value length
│ │ │ │ -000f25c0: 636f 6e73 7472 6169 6e74 732e 3c2f 703e constraints. See also C and C
│ │ │ │ -000f2610: 2b2b 2058 4d4c 2064 6174 6120 6269 6e64 ++ XML data bind
│ │ │ │ -000f2620: 696e 6773 3c2f 613e 2064 6f63 756d 656e ings documen
│ │ │ │ -000f2630: 7461 7469 6f6e 2066 6f72 206d 6f72 6520 tation for more
│ │ │ │ -000f2640: 6465 7461 696c 732e 3c2f 703e 0a3c 703e details.
│ │ │ │ -000f2650: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ -000f2670: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ -000f2680: 703e 0a3c 6833 3e3c 6120 636c 6173 733d p>. Simila
│ │ │ │ -000f26e0: 7220 746f 2064 6174 6120 6c65 6e67 7468 r to data length
│ │ │ │ -000f26f0: 2063 6f6e 7374 7261 696e 7473 2066 6f72 constraints for
│ │ │ │ -000f2700: 2073 7472 696e 672d 6261 7365 6420 6461 string-based da
│ │ │ │ -000f2710: 7461 2c20 696e 7465 6765 7220 616e 6420 ta, integer and
│ │ │ │ -000f2720: 666c 6f61 7469 6e67 2070 6f69 6e74 2076 floating point v
│ │ │ │ -000f2730: 616c 7565 2072 616e 6765 2063 6f6e 7374 alue range const
│ │ │ │ -000f2740: 7261 696e 7473 206f 6e20 6e75 6d65 7269 raints on numeri
│ │ │ │ -000f2750: 6320 7369 6d70 6c65 5479 7065 7320 616e c simpleTypes an
│ │ │ │ -000f2760: 6420 636f 6d70 6c65 7854 7970 6573 2077 d complexTypes w
│ │ │ │ -000f2770: 6974 6820 7369 6d70 6c65 436f 6e74 656e ith simpleConten
│ │ │ │ -000f2780: 7420 6172 6520 6465 636c 6172 6564 2077 t are declared w
│ │ │ │ -000f2790: 6974 6820 3c63 6f64 653e 6c6f 7720 3a20 ith A
│ │ │ │ -000f27f0: 7320 6f66 2067 534f 4150 2032 2e38 2e32 s of gSOAP 2.8.2
│ │ │ │ -000f2800: 362c 2066 6c6f 6174 696e 6720 706f 696e 6, floating poin
│ │ │ │ -000f2810: 7420 7661 6c75 6520 7261 6e67 6573 2061 t value ranges a
│ │ │ │ -000f2820: 6e64 2069 6e74 6567 6572 2072 616e 6765 nd integer range
│ │ │ │ -000f2830: 7320 6361 6e20 6265 2065 7863 6c75 7369 s can be exclusi
│ │ │ │ -000f2840: 7665 2062 7920 6164 6469 6e67 203c 636f ve by adding F
│ │ │ │ -000f30b0: 6f72 2065 7861 6d70 6c65 3a3c 2f70 3e0a or example: Set
│ │ │ │ +000f2550: 2074 6865 203c 636f 6465 3e23 534f 4150 the See al
│ │ │ │ +000f25c0: 736f 203c 6120 6872 6566 3d22 2e2e 2f2e so C
│ │ │ │ +000f25f0: 2061 6e64 2043 2b2b 2058 4d4c 2064 6174 and C++ XML dat
│ │ │ │ +000f2600: 6120 6269 6e64 696e 6773 3c2f 613e 2064 a bindings d
│ │ │ │ +000f2610: 6f63 756d 656e 7461 7469 6f6e 2066 6f72 ocumentation for
│ │ │ │ +000f2620: 206d 6f72 6520 6465 7461 696c 732e 3c2f more details.
│ │ │ │ +000f2630: 703e 0a3c 703e f09f 949d 203c 6120 6872 p>.
│ │ │ │ +000f26c0: 5369 6d69 6c61 7220 746f 2064 6174 6120 Similar to data
│ │ │ │ +000f26d0: 6c65 6e67 7468 2063 6f6e 7374 7261 696e length constrain
│ │ │ │ +000f26e0: 7473 2066 6f72 2073 7472 696e 672d 6261 ts for string-ba
│ │ │ │ +000f26f0: 7365 6420 6461 7461 2c20 696e 7465 6765 sed data, intege
│ │ │ │ +000f2700: 7220 616e 6420 666c 6f61 7469 6e67 2070 r and floating p
│ │ │ │ +000f2710: 6f69 6e74 2076 616c 7565 2072 616e 6765 oint value range
│ │ │ │ +000f2720: 2063 6f6e 7374 7261 696e 7473 206f 6e20 constraints on
│ │ │ │ +000f2730: 6e75 6d65 7269 6320 7369 6d70 6c65 5479 numeric simpleTy
│ │ │ │ +000f2740: 7065 7320 616e 6420 636f 6d70 6c65 7854 pes and complexT
│ │ │ │ +000f2750: 7970 6573 2077 6974 6820 7369 6d70 6c65 ypes with simple
│ │ │ │ +000f2760: 436f 6e74 656e 7420 6172 6520 6465 636c Content are decl
│ │ │ │ +000f2770: 6172 6564 2077 6974 6820 3c63 6f64 653e ared with As of gSOAP
│ │ │ │ +000f27e0: 2032 2e38 2e32 362c 2066 6c6f 6174 696e 2.8.26, floatin
│ │ │ │ +000f27f0: 6720 706f 696e 7420 7661 6c75 6520 7261 g point value ra
│ │ │ │ +000f2800: 6e67 6573 2061 6e64 2069 6e74 6567 6572 nges and integer
│ │ │ │ +000f2810: 2072 616e 6765 7320 6361 6e20 6265 2065 ranges can be e
│ │ │ │ +000f2820: 7863 6c75 7369 7665 2062 7920 6164 6469 xclusive by addi
│ │ │ │ +000f2830: 6e67 203c 636f 6465 3e26 6c74 3b3c 2f63 ng For example
│ │ │ │ +000f30a0: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 : Se
│ │ │ │ -000f35b0: 6520 616c 736f 203c 6120 6872 6566 3d22 e also C and C++ XML
│ │ │ │ -000f35f0: 2064 6174 6120 6269 6e64 696e 6773 3c2f data bindings
│ │ │ │ -000f3600: 613e 2064 6f63 756d 656e 7461 7469 6f6e a> documentation
│ │ │ │ -000f3610: 2066 6f72 206d 6f72 6520 6465 7461 696c for more detail
│ │ │ │ -000f3620: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ -000f3630: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -000f3640: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -000f3650: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6833 ents Pat
│ │ │ │ -000f36b0: 7465 726e 7320 6361 6e20 6265 2064 6566 terns can be def
│ │ │ │ -000f36c0: 696e 6564 2066 6f72 2073 696d 706c 6554 ined for simpleT
│ │ │ │ -000f36d0: 7970 6520 636f 6e74 656e 742e 2048 6f77 ype content. How
│ │ │ │ -000f36e0: 6576 6572 2c20 7061 7474 6572 6e20 7661 ever, pattern va
│ │ │ │ -000f36f0: 6c69 6461 7469 6f6e 2069 7320 6e6f 7420 lidation is not
│ │ │ │ -000f3700: 656e 666f 7263 6564 2075 6e6c 6573 7320 enforced unless
│ │ │ │ -000f3710: 7468 6520 3c63 6f64 653e 3c61 2063 6c61 the To ass
│ │ │ │ -000f38c0: 6f63 6961 7465 2061 2070 6174 7465 726e ociate a pattern
│ │ │ │ -000f38d0: 2077 6974 6820 6120 7369 6d70 6c65 5479 with a simpleTy
│ │ │ │ -000f38e0: 7065 2c20 796f 7520 6361 6e20 6465 6669 pe, you can defi
│ │ │ │ -000f38f0: 6e65 2061 2073 696d 706c 6554 7970 6520 ne a simpleType
│ │ │ │ -000f3900: 7769 7468 2061 203c 636f 6465 3e74 7970 with a Th
│ │ │ │ -000f3d60: 6520 7061 7474 6572 6e20 7374 7269 6e67 e pattern string
│ │ │ │ -000f3d70: 206d 7573 7420 636f 6e74 6169 6e20 6120 must contain a
│ │ │ │ -000f3d80: 7661 6c69 6420 7265 6775 6c61 7220 6578 valid regular ex
│ │ │ │ -000f3d90: 7072 6573 7369 6f6e 2e3c 2f70 3e0a 3c70 pression. A special case
│ │ │ │ -000f3db0: 666f 7220 4320 666f 726d 6174 2073 7472 for C format str
│ │ │ │ -000f3dc0: 696e 6720 7061 7474 6572 6e73 2069 7320 ing patterns is
│ │ │ │ -000f3dd0: 696e 7472 6f64 7563 6564 2069 6e20 6753 introduced in gS
│ │ │ │ -000f3de0: 4f41 5020 322e 382e 3138 2e20 5768 656e OAP 2.8.18. When
│ │ │ │ -000f3df0: 203c 656d 3e3c 636f 6465 3e78 7364 3a74 pro
│ │ │ │ -000f4260: 6475 6365 733a 3c2f 703e 0a3c 6469 7620 duces: The format stri
│ │ │ │ -000f4350: 6e67 2069 7320 7573 6564 2074 6f20 666f ng is used to fo
│ │ │ │ -000f4360: 726d 6174 2074 6865 206f 7574 7075 7420 rmat the output
│ │ │ │ -000f4370: 7468 6520 666c 6f61 7469 6e67 2070 6f69 the floating poi
│ │ │ │ -000f4380: 6e74 2076 616c 7565 2069 6e20 584d 4c2e nt value in XML.
│ │ │ │ -000f4390: 3c2f 703e 0a3c 703e 5365 6520 616c 736f See also
│ │ │ │ -000f43a0: 203c 6120 6872 6566 3d22 2e2e 2f2e 2e2f C a
│ │ │ │ -000f43d0: 6e64 2043 2b2b 2058 4d4c 2064 6174 6120 nd C++ XML data
│ │ │ │ -000f43e0: 6269 6e64 696e 6773 3c2f 613e 2064 6f63 bindings doc
│ │ │ │ -000f43f0: 756d 656e 7461 7469 6f6e 2066 6f72 206d umentation for m
│ │ │ │ -000f4400: 6f72 6520 6465 7461 696c 732e 3c2f 703e ore details. Struc
│ │ │ │ -000f44b0: 742c 2063 6c61 7373 2c20 616e 6420 756e t, class, and un
│ │ │ │ -000f44c0: 696f 6e20 6d65 6d62 6572 7320 7265 7072 ion members repr
│ │ │ │ -000f44d0: 6573 656e 7420 656c 656d 656e 7473 2061 esent elements a
│ │ │ │ -000f44e0: 6e64 2061 7474 7269 6275 7465 7320 7468 nd attributes th
│ │ │ │ -000f44f0: 6174 2061 7265 2061 7574 6f6d 6174 6963 at are automatic
│ │ │ │ -000f4500: 616c 6c79 2071 7561 6c69 6669 6564 206f ally qualified o
│ │ │ │ -000f4510: 7220 756e 7175 616c 6966 6965 6420 6465 r unqualified de
│ │ │ │ -000f4520: 7065 6e64 696e 6720 6f6e 2074 6865 2073 pending on the s
│ │ │ │ -000f4530: 6368 656d 6120 656c 656d 656e 7420 616e chema element an
│ │ │ │ -000f4540: 6420 6174 7472 6962 7574 6520 6465 6661 d attribute defa
│ │ │ │ -000f4550: 756c 7420 666f 726d 7320 7370 6563 6966 ult forms specif
│ │ │ │ -000f4560: 6965 642e 2054 6865 2065 6e67 696e 6520 ied. The engine
│ │ │ │ -000f4570: 616c 7761 7973 2076 616c 6964 6174 6573 always validates
│ │ │ │ -000f4580: 2074 6865 2070 7265 6669 7865 7320 6f66 the prefixes of
│ │ │ │ -000f4590: 2065 6c65 6d65 6e74 7320 616e 6420 6174 elements and at
│ │ │ │ -000f45a0: 7472 6962 7574 6573 2e20 5768 656e 2061 tributes. When a
│ │ │ │ -000f45b0: 206e 616d 6573 7061 6365 206d 6973 6d61 namespace misma
│ │ │ │ -000f45c0: 7463 6820 6f63 6375 7273 2c20 7468 6520 tch occurs, the
│ │ │ │ -000f45d0: 656c 656d 656e 7420 6f72 2061 7474 7269 element or attri
│ │ │ │ -000f45e0: 6275 7465 2069 7320 6e6f 7420 636f 6e73 bute is not cons
│ │ │ │ -000f45f0: 756d 6564 2077 6869 6368 2063 616e 206c umed which can l
│ │ │ │ -000f4600: 6561 6420 746f 2061 2076 616c 6964 6174 ead to a validat
│ │ │ │ -000f4610: 696f 6e20 6572 726f 7220 2875 6e6c 6573 ion error (unles
│ │ │ │ -000f4620: 7320 7468 6520 636f 6d70 6c65 7854 7970 s the complexTyp
│ │ │ │ -000f4630: 6520 6973 2065 7874 656e 7369 626c 6520 e is extensible
│ │ │ │ -000f4640: 6f72 2077 6865 6e20 3c63 6f64 653e 2353 or when Con
│ │ │ │ -000f4680: 7369 6465 7220 666f 7220 6578 616d 706c sider for exampl
│ │ │ │ -000f4690: 653a 3c2f 703e 0a3c 6469 7620 636c 6173 e: Set the
│ │ │ │ +000f3530: 3c63 6f64 653e 2353 4f41 505f 584d 4c5f See also C and C
│ │ │ │ +000f35d0: 2b2b 2058 4d4c 2064 6174 6120 6269 6e64 ++ XML data bind
│ │ │ │ +000f35e0: 696e 6773 3c2f 613e 2064 6f63 756d 656e ings documen
│ │ │ │ +000f35f0: 7461 7469 6f6e 2066 6f72 206d 6f72 6520 tation for more
│ │ │ │ +000f3600: 6465 7461 696c 732e 3c2f 703e 0a3c 703e details.
│ │ │ │ +000f3610: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +000f3630: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +000f3640: 703e 0a3c 6833 3e3c 6120 636c 6173 733d p>. Patterns can
│ │ │ │ +000f36a0: 6265 2064 6566 696e 6564 2066 6f72 2073 be defined for s
│ │ │ │ +000f36b0: 696d 706c 6554 7970 6520 636f 6e74 656e impleType conten
│ │ │ │ +000f36c0: 742e 2048 6f77 6576 6572 2c20 7061 7474 t. However, patt
│ │ │ │ +000f36d0: 6572 6e20 7661 6c69 6461 7469 6f6e 2069 ern validation i
│ │ │ │ +000f36e0: 7320 6e6f 7420 656e 666f 7263 6564 2075 s not enforced u
│ │ │ │ +000f36f0: 6e6c 6573 7320 7468 6520 3c63 6f64 653e nless the
│ │ │ │ +000f38a0: 546f 2061 7373 6f63 6961 7465 2061 2070 To associate a p
│ │ │ │ +000f38b0: 6174 7465 726e 2077 6974 6820 6120 7369 attern with a si
│ │ │ │ +000f38c0: 6d70 6c65 5479 7065 2c20 796f 7520 6361 mpleType, you ca
│ │ │ │ +000f38d0: 6e20 6465 6669 6e65 2061 2073 696d 706c n define a simpl
│ │ │ │ +000f38e0: 6554 7970 6520 7769 7468 2061 203c 636f eType with a This d
│ │ │ │ +000f3a00: 6566 696e 6573 2074 6865 2066 6f6c 6c6f efines the follo
│ │ │ │ +000f3a10: 7769 6e67 2073 6368 656d 6120 7479 7065 wing schema type
│ │ │ │ +000f3a20: 2069 6e20 3c65 6d3e 3c63 6f64 653e 7469 in The pattern
│ │ │ │ +000f3d50: 7374 7269 6e67 206d 7573 7420 636f 6e74 string must cont
│ │ │ │ +000f3d60: 6169 6e20 6120 7661 6c69 6420 7265 6775 ain a valid regu
│ │ │ │ +000f3d70: 6c61 7220 6578 7072 6573 7369 6f6e 2e3c lar expression.<
│ │ │ │ +000f3d80: 2f70 3e0a 3c70 3e41 2073 7065 6369 616c /p>. A special
│ │ │ │ +000f3d90: 2063 6173 6520 666f 7220 4320 666f 726d case for C form
│ │ │ │ +000f3da0: 6174 2073 7472 696e 6720 7061 7474 6572 at string patter
│ │ │ │ +000f3db0: 6e73 2069 7320 696e 7472 6f64 7563 6564 ns is introduced
│ │ │ │ +000f3dc0: 2069 6e20 6753 4f41 5020 322e 382e 3138 in gSOAP 2.8.18
│ │ │ │ +000f3dd0: 2e20 5768 656e 203c 656d 3e3c 636f 6465 . When produces: The forma
│ │ │ │ +000f4330: 7420 7374 7269 6e67 2069 7320 7573 6564 t string is used
│ │ │ │ +000f4340: 2074 6f20 666f 726d 6174 2074 6865 206f to format the o
│ │ │ │ +000f4350: 7574 7075 7420 7468 6520 666c 6f61 7469 utput the floati
│ │ │ │ +000f4360: 6e67 2070 6f69 6e74 2076 616c 7565 2069 ng point value i
│ │ │ │ +000f4370: 6e20 584d 4c2e 3c2f 703e 0a3c 703e 5365 n XML. Se
│ │ │ │ +000f4380: 6520 616c 736f 203c 6120 6872 6566 3d22 e also C and C++ XML
│ │ │ │ +000f43c0: 2064 6174 6120 6269 6e64 696e 6773 3c2f data bindings
│ │ │ │ +000f43d0: 613e 2064 6f63 756d 656e 7461 7469 6f6e a> documentation
│ │ │ │ +000f43e0: 2066 6f72 206d 6f72 6520 6465 7461 696c for more detail
│ │ │ │ +000f43f0: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ +000f4400: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +000f4410: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +000f4420: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents Struct, class,
│ │ │ │ +000f44a0: 616e 6420 756e 696f 6e20 6d65 6d62 6572 and union member
│ │ │ │ +000f44b0: 7320 7265 7072 6573 656e 7420 656c 656d s represent elem
│ │ │ │ +000f44c0: 656e 7473 2061 6e64 2061 7474 7269 6275 ents and attribu
│ │ │ │ +000f44d0: 7465 7320 7468 6174 2061 7265 2061 7574 tes that are aut
│ │ │ │ +000f44e0: 6f6d 6174 6963 616c 6c79 2071 7561 6c69 omatically quali
│ │ │ │ +000f44f0: 6669 6564 206f 7220 756e 7175 616c 6966 fied or unqualif
│ │ │ │ +000f4500: 6965 6420 6465 7065 6e64 696e 6720 6f6e ied depending on
│ │ │ │ +000f4510: 2074 6865 2073 6368 656d 6120 656c 656d the schema elem
│ │ │ │ +000f4520: 656e 7420 616e 6420 6174 7472 6962 7574 ent and attribut
│ │ │ │ +000f4530: 6520 6465 6661 756c 7420 666f 726d 7320 e default forms
│ │ │ │ +000f4540: 7370 6563 6966 6965 642e 2054 6865 2065 specified. The e
│ │ │ │ +000f4550: 6e67 696e 6520 616c 7761 7973 2076 616c ngine always val
│ │ │ │ +000f4560: 6964 6174 6573 2074 6865 2070 7265 6669 idates the prefi
│ │ │ │ +000f4570: 7865 7320 6f66 2065 6c65 6d65 6e74 7320 xes of elements
│ │ │ │ +000f4580: 616e 6420 6174 7472 6962 7574 6573 2e20 and attributes.
│ │ │ │ +000f4590: 5768 656e 2061 206e 616d 6573 7061 6365 When a namespace
│ │ │ │ +000f45a0: 206d 6973 6d61 7463 6820 6f63 6375 7273 mismatch occurs
│ │ │ │ +000f45b0: 2c20 7468 6520 656c 656d 656e 7420 6f72 , the element or
│ │ │ │ +000f45c0: 2061 7474 7269 6275 7465 2069 7320 6e6f attribute is no
│ │ │ │ +000f45d0: 7420 636f 6e73 756d 6564 2077 6869 6368 t consumed which
│ │ │ │ +000f45e0: 2063 616e 206c 6561 6420 746f 2061 2076 can lead to a v
│ │ │ │ +000f45f0: 616c 6964 6174 696f 6e20 6572 726f 7220 alidation error
│ │ │ │ +000f4600: 2875 6e6c 6573 7320 7468 6520 636f 6d70 (unless the comp
│ │ │ │ +000f4610: 6c65 7854 7970 6520 6973 2065 7874 656e lexType is exten
│ │ │ │ +000f4620: 7369 626c 6520 6f72 2077 6865 6e20 3c63 sible or when Consider for
│ │ │ │ +000f4670: 6578 616d 706c 653a 3c2f 703e 0a3c 6469 example: Here
│ │ │ │ -000f48a0: 2c20 7468 6520 3c63 6f64 653e 6e73 5f5f , the The "colon no
│ │ │ │ -000f4af0: 7461 7469 6f6e 2220 666f 7220 7374 7275 tation" for stru
│ │ │ │ -000f4b00: 6374 2f63 6c61 7373 2f75 6e69 6f6e 206d ct/class/union m
│ │ │ │ -000f4b10: 656d 6265 7220 6e61 6d65 7320 6973 2075 ember names is u
│ │ │ │ -000f4b20: 7365 6420 746f 206f 7665 7272 6964 6520 sed to override
│ │ │ │ -000f4b30: 656c 656d 656e 7420 616e 6420 6174 7472 element and attr
│ │ │ │ -000f4b40: 6962 7574 6520 7175 616c 6966 6965 6420 ibute qualified
│ │ │ │ -000f4b50: 6f72 2075 6e71 7561 6c69 6669 6564 2066 or unqualified f
│ │ │ │ -000f4b60: 6f72 6d73 2e20 546f 206f 7665 7272 6964 orms. To overrid
│ │ │ │ -000f4b70: 6520 7468 6520 666f 726d 2066 6f72 2069 e the form for i
│ │ │ │ -000f4b80: 6e64 6976 6964 7561 6c20 6d65 6d62 6572 ndividual member
│ │ │ │ -000f4b90: 7320 7468 6174 2072 6570 7265 7365 6e74 s that represent
│ │ │ │ -000f4ba0: 2065 6c65 6d65 6e74 7320 616e 6420 6174 elements and at
│ │ │ │ -000f4bb0: 7472 6962 7574 6573 2c20 7573 6520 6120 tributes, use a
│ │ │ │ -000f4bc0: 6e61 6d65 7370 6163 6520 7072 6566 6978 namespace prefix
│ │ │ │ -000f4bd0: 2061 6e64 2063 6f6c 6f6e 2077 6974 6820 and colon with
│ │ │ │ -000f4be0: 7468 6520 6d65 6d62 6572 206e 616d 653a the member name:
│ │ │ │ -000f4bf0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d The "co
│ │ │ │ +000f4ad0: 6c6f 6e20 6e6f 7461 7469 6f6e 2220 666f lon notation" fo
│ │ │ │ +000f4ae0: 7220 7374 7275 6374 2f63 6c61 7373 2f75 r struct/class/u
│ │ │ │ +000f4af0: 6e69 6f6e 206d 656d 6265 7220 6e61 6d65 nion member name
│ │ │ │ +000f4b00: 7320 6973 2075 7365 6420 746f 206f 7665 s is used to ove
│ │ │ │ +000f4b10: 7272 6964 6520 656c 656d 656e 7420 616e rride element an
│ │ │ │ +000f4b20: 6420 6174 7472 6962 7574 6520 7175 616c d attribute qual
│ │ │ │ +000f4b30: 6966 6965 6420 6f72 2075 6e71 7561 6c69 ified or unquali
│ │ │ │ +000f4b40: 6669 6564 2066 6f72 6d73 2e20 546f 206f fied forms. To o
│ │ │ │ +000f4b50: 7665 7272 6964 6520 7468 6520 666f 726d verride the form
│ │ │ │ +000f4b60: 2066 6f72 2069 6e64 6976 6964 7561 6c20 for individual
│ │ │ │ +000f4b70: 6d65 6d62 6572 7320 7468 6174 2072 6570 members that rep
│ │ │ │ +000f4b80: 7265 7365 6e74 2065 6c65 6d65 6e74 7320 resent elements
│ │ │ │ +000f4b90: 616e 6420 6174 7472 6962 7574 6573 2c20 and attributes,
│ │ │ │ +000f4ba0: 7573 6520 6120 6e61 6d65 7370 6163 6520 use a namespace
│ │ │ │ +000f4bb0: 7072 6566 6978 2061 6e64 2063 6f6c 6f6e prefix and colon
│ │ │ │ +000f4bc0: 2077 6974 6820 7468 6520 6d65 6d62 6572 with the member
│ │ │ │ +000f4bd0: 206e 616d 653a 3c2f 703e 0a3c 6469 7620 name: wh
│ │ │ │ -000f4e00: 6572 6520 3c63 6f64 653e 6e61 6d65 3c2f ere
│ │ │ │ -000f5000: 5468 6520 636f 6c6f 6e20 6e6f 7461 7469 The colon notati
│ │ │ │ -000f5010: 6f6e 2069 7320 6120 7379 6e74 6163 7469 on is a syntacti
│ │ │ │ -000f5020: 6320 6e6f 7461 7469 6f6e 2075 7365 6420 c notation used
│ │ │ │ -000f5030: 6f6e 6c79 2069 6e20 7468 6520 696e 7465 only in the inte
│ │ │ │ -000f5040: 7266 6163 6520 6865 6164 6572 2066 696c rface header fil
│ │ │ │ -000f5050: 6520 7379 6e74 6178 2c20 6974 2069 7320 e syntax, it is
│ │ │ │ -000f5060: 6e6f 7420 7472 616e 736c 6174 6564 2074 not translated t
│ │ │ │ -000f5070: 6f20 7468 6520 432f 432b 2b20 6f75 7470 o the C/C++ outp
│ │ │ │ -000f5080: 7574 2e3c 2f70 3e0a 3c70 3e54 6865 2063 ut. The c
│ │ │ │ -000f5090: 6f6c 6f6e 206e 6f74 6174 696f 6e20 646f olon notation do
│ │ │ │ -000f50a0: 6573 206e 6f74 2061 766f 6964 206e 616d es not avoid nam
│ │ │ │ -000f50b0: 6520 636c 6173 6865 7320 6265 7477 6565 e clashes betwee
│ │ │ │ -000f50c0: 6e20 6d65 6d62 6572 732e 2046 6f72 2065 n members. For e
│ │ │ │ -000f50d0: 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 6976 xample:
│ │ │ │ -000f5220: 7265 7375 6c74 7320 696e 2061 2072 6564 results in a red
│ │ │ │ -000f5230: 6566 696e 6974 696f 6e20 6572 726f 722c efinition error,
│ │ │ │ -000f5240: 2073 696e 6365 2062 6f74 6820 6d65 6d62 since both memb
│ │ │ │ -000f5250: 6572 7320 6861 7665 2074 6865 2073 616d ers have the sam
│ │ │ │ -000f5260: 6520 6e61 6d65 2e20 546f 2061 766f 6964 e name. To avoid
│ │ │ │ -000f5270: 206e 616d 6520 636c 6173 6865 732c 2075 name clashes, u
│ │ │ │ -000f5280: 7365 2061 2075 6e64 6572 7363 6f72 6520 se a underscore
│ │ │ │ -000f5290: 7375 6666 6978 3a3c 2f70 3e0a 3c64 6976 suffix: Not that the na
│ │ │ │ -000f53f0: 6d65 7370 6163 6520 7072 6566 6978 2063 mespace prefix c
│ │ │ │ -000f5400: 6f6e 7665 6e74 696f 6e20 6361 6e20 6265 onvention can be
│ │ │ │ -000f5410: 2075 7365 6420 696e 7374 6561 643a 3c2f used instead:
│ │ │ │ -000f5420: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. The colon
│ │ │ │ +000f4ff0: 6e6f 7461 7469 6f6e 2069 7320 6120 7379 notation is a sy
│ │ │ │ +000f5000: 6e74 6163 7469 6320 6e6f 7461 7469 6f6e ntactic notation
│ │ │ │ +000f5010: 2075 7365 6420 6f6e 6c79 2069 6e20 7468 used only in th
│ │ │ │ +000f5020: 6520 696e 7465 7266 6163 6520 6865 6164 e interface head
│ │ │ │ +000f5030: 6572 2066 696c 6520 7379 6e74 6178 2c20 er file syntax,
│ │ │ │ +000f5040: 6974 2069 7320 6e6f 7420 7472 616e 736c it is not transl
│ │ │ │ +000f5050: 6174 6564 2074 6f20 7468 6520 432f 432b ated to the C/C+
│ │ │ │ +000f5060: 2b20 6f75 7470 7574 2e3c 2f70 3e0a 3c70 + output. The colon notat
│ │ │ │ +000f5080: 696f 6e20 646f 6573 206e 6f74 2061 766f ion does not avo
│ │ │ │ +000f5090: 6964 206e 616d 6520 636c 6173 6865 7320 id name clashes
│ │ │ │ +000f50a0: 6265 7477 6565 6e20 6d65 6d62 6572 732e between members.
│ │ │ │ +000f50b0: 2046 6f72 2065 7861 6d70 6c65 3a3c 2f70 For example: results in
│ │ │ │ +000f5210: 2061 2072 6564 6566 696e 6974 696f 6e20 a redefinition
│ │ │ │ +000f5220: 6572 726f 722c 2073 696e 6365 2062 6f74 error, since bot
│ │ │ │ +000f5230: 6820 6d65 6d62 6572 7320 6861 7665 2074 h members have t
│ │ │ │ +000f5240: 6865 2073 616d 6520 6e61 6d65 2e20 546f he same name. To
│ │ │ │ +000f5250: 2061 766f 6964 206e 616d 6520 636c 6173 avoid name clas
│ │ │ │ +000f5260: 6865 732c 2075 7365 2061 2075 6e64 6572 hes, use a under
│ │ │ │ +000f5270: 7363 6f72 6520 7375 6666 6978 3a3c 2f70 score suffix: Not that
│ │ │ │ +000f53d0: 7468 6520 6e61 6d65 7370 6163 6520 7072 the namespace pr
│ │ │ │ +000f53e0: 6566 6978 2063 6f6e 7665 6e74 696f 6e20 efix convention
│ │ │ │ +000f53f0: 6361 6e20 6265 2075 7365 6420 696e 7374 can be used inst
│ │ │ │ +000f5400: 6561 643a 3c2f 703e 0a3c 6469 7620 636c ead: which av
│ │ │ │ -000f5570: 6f69 6473 2074 6865 206e 616d 6520 636c oids the name cl
│ │ │ │ -000f5580: 6173 682e 2048 6f77 6576 6572 2c20 7468 ash. However, th
│ │ │ │ -000f5590: 6520 7265 7375 6c74 696e 6720 7363 6865 e resulting sche
│ │ │ │ -000f55a0: 6d61 2069 7320 6469 6666 6572 656e 7420 ma is different
│ │ │ │ -000f55b0: 7369 6e63 6520 7468 6520 6c61 7374 2065 since the last e
│ │ │ │ -000f55c0: 7861 6d70 6c65 2067 656e 6572 6174 6573 xample generates
│ │ │ │ -000f55d0: 2061 2067 6c6f 6261 6c20 3c63 6f64 653e a global M
│ │ │ │ -000f5630: 6f72 6520 7370 6563 6966 6963 616c 6c79 ore specifically
│ │ │ │ -000f5640: 2c20 7468 6520 6469 6666 6572 656e 6365 , the difference
│ │ │ │ -000f5650: 2062 6574 7765 656e 2074 6865 206e 616d between the nam
│ │ │ │ -000f5660: 6573 7061 6365 2070 7265 6669 7820 636f espace prefix co
│ │ │ │ -000f5670: 6e76 656e 7469 6f6e 2077 6974 6820 646f nvention with do
│ │ │ │ -000f5680: 7562 6c65 2075 6e64 6572 7363 6f72 6573 uble underscores
│ │ │ │ -000f5690: 2061 6e64 2063 6f6c 6f6e 206e 6f74 6174 and colon notat
│ │ │ │ -000f56a0: 696f 6e20 6973 2074 6861 7420 7468 6520 ion is that the
│ │ │ │ -000f56b0: 6e61 6d65 7370 6163 6520 7072 6566 6978 namespace prefix
│ │ │ │ -000f56c0: 2063 6f6e 7665 6e74 696f 6e20 6765 6e65 convention gene
│ │ │ │ -000f56d0: 7261 7465 7320 7363 6865 6d61 2065 6c65 rates schema ele
│ │ │ │ -000f56e0: 6d65 6e74 2f61 7474 7269 6275 7465 2072 ment/attribute r
│ │ │ │ -000f56f0: 6566 6572 656e 6365 7320 746f 2065 6c65 eferences to ele
│ │ │ │ -000f5700: 6d65 6e74 732f 6174 7472 6962 7574 6573 ments/attributes
│ │ │ │ -000f5710: 2061 7420 7468 6520 746f 7020 6c65 7665 at the top leve
│ │ │ │ -000f5720: 6c2c 2077 6869 6c65 2074 6865 2063 6f6c l, while the col
│ │ │ │ -000f5730: 6f6e 206e 6f74 6174 696f 6e20 6f6e 6c79 on notation only
│ │ │ │ -000f5740: 2061 6666 6563 7473 2074 6865 206c 6f63 affects the loc
│ │ │ │ -000f5750: 616c 2065 6c65 6d65 6e74 2f61 7474 7269 al element/attri
│ │ │ │ -000f5760: 6275 7465 206e 616d 6573 7061 6365 2071 bute namespace q
│ │ │ │ -000f5770: 7561 6c69 6669 6361 7469 6f6e 2062 7920 ualification by
│ │ │ │ -000f5780: 666f 726d 206f 7665 7272 6964 696e 672e form overriding.
│ │ │ │ -000f5790: 2054 6869 7320 6973 2062 6573 7420 696c This is best il
│ │ │ │ -000f57a0: 6c75 7374 7261 7465 6420 6279 2061 6e20 lustrated by an
│ │ │ │ -000f57b0: 6578 616d 706c 653a 3c2f 703e 0a3c 6469 example: whi
│ │ │ │ -000f59a0: 6368 2067 656e 6572 6174 6573 2074 6865 ch generates the
│ │ │ │ -000f59b0: 2066 6f6c 6c6f 7769 6e67 203c 656d 3e3c following <
│ │ │ │ -000f59c0: 636f 6465 3e78 2e78 7364 3c2f 636f 6465 code>x.xsdschema: a
│ │ │ │ -000f6430: 6e64 2074 6865 203c 656d 3e3c 636f 6465 nd the See also C and C
│ │ │ │ -000f65f0: 2b2b 2058 4d4c 2064 6174 6120 6269 6e64 ++ XML data bind
│ │ │ │ -000f6600: 696e 6773 3c2f 613e 2064 6f63 756d 656e ings documen
│ │ │ │ -000f6610: 7461 7469 6f6e 2066 6f72 206d 6f72 6520 tation for more
│ │ │ │ -000f6620: 6465 7461 696c 732e 3c2f 703e 0a3c 703e details.
│ │ │ │ -000f6630: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ -000f6650: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ -000f6660: 703e 0a3c 6831 3e3c 6120 636c 6173 733d p>. wh
│ │ │ │ +000f5550: 6963 6820 6176 6f69 6473 2074 6865 206e ich avoids the n
│ │ │ │ +000f5560: 616d 6520 636c 6173 682e 2048 6f77 6576 ame clash. Howev
│ │ │ │ +000f5570: 6572 2c20 7468 6520 7265 7375 6c74 696e er, the resultin
│ │ │ │ +000f5580: 6720 7363 6865 6d61 2069 7320 6469 6666 g schema is diff
│ │ │ │ +000f5590: 6572 656e 7420 7369 6e63 6520 7468 6520 erent since the
│ │ │ │ +000f55a0: 6c61 7374 2065 7861 6d70 6c65 2067 656e last example gen
│ │ │ │ +000f55b0: 6572 6174 6573 2061 2067 6c6f 6261 6c20 erates a global
│ │ │ │ +000f55c0: 3c63 6f64 653e 6e61 6d65 3c2f 636f 6465 More specif
│ │ │ │ +000f5620: 6963 616c 6c79 2c20 7468 6520 6469 6666 ically, the diff
│ │ │ │ +000f5630: 6572 656e 6365 2062 6574 7765 656e 2074 erence between t
│ │ │ │ +000f5640: 6865 206e 616d 6573 7061 6365 2070 7265 he namespace pre
│ │ │ │ +000f5650: 6669 7820 636f 6e76 656e 7469 6f6e 2077 fix convention w
│ │ │ │ +000f5660: 6974 6820 646f 7562 6c65 2075 6e64 6572 ith double under
│ │ │ │ +000f5670: 7363 6f72 6573 2061 6e64 2063 6f6c 6f6e scores and colon
│ │ │ │ +000f5680: 206e 6f74 6174 696f 6e20 6973 2074 6861 notation is tha
│ │ │ │ +000f5690: 7420 7468 6520 6e61 6d65 7370 6163 6520 t the namespace
│ │ │ │ +000f56a0: 7072 6566 6978 2063 6f6e 7665 6e74 696f prefix conventio
│ │ │ │ +000f56b0: 6e20 6765 6e65 7261 7465 7320 7363 6865 n generates sche
│ │ │ │ +000f56c0: 6d61 2065 6c65 6d65 6e74 2f61 7474 7269 ma element/attri
│ │ │ │ +000f56d0: 6275 7465 2072 6566 6572 656e 6365 7320 bute references
│ │ │ │ +000f56e0: 746f 2065 6c65 6d65 6e74 732f 6174 7472 to elements/attr
│ │ │ │ +000f56f0: 6962 7574 6573 2061 7420 7468 6520 746f ibutes at the to
│ │ │ │ +000f5700: 7020 6c65 7665 6c2c 2077 6869 6c65 2074 p level, while t
│ │ │ │ +000f5710: 6865 2063 6f6c 6f6e 206e 6f74 6174 696f he colon notatio
│ │ │ │ +000f5720: 6e20 6f6e 6c79 2061 6666 6563 7473 2074 n only affects t
│ │ │ │ +000f5730: 6865 206c 6f63 616c 2065 6c65 6d65 6e74 he local element
│ │ │ │ +000f5740: 2f61 7474 7269 6275 7465 206e 616d 6573 /attribute names
│ │ │ │ +000f5750: 7061 6365 2071 7561 6c69 6669 6361 7469 pace qualificati
│ │ │ │ +000f5760: 6f6e 2062 7920 666f 726d 206f 7665 7272 on by form overr
│ │ │ │ +000f5770: 6964 696e 672e 2054 6869 7320 6973 2062 iding. This is b
│ │ │ │ +000f5780: 6573 7420 696c 6c75 7374 7261 7465 6420 est illustrated
│ │ │ │ +000f5790: 6279 2061 6e20 6578 616d 706c 653a 3c2f by an example:
│ │ │ │ +000f57a0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. which generat
│ │ │ │ +000f5990: 6573 2074 6865 2066 6f6c 6c6f 7769 6e67 es the following
│ │ │ │ +000f59a0: 203c 656d 3e3c 636f 6465 3e78 2e78 7364 and the See al
│ │ │ │ +000f65a0: 736f 203c 6120 6872 6566 3d22 2e2e 2f2e so C
│ │ │ │ +000f65d0: 2061 6e64 2043 2b2b 2058 4d4c 2064 6174 and C++ XML dat
│ │ │ │ +000f65e0: 6120 6269 6e64 696e 6773 3c2f 613e 2064 a bindings d
│ │ │ │ +000f65f0: 6f63 756d 656e 7461 7469 6f6e 2066 6f72 ocumentation for
│ │ │ │ +000f6600: 206d 6f72 6520 6465 7461 696c 732e 3c2f more details.
│ │ │ │ +000f6610: 703e 0a3c 703e f09f 949d 203c 6120 6872 p>. A namesp
│ │ │ │ +000f66b0: 6163 6520 6d61 7070 696e 6720 7461 626c ace mapping tabl
│ │ │ │ +000f66c0: 6520 7368 6f75 6c64 2062 6520 696e 636c e should be incl
│ │ │ │ +000f66d0: 7564 6564 2069 6e20 7468 6520 736f 7572 uded in the sour
│ │ │ │ +000f66e0: 6365 2063 6f64 6520 6f66 2063 6c69 656e ce code of clien
│ │ │ │ +000f66f0: 7420 616e 6420 7365 7276 6963 6520 6170 t and service ap
│ │ │ │ +000f6700: 706c 6963 6174 696f 6e73 2e20 5468 6520 plications. The
│ │ │ │ +000f6710: 6d61 7070 696e 6720 7461 626c 6520 6973 mapping table is
│ │ │ │ +000f6720: 2075 7365 6420 6279 2074 6865 2073 6572 used by the ser
│ │ │ │ +000f6730: 6961 6c69 7a65 7273 2061 6e64 2064 6573 ializers and des
│ │ │ │ +000f6740: 6572 6961 6c69 7a65 7273 206f 6620 7468 erializers of th
│ │ │ │ +000f6750: 6520 7374 7562 2061 6e64 2073 6b65 6c65 e stub and skele
│ │ │ │ +000f6760: 746f 6e20 6675 6e63 7469 6f6e 7320 746f ton functions to
│ │ │ │ +000f6770: 2070 726f 6475 6365 2076 616c 6964 2058 produce valid X
│ │ │ │ +000f6780: 4d4c 206d 6573 7361 6765 7320 616e 6420 ML messages and
│ │ │ │ +000f6790: 746f 2070 6172 7365 2061 6e64 2076 616c to parse and val
│ │ │ │ +000f67a0: 6964 6174 6520 584d 4c20 6d65 7373 6167 idate XML messag
│ │ │ │ +000f67b0: 6573 2e20 4120 7479 7069 6361 6c20 6d61 es. A typical ma
│ │ │ │ +000f67c0: 7070 696e 6720 7461 626c 6520 6973 2073 pping table is s
│ │ │ │ +000f67d0: 686f 776e 2062 656c 6f77 3a3c 2f70 3e0a hown below: E
│ │ │ │ -000f6e90: 6163 6820 6e61 6d65 7370 6163 6520 7072 ach namespace pr
│ │ │ │ -000f6ea0: 6566 6978 2075 7365 6420 6279 2061 2069 efix used by a i
│ │ │ │ -000f6eb0: 6465 6e74 6966 6965 7220 6e61 6d65 2069 dentifier name i
│ │ │ │ -000f6ec0: 6e20 7468 6520 6865 6164 6572 2066 696c n the header fil
│ │ │ │ -000f6ed0: 6520 7370 6563 6966 6963 6174 696f 6e2c e specification,
│ │ │ │ -000f6ee0: 2073 6565 2053 6563 7469 6f6e 203c 6120 see Section C/C++ ident
│ │ │ │ -000f6f20: 6966 6965 7220 6e61 6d65 2074 6f20 584d ifier name to XM
│ │ │ │ -000f6f30: 4c20 7461 6720 6e61 6d65 2074 7261 6e73 L tag name trans
│ │ │ │ -000f6f40: 6c61 7469 6f6e 3c2f 613e 2c20 6d75 7374 lation, must
│ │ │ │ -000f6f50: 2068 6176 6520 6120 6269 6e64 696e 6720 have a binding
│ │ │ │ -000f6f60: 746f 2061 206e 616d 6573 7061 6365 2055 to a namespace U
│ │ │ │ -000f6f70: 5249 2069 6e20 7468 6520 6d61 7070 696e RI in the mappin
│ │ │ │ -000f6f80: 6720 7461 626c 652e 2054 6865 2065 6e64 g table. The end
│ │ │ │ -000f6f90: 206f 6620 7468 6520 6e61 6d65 7370 6163 of the namespac
│ │ │ │ -000f6fa0: 6520 6d61 7070 696e 6720 7461 626c 6520 e mapping table
│ │ │ │ -000f6fb0: 6d75 7374 2062 6520 696e 6469 6361 7465 must be indicate
│ │ │ │ -000f6fc0: 6420 6279 2074 6865 204e 554c 4c20 7061 d by the NULL pa
│ │ │ │ -000f6fd0: 6972 2e20 5468 6520 6e61 6d65 7370 6163 ir. The namespac
│ │ │ │ -000f6fe0: 6520 5552 4920 6d61 7463 6869 6e67 2069 e URI matching i
│ │ │ │ -000f6ff0: 7320 6361 7365 2069 6e73 656e 7369 7469 s case insensiti
│ │ │ │ -000f7000: 7665 2e20 4120 6e61 6d65 7370 6163 6520 ve. A namespace
│ │ │ │ -000f7010: 7072 6566 6978 2069 7320 6469 7374 696e prefix is distin
│ │ │ │ -000f7020: 6775 6973 6865 6420 6279 2074 6865 206f guished by the o
│ │ │ │ -000f7030: 6363 7572 7265 6e63 6520 6f66 2061 2070 ccurrence of a p
│ │ │ │ -000f7040: 6169 7220 6f66 2075 6e64 6572 7363 6f72 air of underscor
│ │ │ │ -000f7050: 6573 2028 3c63 6f64 653e 5f5f 3c2f 636f es ( An optional
│ │ │ │ -000f7110: 7468 6972 6420 636f 6c75 6d6e 2069 6e20 third column in
│ │ │ │ -000f7120: 7468 6520 6e61 6d65 7370 6163 6520 6d61 the namespace ma
│ │ │ │ -000f7130: 7070 696e 6720 7461 626c 6520 6d61 7920 pping table may
│ │ │ │ -000f7140: 6265 2073 7065 6369 6669 6564 2074 6861 be specified tha
│ │ │ │ -000f7150: 7420 636f 6e74 6169 6e73 2061 206e 616d t contains a nam
│ │ │ │ -000f7160: 6573 7061 6365 2055 5249 2070 6174 7465 espace URI patte
│ │ │ │ -000f7170: 726e 2e20 5468 6520 7061 7474 6572 6e73 rn. The patterns
│ │ │ │ -000f7180: 2070 726f 7669 6465 2061 6e20 616c 7465 provide an alte
│ │ │ │ -000f7190: 726e 6174 6976 6520 6e61 6d65 7370 6163 rnative namespac
│ │ │ │ -000f71a0: 6520 666f 7220 7468 6520 7661 6c69 6461 e for the valida
│ │ │ │ -000f71b0: 7469 6f6e 206f 6620 7061 7273 6564 2058 tion of parsed X
│ │ │ │ -000f71c0: 4d4c 206d 6573 7361 6765 732e 2049 6e20 ML messages. In
│ │ │ │ -000f71d0: 7468 6973 2070 6174 7465 726e 2c20 6461 this pattern, da
│ │ │ │ -000f71e0: 7368 6573 2028 3c63 6f64 653e 2d3c 2f63 shes ( Or al
│ │ │ │ -000f7940: 7465 726e 6174 6976 656c 792c 2061 7374 ternatively, ast
│ │ │ │ -000f7950: 6572 6973 6b73 2063 616e 2062 6520 7573 erisks can be us
│ │ │ │ -000f7960: 6564 2061 7320 7769 6c64 6361 7264 7320 ed as wildcards
│ │ │ │ -000f7970: 666f 7220 6d75 6c74 6970 6c65 2063 6861 for multiple cha
│ │ │ │ -000f7980: 7261 6374 6572 733a 3c2f 703e 0a3c 6469 racters: Or alternativel
│ │ │ │ +000f7930: 792c 2061 7374 6572 6973 6b73 2063 616e y, asterisks can
│ │ │ │ +000f7940: 2062 6520 7573 6564 2061 7320 7769 6c64 be used as wild
│ │ │ │ +000f7950: 6361 7264 7320 666f 7220 6d75 6c74 6970 cards for multip
│ │ │ │ +000f7960: 6c65 2063 6861 7261 6374 6572 733a 3c2f le characters:
│ │ │ │ +000f7970: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. A names
│ │ │ │ -000f7fc0: 7061 6365 206d 6170 7069 6e67 2074 6162 pace mapping tab
│ │ │ │ -000f7fd0: 6c65 2069 7320 6175 746f 6d61 7469 6361 le is automatica
│ │ │ │ -000f7fe0: 6c6c 7920 6765 6e65 7261 7465 6420 7769 lly generated wi
│ │ │ │ -000f7ff0: 7468 2070 7265 6669 7865 7320 616e 6420 th prefixes and
│ │ │ │ -000f8000: 5552 4973 2069 6e20 7468 6520 7461 626c URIs in the tabl
│ │ │ │ -000f8010: 6520 7468 6174 2061 7265 2064 6563 6c61 e that are decla
│ │ │ │ -000f8020: 7265 6420 7769 7468 203c 636f 6465 3e2f red with When parsi
│ │ │ │ -000f8220: 6e67 2058 4d4c 2061 6e64 2064 6573 6572 ng XML and deser
│ │ │ │ -000f8230: 6961 6c69 7a69 6e67 2064 6174 612c 206e ializing data, n
│ │ │ │ -000f8240: 616d 6573 7061 6365 2055 5249 7320 696e amespace URIs in
│ │ │ │ -000f8250: 2074 6865 2058 4d4c 206d 6573 7361 6765 the XML message
│ │ │ │ -000f8260: 7320 6172 6520 6d61 7463 6865 6420 6167 s are matched ag
│ │ │ │ -000f8270: 6169 6e73 7420 7468 6520 7365 636f 6e64 ainst the second
│ │ │ │ -000f8280: 2061 6e64 2074 6869 7264 2063 6f6c 756d and third colum
│ │ │ │ -000f8290: 6e20 6f66 2074 6865 206e 616d 6573 7061 n of the namespa
│ │ │ │ -000f82a0: 6365 206d 6170 7069 6e67 2074 6162 6c65 ce mapping table
│ │ │ │ -000f82b0: 2c20 7365 6172 6368 696e 6720 6672 6f6d , searching from
│ │ │ │ -000f82c0: 2074 6865 2074 6f70 2074 6f20 7468 6520 the top to the
│ │ │ │ -000f82d0: 626f 7474 6f6d 206f 6620 7468 6520 7461 bottom of the ta
│ │ │ │ -000f82e0: 626c 652e 2054 6865 2061 6374 7561 6c20 ble. The actual
│ │ │ │ -000f82f0: 7072 6566 6978 2075 7365 6420 696e 2074 prefix used in t
│ │ │ │ -000f8300: 6865 2058 4d4c 206d 6573 7361 6765 2069 he XML message i
│ │ │ │ -000f8310: 7320 6972 7265 6c65 7661 6e74 2061 7320 s irrelevant as
│ │ │ │ -000f8320: 7468 6520 5552 4920 6173 736f 6369 6174 the URI associat
│ │ │ │ -000f8330: 6564 2077 6974 6820 7468 6520 7072 6566 ed with the pref
│ │ │ │ -000f8340: 6978 2069 7320 7265 6c65 7661 6e74 2074 ix is relevant t
│ │ │ │ -000f8350: 6f20 6465 6669 6e65 2074 6865 2058 4d4c o define the XML
│ │ │ │ -000f8360: 206e 616d 6573 7061 6365 2074 6f20 7768 namespace to wh
│ │ │ │ -000f8370: 6963 6820 6120 7175 616c 6966 6965 6420 ich a qualified
│ │ │ │ -000f8380: 656c 656d 656e 7420 6f72 2061 7474 7269 element or attri
│ │ │ │ -000f8390: 6275 7465 2062 656c 6f6e 6773 2e20 5768 bute belongs. Wh
│ │ │ │ -000f83a0: 656e 2061 206d 6174 6368 2069 7320 666f en a match is fo
│ │ │ │ -000f83b0: 756e 642c 2074 6865 206e 616d 6573 7061 und, the namespa
│ │ │ │ -000f83c0: 6365 2070 7265 6669 7820 696e 2074 6865 ce prefix in the
│ │ │ │ -000f83d0: 2066 6972 7374 2063 6f6c 756d 6e20 6f66 first column of
│ │ │ │ -000f83e0: 2074 6865 2074 6162 6c65 2069 7320 636f the table is co
│ │ │ │ -000f83f0: 6e73 6964 6572 6564 2073 656d 616e 7469 nsidered semanti
│ │ │ │ -000f8400: 6361 6c6c 7920 6964 656e 7469 6361 6c20 cally identical
│ │ │ │ -000f8410: 746f 2074 6865 206e 616d 6573 7061 6365 to the namespace
│ │ │ │ -000f8420: 2070 7265 6669 7820 7573 6564 2062 7920 prefix used by
│ │ │ │ -000f8430: 7468 6520 7175 616c 6966 6965 6420 584d the qualified XM
│ │ │ │ -000f8440: 4c20 656c 656d 656e 7420 616e 6420 6174 L element and at
│ │ │ │ -000f8450: 7472 6962 7574 6520 7061 7273 6564 2c20 tribute parsed,
│ │ │ │ -000f8460: 6576 656e 2077 6865 6e20 7468 6520 7072 even when the pr
│ │ │ │ -000f8470: 6566 6978 206e 616d 6573 2064 6966 6665 efix names diffe
│ │ │ │ -000f8480: 722e 2054 6869 7320 6e6f 726d 616c 697a r. This normaliz
│ │ │ │ -000f8490: 6174 696f 6e20 6f66 2070 7265 6669 7865 ation of prefixe
│ │ │ │ -000f84a0: 7320 6973 2069 6e76 6973 6962 6c65 2074 s is invisible t
│ │ │ │ -000f84b0: 6f20 7468 6520 7573 6572 206f 6620 6753 o the user of gS
│ │ │ │ -000f84c0: 4f41 5020 616e 6420 6d61 6b65 7320 636f OAP and makes co
│ │ │ │ -000f84d0: 6469 6e67 2077 6974 6820 584d 4c20 6561 ding with XML ea
│ │ │ │ -000f84e0: 7369 6572 2e20 466f 7220 6578 616d 706c sier. For exampl
│ │ │ │ -000f84f0: 652c 2077 6865 6e20 5853 4420 514e 616d e, when XSD QNam
│ │ │ │ -000f8500: 6573 2061 7265 2070 6172 7365 6420 696e es are parsed in
│ │ │ │ -000f8510: 746f 2073 7472 696e 6773 2075 7369 6e67 to strings using
│ │ │ │ -000f8520: 2074 6865 2062 7569 6c74 2d69 6e20 736f the built-in so
│ │ │ │ -000f8530: 6170 6370 7032 203c 636f 6465 3e5f 514e apcpp2 For examp
│ │ │ │ -000f86b0: 6c65 2c20 6c65 7427 7320 7361 7920 7765 le, let's say we
│ │ │ │ -000f86c0: 2068 6176 6520 7468 6520 666f 6c6c 6f77 have the follow
│ │ │ │ -000f86d0: 696e 6720 7374 7275 6374 733a 3c2f 703e ing structs: The name
│ │ │ │ -000f8800: 7370 6163 6520 6d61 7070 696e 6720 7461 space mapping ta
│ │ │ │ -000f8810: 626c 6520 6765 6e65 7261 7465 6420 6279 ble generated by
│ │ │ │ -000f8820: 2073 6f61 7063 7070 3220 6861 7320 7468 soapcpp2 has th
│ │ │ │ -000f8830: 6520 666f 6c6c 6f77 696e 6720 656e 7472 e following entr
│ │ │ │ -000f8840: 6965 733a 3c2f 703e 0a3c 6469 7620 636c ies: A
│ │ │ │ +000f7fa0: 206e 616d 6573 7061 6365 206d 6170 7069 namespace mappi
│ │ │ │ +000f7fb0: 6e67 2074 6162 6c65 2069 7320 6175 746f ng table is auto
│ │ │ │ +000f7fc0: 6d61 7469 6361 6c6c 7920 6765 6e65 7261 matically genera
│ │ │ │ +000f7fd0: 7465 6420 7769 7468 2070 7265 6669 7865 ted with prefixe
│ │ │ │ +000f7fe0: 7320 616e 6420 5552 4973 2069 6e20 7468 s and URIs in th
│ │ │ │ +000f7ff0: 6520 7461 626c 6520 7468 6174 2061 7265 e table that are
│ │ │ │ +000f8000: 2064 6563 6c61 7265 6420 7769 7468 203c declared with <
│ │ │ │ +000f8010: 636f 6465 3e2f 2f67 736f 6170 2026 6c74 code>//gsoap <
│ │ │ │ +000f8020: 3b70 7265 6669 7826 6774 3b20 7363 6865 ;prefix> sche
│ │ │ │ +000f8030: 6d61 206e 616d 6573 7061 6365 3a3c 2f63 ma namespace: directives
│ │ │ │ +000f8050: 696e 2074 6865 2069 6e74 6572 6661 6365 in the interface
│ │ │ │ +000f8060: 2068 6561 6465 7220 6669 6c65 2c20 7365 header file, se
│ │ │ │ +000f8070: 6520 5365 6374 696f 6e20 3c61 2063 6c61 e Section Directives<
│ │ │ │ +000f80b0: 2f61 3e2e 2049 6620 6469 7265 6374 6976 /a>. If directiv
│ │ │ │ +000f80c0: 6573 2061 7265 206e 6f74 2070 726f 7669 es are not provi
│ │ │ │ +000f80d0: 6465 6420 696e 2074 6865 2068 6561 6465 ded in the heade
│ │ │ │ +000f80e0: 7220 6669 6c65 2074 6865 6e20 6465 6661 r file then defa
│ │ │ │ +000f80f0: 756c 7420 5552 4973 206f 6620 7468 6520 ult URIs of the
│ │ │ │ +000f8100: 666f 726d 203c 656d 3e3c 636f 6465 3e3c form When
│ │ │ │ +000f8200: 2070 6172 7369 6e67 2058 4d4c 2061 6e64 parsing XML and
│ │ │ │ +000f8210: 2064 6573 6572 6961 6c69 7a69 6e67 2064 deserializing d
│ │ │ │ +000f8220: 6174 612c 206e 616d 6573 7061 6365 2055 ata, namespace U
│ │ │ │ +000f8230: 5249 7320 696e 2074 6865 2058 4d4c 206d RIs in the XML m
│ │ │ │ +000f8240: 6573 7361 6765 7320 6172 6520 6d61 7463 essages are matc
│ │ │ │ +000f8250: 6865 6420 6167 6169 6e73 7420 7468 6520 hed against the
│ │ │ │ +000f8260: 7365 636f 6e64 2061 6e64 2074 6869 7264 second and third
│ │ │ │ +000f8270: 2063 6f6c 756d 6e20 6f66 2074 6865 206e column of the n
│ │ │ │ +000f8280: 616d 6573 7061 6365 206d 6170 7069 6e67 amespace mapping
│ │ │ │ +000f8290: 2074 6162 6c65 2c20 7365 6172 6368 696e table, searchin
│ │ │ │ +000f82a0: 6720 6672 6f6d 2074 6865 2074 6f70 2074 g from the top t
│ │ │ │ +000f82b0: 6f20 7468 6520 626f 7474 6f6d 206f 6620 o the bottom of
│ │ │ │ +000f82c0: 7468 6520 7461 626c 652e 2054 6865 2061 the table. The a
│ │ │ │ +000f82d0: 6374 7561 6c20 7072 6566 6978 2075 7365 ctual prefix use
│ │ │ │ +000f82e0: 6420 696e 2074 6865 2058 4d4c 206d 6573 d in the XML mes
│ │ │ │ +000f82f0: 7361 6765 2069 7320 6972 7265 6c65 7661 sage is irreleva
│ │ │ │ +000f8300: 6e74 2061 7320 7468 6520 5552 4920 6173 nt as the URI as
│ │ │ │ +000f8310: 736f 6369 6174 6564 2077 6974 6820 7468 sociated with th
│ │ │ │ +000f8320: 6520 7072 6566 6978 2069 7320 7265 6c65 e prefix is rele
│ │ │ │ +000f8330: 7661 6e74 2074 6f20 6465 6669 6e65 2074 vant to define t
│ │ │ │ +000f8340: 6865 2058 4d4c 206e 616d 6573 7061 6365 he XML namespace
│ │ │ │ +000f8350: 2074 6f20 7768 6963 6820 6120 7175 616c to which a qual
│ │ │ │ +000f8360: 6966 6965 6420 656c 656d 656e 7420 6f72 ified element or
│ │ │ │ +000f8370: 2061 7474 7269 6275 7465 2062 656c 6f6e attribute belon
│ │ │ │ +000f8380: 6773 2e20 5768 656e 2061 206d 6174 6368 gs. When a match
│ │ │ │ +000f8390: 2069 7320 666f 756e 642c 2074 6865 206e is found, the n
│ │ │ │ +000f83a0: 616d 6573 7061 6365 2070 7265 6669 7820 amespace prefix
│ │ │ │ +000f83b0: 696e 2074 6865 2066 6972 7374 2063 6f6c in the first col
│ │ │ │ +000f83c0: 756d 6e20 6f66 2074 6865 2074 6162 6c65 umn of the table
│ │ │ │ +000f83d0: 2069 7320 636f 6e73 6964 6572 6564 2073 is considered s
│ │ │ │ +000f83e0: 656d 616e 7469 6361 6c6c 7920 6964 656e emantically iden
│ │ │ │ +000f83f0: 7469 6361 6c20 746f 2074 6865 206e 616d tical to the nam
│ │ │ │ +000f8400: 6573 7061 6365 2070 7265 6669 7820 7573 espace prefix us
│ │ │ │ +000f8410: 6564 2062 7920 7468 6520 7175 616c 6966 ed by the qualif
│ │ │ │ +000f8420: 6965 6420 584d 4c20 656c 656d 656e 7420 ied XML element
│ │ │ │ +000f8430: 616e 6420 6174 7472 6962 7574 6520 7061 and attribute pa
│ │ │ │ +000f8440: 7273 6564 2c20 6576 656e 2077 6865 6e20 rsed, even when
│ │ │ │ +000f8450: 7468 6520 7072 6566 6978 206e 616d 6573 the prefix names
│ │ │ │ +000f8460: 2064 6966 6665 722e 2054 6869 7320 6e6f differ. This no
│ │ │ │ +000f8470: 726d 616c 697a 6174 696f 6e20 6f66 2070 rmalization of p
│ │ │ │ +000f8480: 7265 6669 7865 7320 6973 2069 6e76 6973 refixes is invis
│ │ │ │ +000f8490: 6962 6c65 2074 6f20 7468 6520 7573 6572 ible to the user
│ │ │ │ +000f84a0: 206f 6620 6753 4f41 5020 616e 6420 6d61 of gSOAP and ma
│ │ │ │ +000f84b0: 6b65 7320 636f 6469 6e67 2077 6974 6820 kes coding with
│ │ │ │ +000f84c0: 584d 4c20 6561 7369 6572 2e20 466f 7220 XML easier. For
│ │ │ │ +000f84d0: 6578 616d 706c 652c 2077 6865 6e20 5853 example, when XS
│ │ │ │ +000f84e0: 4420 514e 616d 6573 2061 7265 2070 6172 D QNames are par
│ │ │ │ +000f84f0: 7365 6420 696e 746f 2073 7472 696e 6773 sed into strings
│ │ │ │ +000f8500: 2075 7369 6e67 2074 6865 2062 7569 6c74 using the built
│ │ │ │ +000f8510: 2d69 6e20 736f 6170 6370 7032 203c 636f -in soapcpp2 For
│ │ │ │ +000f8690: 2065 7861 6d70 6c65 2c20 6c65 7427 7320 example, let's
│ │ │ │ +000f86a0: 7361 7920 7765 2068 6176 6520 7468 6520 say we have the
│ │ │ │ +000f86b0: 666f 6c6c 6f77 696e 6720 7374 7275 6374 following struct
│ │ │ │ +000f86c0: 733a 3c2f 703e 0a3c 6469 7620 636c 6173 s: Th
│ │ │ │ +000f87e0: 6520 6e61 6d65 7370 6163 6520 6d61 7070 e namespace mapp
│ │ │ │ +000f87f0: 696e 6720 7461 626c 6520 6765 6e65 7261 ing table genera
│ │ │ │ +000f8800: 7465 6420 6279 2073 6f61 7063 7070 3220 ted by soapcpp2
│ │ │ │ +000f8810: 6861 7320 7468 6520 666f 6c6c 6f77 696e has the followin
│ │ │ │ +000f8820: 6720 656e 7472 6965 733a 3c2f 703e 0a3c g entries: Then, the fol
│ │ │ │ -000f8cc0: 6c6f 7769 6e67 2058 4d4c 2065 6c65 6d65 lowing XML eleme
│ │ │ │ -000f8cd0: 6e74 7320 7769 6c6c 206d 6174 6368 2074 nts will match t
│ │ │ │ -000f8ce0: 6865 7365 2073 7472 7563 7473 3a3c 2f70 hese structs: Likewise
│ │ │ │ -000f9850: 2c20 6f6e 2074 6865 2073 6572 7665 7220 , on the server
│ │ │ │ -000f9860: 7369 6465 2063 616c 6c20 3c63 6f64 653e side call The XML mess
│ │ │ │ -000f9a40: 6167 6573 2070 726f 6475 6365 6420 6279 ages produced by
│ │ │ │ -000f9a50: 2074 6865 2067 534f 4150 2065 6e67 696e the gSOAP engin
│ │ │ │ -000f9a60: 6520 696e 636c 7564 6520 616c 6c20 3c65 e include all .... <
│ │ │ │ -000f9de0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -000f9df0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -000f9e00: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6831 ents A built-in SO
│ │ │ │ -000f9e60: 4150 2048 6561 6465 7220 6461 7461 2073 AP Header data s
│ │ │ │ -000f9e70: 7472 7563 7475 7265 203c 636f 6465 3e3c tructure You can c
│ │ │ │ -000f9fe0: 7265 6174 6520 796f 7572 206f 776e 2053 reate your own S
│ │ │ │ -000f9ff0: 4f41 5020 4865 6164 6572 2073 7472 7563 OAP Header struc
│ │ │ │ -000fa000: 7420 7369 6d70 6c79 2062 7920 6465 636c t simply by decl
│ │ │ │ -000fa010: 6172 696e 6720 6974 2069 6e20 616e 2069 aring it in an i
│ │ │ │ -000fa020: 6e74 6572 6661 6365 2068 6561 6465 7220 nterface header
│ │ │ │ -000fa030: 6669 6c65 2066 6f72 2073 6f61 7063 7070 file for soapcpp
│ │ │ │ -000fa040: 3220 616e 6420 6279 2061 6464 696e 6720 2 and by adding
│ │ │ │ -000fa050: 6d65 6d62 6572 7320 7468 6174 206d 7573 members that mus
│ │ │ │ -000fa060: 7420 6265 2071 7561 6c69 6669 6564 2077 t be qualified w
│ │ │ │ -000fa070: 6974 6820 6e61 6d65 7370 6163 6520 7072 ith namespace pr
│ │ │ │ -000fa080: 6566 6978 6573 2074 6f20 636f 6e66 6f72 efixes to confor
│ │ │ │ -000fa090: 6d20 746f 2074 6865 2053 4f41 5020 4865 m to the SOAP He
│ │ │ │ -000fa0a0: 6164 6572 2070 726f 6365 7373 696e 6720 ader processing
│ │ │ │ -000fa0b0: 7265 7175 6972 656d 656e 7473 2074 6861 requirements tha
│ │ │ │ -000fa0c0: 7420 534f 4150 2048 6561 6465 7220 656c t SOAP Header el
│ │ │ │ -000fa0d0: 656d 656e 7473 206d 7573 7420 6265 206e ements must be n
│ │ │ │ -000fa0e0: 616d 6573 7061 6365 2071 7561 6c69 6669 amespace qualifi
│ │ │ │ -000fa0f0: 6564 2e3c 2f70 3e0a 3c70 3e46 6f72 2065 ed. For e
│ │ │ │ -000fa100: 7861 6d70 6c65 2c20 6173 7375 6d65 2074 xample, assume t
│ │ │ │ -000fa110: 6861 7420 7472 616e 7361 6374 696f 6e20 hat transaction
│ │ │ │ -000fa120: 6461 7461 2073 686f 756c 6420 6265 2070 data should be p
│ │ │ │ -000fa130: 6967 6779 2d62 6163 6b65 6420 7769 7468 iggy-backed with
│ │ │ │ -000fa140: 2053 4f41 5020 6d65 7373 6167 6573 2069 SOAP messages i
│ │ │ │ -000fa150: 6e20 534f 4150 2048 6561 6465 723a 3c2f n SOAP Header:
│ │ │ │ -000fa160: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. Then, t
│ │ │ │ +000f8ca0: 6865 2066 6f6c 6c6f 7769 6e67 2058 4d4c he following XML
│ │ │ │ +000f8cb0: 2065 6c65 6d65 6e74 7320 7769 6c6c 206d elements will m
│ │ │ │ +000f8cc0: 6174 6368 2074 6865 7365 2073 7472 7563 atch these struc
│ │ │ │ +000f8cd0: 7473 3a3c 2f70 3e0a 3c64 6976 2063 6c61 ts: Instead of one
│ │ │ │ +000f9010: 6269 6720 6e61 6d65 7370 6163 6520 7461 big namespace ta
│ │ │ │ +000f9020: 626c 6520 7468 6174 2063 6f6e 7461 696e ble that contain
│ │ │ │ +000f9030: 7320 616c 6c20 584d 4c20 6e61 6d65 7370 s all XML namesp
│ │ │ │ +000f9040: 6163 6520 7072 6566 6978 6573 2077 6974 ace prefixes wit
│ │ │ │ +000f9050: 6820 7468 6569 7220 5552 4973 2c20 7468 h their URIs, th
│ │ │ │ +000f9060: 6572 6520 6172 6520 6361 7365 7320 7768 ere are cases wh
│ │ │ │ +000f9070: 656e 2069 7420 6973 2064 6573 6972 6162 en it is desirab
│ │ │ │ +000f9080: 6c65 2074 6f20 7573 6520 6d75 6c74 6970 le to use multip
│ │ │ │ +000f9090: 6c65 206e 616d 6573 7061 6365 2074 6162 le namespace tab
│ │ │ │ +000f90a0: 6c65 732c 206f 6e65 2066 6f72 2065 6163 les, one for eac
│ │ │ │ +000f90b0: 6820 7365 7276 6963 652e 2054 6869 7320 h service. This
│ │ │ │ +000f90c0: 6176 6f69 6473 206c 6561 6b69 6e67 206e avoids leaking n
│ │ │ │ +000f90d0: 616d 6573 7061 6365 2070 7265 6669 7865 amespace prefixe
│ │ │ │ +000f90e0: 7320 696e 2058 4d4c 206d 6573 7361 6765 s in XML message
│ │ │ │ +000f90f0: 7320 7468 6174 2068 6176 6520 6e6f 7468 s that have noth
│ │ │ │ +000f9100: 696e 6720 746f 2064 6f20 7769 7468 2074 ing to do with t
│ │ │ │ +000f9110: 6865 2073 6572 7669 6365 2069 6e76 6f6b he service invok
│ │ │ │ +000f9120: 6564 2e20 496e 2070 7269 6e63 6970 6c65 ed. In principle
│ │ │ │ +000f9130: 2074 6865 7265 2069 7320 6e6f 2068 6172 there is no har
│ │ │ │ +000f9140: 6d20 746f 206c 6561 6b20 7468 6573 6520 m to leak these
│ │ │ │ +000f9150: 6e61 6d65 7370 6163 6520 7072 6566 6978 namespace prefix
│ │ │ │ +000f9160: 6573 2c20 6275 7420 7468 6520 6d65 7373 es, but the mess
│ │ │ │ +000f9170: 6167 6573 2061 7265 206c 6573 7320 636f ages are less co
│ │ │ │ +000f9180: 6d70 6163 7420 616e 6420 6e6f 7420 6173 mpact and not as
│ │ │ │ +000f9190: 2063 6c65 616e 2e20 546f 2075 7365 206d clean. To use m
│ │ │ │ +000f91a0: 756c 7469 706c 6520 6e61 6d65 7370 6163 ultiple namespac
│ │ │ │ +000f91b0: 6520 7461 626c 6573 2061 7420 7468 6520 e tables at the
│ │ │ │ +000f91c0: 636c 6965 6e74 2073 6964 6520 6973 2064 client side is d
│ │ │ │ +000f91d0: 6f6e 6520 6173 2066 6f6c 6c6f 7773 3a3c one as follows:<
│ │ │ │ +000f91e0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. Li
│ │ │ │ +000f9830: 6b65 7769 7365 2c20 6f6e 2074 6865 2073 kewise, on the s
│ │ │ │ +000f9840: 6572 7665 7220 7369 6465 2063 616c 6c20 erver side call
│ │ │ │ +000f9850: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 The XM
│ │ │ │ +000f9a20: 4c20 6d65 7373 6167 6573 2070 726f 6475 L messages produ
│ │ │ │ +000f9a30: 6365 6420 6279 2074 6865 2067 534f 4150 ced by the gSOAP
│ │ │ │ +000f9a40: 2065 6e67 696e 6520 696e 636c 7564 6520 engine include
│ │ │ │ +000f9a50: 616c 6c20 3c65 6d3e 3c63 6f64 653e 786d all
│ │ │ │ +000f9dc0: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +000f9de0: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +000f9df0: 703e 0a3c 6831 3e3c 6120 636c 6173 733d p>. A built
│ │ │ │ +000f9e40: 2d69 6e20 534f 4150 2048 6561 6465 7220 -in SOAP Header
│ │ │ │ +000f9e50: 6461 7461 2073 7472 7563 7475 7265 203c data structure <
│ │ │ │ +000f9e60: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>
│ │ │ │ +000f9ec0: 534f 4150 5f45 4e56 5f5f 4865 6164 6572 SOAP_ENV__Header
│ │ │ │ +000f9ed0: 3c2f 613e 3c2f 636f 6465 3e20 6973 2067 is g
│ │ │ │ +000f9ee0: 656e 6572 6174 6564 2062 7920 7468 6520 enerated by the
│ │ │ │ +000f9ef0: 736f 6170 6370 7032 2074 6f6f 6c20 666f soapcpp2 tool fo
│ │ │ │ +000f9f00: 7220 6578 6368 616e 6769 6e67 2053 4f41 r exchanging SOA
│ │ │ │ +000f9f10: 5020 6865 6164 6572 7320 696e 2053 4f41 P headers in SOA
│ │ │ │ +000f9f20: 5020 6d65 7373 6167 6573 2e20 5468 6973 P messages. This
│ │ │ │ +000f9f30: 2073 7472 7563 7475 7265 2069 7320 656d structure is em
│ │ │ │ +000f9f40: 7074 7920 756e 6c65 7373 2068 6561 6465 pty unless heade
│ │ │ │ +000f9f50: 7273 2061 7265 2061 6464 6564 2062 7920 rs are added by
│ │ │ │ +000f9f60: 706c 7567 696e 7320 616e 6420 6865 6164 plugins and head
│ │ │ │ +000f9f70: 6572 7320 7370 6563 6966 6965 6420 6279 ers specified by
│ │ │ │ +000f9f80: 2057 5344 4c20 7370 6563 6966 6963 6174 WSDL specificat
│ │ │ │ +000f9f90: 696f 6e73 2028 692e 652e 2077 7364 6c32 ions (i.e. wsdl2
│ │ │ │ +000f9fa0: 6820 6164 6473 2053 4f41 5020 4865 6164 h adds SOAP Head
│ │ │ │ +000f9fb0: 6572 7329 2e3c 2f70 3e0a 3c70 3e59 6f75 ers). You
│ │ │ │ +000f9fc0: 2063 616e 2063 7265 6174 6520 796f 7572 can create your
│ │ │ │ +000f9fd0: 206f 776e 2053 4f41 5020 4865 6164 6572 own SOAP Header
│ │ │ │ +000f9fe0: 2073 7472 7563 7420 7369 6d70 6c79 2062 struct simply b
│ │ │ │ +000f9ff0: 7920 6465 636c 6172 696e 6720 6974 2069 y declaring it i
│ │ │ │ +000fa000: 6e20 616e 2069 6e74 6572 6661 6365 2068 n an interface h
│ │ │ │ +000fa010: 6561 6465 7220 6669 6c65 2066 6f72 2073 eader file for s
│ │ │ │ +000fa020: 6f61 7063 7070 3220 616e 6420 6279 2061 oapcpp2 and by a
│ │ │ │ +000fa030: 6464 696e 6720 6d65 6d62 6572 7320 7468 dding members th
│ │ │ │ +000fa040: 6174 206d 7573 7420 6265 2071 7561 6c69 at must be quali
│ │ │ │ +000fa050: 6669 6564 2077 6974 6820 6e61 6d65 7370 fied with namesp
│ │ │ │ +000fa060: 6163 6520 7072 6566 6978 6573 2074 6f20 ace prefixes to
│ │ │ │ +000fa070: 636f 6e66 6f72 6d20 746f 2074 6865 2053 conform to the S
│ │ │ │ +000fa080: 4f41 5020 4865 6164 6572 2070 726f 6365 OAP Header proce
│ │ │ │ +000fa090: 7373 696e 6720 7265 7175 6972 656d 656e ssing requiremen
│ │ │ │ +000fa0a0: 7473 2074 6861 7420 534f 4150 2048 6561 ts that SOAP Hea
│ │ │ │ +000fa0b0: 6465 7220 656c 656d 656e 7473 206d 7573 der elements mus
│ │ │ │ +000fa0c0: 7420 6265 206e 616d 6573 7061 6365 2071 t be namespace q
│ │ │ │ +000fa0d0: 7561 6c69 6669 6564 2e3c 2f70 3e0a 3c70 ualified. For example, as
│ │ │ │ +000fa0f0: 7375 6d65 2074 6861 7420 7472 616e 7361 sume that transa
│ │ │ │ +000fa100: 6374 696f 6e20 6461 7461 2073 686f 756c ction data shoul
│ │ │ │ +000fa110: 6420 6265 2070 6967 6779 2d62 6163 6b65 d be piggy-backe
│ │ │ │ +000fa120: 6420 7769 7468 2053 4f41 5020 6d65 7373 d with SOAP mess
│ │ │ │ +000fa130: 6167 6573 2069 6e20 534f 4150 2048 6561 ages in SOAP Hea
│ │ │ │ +000fa140: 6465 723a 3c2f 703e 0a3c 6469 7620 636c der: T
│ │ │ │ -000fa4d0: 6865 203c 636f 6465 3e6d 7573 7455 6e64 he To set up a
│ │ │ │ -000fb140: 2053 4f41 5020 4865 6164 6572 2061 7420 SOAP Header at
│ │ │ │ -000fb150: 7468 6520 636c 6965 6e74 2073 6964 6520 the client side
│ │ │ │ -000fb160: 7468 6174 2063 6f6e 7461 696e 7320 7468 that contains th
│ │ │ │ -000fb170: 6520 3c63 6f64 653e 745f 5f74 7261 6e73 e At the
│ │ │ │ -000fc060: 7265 6365 6976 696e 6720 7369 6465 2c20 receiving side,
│ │ │ │ -000fc070: 6120 534f 4150 2048 6561 6465 7220 6361 a SOAP Header ca
│ │ │ │ -000fc080: 6e20 6265 2069 6e73 7065 6374 6564 2062 n be inspected b
│ │ │ │ -000fc090: 7920 6368 6563 6b69 6e67 2066 6f72 2061 y checking for a
│ │ │ │ -000fc0a0: 206e 6f6e 2d4e 554c 4c20 3c63 6f64 653e non-NULL At the cl
│ │ │ │ -000fc4c0: 6965 6e74 2073 6964 652c 2074 6865 203c ient side, the <
│ │ │ │ -000fc4d0: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soa
│ │ │ │ -000fc590: 703a 3a61 6374 6f72 3c2f 613e 3c2f 636f p::actor string varia
│ │ │ │ -000fc5b0: 626c 6520 6361 6e20 6265 2073 6574 2074 ble can be set t
│ │ │ │ -000fc5c0: 6f20 7365 7420 7468 6520 534f 4150 203c o set the SOAP <
│ │ │ │ -000fc5d0: 656d 3e3c 636f 6465 3e53 4f41 502d 454e em> Th
│ │ │ │ -000fc760: 6520 534f 4150 2048 6561 6465 7220 7374 e SOAP Header st
│ │ │ │ -000fc770: 7275 6374 7572 6520 3c63 6f64 653e 3c61 ructure For another e
│ │ │ │ -000fc8c0: 7861 6d70 6c65 2c20 636f 6e73 6964 6572 xample, consider
│ │ │ │ -000fc8d0: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 : Sup
│ │ │ │ -000fca80: 706f 7365 206d 6574 686f 6420 3c63 6f64 pose method Suppose m
│ │ │ │ -000fcc50: 6574 686f 6420 3c63 6f64 653e 6e73 5f5f ethod No
│ │ │ │ -000fcda0: 7465 2074 6861 7420 7468 6520 6d65 7468 te that the meth
│ │ │ │ -000fcdb0: 6f64 206e 616d 6520 616e 6420 6865 6164 od name and head
│ │ │ │ -000fcdc0: 6572 2070 6172 7420 6e61 6d65 7320 6d75 er part names mu
│ │ │ │ -000fcdd0: 7374 2062 6520 6e61 6d65 7370 6163 6520 st be namespace
│ │ │ │ -000fcde0: 7175 616c 6966 6965 642e 2054 6865 2068 qualified. The h
│ │ │ │ -000fcdf0: 6561 6465 7273 206d 7573 7420 6265 2070 eaders must be p
│ │ │ │ -000fce00: 7265 7365 6e74 2069 6e20 616c 6c20 6f70 resent in all op
│ │ │ │ -000fce10: 6572 6174 696f 6e73 2074 6861 7420 6465 erations that de
│ │ │ │ -000fce20: 636c 6172 6564 2074 6865 2068 6561 6465 clared the heade
│ │ │ │ -000fce30: 7220 7061 7274 732e 3c2f 703e 0a3c 703e r parts.
│ │ │ │ -000fce40: 546f 2073 7065 6369 6679 2074 6865 2068 To specify the h
│ │ │ │ -000fce50: 6561 6465 7220 7061 7274 7320 666f 7220 eader parts for
│ │ │ │ -000fce60: 7468 6520 6d65 7468 6f64 2069 6e70 7574 the method input
│ │ │ │ -000fce70: 2028 6d65 7468 6f64 2072 6571 7565 7374 (method request
│ │ │ │ -000fce80: 206d 6573 7361 6765 292c 2075 7365 3a3c message), use:<
│ │ │ │ -000fce90: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. Simi
│ │ │ │ -000fcf50: 6c61 726c 792c 2074 6f20 7370 6563 6966 larly, to specif
│ │ │ │ -000fcf60: 7920 7468 6520 6865 6164 6572 2070 6172 y the header par
│ │ │ │ -000fcf70: 7473 2066 6f72 2074 6865 206d 6574 686f ts for the metho
│ │ │ │ -000fcf80: 6420 6f75 7470 7574 2028 6d65 7468 6f64 d output (method
│ │ │ │ -000fcf90: 2072 6573 706f 6e73 6520 6d65 7373 6167 response messag
│ │ │ │ -000fcfa0: 6529 2c20 7573 653a 3c2f 703e 0a3c 6469 e), use: The declar
│ │ │ │ -000fd070: 6174 696f 6e73 206f 6e6c 7920 6166 6665 ations only affe
│ │ │ │ -000fd080: 6374 2074 6865 2057 5344 4c2e 2046 6f72 ct the WSDL. For
│ │ │ │ -000fd090: 2065 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 example: Likewise
│ │ │ │ +000fb000: 2c20 796f 7520 6361 6e20 7370 6563 6966 , you can specif
│ │ │ │ +000fb010: 7920 7468 6174 2062 6f74 6820 696e 7075 y that both inpu
│ │ │ │ +000fb020: 7420 616e 6420 6f75 7470 7574 206d 6573 t and output mes
│ │ │ │ +000fb030: 7361 6765 7320 6861 7665 2074 6865 2073 sages have the s
│ │ │ │ +000fb040: 616d 6520 6865 6164 6572 2077 6974 6820 ame header with
│ │ │ │ +000fb050: 3c63 6f64 653e 2f2f 6773 6f61 7020 6e73 To se
│ │ │ │ +000fb120: 7420 7570 2061 2053 4f41 5020 4865 6164 t up a SOAP Head
│ │ │ │ +000fb130: 6572 2061 7420 7468 6520 636c 6965 6e74 er at the client
│ │ │ │ +000fb140: 2073 6964 6520 7468 6174 2063 6f6e 7461 side that conta
│ │ │ │ +000fb150: 696e 7320 7468 6520 3c63 6f64 653e 745f ins the The SOAP
│ │ │ │ +000fba80: 2057 6562 2073 6572 7669 6365 2072 6571 Web service req
│ │ │ │ +000fba90: 7565 7374 2069 6e63 6c75 6465 7320 7468 uest includes th
│ │ │ │ +000fbaa0: 6520 534f 4150 2048 6561 6465 7220 7769 e SOAP Header wi
│ │ │ │ +000fbab0: 7468 2074 6865 2074 7261 6e73 6163 7469 th the transacti
│ │ │ │ +000fbac0: 6f6e 2064 6174 613a 3c2f 703e 0a3c 6469 on data: A
│ │ │ │ +000fc040: 7420 7468 6520 7265 6365 6976 696e 6720 t the receiving
│ │ │ │ +000fc050: 7369 6465 2c20 6120 534f 4150 2048 6561 side, a SOAP Hea
│ │ │ │ +000fc060: 6465 7220 6361 6e20 6265 2069 6e73 7065 der can be inspe
│ │ │ │ +000fc070: 6374 6564 2062 7920 6368 6563 6b69 6e67 cted by checking
│ │ │ │ +000fc080: 2066 6f72 2061 206e 6f6e 2d4e 554c 4c20 for a non-NULL
│ │ │ │ +000fc090: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 At
│ │ │ │ +000fc4a0: 7468 6520 636c 6965 6e74 2073 6964 652c the client side,
│ │ │ │ +000fc4b0: 2074 6865 203c 636f 6465 3e3c 6120 636c the For ano
│ │ │ │ +000fc8a0: 7468 6572 2065 7861 6d70 6c65 2c20 636f ther example, co
│ │ │ │ +000fc8b0: 6e73 6964 6572 3a3c 2f70 3e0a 3c64 6976 nsider: Suppose metho
│ │ │ │ +000fca70: 6420 3c63 6f64 653e 6e73 5f5f 6c6f 6769 d Sup
│ │ │ │ +000fcc30: 706f 7365 206d 6574 686f 6420 3c63 6f64 pose method The
│ │ │ │ +000fd050: 6465 636c 6172 6174 696f 6e73 206f 6e6c declarations onl
│ │ │ │ +000fd060: 7920 6166 6665 6374 2074 6865 2057 5344 y affect the WSD
│ │ │ │ +000fd070: 4c2e 2046 6f72 2065 7861 6d70 6c65 3a3c L. For example:<
│ │ │ │ +000fd080: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. T
│ │ │ │ -000fd400: 6865 2068 6561 6465 7273 206d 7573 7420 he headers must
│ │ │ │ -000fd410: 6265 2070 7265 7365 6e74 2069 6e20 616c be present in al
│ │ │ │ -000fd420: 6c20 6f70 6572 6174 696f 6e73 2074 6861 l operations tha
│ │ │ │ -000fd430: 7420 6465 636c 6172 6564 2074 6865 2068 t declared the h
│ │ │ │ -000fd440: 6561 6465 7220 7061 7274 732e 3c2f 703e eader parts. See also API
│ │ │ │ -000fd460: 2064 6f63 756d 656e 7461 7469 6f6e 204d documentation M
│ │ │ │ -000fd470: 6f64 756c 6520 3c61 2063 6c61 7373 3d22 odule Header stru
│ │ │ │ -000fd4b0: 6374 7572 6520 616e 6420 6675 6e63 7469 cture and functi
│ │ │ │ -000fd4c0: 6f6e 733c 2f61 3e2e 3c2f 703e 0a3c 703e ons.
│ │ │ │ -000fd4d0: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ -000fd4f0: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ -000fd500: 703e 0a3c 6831 3e3c 6120 636c 6173 733d p>. A built-i
│ │ │ │ -000fd550: 6e20 534f 4150 2046 6175 6c74 2064 6174 n SOAP Fault dat
│ │ │ │ -000fd560: 6120 7374 7275 6374 7572 6520 3c63 6f64 a structure The first fou
│ │ │ │ -00100020: 7220 6d65 6d62 6572 7320 696e 203c 636f r members in
│ │ │ │ -00100210: 5468 6520 3c63 6f64 653e 3c61 2063 6c61 The Whe
│ │ │ │ -001004f0: 6e20 6120 7573 6572 2d64 6566 696e 6520 n a user-define
│ │ │ │ -00100500: 7365 7276 6963 6520 6f70 6572 6174 696f service operatio
│ │ │ │ -00100510: 6e20 6675 6e63 7469 6f6e 2072 6574 7572 n function retur
│ │ │ │ -00100520: 6e73 2061 6e20 6572 726f 7220 7769 7468 ns an error with
│ │ │ │ -00100530: 203c 636f 6465 3e3c 6120 636c 6173 733d Server-sid
│ │ │ │ -00100870: 6520 6661 756c 7473 2061 7265 2072 6169 e faults are rai
│ │ │ │ -00100880: 7365 6420 7769 7468 203c 636f 6465 3e3c sed with The fir
│ │ │ │ +00100000: 7374 2066 6f75 7220 6d65 6d62 6572 7320 st four members
│ │ │ │ +00100010: 696e 203c 636f 6465 3e3c 6120 636c 6173 in The When a user-d
│ │ │ │ +001004e0: 6566 696e 6520 7365 7276 6963 6520 6f70 efine service op
│ │ │ │ +001004f0: 6572 6174 696f 6e20 6675 6e63 7469 6f6e eration function
│ │ │ │ +00100500: 2072 6574 7572 6e73 2061 6e20 6572 726f returns an erro
│ │ │ │ +00100510: 7220 7769 7468 203c 636f 6465 3e3c 6120 r with Serv
│ │ │ │ +00100850: 6572 2d73 6964 6520 6661 756c 7473 2061 er-side faults a
│ │ │ │ +00100860: 7265 2072 6169 7365 6420 7769 7468 203c re raised with <
│ │ │ │ +00100870: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap_sender_f
│ │ │ │ +00100920: 6175 6c74 3c2f 613e 3c2f 636f 6465 3e20 ault
│ │ │ │ +00100930: 6f72 203c 636f 6465 3e3c 6120 636c 6173 or
│ │ │ │ -00100f80: 496e 2074 6865 2065 7861 6d70 6c65 2c20 In the example,
│ │ │ │ -00100f90: 7468 6520 534f 4150 2046 6175 6c74 2064 the SOAP Fault d
│ │ │ │ -00100fa0: 6574 6169 6c73 2077 6572 6520 656d 7074 etails were empt
│ │ │ │ -00100fb0: 7920 284e 554c 4c29 2e20 596f 7520 6d61 y (NULL). You ma
│ │ │ │ -00100fc0: 7920 7061 7373 2061 6e20 584d 4c20 6672 y pass an XML fr
│ │ │ │ -00100fd0: 6167 6d65 6e74 2c20 7768 6963 6820 7769 agment, which wi
│ │ │ │ -00100fe0: 6c6c 2062 6520 6c69 7465 7261 6c6c 7920 ll be literally
│ │ │ │ -00100ff0: 696e 636c 7564 6564 2069 6e20 7468 6520 included in the
│ │ │ │ -00101000: 534f 4150 2046 6175 6c74 206d 6573 7361 SOAP Fault messa
│ │ │ │ -00101010: 6765 2e20 466f 7220 5753 2d49 2042 6173 ge. For WS-I Bas
│ │ │ │ -00101020: 6963 2050 726f 6669 6c65 2063 6f6d 706c ic Profile compl
│ │ │ │ -00101030: 6961 6e63 652c 2079 6f75 206d 7573 7420 iance, you must
│ │ │ │ -00101040: 7061 7373 2061 6e20 584d 4c20 7374 7269 pass an XML stri
│ │ │ │ -00101050: 6e67 2077 6974 6820 6f6e 6520 6f72 206d ng with one or m
│ │ │ │ -00101060: 6f72 6520 6e61 6d65 7370 6163 6520 7175 ore namespace qu
│ │ │ │ -00101070: 616c 6966 6965 6420 656c 656d 656e 7473 alified elements
│ │ │ │ -00101080: 2c20 7375 6368 2061 733a 3c2f 703e 0a3c , such as:
│ │ │ │ -001012b0: 5768 656e 2061 2073 6572 7669 6365 206f When a service o
│ │ │ │ -001012c0: 7065 7261 7469 6f6e 206e 6565 6473 2074 peration needs t
│ │ │ │ -001012d0: 6f20 706f 7075 6c61 7465 2053 4f41 5020 o populate SOAP
│ │ │ │ -001012e0: 4661 756c 7420 6465 7461 696c 7320 7769 Fault details wi
│ │ │ │ -001012f0: 7468 2061 2061 7070 6c69 6361 7469 6f6e th a application
│ │ │ │ -00101300: 2d73 7065 6369 6669 6320 6461 7461 2c20 -specific data,
│ │ │ │ -00101310: 6974 2064 6f65 7320 736f 2062 7920 6173 it does so by as
│ │ │ │ -00101320: 7369 676e 696e 6720 7468 6520 3c63 6f64 signing the In the exa
│ │ │ │ +00100f70: 6d70 6c65 2c20 7468 6520 534f 4150 2046 mple, the SOAP F
│ │ │ │ +00100f80: 6175 6c74 2064 6574 6169 6c73 2077 6572 ault details wer
│ │ │ │ +00100f90: 6520 656d 7074 7920 284e 554c 4c29 2e20 e empty (NULL).
│ │ │ │ +00100fa0: 596f 7520 6d61 7920 7061 7373 2061 6e20 You may pass an
│ │ │ │ +00100fb0: 584d 4c20 6672 6167 6d65 6e74 2c20 7768 XML fragment, wh
│ │ │ │ +00100fc0: 6963 6820 7769 6c6c 2062 6520 6c69 7465 ich will be lite
│ │ │ │ +00100fd0: 7261 6c6c 7920 696e 636c 7564 6564 2069 rally included i
│ │ │ │ +00100fe0: 6e20 7468 6520 534f 4150 2046 6175 6c74 n the SOAP Fault
│ │ │ │ +00100ff0: 206d 6573 7361 6765 2e20 466f 7220 5753 message. For WS
│ │ │ │ +00101000: 2d49 2042 6173 6963 2050 726f 6669 6c65 -I Basic Profile
│ │ │ │ +00101010: 2063 6f6d 706c 6961 6e63 652c 2079 6f75 compliance, you
│ │ │ │ +00101020: 206d 7573 7420 7061 7373 2061 6e20 584d must pass an XM
│ │ │ │ +00101030: 4c20 7374 7269 6e67 2077 6974 6820 6f6e L string with on
│ │ │ │ +00101040: 6520 6f72 206d 6f72 6520 6e61 6d65 7370 e or more namesp
│ │ │ │ +00101050: 6163 6520 7175 616c 6966 6965 6420 656c ace qualified el
│ │ │ │ +00101060: 656d 656e 7473 2c20 7375 6368 2061 733a ements, such as:
│ │ │ │ +00101070: 3c2f 703e 0a3c 6469 7620 636c 6173 733d When a ser
│ │ │ │ +001012a0: 7669 6365 206f 7065 7261 7469 6f6e 206e vice operation n
│ │ │ │ +001012b0: 6565 6473 2074 6f20 706f 7075 6c61 7465 eeds to populate
│ │ │ │ +001012c0: 2053 4f41 5020 4661 756c 7420 6465 7461 SOAP Fault deta
│ │ │ │ +001012d0: 696c 7320 7769 7468 2061 2061 7070 6c69 ils with a appli
│ │ │ │ +001012e0: 6361 7469 6f6e 2d73 7065 6369 6669 6320 cation-specific
│ │ │ │ +001012f0: 6461 7461 2c20 6974 2064 6f65 7320 736f data, it does so
│ │ │ │ +00101300: 2062 7920 6173 7369 676e 696e 6720 7468 by assigning th
│ │ │ │ +00101310: 6520 3c63 6f64 653e 3c61 2063 6c61 7373 e Note t
│ │ │ │ -001028c0: 6861 7420 534f 4150 2031 2e32 2073 7570 hat SOAP 1.2 sup
│ │ │ │ -001028d0: 706f 7274 7320 6e65 7374 6564 2066 6175 ports nested fau
│ │ │ │ -001028e0: 6c74 2073 7562 2d63 6f64 6573 2e20 5468 lt sub-codes. Th
│ │ │ │ -001028f0: 6573 6520 6361 6e20 6265 2073 6574 2061 ese can be set a
│ │ │ │ -00102900: 7320 666f 6c6c 6f77 733a 3c2f 703e 0a3c s follows: This produces
│ │ │ │ -00103210: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 : Service o
│ │ │ │ -001039e0: 7065 7261 7469 6f6e 7320 696d 706c 656d perations implem
│ │ │ │ -001039f0: 656e 7461 7469 6f6e 2069 6e20 6120 5765 entation in a We
│ │ │ │ -00103a00: 6220 7365 7276 6963 6520 6170 706c 6963 b service applic
│ │ │ │ -00103a10: 6174 696f 6e20 6361 6e20 7265 7475 726e ation can return
│ │ │ │ -00103a20: 2076 6172 696f 7573 2053 4f41 5020 4661 various SOAP Fa
│ │ │ │ -00103a30: 756c 7473 2063 7573 746f 6d69 7a65 6420 ults customized
│ │ │ │ -00103a40: 696e 2074 6869 7320 7761 792e 3c2f 703e in this way. SOAP Fault s
│ │ │ │ -00103a60: 7472 7563 7475 7265 7320 6172 6520 6465 tructures are de
│ │ │ │ -00103a70: 636c 6172 6564 203c 636f 6465 3e6d 7574 clared For an
│ │ │ │ -00103b30: 6578 616d 706c 6520 7468 6174 2075 7365 example that use
│ │ │ │ -00103b40: 6420 7468 6520 534f 4150 2046 6175 6c74 d the SOAP Fault
│ │ │ │ -00103b50: 2064 6574 6169 6c20 7374 7275 6374 7572 detail structur
│ │ │ │ -00103b60: 653a 3c2f 703e 0a3c 6469 7620 636c 6173 e: Th
│ │ │ │ -00106f60: 6520 3c63 6f64 653e 636c 6169 6d5f 5f66 e Here,
│ │ │ │ +001028a0: 4e6f 7465 2074 6861 7420 534f 4150 2031 Note that SOAP 1
│ │ │ │ +001028b0: 2e32 2073 7570 706f 7274 7320 6e65 7374 .2 supports nest
│ │ │ │ +001028c0: 6564 2066 6175 6c74 2073 7562 2d63 6f64 ed fault sub-cod
│ │ │ │ +001028d0: 6573 2e20 5468 6573 6520 6361 6e20 6265 es. These can be
│ │ │ │ +001028e0: 2073 6574 2061 7320 666f 6c6c 6f77 733a set as follows:
│ │ │ │ +001028f0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d This pr
│ │ │ │ +001031f0: 6f64 7563 6573 3a3c 2f70 3e0a 3c64 6976 oduces: Ser
│ │ │ │ +001039c0: 7669 6365 206f 7065 7261 7469 6f6e 7320 vice operations
│ │ │ │ +001039d0: 696d 706c 656d 656e 7461 7469 6f6e 2069 implementation i
│ │ │ │ +001039e0: 6e20 6120 5765 6220 7365 7276 6963 6520 n a Web service
│ │ │ │ +001039f0: 6170 706c 6963 6174 696f 6e20 6361 6e20 application can
│ │ │ │ +00103a00: 7265 7475 726e 2076 6172 696f 7573 2053 return various S
│ │ │ │ +00103a10: 4f41 5020 4661 756c 7473 2063 7573 746f OAP Faults custo
│ │ │ │ +00103a20: 6d69 7a65 6420 696e 2074 6869 7320 7761 mized in this wa
│ │ │ │ +00103a30: 792e 3c2f 703e 0a3c 703e 534f 4150 2046 y. SOAP F
│ │ │ │ +00103a40: 6175 6c74 2073 7472 7563 7475 7265 7320 ault structures
│ │ │ │ +00103a50: 6172 6520 6465 636c 6172 6564 203c 636f are declared F
│ │ │ │ +00103b10: 6f72 2061 6e20 6578 616d 706c 6520 7468 or an example th
│ │ │ │ +00103b20: 6174 2075 7365 6420 7468 6520 534f 4150 at used the SOAP
│ │ │ │ +00103b30: 2046 6175 6c74 2064 6574 6169 6c20 7374 Fault detail st
│ │ │ │ +00103b40: 7275 6374 7572 653a 3c2f 703e 0a3c 6469 ructure: See al
│ │ │ │ +00104090: 736f 2041 5049 2064 6f63 756d 656e 7461 so API documenta
│ │ │ │ +001040a0: 7469 6f6e 204d 6f64 756c 6520 3c61 2063 tion Module Fault
│ │ │ │ +001040e0: 7374 7275 6374 7572 6520 616e 6420 6675 structure and fu
│ │ │ │ +001040f0: 6e63 7469 6f6e 733c 2f61 3e2e 3c2f 703e nctions. The gSOAP t
│ │ │ │ +00104180: 6f6f 6c6b 6974 2073 7570 706f 7274 7320 oolkit supports
│ │ │ │ +00104190: 4d49 4d45 2061 7474 6163 686d 656e 7473 MIME attachments
│ │ │ │ +001041a0: 2061 7320 7065 7220 534f 4150 2077 6974 as per SOAP wit
│ │ │ │ +001041b0: 6820 4174 7461 6368 6d65 6e74 7320 2853 h Attachments (S
│ │ │ │ +001041c0: 7741 2920 7370 6563 6966 6963 6174 696f wA) specificatio
│ │ │ │ +001041d0: 6e20 3c61 2068 7265 663d 2268 7474 703a n http://www.w3.
│ │ │ │ +00104210: 6f72 672f 5452 2f53 4f41 502d 6174 7461 org/TR/SOAP-atta
│ │ │ │ +00104220: 6368 6d65 6e74 733c 2f61 3e2e 3c2f 703e chments. MTOM attachm
│ │ │ │ +00104240: 656e 7473 2074 6861 7420 6172 6520 6573 ents that are es
│ │ │ │ +00104250: 7365 6e74 6961 6c6c 7920 4d49 4d45 2061 sentially MIME a
│ │ │ │ +00104260: 7474 6163 686d 656e 7473 2074 6861 7420 ttachments that
│ │ │ │ +00104270: 636f 6e66 6f72 6d20 746f 2074 6865 204d conform to the M
│ │ │ │ +00104280: 544f 4d20 7370 6563 6966 6963 6174 696f TOM specificatio
│ │ │ │ +00104290: 6e20 3c61 2068 7265 663d 2268 7474 703a n htt
│ │ │ │ +001042c0: 703a 2f2f 7777 772e 7733 2e6f 7267 2f54 p://www.w3.org/T
│ │ │ │ +001042d0: 522f 736f 6170 3132 2d6d 746f 6d3c 2f61 R/soap12-mtom are also suppo
│ │ │ │ +001042f0: 7274 6564 2077 6869 6368 2061 7265 2074 rted which are t
│ │ │ │ +00104300: 6865 2070 7265 6665 7272 6564 2077 6179 he preferred way
│ │ │ │ +00104310: 2074 6f20 696e 636c 7564 6520 4d49 4d45 to include MIME
│ │ │ │ +00104320: 2061 7474 6163 686d 656e 7473 2077 6974 attachments wit
│ │ │ │ +00104330: 6820 534f 4150 206d 6573 7361 6765 732c h SOAP messages,
│ │ │ │ +00104340: 2073 6565 2053 6563 7469 6f6e 203c 6120 see Section MTOM attachmen
│ │ │ │ +00104380: 7473 3c2f 613e 2e3c 2f70 3e0a 3c70 3e49 ts. I
│ │ │ │ +00104390: 6e20 7468 6520 666f 6c6c 6f77 696e 6720 n the following
│ │ │ │ +001043a0: 6469 7363 7573 7369 6f6e 2c20 4d49 4d45 discussion, MIME
│ │ │ │ +001043b0: 2061 7474 6163 686d 656e 7420 6461 7461 attachment data
│ │ │ │ +001043c0: 2069 7320 6173 7375 6d65 6420 746f 2062 is assumed to b
│ │ │ │ +001043d0: 6520 7265 7369 6465 6e74 2069 6e20 6d65 e resident in me
│ │ │ │ +001043e0: 6d6f 7279 2066 6f72 2073 656e 6469 6e67 mory for sending
│ │ │ │ +001043f0: 206f 7065 7261 7469 6f6e 7320 616e 6420 operations and
│ │ │ │ +00104400: 4d49 4d45 2061 7474 6163 686d 656e 7473 MIME attachments
│ │ │ │ +00104410: 2072 6563 6569 7665 6420 7769 6c6c 2062 received will b
│ │ │ │ +00104420: 6520 7374 6f72 6564 2069 6e20 6d65 6d6f e stored in memo
│ │ │ │ +00104430: 7279 206d 616e 6167 6564 2062 7920 7468 ry managed by th
│ │ │ │ +00104440: 6520 636f 6e74 6578 742e 204d 544f 4d20 e context. MTOM
│ │ │ │ +00104450: 616e 6420 4449 4d45 2061 7474 6163 686d and DIME attachm
│ │ │ │ +00104460: 656e 7473 206f 6e20 7468 6520 6f74 6865 ents on the othe
│ │ │ │ +00104470: 7220 6861 6e64 2063 616e 2062 6520 7374 r hand can be st
│ │ │ │ +00104480: 7265 616d 6564 2061 6e64 2074 6865 7265 reamed and there
│ │ │ │ +00104490: 666f 7265 204d 544f 4d2f 4449 4d45 2061 fore MTOM/DIME a
│ │ │ │ +001044a0: 7474 6163 686d 656e 7420 6461 7461 2064 ttachment data d
│ │ │ │ +001044b0: 6f65 7320 6e6f 7420 6e65 6564 2074 6f20 oes not need to
│ │ │ │ +001044c0: 6265 2073 746f 7265 6420 696e 206d 656d be stored in mem
│ │ │ │ +001044d0: 6f72 792c 2073 6565 2053 6563 7469 6f6e ory, see Section
│ │ │ │ +001044e0: 7320 3c61 2063 6c61 7373 3d22 656c 2220 s DIME atta
│ │ │ │ +00104510: 6368 6d65 6e74 733c 2f61 3e20 616e 6420 chments and
│ │ │ │ +00104520: 3c61 2063 6c61 7373 3d22 656c 2220 6872 MTOM attach
│ │ │ │ +00104550: 6d65 6e74 733c 2f61 3e20 2e3c 2f70 3e0a ments . Transmitting
│ │ │ │ +00104570: 6d75 6c74 6970 6172 742f 7265 6c61 7465 multipart/relate
│ │ │ │ +00104580: 6420 4d49 4d45 2061 7474 6163 686d 656e d MIME attachmen
│ │ │ │ +00104590: 7473 2077 6974 6820 6120 534f 4150 2f58 ts with a SOAP/X
│ │ │ │ +001045a0: 4d4c 206d 6573 7361 6765 2069 7320 6163 ML message is ac
│ │ │ │ +001045b0: 636f 6d70 6c69 7368 6564 2077 6974 6820 complished with
│ │ │ │ +001045c0: 7477 6f20 6675 6e63 7469 6f6e 732c 203c two functions, <
│ │ │ │ +001045d0: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap_set_m
│ │ │ │ +00104650: 696d 653c 2f61 3e3c 2f63 6f64 653e 2061 ime a
│ │ │ │ +00104660: 6e64 203c 636f 6465 3e3c 6120 636c 6173 nd See als
│ │ │ │ +001047b0: 6f20 4150 4920 646f 6375 6d65 6e74 6174 o API documentat
│ │ │ │ +001047c0: 696f 6e20 4d6f 6475 6c65 203c 6120 636c ion Module MIME att
│ │ │ │ +00104800: 6163 686d 656e 7420 6675 6e63 7469 6f6e achment function
│ │ │ │ +00104810: 733c 2f61 3e2e 3c2f 703e 0a3c 703e f09f s. ..
│ │ │ │ +00104820: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ +00104830: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ +00104840: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents The following
│ │ │ │ +001048c0: 2066 756e 6374 696f 6e73 2061 7265 2075 functions are u
│ │ │ │ +001048d0: 7365 6420 746f 2073 6574 2075 7020 6120 sed to set up a
│ │ │ │ +001048e0: 636f 6c6c 6563 7469 6f6e 206f 6620 6d75 collection of mu
│ │ │ │ +001048f0: 6c74 6970 6172 742f 7265 6c61 7465 6420 ltipart/related
│ │ │ │ +00104900: 4d49 4d45 2061 7474 6163 686d 656e 7473 MIME attachments
│ │ │ │ +00104910: 2066 6f72 2074 7261 6e73 6d69 7373 696f for transmissio
│ │ │ │ +00104920: 6e20 7769 7468 2061 2053 4f41 5020 6f72 n with a SOAP or
│ │ │ │ +00104930: 2058 4d4c 206d 6573 7361 6765 2e3c 2f70 XML message. When provid
│ │ │ │ +00105740: 696e 6720 6120 4d49 4d45 2062 6f75 6e64 ing a MIME bound
│ │ │ │ +00105750: 6172 7920 7769 7468 203c 636f 6465 3e3c ary with The internal li
│ │ │ │ +001058a0: 7374 206f 6620 6174 7461 6368 6d65 6e74 st of attachment
│ │ │ │ +001058b0: 7320 7370 6563 6966 6965 6420 7769 7468 s specified with
│ │ │ │ +001058c0: 203c 636f 6465 3e3c 6120 636c 6173 733d The follow
│ │ │ │ +00105b80: 696e 6720 6578 616d 706c 6520 7368 6f77 ing example show
│ │ │ │ +00105b90: 7320 686f 7720 6120 6d75 6c74 6970 6172 s how a multipar
│ │ │ │ +00105ba0: 742f 7265 6c61 7465 6420 4854 5450 206d t/related HTTP m
│ │ │ │ +00105bb0: 6573 7361 6765 2077 6974 6820 7468 7265 essage with thre
│ │ │ │ +00105bc0: 6520 4d49 4d45 2061 7474 6163 686d 656e e MIME attachmen
│ │ │ │ +00105bd0: 7473 2069 7320 7365 7420 7570 2061 6e64 ts is set up and
│ │ │ │ +00105be0: 2074 7261 6e73 6d69 7474 6564 2074 6f20 transmitted to
│ │ │ │ +00105bf0: 6120 7365 7276 6572 2e20 496e 2074 6869 a server. In thi
│ │ │ │ +00105c00: 7320 6578 616d 706c 6520 7765 206c 6574 s example we let
│ │ │ │ +00105c10: 2074 6865 206d 6573 7361 6765 2062 6f64 the message bod
│ │ │ │ +00105c20: 7920 7265 6665 7220 746f 2074 6865 2061 y refer to the a
│ │ │ │ +00105c30: 7474 6163 686d 656e 7473 2075 7369 6e67 ttachments using
│ │ │ │ +00105c40: 2058 4d4c 203c 656d 3e3c 636f 6465 3e68 XML The c
│ │ │ │ -001070b0: 6c61 696d 2066 6f72 6d73 2069 6e20 7468 laim forms in th
│ │ │ │ -001070c0: 6520 6d65 7373 6167 6520 636f 6e73 6973 e message consis
│ │ │ │ -001070d0: 7420 6f66 203c 656d 3e3c 636f 6465 3e68 t of To asso
│ │ │ │ -00107200: 6369 6174 6520 4d49 4d45 2061 7474 6163 ciate MIME attac
│ │ │ │ -00107210: 686d 656e 7473 2077 6974 6820 7468 6520 hments with the
│ │ │ │ -00107220: 7265 7175 6573 7420 616e 6420 7265 7370 request and resp
│ │ │ │ -00107230: 6f6e 7365 206f 6620 6120 7365 7276 6963 onse of a servic
│ │ │ │ -00107240: 6520 6f70 6572 6174 696f 6e20 696e 2074 e operation in t
│ │ │ │ -00107250: 6865 2067 656e 6572 6174 6564 2057 5344 he generated WSD
│ │ │ │ -00107260: 4c2c 2070 6c65 6173 6520 7365 6520 5365 L, please see Se
│ │ │ │ -00107270: 6374 696f 6e20 3c61 2063 6c61 7373 3d22 ction G
│ │ │ │ -001072a0: 656e 6572 6174 696e 6720 4d75 6c74 6970 enerating Multip
│ │ │ │ -001072b0: 6172 7452 656c 6174 6564 204d 494d 4520 artRelated MIME
│ │ │ │ -001072c0: 6174 7461 6368 6d65 6e74 2062 696e 6469 attachment bindi
│ │ │ │ -001072d0: 6e67 7320 696e 2057 5344 4c3c 2f61 3e20 ngs in WSDL
│ │ │ │ -001072e0: 2e3c 2f70 3e0a 3c70 3e54 6865 2073 6572 . The ser
│ │ │ │ -001072f0: 7665 722d 7369 6465 2063 6f64 6520 746f ver-side code to
│ │ │ │ -00107300: 2074 7261 6e73 6d69 7420 4d49 4d45 2061 transmit MIME a
│ │ │ │ -00107310: 7474 6163 686d 656e 7473 2062 6163 6b20 ttachments back
│ │ │ │ -00107320: 746f 2061 2063 6c69 656e 743a 3c2f 703e to a client: MIME attachment
│ │ │ │ -00107de0: 7320 6172 6520 6175 746f 6d61 7469 6361 s are automatica
│ │ │ │ -00107df0: 6c6c 7920 7061 7273 6564 2061 6e64 2073 lly parsed and s
│ │ │ │ -00107e00: 746f 7265 6420 696e 206d 656d 6f72 7920 tored in memory
│ │ │ │ -00107e10: 6d61 6e61 6765 6420 6279 2074 6865 203c managed by the <
│ │ │ │ -00107e20: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap
│ │ │ │ -00107e80: 2063 6f6e 7465 7874 2e20 4166 7465 7220 context. After
│ │ │ │ -00107e90: 7265 6365 6976 696e 6720 6120 7365 7420 receiving a set
│ │ │ │ -00107ea0: 6f66 204d 494d 452f 4d54 4f4d 2061 7474 of MIME/MTOM att
│ │ │ │ -00107eb0: 6163 686d 656e 7473 2c20 6569 7468 6572 achments, either
│ │ │ │ -00107ec0: 2061 7420 7468 6520 636c 6965 6e74 2d73 at the client-s
│ │ │ │ -00107ed0: 6964 6520 6f72 2074 6865 2073 6572 7665 ide or the serve
│ │ │ │ -00107ee0: 722d 7369 6465 2c20 7468 6520 6c69 7374 r-side, the list
│ │ │ │ -00107ef0: 206f 6620 4d49 4d45 2f4d 544f 4d20 6174 of MIME/MTOM at
│ │ │ │ -00107f00: 7461 6368 6d65 6e74 7320 6361 6e20 6265 tachments can be
│ │ │ │ -00107f10: 2074 7261 7665 7273 6564 2074 6f20 6578 traversed to ex
│ │ │ │ -00107f20: 7472 6163 7420 6d65 7461 2064 6174 6120 tract meta data
│ │ │ │ -00107f30: 616e 6420 7468 6520 6174 7461 6368 6d65 and the attachme
│ │ │ │ -00107f40: 6e74 2063 6f6e 7465 6e74 2e20 5468 6520 nt content. The
│ │ │ │ -00107f50: 6669 7273 7420 6174 7461 6368 6d65 6e74 first attachment
│ │ │ │ -00107f60: 2069 6e20 7468 6520 636f 6c6c 6563 7469 in the collecti
│ │ │ │ -00107f70: 6f6e 206f 6620 4d49 4d45 2f4d 544f 4d20 on of MIME/MTOM
│ │ │ │ -00107f80: 6174 7461 6368 6d65 6e74 7320 616c 7761 attachments alwa
│ │ │ │ -00107f90: 7973 2063 6f6e 7461 696e 7320 6d65 7461 ys contains meta
│ │ │ │ -00107fa0: 2064 6174 6120 6162 6f75 7420 7468 6520 data about the
│ │ │ │ -00107fb0: 534f 4150 206d 6573 7361 6765 2069 7473 SOAP message its
│ │ │ │ -00107fc0: 656c 6620 2862 6563 6175 7365 2074 6865 elf (because the
│ │ │ │ -00107fd0: 2053 4f41 5020 6d65 7373 6167 6520 7761 SOAP message wa
│ │ │ │ -00107fe0: 7320 7072 6f63 6573 7365 6420 7468 6520 s processed the
│ │ │ │ -00107ff0: 6174 7461 6368 6d65 6e74 2064 6f65 7320 attachment does
│ │ │ │ -00108000: 6e6f 7420 636f 6e74 6169 6e20 616e 7920 not contain any
│ │ │ │ -00108010: 7573 6566 756c 2064 6174 6129 2e3c 2f70 useful data). To traverse
│ │ │ │ -00108030: 2074 6865 206c 6973 7420 6f66 204d 494d the list of MIM
│ │ │ │ -00108040: 4520 6174 7461 6368 6d65 6e74 7320 696e E attachments in
│ │ │ │ -00108050: 2043 2c20 796f 7520 7573 6520 6120 6c6f C, you use a lo
│ │ │ │ -00108060: 6f70 2073 696d 696c 6172 2074 6f3a 3c2f op similar to:
│ │ │ │ -00108070: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. The claim forms
│ │ │ │ +001070a0: 2069 6e20 7468 6520 6d65 7373 6167 6520 in the message
│ │ │ │ +001070b0: 636f 6e73 6973 7420 6f66 203c 656d 3e3c consist of <
│ │ │ │ +001070c0: 636f 6465 3e68 7265 663c 2f63 6f64 653e code>href
│ │ │ │ +001070d0: 3c2f 656d 3e73 2074 6f20 7468 6520 636c s to the cl
│ │ │ │ +001070e0: 6169 6d20 666f 726d 7320 6174 7461 6368 aim forms attach
│ │ │ │ +001070f0: 6564 2e20 5468 6520 7573 6520 6f66 203c ed. The use of <
│ │ │ │ +00107100: 656d 3e3c 636f 6465 3e68 7265 663c 2f63 em> T
│ │ │ │ +001071e0: 6f20 6173 736f 6369 6174 6520 4d49 4d45 o associate MIME
│ │ │ │ +001071f0: 2061 7474 6163 686d 656e 7473 2077 6974 attachments wit
│ │ │ │ +00107200: 6820 7468 6520 7265 7175 6573 7420 616e h the request an
│ │ │ │ +00107210: 6420 7265 7370 6f6e 7365 206f 6620 6120 d response of a
│ │ │ │ +00107220: 7365 7276 6963 6520 6f70 6572 6174 696f service operatio
│ │ │ │ +00107230: 6e20 696e 2074 6865 2067 656e 6572 6174 n in the generat
│ │ │ │ +00107240: 6564 2057 5344 4c2c 2070 6c65 6173 6520 ed WSDL, please
│ │ │ │ +00107250: 7365 6520 5365 6374 696f 6e20 3c61 2063 see Section Generating
│ │ │ │ +00107290: 4d75 6c74 6970 6172 7452 656c 6174 6564 MultipartRelated
│ │ │ │ +001072a0: 204d 494d 4520 6174 7461 6368 6d65 6e74 MIME attachment
│ │ │ │ +001072b0: 2062 696e 6469 6e67 7320 696e 2057 5344 bindings in WSD
│ │ │ │ +001072c0: 4c3c 2f61 3e20 2e3c 2f70 3e0a 3c70 3e54 L . T
│ │ │ │ +001072d0: 6865 2073 6572 7665 722d 7369 6465 2063 he server-side c
│ │ │ │ +001072e0: 6f64 6520 746f 2074 7261 6e73 6d69 7420 ode to transmit
│ │ │ │ +001072f0: 4d49 4d45 2061 7474 6163 686d 656e 7473 MIME attachments
│ │ │ │ +00107300: 2062 6163 6b20 746f 2061 2063 6c69 656e back to a clien
│ │ │ │ +00107310: 743a 3c2f 703e 0a3c 6469 7620 636c 6173 t: MIME atta
│ │ │ │ +00107dc0: 6368 6d65 6e74 7320 6172 6520 6175 746f chments are auto
│ │ │ │ +00107dd0: 6d61 7469 6361 6c6c 7920 7061 7273 6564 matically parsed
│ │ │ │ +00107de0: 2061 6e64 2073 746f 7265 6420 696e 206d and stored in m
│ │ │ │ +00107df0: 656d 6f72 7920 6d61 6e61 6765 6420 6279 emory managed by
│ │ │ │ +00107e00: 2074 6865 203c 636f 6465 3e3c 6120 636c the To tr
│ │ │ │ +00108010: 6176 6572 7365 2074 6865 206c 6973 7420 averse the list
│ │ │ │ +00108020: 6f66 204d 494d 4520 6174 7461 6368 6d65 of MIME attachme
│ │ │ │ +00108030: 6e74 7320 696e 2043 2c20 796f 7520 7573 nts in C, you us
│ │ │ │ +00108040: 6520 6120 6c6f 6f70 2073 696d 696c 6172 e a loop similar
│ │ │ │ +00108050: 2074 6f3a 3c2f 703e 0a3c 6469 7620 636c to: C++ progr
│ │ │ │ -00109970: 616d 6d65 7273 2063 616e 2075 7365 2061 ammers can use a
│ │ │ │ -00109980: 6e20 6974 6572 6174 6f72 2069 6e73 7465 n iterator inste
│ │ │ │ -00109990: 6164 3a3c 2f70 3e0a 3c64 6976 2063 6c61 ad: C++
│ │ │ │ +00109950: 2070 726f 6772 616d 6d65 7273 2063 616e programmers can
│ │ │ │ +00109960: 2075 7365 2061 6e20 6974 6572 6174 6f72 use an iterator
│ │ │ │ +00109970: 2069 6e73 7465 6164 3a3c 2f70 3e0a 3c64 instead: C++ progra
│ │ │ │ -0010c610: 6d6d 6572 7320 6361 6e20 7573 6520 616e mmers can use an
│ │ │ │ -0010c620: 2069 7465 7261 746f 7220 696e 7374 6561 iterator instea
│ │ │ │ -0010c630: 643a 3c2f 703e 0a3c 6469 7620 636c 6173 d: Note:
│ │ │ │ +0010a210: 206b 6565 7020 696e 206d 696e 6420 7468 keep in mind th
│ │ │ │ +0010a220: 6174 2074 6865 2066 6972 7374 2061 7474 at the first att
│ │ │ │ +0010a230: 6163 686d 656e 7420 6973 2061 7373 6f63 achment is assoc
│ │ │ │ +0010a240: 6961 7465 6420 7769 7468 2074 6865 2053 iated with the S
│ │ │ │ +0010a250: 4f41 5020 6d65 7373 6167 6520 616e 6420 OAP message and
│ │ │ │ +0010a260: 796f 7520 6d61 7920 7761 6e74 2074 6f20 you may want to
│ │ │ │ +0010a270: 6967 6e6f 7265 2069 742e 3c2f 703e 0a3c ignore it. Applicat
│ │ │ │ +0010a700: 696f 6e73 2064 6576 656c 6f70 6564 2077 ions developed w
│ │ │ │ +0010a710: 6974 6820 7468 6520 6753 4f41 5020 746f ith the gSOAP to
│ │ │ │ +0010a720: 6f6c 7320 6361 6e20 7472 616e 736d 6974 ols can transmit
│ │ │ │ +0010a730: 2062 696e 6172 7920 4449 4d45 2061 7474 binary DIME att
│ │ │ │ +0010a740: 6163 686d 656e 7473 2073 746f 7265 6420 achments stored
│ │ │ │ +0010a750: 696e 206d 656d 6f72 7920 6f72 2069 6e20 in memory or in
│ │ │ │ +0010a760: 7374 7265 616d 696e 6720 6d6f 6465 2062 streaming mode b
│ │ │ │ +0010a770: 7920 6665 7463 6869 6e67 2064 6174 6120 y fetching data
│ │ │ │ +0010a780: 6672 6f6d 2061 2072 6573 6f75 7263 6520 from a resource
│ │ │ │ +0010a790: 6f72 2073 656e 6469 6e67 2064 6174 6120 or sending data
│ │ │ │ +0010a7a0: 746f 2061 2072 6573 6f75 7263 6520 7573 to a resource us
│ │ │ │ +0010a7b0: 696e 6720 6361 6c6c 6261 636b 2066 756e ing callback fun
│ │ │ │ +0010a7c0: 6374 696f 6e73 2e20 5468 6520 6d61 7869 ctions. The maxi
│ │ │ │ +0010a7d0: 6d75 6d20 4449 4d45 2061 7474 6163 686d mum DIME attachm
│ │ │ │ +0010a7e0: 656e 7420 7369 7a65 2069 7320 6c69 6d69 ent size is limi
│ │ │ │ +0010a7f0: 7465 6420 746f 2038 204d 4220 6279 2064 ted to 8 MB by d
│ │ │ │ +0010a800: 6566 6175 6c74 2061 7320 7365 7420 7769 efault as set wi
│ │ │ │ +0010a810: 7468 203c 636f 6465 3e23 534f 4150 5f4d th For
│ │ │ │ +0010a970: 6465 7461 696c 7320 6f6e 2044 494d 4520 details on DIME
│ │ │ │ +0010a980: 6174 7461 6368 6d65 6e74 732c 2073 6565 attachments, see
│ │ │ │ +0010a990: 203c 6120 6872 6566 3d22 6874 7470 3a2f htt
│ │ │ │ +0010a9f0: 703a 2f2f 6d73 646e 2e6d 6963 726f 736f p://msdn.microso
│ │ │ │ +0010aa00: 6674 2e63 6f6d 2f6c 6962 7261 7279 2f65 ft.com/library/e
│ │ │ │ +0010aa10: 6e2d 7573 2f64 6e67 6c6f 6273 7065 632f n-us/dnglobspec/
│ │ │ │ +0010aa20: 6874 6d6c 2f64 7261 6674 2d6e 6965 6c73 html/draft-niels
│ │ │ │ +0010aa30: 656e 2d64 696d 652d 3032 2e74 7874 3c2f en-dime-02.txt
│ │ │ │ +0010aa40: 613e 3c2f 703e 0a3c 703e 5365 6520 616c a> See al
│ │ │ │ +0010aa50: 736f 2041 5049 2064 6f63 756d 656e 7461 so API documenta
│ │ │ │ +0010aa60: 7469 6f6e 204d 6f64 756c 6520 3c61 2063 tion Module DIME at
│ │ │ │ +0010aaa0: 7461 6368 6d65 6e74 2066 756e 6374 696f tachment functio
│ │ │ │ +0010aab0: 6e73 3c2f 613e 2e3c 2f70 3e0a 3c70 3ef0 ns. .
│ │ │ │ +0010aac0: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ +0010aad0: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ +0010aae0: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents T
│ │ │ │ +0010ab50: 6865 2066 6f6c 6c6f 7769 6e67 2066 756e he following fun
│ │ │ │ +0010ab60: 6374 696f 6e73 2063 616e 2062 6520 7573 ctions can be us
│ │ │ │ +0010ab70: 6564 2074 6f20 6578 706c 6963 6974 6c79 ed to explicitly
│ │ │ │ +0010ab80: 2073 6574 2075 7020 6120 636f 6c6c 6563 set up a collec
│ │ │ │ +0010ab90: 7469 6f6e 206f 6620 4449 4d45 2061 7474 tion of DIME att
│ │ │ │ +0010aba0: 6163 686d 656e 7473 2066 6f72 2074 7261 achments for tra
│ │ │ │ +0010abb0: 6e73 6d69 7373 696f 6e20 7769 7468 2061 nsmission with a
│ │ │ │ +0010abc0: 206d 6573 7361 6765 2e20 5468 6573 6520 message. These
│ │ │ │ +0010abd0: 6174 7461 6368 6d65 6e74 7320 6361 6e20 attachments can
│ │ │ │ +0010abe0: 6265 2073 7472 6561 6d65 642c 2061 7320 be streamed, as
│ │ │ │ +0010abf0: 6465 7363 7269 6265 6420 696e 2053 6563 described in Sec
│ │ │ │ +0010ac00: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Streaming DIM
│ │ │ │ +0010ac40: 453c 2f61 3e20 2e20 5769 7468 6f75 7420 E . Without
│ │ │ │ +0010ac50: 7374 7265 616d 696e 672c 2065 6163 6820 streaming, each
│ │ │ │ +0010ac60: 6174 7461 6368 6d65 6e74 206d 7573 7420 attachment must
│ │ │ │ +0010ac70: 7265 6665 7220 746f 2061 2062 6c6f 636b refer to a block
│ │ │ │ +0010ac80: 206f 6620 6461 7461 2069 6e20 6d65 6d6f of data in memo
│ │ │ │ +0010ac90: 7279 2e3c 2f70 3e0a 3c75 6c3e 0a3c 6c69 ry. These funct
│ │ │ │ +0010b710: 696f 6e73 2061 6c6c 6f77 2044 494d 4520 ions allow DIME
│ │ │ │ +0010b720: 6174 7461 6368 6d65 6e74 7320 746f 2062 attachments to b
│ │ │ │ +0010b730: 6520 6164 6465 6420 746f 2053 4f41 5020 e added to SOAP
│ │ │ │ +0010b740: 6d65 7373 6167 6573 2077 6974 686f 7574 messages without
│ │ │ │ +0010b750: 2072 6571 7569 7269 6e67 206d 6573 7361 requiring messa
│ │ │ │ +0010b760: 6765 2062 6f64 7920 7265 6665 7265 6e63 ge body referenc
│ │ │ │ +0010b770: 6573 2e20 5468 6973 2069 7320 616c 736f es. This is also
│ │ │ │ +0010b780: 2072 6566 6572 7265 6420 746f 2061 7320 referred to as
│ │ │ │ +0010b790: 7468 6520 6f70 656e 2044 494d 4520 6174 the open DIME at
│ │ │ │ +0010b7a0: 7461 6368 6d65 6e74 2073 7479 6c65 2e20 tachment style.
│ │ │ │ +0010b7b0: 5468 6520 636c 6f73 6564 2061 7474 6163 The closed attac
│ │ │ │ +0010b7c0: 686d 656e 7420 7374 796c 6520 7265 7175 hment style requ
│ │ │ │ +0010b7d0: 6972 6573 2061 6c6c 2044 494d 4520 6174 ires all DIME at
│ │ │ │ +0010b7e0: 7461 6368 6d65 6e74 7320 746f 2062 6520 tachments to be
│ │ │ │ +0010b7f0: 7265 6665 7265 6e63 6564 2066 726f 6d20 referenced from
│ │ │ │ +0010b800: 7468 6520 534f 4150 206d 6573 7361 6765 the SOAP message
│ │ │ │ +0010b810: 2062 6f64 7920 7769 7468 203c 656d 3e3c body with <
│ │ │ │ +0010b820: 636f 6465 3e68 7265 663c 2f63 6f64 653e code>href
│ │ │ │ +0010b830: 3c2f 656d 3e20 286f 7220 7369 6d69 6c61 (or simila
│ │ │ │ +0010b840: 7229 2072 6566 6572 656e 6365 732e 2046 r) references. F
│ │ │ │ +0010b850: 6f72 2074 6865 2063 6c6f 7365 6420 7374 or the closed st
│ │ │ │ +0010b860: 796c 652c 2067 534f 4150 2073 7570 706f yle, gSOAP suppo
│ │ │ │ +0010b870: 7274 7320 616e 2061 7574 6f6d 6174 6963 rts an automatic
│ │ │ │ +0010b880: 2062 696e 6172 7920 6461 7461 2073 6572 binary data ser
│ │ │ │ +0010b890: 6961 6c69 7a61 7469 6f6e 206d 6574 686f ialization metho
│ │ │ │ +0010b8a0: 642c 2073 6565 2053 6563 7469 6f6e 203c d, see Section <
│ │ │ │ +0010b8b0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +0010b8c0: 663d 2269 6e64 6578 2e68 746d 6c23 4449 f="index.html#DI
│ │ │ │ +0010b8d0: 4d45 6269 6e61 7279 223e 5365 7269 616c MEbinary">Serial
│ │ │ │ +0010b8e0: 697a 696e 6720 6269 6e61 7279 2064 6174 izing binary dat
│ │ │ │ +0010b8f0: 6120 7769 7468 2044 494d 4520 6174 7461 a with DIME atta
│ │ │ │ +0010b900: 6368 6d65 6e74 733c 2f61 3e20 2e3c 2f70 chments . DIME a
│ │ │ │ +0010b9b0: 7474 6163 686d 656e 7473 2061 7265 2061 ttachments are a
│ │ │ │ +0010b9c0: 7574 6f6d 6174 6963 616c 6c79 2070 6172 utomatically par
│ │ │ │ +0010b9d0: 7365 6420 616e 6420 7374 6f72 6564 2069 sed and stored i
│ │ │ │ +0010b9e0: 6e20 6d65 6d6f 7279 2028 6f72 2070 6173 n memory (or pas
│ │ │ │ +0010b9f0: 7365 6420 746f 2074 6865 2073 7472 6561 sed to the strea
│ │ │ │ +0010ba00: 6d69 6e67 2068 616e 646c 6572 7320 7669 ming handlers vi
│ │ │ │ +0010ba10: 6120 7468 6520 4449 4d45 2063 616c 6c62 a the DIME callb
│ │ │ │ +0010ba20: 6163 6b20 6675 6e63 7469 6f6e 7320 7768 ack functions wh
│ │ │ │ +0010ba30: 656e 2064 6566 696e 6564 292e 2041 6674 en defined). Aft
│ │ │ │ +0010ba40: 6572 2072 6563 6569 7669 6e67 2061 2073 er receiving a s
│ │ │ │ +0010ba50: 6574 206f 6620 4449 4d45 2061 7474 6163 et of DIME attac
│ │ │ │ +0010ba60: 686d 656e 7473 2c20 6569 7468 6572 2061 hments, either a
│ │ │ │ +0010ba70: 7420 7468 6520 636c 6965 6e74 2d73 6964 t the client-sid
│ │ │ │ +0010ba80: 6520 6f72 2074 6865 2073 6572 7665 722d e or the server-
│ │ │ │ +0010ba90: 7369 6465 2c20 7468 6520 6c69 7374 206f side, the list o
│ │ │ │ +0010baa0: 6620 4449 4d45 2061 7474 6163 686d 656e f DIME attachmen
│ │ │ │ +0010bab0: 7473 2063 616e 2062 6520 7472 6176 6572 ts can be traver
│ │ │ │ +0010bac0: 7365 6420 746f 2065 7874 7261 6374 206d sed to extract m
│ │ │ │ +0010bad0: 6574 6120 6461 7461 2061 6e64 2074 6865 eta data and the
│ │ │ │ +0010bae0: 2061 7474 6163 686d 656e 7420 636f 6e74 attachment cont
│ │ │ │ +0010baf0: 656e 742e 3c2f 703e 0a3c 703e 546f 2074 ent. To t
│ │ │ │ +0010bb00: 7261 7665 7273 6520 7468 6520 6c69 7374 raverse the list
│ │ │ │ +0010bb10: 206f 6620 4449 4d45 2061 7474 6163 686d of DIME attachm
│ │ │ │ +0010bb20: 656e 7473 2069 6e20 432c 2079 6f75 2075 ents in C, you u
│ │ │ │ +0010bb30: 7365 2061 206c 6f6f 7020 7369 6d69 6c61 se a loop simila
│ │ │ │ +0010bb40: 7220 746f 3a3c 2f70 3e0a 3c64 6976 2063 r to: C++
│ │ │ │ +0010c5f0: 7072 6f67 7261 6d6d 6572 7320 6361 6e20 programmers can
│ │ │ │ +0010c600: 7573 6520 616e 2069 7465 7261 746f 7220 use an iterator
│ │ │ │ +0010c610: 696e 7374 6561 643a 3c2f 703e 0a3c 6469 instead: The A call
│ │ │ │ -0010ce70: 2074 6f20 3c63 6f64 653e 3c61 2063 6c61 to .
│ │ │ │ -0010d270: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ -0010d280: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ -0010d290: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents Binary data s
│ │ │ │ -0010d310: 746f 7265 6420 696e 2065 7874 656e 6465 tored in extende
│ │ │ │ -0010d320: 6420 3c63 6f64 653e 3c61 2063 6c61 7373 d To e
│ │ │ │ -0010d920: 6e61 626c 6520 7365 7269 616c 697a 6174 nable serializat
│ │ │ │ -0010d930: 696f 6e20 6f66 2074 6865 2064 6174 6120 ion of the data
│ │ │ │ -0010d940: 6173 2044 494d 4520 6174 7461 6368 6d65 as DIME attachme
│ │ │ │ -0010d950: 6e74 7320 696e 7374 6561 6420 6f66 2069 nts instead of i
│ │ │ │ -0010d960: 6e6c 696e 6520 6261 7365 3634 2c20 7765 nline base64, we
│ │ │ │ -0010d970: 2065 7874 656e 6420 7468 6520 3c63 6f64 extend the The
│ │ │ │ +0010cd10: 203c 636f 6465 3e6f 7074 696f 6e73 3c2f
│ │ │ │ +0010ce50: 4120 6361 6c6c 2074 6f20 3c63 6f64 653e A call to Binary
│ │ │ │ +0010d2f0: 6461 7461 2073 746f 7265 6420 696e 2065 data stored in e
│ │ │ │ +0010d300: 7874 656e 6465 6420 3c63 6f64 653e 3c61 xtended The The
│ │ │ │ -0010e6d0: 203c 636f 6465 3e69 643c 2f63 6f64 653e This fu
│ │ │ │ -0010e850: 6e63 7469 6f6e 2072 6574 7572 6e73 2061 nction returns a
│ │ │ │ -0010e860: 2073 7472 696e 6720 7769 7468 2074 6869 string with thi
│ │ │ │ -0010e870: 7320 656e 636f 6469 6e67 2e20 466f 7220 s encoding. For
│ │ │ │ -0010e880: 6578 616d 706c 653c 2f70 3e0a 3c64 6976 example When either t
│ │ │ │ -0010ed60: 6865 203c 636f 6465 3e69 643c 2f63 6f64 he The SOA
│ │ │ │ -0010edf0: 502f 584d 4c20 6d65 7373 6167 6520 7265 P/XML message re
│ │ │ │ -0010ee00: 6665 7273 2074 6f20 7468 6520 6174 7461 fers to the atta
│ │ │ │ -0010ee10: 6368 6d65 6e74 7320 7573 696e 6720 3c65 chments using The
│ │ │ │ -0010efa0: 6465 636c 6172 6174 696f 6e20 6f66 2061 declaration of a
│ │ │ │ -0010efb0: 6e20 6578 7465 6e64 6564 2062 696e 6172 n extended binar
│ │ │ │ -0010efc0: 7920 7479 7065 2069 6e20 7468 6520 696e y type in the in
│ │ │ │ -0010efd0: 7465 7266 6163 6520 6865 6164 6572 2066 terface header f
│ │ │ │ -0010efe0: 696c 6520 666f 7220 736f 6170 6370 7032 ile for soapcpp2
│ │ │ │ -0010eff0: 2069 733a 3c2f 703e 0a3c 6469 7620 636c is: The The T
│ │ │ │ +0010e830: 6869 7320 6675 6e63 7469 6f6e 2072 6574 his function ret
│ │ │ │ +0010e840: 7572 6e73 2061 2073 7472 696e 6720 7769 urns a string wi
│ │ │ │ +0010e850: 7468 2074 6869 7320 656e 636f 6469 6e67 th this encoding
│ │ │ │ +0010e860: 2e20 466f 7220 6578 616d 706c 653c 2f70 . For example When ei
│ │ │ │ +0010ed40: 7468 6572 2074 6865 203c 636f 6465 3e69 ther the T
│ │ │ │ +0010edd0: 6865 2053 4f41 502f 584d 4c20 6d65 7373 he SOAP/XML mess
│ │ │ │ +0010ede0: 6167 6520 7265 6665 7273 2074 6f20 7468 age refers to th
│ │ │ │ +0010edf0: 6520 6174 7461 6368 6d65 6e74 7320 7573 e attachments us
│ │ │ │ +0010ee00: 696e 6720 3c65 6d3e 3c63 6f64 653e 6872 ing C+
│ │ │ │ -0010f250: 2b20 7072 6f67 7261 6d6d 6572 7320 6361 + programmers ca
│ │ │ │ -0010f260: 6e20 7573 6520 696e 6865 7269 7461 6e63 n use inheritanc
│ │ │ │ -0010f270: 6520 696e 7374 6561 6420 6f66 2074 6578 e instead of tex
│ │ │ │ -0010f280: 7475 616c 2065 7874 656e 7369 6f6e 2072 tual extension r
│ │ │ │ -0010f290: 6571 7569 7265 6420 696e 2043 3a3c 2f70 equired in C: This
│ │ │ │ -0010f730: 2064 6566 696e 6573 2061 6e20 6578 7465 defines an exte
│ │ │ │ -0010f740: 6e73 696f 6e20 6f66 203c 656d 3e3c 636f nsion of As a result,
│ │ │ │ -00110570: 616c 6c20 6174 7461 6368 6d65 6e74 7320 all attachments
│ │ │ │ -00110580: 7769 7468 2061 204e 554c 4c20 3c63 6f64 with a NULL S
│ │ │ │ -00110750: 7472 6561 6d69 6e67 2044 494d 4520 6973 treaming DIME is
│ │ │ │ -00110760: 2061 6368 6965 7665 6420 7769 7468 2063 achieved with c
│ │ │ │ -00110770: 616c 6c62 6163 6b20 6675 6e63 7469 6f6e allback function
│ │ │ │ -00110780: 7320 746f 2066 6574 6368 2061 6e64 2073 s to fetch and s
│ │ │ │ -00110790: 746f 7265 2064 6174 6120 6475 7269 6e67 tore data during
│ │ │ │ -001107a0: 2074 7261 6e73 6d69 7373 696f 6e2e 2054 transmission. T
│ │ │ │ -001107b0: 6872 6565 2066 756e 6374 696f 6e20 6361 hree function ca
│ │ │ │ -001107c0: 6c6c 6261 636b 7320 666f 7220 7374 7265 llbacks for stre
│ │ │ │ -001107d0: 616d 696e 6720 4449 4d45 206f 7574 7075 aming DIME outpu
│ │ │ │ -001107e0: 7420 616e 6420 7468 7265 6520 6361 6c6c t and three call
│ │ │ │ -001107f0: 6261 636b 7320 666f 7220 7374 7265 616d backs for stream
│ │ │ │ -00110800: 696e 6720 4449 4d45 2069 6e70 7574 2061 ing DIME input a
│ │ │ │ -00110810: 7265 2061 7661 696c 6162 6c65 2e3c 2f70 re available. In a
│ │ │ │ -00112f80: 6464 6974 696f 6e2c 2061 203c 636f 6465 ddition, a The ex
│ │ │ │ +0010fb50: 616d 706c 6520 6162 6f76 6520 7573 6573 ample above uses
│ │ │ │ +0010fb60: 2074 6865 203c 656d 3e3c 636f 6465 3e6c the When rece
│ │ │ │ +0010fcb0: 6976 696e 6720 4449 4d45 2061 7474 6163 iving DIME attac
│ │ │ │ +0010fcc0: 686d 656e 7473 2c20 7468 6520 4449 4d45 hments, the DIME
│ │ │ │ +0010fcd0: 206d 6574 6120 6461 7461 2061 6e64 2062 meta data and b
│ │ │ │ +0010fce0: 696e 6172 7920 636f 6e74 656e 7420 6172 inary content ar
│ │ │ │ +0010fcf0: 6520 7374 6f72 6564 2069 6e20 7468 6520 e stored in the
│ │ │ │ +0010fd00: 7370 6563 6966 6965 6420 3c63 6f64 653e specified Messages may
│ │ │ │ +0010ff60: 636f 6e74 6169 6e20 6269 6e61 7279 2064 contain binary d
│ │ │ │ +0010ff70: 6174 6120 7468 6174 2072 6566 6572 656e ata that referen
│ │ │ │ +0010ff80: 6365 7320 6578 7465 726e 616c 2072 6573 ces external res
│ │ │ │ +0010ff90: 6f75 7263 6573 206e 6f74 2070 726f 7669 ources not provi
│ │ │ │ +0010ffa0: 6465 6420 6173 2061 7474 6163 686d 656e ded as attachmen
│ │ │ │ +0010ffb0: 7473 2e20 496e 2074 6861 7420 6361 7365 ts. In that case
│ │ │ │ +0010ffc0: 2c20 7468 6520 3c63 6f64 653e 5f5f 7074 , the As a re
│ │ │ │ +00110550: 7375 6c74 2c20 616c 6c20 6174 7461 6368 sult, all attach
│ │ │ │ +00110560: 6d65 6e74 7320 7769 7468 2061 204e 554c ments with a NUL
│ │ │ │ +00110570: 4c20 3c63 6f64 653e 6964 3c2f 636f 6465 L ...
│ │ │ │ +001106c0: 9d20 3c61 2068 7265 663d 2223 223e 4261 . Ba
│ │ │ │ +001106d0: 636b 2074 6f20 7461 626c 6520 6f66 2063 ck to table of c
│ │ │ │ +001106e0: 6f6e 7465 6e74 733c 2f61 3e3c 2f70 3e0a ontents Streaming D
│ │ │ │ +00110740: 494d 4520 6973 2061 6368 6965 7665 6420 IME is achieved
│ │ │ │ +00110750: 7769 7468 2063 616c 6c62 6163 6b20 6675 with callback fu
│ │ │ │ +00110760: 6e63 7469 6f6e 7320 746f 2066 6574 6368 nctions to fetch
│ │ │ │ +00110770: 2061 6e64 2073 746f 7265 2064 6174 6120 and store data
│ │ │ │ +00110780: 6475 7269 6e67 2074 7261 6e73 6d69 7373 during transmiss
│ │ │ │ +00110790: 696f 6e2e 2054 6872 6565 2066 756e 6374 ion. Three funct
│ │ │ │ +001107a0: 696f 6e20 6361 6c6c 6261 636b 7320 666f ion callbacks fo
│ │ │ │ +001107b0: 7220 7374 7265 616d 696e 6720 4449 4d45 r streaming DIME
│ │ │ │ +001107c0: 206f 7574 7075 7420 616e 6420 7468 7265 output and thre
│ │ │ │ +001107d0: 6520 6361 6c6c 6261 636b 7320 666f 7220 e callbacks for
│ │ │ │ +001107e0: 7374 7265 616d 696e 6720 4449 4d45 2069 streaming DIME i
│ │ │ │ +001107f0: 6e70 7574 2061 7265 2061 7661 696c 6162 nput are availab
│ │ │ │ +00110800: 6c65 2e3c 2f70 3e0a 3c75 6c3e 0a3c 6c69 le. The foll
│ │ │ │ +001131e0: 6f77 696e 6720 6578 616d 706c 6520 696c owing example il
│ │ │ │ +001131f0: 6c75 7374 7261 7465 7320 7468 6520 636c lustrates the cl
│ │ │ │ +00113200: 6965 6e74 2d73 6964 6520 696e 6974 6961 ient-side initia
│ │ │ │ +00113210: 6c69 7a61 7469 6f6e 206f 6620 616e 2069 lization of an i
│ │ │ │ +00113220: 6d61 6765 2061 7474 6163 686d 656e 7420 mage attachment
│ │ │ │ +00113230: 7374 7275 6374 2074 6f20 7374 7265 616d struct to stream
│ │ │ │ +00113240: 2061 2066 696c 6520 696e 746f 2061 2044 a file into a D
│ │ │ │ +00113250: 494d 4520 6174 7461 6368 6d65 6e74 3a3c IME attachment:<
│ │ │ │ +00113260: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>. The
│ │ │ │ -00114ea0: 666f 6c6c 6f77 696e 6720 6578 616d 706c following exampl
│ │ │ │ -00114eb0: 6520 696c 6c75 7374 7261 7465 7320 7468 e illustrates th
│ │ │ │ -00114ec0: 6520 7374 7265 616d 696e 6720 6f66 2061 e streaming of a
│ │ │ │ -00114ed0: 2044 494d 4520 6174 7461 6368 6d65 6e74 DIME attachment
│ │ │ │ -00114ee0: 2069 6e74 6f20 6120 6669 6c65 2062 7920 into a file by
│ │ │ │ -00114ef0: 6120 636c 6965 6e74 3a3c 2f70 3e0a 3c64 a client: Message
│ │ │ │ -00116de0: 636f 6d70 7265 7373 696f 6e20 7769 7468 compression with
│ │ │ │ -00116df0: 203c 636f 6465 3e23 534f 4150 5f45 4e43 ...
│ │ │ │ -001172f0: 9d20 3c61 2068 7265 663d 2223 223e 4261 . Ba
│ │ │ │ -00117300: 636b 2074 6f20 7461 626c 6520 6f66 2063 ck to table of c
│ │ │ │ -00117310: 6f6e 7465 6e74 733c 2f61 3e3c 2f70 3e0a ontents To s
│ │ │ │ -00117370: 656e 6420 4449 4d45 2061 7474 6163 686d end DIME attachm
│ │ │ │ -00117380: 656e 7473 2c20 7468 6520 6174 7461 6368 ents, the attach
│ │ │ │ -00117390: 6d65 6e74 2073 697a 6573 206d 7573 7420 ment sizes must
│ │ │ │ -001173a0: 6265 2064 6574 6572 6d69 6e65 6420 696e be determined in
│ │ │ │ -001173b0: 2061 6476 616e 6365 2074 6f20 6361 6c63 advance to calc
│ │ │ │ -001173c0: 756c 6174 6520 4854 5450 206d 6573 7361 ulate HTTP messa
│ │ │ │ -001173d0: 6765 206c 656e 6774 6820 7265 7175 6972 ge length requir
│ │ │ │ -001173e0: 6564 2074 6f20 7374 7265 616d 2044 494d ed to stream DIM
│ │ │ │ -001173f0: 4520 6f76 6572 2048 5454 502e 2048 6f77 E over HTTP. How
│ │ │ │ -00117400: 6576 6572 2c20 6368 756e 6b65 6420 4449 ever, chunked DI
│ │ │ │ -00117410: 4d45 2074 6f67 6574 6865 7220 7769 7468 ME together with
│ │ │ │ -00117420: 2063 6875 6e6b 6564 2048 5454 5020 6361 chunked HTTP ca
│ │ │ │ -00117430: 6e20 6265 2075 7365 6420 746f 206f 6d69 n be used to omi
│ │ │ │ -00117440: 7420 7468 6973 2073 7465 702e 2046 6972 t this step. Fir
│ │ │ │ -00117450: 7374 2073 6574 2074 6865 203c 636f 6465 st set the You can also
│ │ │ │ -001177c0: 7573 6520 7468 6520 3c63 6f64 653e 2353 use the The wsd
│ │ │ │ -001178b0: 6c32 6820 746f 6f6c 2072 6563 6f67 6e69 l2h tool recogni
│ │ │ │ -001178c0: 7a65 7320 4449 4d45 2061 7474 6163 686d zes DIME attachm
│ │ │ │ -001178d0: 656e 7473 2061 6e64 2070 726f 6475 6365 ents and produce
│ │ │ │ -001178e0: 7320 616e 2061 6e6e 6f74 6174 6564 2068 s an annotated h
│ │ │ │ -001178f0: 6561 6465 7220 6669 6c65 2e20 426f 7468 eader file. Both
│ │ │ │ -00117900: 206f 7065 6e20 616e 6420 636c 6f73 6564 open and closed
│ │ │ │ -00117910: 206c 6179 6f75 7473 2061 7265 2073 7570 layouts are sup
│ │ │ │ -00117920: 706f 7274 6564 2066 6f72 2074 7261 6e73 ported for trans
│ │ │ │ -00117930: 6d69 7474 696e 6720 4449 4d45 2061 7474 mitting DIME att
│ │ │ │ -00117940: 6163 686d 656e 7473 2e20 466f 7220 636c achments. For cl
│ │ │ │ -00117950: 6f73 6564 2066 6f72 6d61 7473 2c20 616c osed formats, al
│ │ │ │ -00117960: 6c20 4449 4d45 2061 7474 6163 686d 656e l DIME attachmen
│ │ │ │ -00117970: 7473 206d 7573 7420 6265 2072 6566 6572 ts must be refer
│ │ │ │ -00117980: 656e 6365 6420 6672 6f6d 2074 6865 2053 enced from the S
│ │ │ │ -00117990: 4f41 5020 6d65 7373 6167 652c 2065 2e67 OAP message, e.g
│ │ │ │ -001179a0: 2e20 7573 696e 6720 6872 6566 7320 7769 . using hrefs wi
│ │ │ │ -001179b0: 7468 2053 4f41 5020 656e 636f 6469 6e67 th SOAP encoding
│ │ │ │ -001179c0: 2061 6e64 2075 7369 6e67 2074 6865 2061 and using the a
│ │ │ │ -001179d0: 7070 6c69 6361 7469 6f6e 2d73 7065 6369 pplication-speci
│ │ │ │ -001179e0: 6669 6320 7265 6665 7265 6e63 6520 6174 fic reference at
│ │ │ │ -001179f0: 7472 6962 7574 6520 696e 636c 7564 6564 tribute included
│ │ │ │ -00117a00: 2069 6e20 7468 6520 3c63 6f64 653e 3c61 in the
│ │ │ │ -00117ad0: 5468 6520 736f 6170 6370 7032 2074 6f6f The soapcpp2 too
│ │ │ │ -00117ae0: 6c20 646f 6573 206e 6f74 2070 726f 6475 l does not produ
│ │ │ │ -00117af0: 6365 2061 2057 5344 4c20 7769 7468 2044 ce a WSDL with D
│ │ │ │ -00117b00: 494d 4520 6578 7465 6e73 696f 6e73 2e20 IME extensions.
│ │ │ │ -00117b10: 4449 4d45 2069 7320 616e 206f 6c64 6572 DIME is an older
│ │ │ │ -00117b20: 2062 696e 6172 7920 666f 726d 6174 2074 binary format t
│ │ │ │ -00117b30: 6861 7420 6861 7320 6e6f 2057 5344 4c20 hat has no WSDL
│ │ │ │ -00117b40: 7072 6f74 6f63 6f6c 2073 7570 706f 7274 protocol support
│ │ │ │ -00117b50: 2c20 756e 6c69 6b65 204d 494d 4520 616e , unlike MIME an
│ │ │ │ -00117b60: 6420 4d54 4f4d 2e3c 2f70 3e0a 3c70 3ef0 d MTOM. .
│ │ │ │ -00117b70: 9f94 9d20 3c61 2068 7265 663d 2223 223e ...
│ │ │ │ -00117b80: 4261 636b 2074 6f20 7461 626c 6520 6f66 Back to table of
│ │ │ │ -00117b90: 2063 6f6e 7465 6e74 733c 2f61 3e3c 2f70 contents
│ │ │ │ -00117be0: 4d54 4f4d 2028 4d65 7373 6167 6520 5472 MTOM (Message Tr
│ │ │ │ -00117bf0: 616e 736d 6973 7369 6f6e 204f 7074 696d ansmission Optim
│ │ │ │ -00117c00: 697a 6174 696f 6e20 4d65 6368 616e 6973 ization Mechanis
│ │ │ │ -00117c10: 6d29 2069 7320 6120 7265 6c61 7469 7665 m) is a relative
│ │ │ │ -00117c20: 6c79 206e 6577 2066 6f72 6d61 7420 666f ly new format fo
│ │ │ │ -00117c30: 7220 7472 616e 736d 6974 7469 6e67 2061 r transmitting a
│ │ │ │ -00117c40: 7474 6163 686d 656e 7473 2077 6974 6820 ttachments with
│ │ │ │ -00117c50: 534f 4150 206d 6573 7361 6765 7320 2873 SOAP messages (s
│ │ │ │ -00117c60: 6565 203c 6120 6872 6566 3d22 6874 7470 ee ht
│ │ │ │ -00117c90: 7470 3a2f 2f77 7777 2e77 332e 6f72 672f tp://www.w3.org/
│ │ │ │ -00117ca0: 5452 2f73 6f61 7031 322d 6d74 6f6d 3c2f TR/soap12-mtom
│ │ │ │ -00117cb0: 613e 292e 204d 544f 4d20 6174 7461 6368 a>). MTOM attach
│ │ │ │ -00117cc0: 6d65 6e74 7320 6172 6520 6573 7365 6e74 ments are essent
│ │ │ │ -00117cd0: 6961 6c6c 7920 4d49 4d45 2061 7474 6163 ially MIME attac
│ │ │ │ -00117ce0: 686d 656e 7473 2077 6974 6820 7374 616e hments with stan
│ │ │ │ -00117cf0: 6461 7264 697a 6564 206d 6563 6861 6e69 dardized mechani
│ │ │ │ -00117d00: 736d 7320 666f 7220 6372 6f73 7320 7265 sms for cross re
│ │ │ │ -00117d10: 6665 7265 6e63 696e 6720 6174 7461 6368 ferencing attach
│ │ │ │ -00117d20: 6d65 6e74 7320 6672 6f6d 2074 6865 2053 ments from the S
│ │ │ │ -00117d30: 4f41 5020 626f 6479 2c20 7768 6963 6820 OAP body, which
│ │ │ │ -00117d40: 6973 2061 6273 656e 7420 696e 2028 706c is absent in (pl
│ │ │ │ -00117d50: 6169 6e29 204d 494d 4520 6174 7461 6368 ain) MIME attach
│ │ │ │ -00117d60: 6d65 6e74 7320 616e 6420 6f70 7469 6f6e ments and option
│ │ │ │ -00117d70: 616c 2077 6974 6820 4449 4d45 2061 7474 al with DIME att
│ │ │ │ -00117d80: 6163 686d 656e 7473 2e3c 2f70 3e0a 3c70 achments. Unlike the name
│ │ │ │ -00117da0: 2073 7567 6765 7374 732c 2074 6865 2073 suggests, the s
│ │ │ │ -00117db0: 7065 6564 2062 7920 7768 6963 6820 6174 peed by which at
│ │ │ │ -00117dc0: 7461 6368 6564 2064 6174 6120 6973 2074 tached data is t
│ │ │ │ -00117dd0: 7261 6e73 6d69 7474 6564 2069 7320 6e6f ransmitted is no
│ │ │ │ -00117de0: 7420 696e 6372 6561 7365 6420 636f 6d70 t increased comp
│ │ │ │ -00117df0: 6172 6564 2074 6f20 4d49 4d45 2c20 4449 ared to MIME, DI
│ │ │ │ -00117e00: 4d45 2c20 6f72 2065 7665 6e20 584d 4c20 ME, or even XML
│ │ │ │ -00117e10: 656e 636f 6465 6420 6261 7365 3634 2064 encoded base64 d
│ │ │ │ -00117e20: 6174 612c 2062 6563 6175 7365 2074 6865 ata, because the
│ │ │ │ -00117e30: 2070 6572 666f 726d 616e 6365 2064 6966 performance dif
│ │ │ │ -00117e40: 6665 7265 6e63 6573 2077 6865 6e20 7573 ferences when us
│ │ │ │ -00117e50: 696e 6720 6753 4f41 5020 7769 6c6c 2062 ing gSOAP will b
│ │ │ │ -00117e60: 6520 736d 616c 6c2e 2054 6865 2061 6476 e small. The adv
│ │ │ │ -00117e70: 616e 7461 6765 206f 6620 7468 6520 666f antage of the fo
│ │ │ │ -00117e80: 726d 6174 2069 7320 7468 6520 7374 616e rmat is the stan
│ │ │ │ -00117e90: 6461 7264 697a 6564 2061 7474 6163 686d dardized attachm
│ │ │ │ -00117ea0: 656e 7420 7265 6665 7265 6e63 6520 6d65 ent reference me
│ │ │ │ -00117eb0: 6368 616e 6973 6d2c 2077 6869 6368 2073 chanism, which s
│ │ │ │ -00117ec0: 686f 756c 6420 696d 7072 6f76 6520 696e hould improve in
│ │ │ │ -00117ed0: 7465 726f 7065 7261 6269 6c69 7479 2e3c teroperability.<
│ │ │ │ -00117ee0: 2f70 3e0a 3c70 3e54 6865 204d 544f 4d20 /p>. The MTOM
│ │ │ │ -00117ef0: 7370 6563 6966 6963 6174 696f 6e20 6d61 specification ma
│ │ │ │ -00117f00: 6e64 6174 6573 2053 4f41 5020 312e 3220 ndates SOAP 1.2
│ │ │ │ -00117f10: 616e 6420 7468 6520 7573 6520 6f66 2074 and the use of t
│ │ │ │ -00117f20: 6865 2058 4f50 206e 616d 6573 7061 6365 he XOP namespace
│ │ │ │ -00117f30: 2e20 5468 6520 584f 5020 496e 636c 7564 . The XOP Includ
│ │ │ │ -00117f40: 6520 656c 656d 656e 7420 3c65 6d3e 3c63 e element Becaus
│ │ │ │ -00118080: 6520 7265 6665 7265 6e63 6573 2066 726f e references fro
│ │ │ │ -00118090: 6d20 7769 7468 696e 2074 6865 2053 4f41 m within the SOA
│ │ │ │ -001180a0: 5020 6d65 7373 6167 6520 626f 6479 2074 P message body t
│ │ │ │ -001180b0: 6f20 6174 7461 6368 6d65 6e74 7320 6172 o attachments ar
│ │ │ │ -001180c0: 6520 6d61 6e64 6174 6f72 7920 7769 7468 e mandatory with
│ │ │ │ -001180d0: 204d 544f 4d2c 2074 6865 2069 6d70 6c65 MTOM, the imple
│ │ │ │ -001180e0: 6d65 6e74 6174 696f 6e20 6f66 2074 6865 mentation of the
│ │ │ │ -001180f0: 2073 6572 6961 6c69 7a61 7469 6f6e 2061 serialization a
│ │ │ │ -00118100: 6e64 2064 6573 6572 6961 6c69 7a61 7469 nd deserializati
│ │ │ │ -00118110: 6f6e 206f 6620 4d54 4f4d 204d 494d 4520 on of MTOM MIME
│ │ │ │ -00118120: 6174 7461 6368 6d65 6e74 7320 7573 6573 attachments uses
│ │ │ │ -00118130: 2074 6865 2065 7874 656e 6465 6420 6269 the extended bi
│ │ │ │ -00118140: 6e61 7279 2074 7970 6520 636f 6d70 6172 nary type compar
│ │ │ │ -00118150: 6162 6c65 2074 6f20 4449 4d45 2073 7570 able to DIME sup
│ │ │ │ -00118160: 706f 7274 2e20 5468 6973 2062 696e 6172 port. This binar
│ │ │ │ -00118170: 7920 7479 7065 2069 7320 7072 6564 6566 y type is predef
│ │ │ │ -00118180: 696e 6564 2069 6e20 7468 6520 3c65 6d3e ined in the
│ │ │ │ -00118190: 3c63 6f64 653e 696d 706f 7274 2f78 6f70 The addit
│ │ │ │ -00118fd0: 696f 6e61 6c20 3c63 6f64 653e 6964 3c2f ional You can
│ │ │ │ -00119320: 696d 706f 7274 203c 656d 3e3c 636f 6465 import Me
│ │ │ │ +00116dc0: 7373 6167 6520 636f 6d70 7265 7373 696f ssage compressio
│ │ │ │ +00116dd0: 6e20 7769 7468 203c 636f 6465 3e23 534f n with .... Back to tabl
│ │ │ │ +001172f0: 6520 6f66 2063 6f6e 7465 6e74 733c 2f61 e of contents You can
│ │ │ │ +001177a0: 2061 6c73 6f20 7573 6520 7468 6520 3c63 also use the T
│ │ │ │ +00117890: 6865 2077 7364 6c32 6820 746f 6f6c 2072 he wsdl2h tool r
│ │ │ │ +001178a0: 6563 6f67 6e69 7a65 7320 4449 4d45 2061 ecognizes DIME a
│ │ │ │ +001178b0: 7474 6163 686d 656e 7473 2061 6e64 2070 ttachments and p
│ │ │ │ +001178c0: 726f 6475 6365 7320 616e 2061 6e6e 6f74 roduces an annot
│ │ │ │ +001178d0: 6174 6564 2068 6561 6465 7220 6669 6c65 ated header file
│ │ │ │ +001178e0: 2e20 426f 7468 206f 7065 6e20 616e 6420 . Both open and
│ │ │ │ +001178f0: 636c 6f73 6564 206c 6179 6f75 7473 2061 closed layouts a
│ │ │ │ +00117900: 7265 2073 7570 706f 7274 6564 2066 6f72 re supported for
│ │ │ │ +00117910: 2074 7261 6e73 6d69 7474 696e 6720 4449 transmitting DI
│ │ │ │ +00117920: 4d45 2061 7474 6163 686d 656e 7473 2e20 ME attachments.
│ │ │ │ +00117930: 466f 7220 636c 6f73 6564 2066 6f72 6d61 For closed forma
│ │ │ │ +00117940: 7473 2c20 616c 6c20 4449 4d45 2061 7474 ts, all DIME att
│ │ │ │ +00117950: 6163 686d 656e 7473 206d 7573 7420 6265 achments must be
│ │ │ │ +00117960: 2072 6566 6572 656e 6365 6420 6672 6f6d referenced from
│ │ │ │ +00117970: 2074 6865 2053 4f41 5020 6d65 7373 6167 the SOAP messag
│ │ │ │ +00117980: 652c 2065 2e67 2e20 7573 696e 6720 6872 e, e.g. using hr
│ │ │ │ +00117990: 6566 7320 7769 7468 2053 4f41 5020 656e efs with SOAP en
│ │ │ │ +001179a0: 636f 6469 6e67 2061 6e64 2075 7369 6e67 coding and using
│ │ │ │ +001179b0: 2074 6865 2061 7070 6c69 6361 7469 6f6e the application
│ │ │ │ +001179c0: 2d73 7065 6369 6669 6320 7265 6665 7265 -specific refere
│ │ │ │ +001179d0: 6e63 6520 6174 7472 6962 7574 6520 696e nce attribute in
│ │ │ │ +001179e0: 636c 7564 6564 2069 6e20 7468 6520 3c63 cluded in the The soapcp
│ │ │ │ +00117ac0: 7032 2074 6f6f 6c20 646f 6573 206e 6f74 p2 tool does not
│ │ │ │ +00117ad0: 2070 726f 6475 6365 2061 2057 5344 4c20 produce a WSDL
│ │ │ │ +00117ae0: 7769 7468 2044 494d 4520 6578 7465 6e73 with DIME extens
│ │ │ │ +00117af0: 696f 6e73 2e20 4449 4d45 2069 7320 616e ions. DIME is an
│ │ │ │ +00117b00: 206f 6c64 6572 2062 696e 6172 7920 666f older binary fo
│ │ │ │ +00117b10: 726d 6174 2074 6861 7420 6861 7320 6e6f rmat that has no
│ │ │ │ +00117b20: 2057 5344 4c20 7072 6f74 6f63 6f6c 2073 WSDL protocol s
│ │ │ │ +00117b30: 7570 706f 7274 2c20 756e 6c69 6b65 204d upport, unlike M
│ │ │ │ +00117b40: 494d 4520 616e 6420 4d54 4f4d 2e3c 2f70 IME and MTOM. MTOM (Mess
│ │ │ │ +00117bd0: 6167 6520 5472 616e 736d 6973 7369 6f6e age Transmission
│ │ │ │ +00117be0: 204f 7074 696d 697a 6174 696f 6e20 4d65 Optimization Me
│ │ │ │ +00117bf0: 6368 616e 6973 6d29 2069 7320 6120 7265 chanism) is a re
│ │ │ │ +00117c00: 6c61 7469 7665 6c79 206e 6577 2066 6f72 latively new for
│ │ │ │ +00117c10: 6d61 7420 666f 7220 7472 616e 736d 6974 mat for transmit
│ │ │ │ +00117c20: 7469 6e67 2061 7474 6163 686d 656e 7473 ting attachments
│ │ │ │ +00117c30: 2077 6974 6820 534f 4150 206d 6573 7361 with SOAP messa
│ │ │ │ +00117c40: 6765 7320 2873 6565 203c 6120 6872 6566 ges (see http://www.w
│ │ │ │ +00117c80: 332e 6f72 672f 5452 2f73 6f61 7031 322d 3.org/TR/soap12-
│ │ │ │ +00117c90: 6d74 6f6d 3c2f 613e 292e 204d 544f 4d20 mtom). MTOM
│ │ │ │ +00117ca0: 6174 7461 6368 6d65 6e74 7320 6172 6520 attachments are
│ │ │ │ +00117cb0: 6573 7365 6e74 6961 6c6c 7920 4d49 4d45 essentially MIME
│ │ │ │ +00117cc0: 2061 7474 6163 686d 656e 7473 2077 6974 attachments wit
│ │ │ │ +00117cd0: 6820 7374 616e 6461 7264 697a 6564 206d h standardized m
│ │ │ │ +00117ce0: 6563 6861 6e69 736d 7320 666f 7220 6372 echanisms for cr
│ │ │ │ +00117cf0: 6f73 7320 7265 6665 7265 6e63 696e 6720 oss referencing
│ │ │ │ +00117d00: 6174 7461 6368 6d65 6e74 7320 6672 6f6d attachments from
│ │ │ │ +00117d10: 2074 6865 2053 4f41 5020 626f 6479 2c20 the SOAP body,
│ │ │ │ +00117d20: 7768 6963 6820 6973 2061 6273 656e 7420 which is absent
│ │ │ │ +00117d30: 696e 2028 706c 6169 6e29 204d 494d 4520 in (plain) MIME
│ │ │ │ +00117d40: 6174 7461 6368 6d65 6e74 7320 616e 6420 attachments and
│ │ │ │ +00117d50: 6f70 7469 6f6e 616c 2077 6974 6820 4449 optional with DI
│ │ │ │ +00117d60: 4d45 2061 7474 6163 686d 656e 7473 2e3c ME attachments.<
│ │ │ │ +00117d70: 2f70 3e0a 3c70 3e55 6e6c 696b 6520 7468 /p>. Unlike th
│ │ │ │ +00117d80: 6520 6e61 6d65 2073 7567 6765 7374 732c e name suggests,
│ │ │ │ +00117d90: 2074 6865 2073 7065 6564 2062 7920 7768 the speed by wh
│ │ │ │ +00117da0: 6963 6820 6174 7461 6368 6564 2064 6174 ich attached dat
│ │ │ │ +00117db0: 6120 6973 2074 7261 6e73 6d69 7474 6564 a is transmitted
│ │ │ │ +00117dc0: 2069 7320 6e6f 7420 696e 6372 6561 7365 is not increase
│ │ │ │ +00117dd0: 6420 636f 6d70 6172 6564 2074 6f20 4d49 d compared to MI
│ │ │ │ +00117de0: 4d45 2c20 4449 4d45 2c20 6f72 2065 7665 ME, DIME, or eve
│ │ │ │ +00117df0: 6e20 584d 4c20 656e 636f 6465 6420 6261 n XML encoded ba
│ │ │ │ +00117e00: 7365 3634 2064 6174 612c 2062 6563 6175 se64 data, becau
│ │ │ │ +00117e10: 7365 2074 6865 2070 6572 666f 726d 616e se the performan
│ │ │ │ +00117e20: 6365 2064 6966 6665 7265 6e63 6573 2077 ce differences w
│ │ │ │ +00117e30: 6865 6e20 7573 696e 6720 6753 4f41 5020 hen using gSOAP
│ │ │ │ +00117e40: 7769 6c6c 2062 6520 736d 616c 6c2e 2054 will be small. T
│ │ │ │ +00117e50: 6865 2061 6476 616e 7461 6765 206f 6620 he advantage of
│ │ │ │ +00117e60: 7468 6520 666f 726d 6174 2069 7320 7468 the format is th
│ │ │ │ +00117e70: 6520 7374 616e 6461 7264 697a 6564 2061 e standardized a
│ │ │ │ +00117e80: 7474 6163 686d 656e 7420 7265 6665 7265 ttachment refere
│ │ │ │ +00117e90: 6e63 6520 6d65 6368 616e 6973 6d2c 2077 nce mechanism, w
│ │ │ │ +00117ea0: 6869 6368 2073 686f 756c 6420 696d 7072 hich should impr
│ │ │ │ +00117eb0: 6f76 6520 696e 7465 726f 7065 7261 6269 ove interoperabi
│ │ │ │ +00117ec0: 6c69 7479 2e3c 2f70 3e0a 3c70 3e54 6865 lity. The
│ │ │ │ +00117ed0: 204d 544f 4d20 7370 6563 6966 6963 6174 MTOM specificat
│ │ │ │ +00117ee0: 696f 6e20 6d61 6e64 6174 6573 2053 4f41 ion mandates SOA
│ │ │ │ +00117ef0: 5020 312e 3220 616e 6420 7468 6520 7573 P 1.2 and the us
│ │ │ │ +00117f00: 6520 6f66 2074 6865 2058 4f50 206e 616d e of the XOP nam
│ │ │ │ +00117f10: 6573 7061 6365 2e20 5468 6520 584f 5020 espace. The XOP
│ │ │ │ +00117f20: 496e 636c 7564 6520 656c 656d 656e 7420 Include element
│ │ │ │ +00117f30: 3c65 6d3e 3c63 6f64 653e 786f 703a 496e
│ │ │ │ +00118060: 4265 6361 7573 6520 7265 6665 7265 6e63 Because referenc
│ │ │ │ +00118070: 6573 2066 726f 6d20 7769 7468 696e 2074 es from within t
│ │ │ │ +00118080: 6865 2053 4f41 5020 6d65 7373 6167 6520 he SOAP message
│ │ │ │ +00118090: 626f 6479 2074 6f20 6174 7461 6368 6d65 body to attachme
│ │ │ │ +001180a0: 6e74 7320 6172 6520 6d61 6e64 6174 6f72 nts are mandator
│ │ │ │ +001180b0: 7920 7769 7468 204d 544f 4d2c 2074 6865 y with MTOM, the
│ │ │ │ +001180c0: 2069 6d70 6c65 6d65 6e74 6174 696f 6e20 implementation
│ │ │ │ +001180d0: 6f66 2074 6865 2073 6572 6961 6c69 7a61 of the serializa
│ │ │ │ +001180e0: 7469 6f6e 2061 6e64 2064 6573 6572 6961 tion and deseria
│ │ │ │ +001180f0: 6c69 7a61 7469 6f6e 206f 6620 4d54 4f4d lization of MTOM
│ │ │ │ +00118100: 204d 494d 4520 6174 7461 6368 6d65 6e74 MIME attachment
│ │ │ │ +00118110: 7320 7573 6573 2074 6865 2065 7874 656e s uses the exten
│ │ │ │ +00118120: 6465 6420 6269 6e61 7279 2074 7970 6520 ded binary type
│ │ │ │ +00118130: 636f 6d70 6172 6162 6c65 2074 6f20 4449 comparable to DI
│ │ │ │ +00118140: 4d45 2073 7570 706f 7274 2e20 5468 6973 ME support. This
│ │ │ │ +00118150: 2062 696e 6172 7920 7479 7065 2069 7320 binary type is
│ │ │ │ +00118160: 7072 6564 6566 696e 6564 2069 6e20 7468 predefined in th
│ │ │ │ +00118170: 6520 3c65 6d3e 3c63 6f64 653e 696d 706f e The
│ │ │ │ +00118fb0: 2061 6464 6974 696f 6e61 6c20 3c63 6f64 additional Yo
│ │ │ │ +00119300: 7520 6361 6e20 696d 706f 7274 203c 656d u can import When a
│ │ │ │ -00119960: 6e20 696e 7374 616e 6365 206f 6620 3c63 n instance of Without this fl
│ │ │ │ -00119dc0: 6167 2c20 7468 6520 6174 7461 6368 6d65 ag, the attachme
│ │ │ │ -00119dd0: 6e74 7320 7769 6c6c 2062 6520 7472 616e nts will be tran
│ │ │ │ -00119de0: 736d 6974 7465 6420 696e 2044 494d 4520 smitted in DIME
│ │ │ │ -00119df0: 666f 726d 6174 2c20 7768 6963 6820 6973 format, which is
│ │ │ │ -00119e00: 206e 6f74 2077 6861 7420 7765 2077 616e not what we wan
│ │ │ │ -00119e10: 742e 2049 6620 796f 7572 2063 7572 7265 t. If your curre
│ │ │ │ -00119e20: 6e74 2063 6c69 656e 7473 2061 6e64 2073 nt clients and s
│ │ │ │ -00119e30: 6572 7669 6365 7320 6172 6520 6261 7365 ervices are base
│ │ │ │ -00119e40: 6420 6f6e 206e 6f6e 2d73 7472 6561 6d69 d on non-streami
│ │ │ │ -00119e50: 6e67 2044 494d 4520 6174 7461 6368 6d65 ng DIME attachme
│ │ │ │ -00119e60: 6e74 7320 7573 696e 6720 7468 6520 534f nts using the SO
│ │ │ │ -00119e70: 4150 2062 6f64 7920 7265 6665 7265 6e63 AP body referenc
│ │ │ │ -00119e80: 6520 6d65 6368 616e 6973 6d20 2874 6875 e mechanism (thu
│ │ │ │ -00119e90: 732c 2077 6974 686f 7574 2075 7369 6e67 s, without using
│ │ │ │ -00119ea0: 2074 6865 203c 636f 6465 3e3c 6120 636c the See also AP
│ │ │ │ -0011a040: 4920 646f 6375 6d65 6e74 6174 696f 6e20 I documentation
│ │ │ │ -0011a050: 4d6f 6475 6c65 203c 6120 636c 6173 733d Module MIME attachm
│ │ │ │ -0011a090: 656e 7420 6675 6e63 7469 6f6e 733c 2f61 ent functions. .... <
│ │ │ │ -0011a0b0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -0011a0c0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -0011a0d0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents To ge
│ │ │ │ -0011a150: 6e65 7261 7465 206d 756c 7469 7061 7274 nerate multipart
│ │ │ │ -0011a160: 5265 6c61 7465 6420 6269 6e64 696e 6773 Related bindings
│ │ │ │ -0011a170: 2069 6e20 7468 6520 5753 444c 2066 696c in the WSDL fil
│ │ │ │ -0011a180: 6520 696e 6469 6361 7469 6e67 2074 6865 e indicating the
│ │ │ │ -0011a190: 2075 7365 206f 6620 4d49 4d45 2061 7474 use of MIME att
│ │ │ │ -0011a1a0: 6163 686d 656e 7473 2c20 7573 653a 3c2f achments, use:
│ │ │ │ -0011a1b0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. Thi
│ │ │ │ -0011a250: 7320 6469 7265 6374 6976 6520 6469 7265 s directive dire
│ │ │ │ -0011a260: 6374 6976 6520 6361 6e20 6265 2072 6570 ctive can be rep
│ │ │ │ -0011a270: 6561 7465 6420 666f 7220 6561 6368 2061 eated for each a
│ │ │ │ -0011a280: 7474 6163 686d 656e 7420 796f 7520 7761 ttachment you wa
│ │ │ │ -0011a290: 6e74 2074 6f20 6173 736f 6369 6174 6520 nt to associate
│ │ │ │ -0011a2a0: 7769 7468 2061 206d 6574 686f 6427 7320 with a method's
│ │ │ │ -0011a2b0: 7265 7175 6573 7420 616e 6420 7265 7370 request and resp
│ │ │ │ -0011a2c0: 6f6e 7365 206d 6573 7361 6765 2e20 7365 onse message. se
│ │ │ │ -0011a2d0: 6520 616c 736f 2053 6563 7469 6f6e 203c e also Section <
│ │ │ │ -0011a2e0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0011a2f0: 663d 2269 6e64 6578 2e68 746d 6c23 6469 f="index.html#di
│ │ │ │ -0011a300: 7265 6374 6976 6573 223e 4469 7265 6374 rectives">Direct
│ │ │ │ -0011a310: 6976 6573 3c2f 613e 202e 3c2f 703e 0a3c ives .
│ │ │ │ +00119940: 5768 656e 2061 6e20 696e 7374 616e 6365 When an instance
│ │ │ │ +00119950: 206f 6620 3c63 6f64 653e 785f 5f6d 7944 of Without t
│ │ │ │ +00119da0: 6869 7320 666c 6167 2c20 7468 6520 6174 his flag, the at
│ │ │ │ +00119db0: 7461 6368 6d65 6e74 7320 7769 6c6c 2062 tachments will b
│ │ │ │ +00119dc0: 6520 7472 616e 736d 6974 7465 6420 696e e transmitted in
│ │ │ │ +00119dd0: 2044 494d 4520 666f 726d 6174 2c20 7768 DIME format, wh
│ │ │ │ +00119de0: 6963 6820 6973 206e 6f74 2077 6861 7420 ich is not what
│ │ │ │ +00119df0: 7765 2077 616e 742e 2049 6620 796f 7572 we want. If your
│ │ │ │ +00119e00: 2063 7572 7265 6e74 2063 6c69 656e 7473 current clients
│ │ │ │ +00119e10: 2061 6e64 2073 6572 7669 6365 7320 6172 and services ar
│ │ │ │ +00119e20: 6520 6261 7365 6420 6f6e 206e 6f6e 2d73 e based on non-s
│ │ │ │ +00119e30: 7472 6561 6d69 6e67 2044 494d 4520 6174 treaming DIME at
│ │ │ │ +00119e40: 7461 6368 6d65 6e74 7320 7573 696e 6720 tachments using
│ │ │ │ +00119e50: 7468 6520 534f 4150 2062 6f64 7920 7265 the SOAP body re
│ │ │ │ +00119e60: 6665 7265 6e63 6520 6d65 6368 616e 6973 ference mechanis
│ │ │ │ +00119e70: 6d20 2874 6875 732c 2077 6974 686f 7574 m (thus, without
│ │ │ │ +00119e80: 2075 7369 6e67 2074 6865 203c 636f 6465 using the See a
│ │ │ │ +0011a020: 6c73 6f20 4150 4920 646f 6375 6d65 6e74 lso API document
│ │ │ │ +0011a030: 6174 696f 6e20 4d6f 6475 6c65 203c 6120 ation Module MIME a
│ │ │ │ +0011a070: 7474 6163 686d 656e 7420 6675 6e63 7469 ttachment functi
│ │ │ │ +0011a080: 6f6e 733c 2f61 3e2e 3c2f 703e 0a3c 703e ons.
│ │ │ │ +0011a090: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +0011a0b0: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +0011a0c0: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>. To generate mul
│ │ │ │ +0011a140: 7469 7061 7274 5265 6c61 7465 6420 6269 tipartRelated bi
│ │ │ │ +0011a150: 6e64 696e 6773 2069 6e20 7468 6520 5753 ndings in the WS
│ │ │ │ +0011a160: 444c 2066 696c 6520 696e 6469 6361 7469 DL file indicati
│ │ │ │ +0011a170: 6e67 2074 6865 2075 7365 206f 6620 4d49 ng the use of MI
│ │ │ │ +0011a180: 4d45 2061 7474 6163 686d 656e 7473 2c20 ME attachments,
│ │ │ │ +0011a190: 7573 653a 3c2f 703e 0a3c 6469 7620 636c use: This directiv
│ │ │ │ +0011a240: 6520 6469 7265 6374 6976 6520 6361 6e20 e directive can
│ │ │ │ +0011a250: 6265 2072 6570 6561 7465 6420 666f 7220 be repeated for
│ │ │ │ +0011a260: 6561 6368 2061 7474 6163 686d 656e 7420 each attachment
│ │ │ │ +0011a270: 796f 7520 7761 6e74 2074 6f20 6173 736f you want to asso
│ │ │ │ +0011a280: 6369 6174 6520 7769 7468 2061 206d 6574 ciate with a met
│ │ │ │ +0011a290: 686f 6427 7320 7265 7175 6573 7420 616e hod's request an
│ │ │ │ +0011a2a0: 6420 7265 7370 6f6e 7365 206d 6573 7361 d response messa
│ │ │ │ +0011a2b0: 6765 2e20 7365 6520 616c 736f 2053 6563 ge. see also Sec
│ │ │ │ +0011a2c0: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion
│ │ │ │ +0011a2f0: 4469 7265 6374 6976 6573 3c2f 613e 202e Directives .
│ │ │ │ +0011a300: 3c2f 703e 0a3c 703e 466f 7220 6578 616d For exam
│ │ │ │ +0011a310: 706c 653a 3c2f 703e 0a3c 6469 7620 636c ple: The To b
│ │ │ │ -0011a960: 696e 6420 6174 7461 6368 6d65 6e74 7320 ind attachments
│ │ │ │ -0011a970: 6f6e 6c79 2074 6f20 7468 6520 7265 7175 only to the requ
│ │ │ │ -0011a980: 6573 7420 6d65 7373 6167 6520 6f66 2061 est message of a
│ │ │ │ -0011a990: 6e20 6f70 6572 6174 696f 6e2c 2075 7365 n operation, use
│ │ │ │ -0011a9a0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d The
│ │ │ │ -0011ab40: 7773 646c 3268 2074 6f6f 6c20 7265 636f wsdl2h tool reco
│ │ │ │ -0011ab50: 676e 697a 6573 204d 494d 4520 6174 7461 gnizes MIME atta
│ │ │ │ -0011ab60: 6368 6d65 6e74 7320 616e 6420 7072 6f64 chments and prod
│ │ │ │ -0011ab70: 7563 6573 2061 6e20 616e 6e6f 7461 7465 uces an annotate
│ │ │ │ -0011ab80: 6420 6865 6164 6572 2066 696c 652e 3c2f d header file.
│ │ │ │ -0011ab90: 703e 0a3c 703e 596f 7520 6361 6e20 7265 p>. You can re
│ │ │ │ -0011aba0: 7065 6174 2074 6865 7365 2064 6972 6563 peat these direc
│ │ │ │ -0011abb0: 7469 7665 7320 666f 7220 616c 6c20 6d75 tives for all mu
│ │ │ │ -0011abc0: 6c74 6970 6172 7452 656c 6174 6564 204d ltipartRelated M
│ │ │ │ -0011abd0: 494d 4520 6174 7461 6368 6d65 6e74 7320 IME attachments
│ │ │ │ -0011abe0: 796f 7520 7761 6e74 2074 6f20 6173 736f you want to asso
│ │ │ │ -0011abf0: 6369 6174 6520 7769 7468 2074 6865 2073 ciate with the s
│ │ │ │ -0011ac00: 6572 7669 6365 206f 7065 7261 7469 6f6e ervice operation
│ │ │ │ -0011ac10: 2069 6e70 7574 2061 6e64 206f 7574 7075 input and outpu
│ │ │ │ -0011ac20: 742e 3c2f 703e 0a3c 703e f09f 949d 203c t. .... <
│ │ │ │ -0011ac30: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -0011ac40: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -0011ac50: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents A receiver must
│ │ │ │ -0011acd0: 2062 6520 696e 666f 726d 6564 2074 6f20 be informed to
│ │ │ │ -0011ace0: 7265 636f 676e 697a 6520 4d54 4f4d 2061 recognize MTOM a
│ │ │ │ -0011acf0: 7474 6163 686d 656e 7473 2062 7920 7365 ttachments by se
│ │ │ │ -0011ad00: 7474 696e 6720 7468 6520 3c63 6f64 653e tting the Wh
│ │ │ │ -0011ae00: 656e 2075 7369 6e67 2077 7364 6c32 6820 en using wsdl2h
│ │ │ │ -0011ae10: 746f 2062 7569 6c64 2063 6c69 656e 7473 to build clients
│ │ │ │ -0011ae20: 2061 6e64 2f6f 7220 7365 7276 6963 6573 and/or services
│ │ │ │ -0011ae30: 2c20 796f 7520 7368 6f75 6c64 2075 7365 , you should use
│ │ │ │ -0011ae40: 2074 6865 203c 656d 3e3c 636f 6465 3e74 the T
│ │ │ │ -0011afd0: 6865 2077 7364 6c32 6820 746f 6f6c 2075 he wsdl2h tool u
│ │ │ │ -0011afe0: 7365 7320 7468 6520 3c65 6d3e 3c63 6f64 ses the The <
│ │ │ │ -0011b3b0: 636f 6465 3e23 696d 706f 7274 3c2f 636f code>#import statements a
│ │ │ │ -0011b3d0: 7265 206f 6e6c 7920 6164 6465 6420 666f re only added fo
│ │ │ │ -0011b3e0: 7220 7468 6f73 6520 6e61 6d65 7370 6163 r those namespac
│ │ │ │ -0011b3f0: 6573 2074 6861 7420 6172 6520 6163 7475 es that are actu
│ │ │ │ -0011b400: 616c 6c79 2075 7365 642e 3c2f 703e 0a3c ally used. Suppose th
│ │ │ │ -0011b6e0: 6520 5753 444c 2064 6566 696e 6573 2061 e WSDL defines a
│ │ │ │ -0011b6f0: 6e20 6f70 6572 6174 696f 6e3a 3c2f 703e n operation: After generatin
│ │ │ │ -0011b7f0: 6720 7468 6520 7374 7562 2066 756e 6374 g the stub funct
│ │ │ │ -0011b800: 696f 6e73 2077 6974 6820 7468 6520 736f ions with the so
│ │ │ │ -0011b810: 6170 6370 7032 2074 6f6f 6c2c 2077 6520 apcpp2 tool, we
│ │ │ │ -0011b820: 6361 6e20 696e 766f 6b65 2074 6865 2073 can invoke the s
│ │ │ │ -0011b830: 7475 6220 6174 2074 6865 2063 6c69 656e tub at the clien
│ │ │ │ -0011b840: 7420 7369 6465 2077 6974 683a 3c2f 703e t side with: Note that
│ │ │ │ -0011c190: 7468 6520 3c63 6f64 653e 786f 705f 5f49 the At the serv
│ │ │ │ -0011c220: 6572 2073 6964 652c 2077 6520 7368 6f77 er side, we show
│ │ │ │ -0011c230: 2061 6e20 6578 616d 706c 6520 6f66 2061 an example of a
│ │ │ │ -0011c240: 6e20 6f70 6572 6174 696f 6e20 6861 6e64 n operation hand
│ │ │ │ -0011c250: 6c65 7220 7468 6174 206a 7573 7420 636f ler that just co
│ │ │ │ -0011c260: 7069 6573 2074 6865 2069 6e70 7574 2064 pies the input d
│ │ │ │ -0011c270: 6174 6120 746f 206f 7574 7075 743a 3c2f ata to output:
│ │ │ │ -0011c280: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.
│ │ │ │ +0011a7b0: 5468 6520 3c63 6f64 653e 2f2f 6773 6f61 The Simil
│ │ │ │ +0011aa30: 6172 6c79 2c20 746f 2062 696e 6420 6174 arly, to bind at
│ │ │ │ +0011aa40: 7461 6368 6d65 6e74 7320 6f6e 6c79 2074 tachments only t
│ │ │ │ +0011aa50: 6f20 7468 6520 7265 7370 6f6e 7365 206d o the response m
│ │ │ │ +0011aa60: 6573 7361 6765 206f 6620 616e 206f 7065 essage of an ope
│ │ │ │ +0011aa70: 7261 7469 6f6e 2c20 7573 653a 3c2f 703e ration, use: You
│ │ │ │ +0011ab80: 6361 6e20 7265 7065 6174 2074 6865 7365 can repeat these
│ │ │ │ +0011ab90: 2064 6972 6563 7469 7665 7320 666f 7220 directives for
│ │ │ │ +0011aba0: 616c 6c20 6d75 6c74 6970 6172 7452 656c all multipartRel
│ │ │ │ +0011abb0: 6174 6564 204d 494d 4520 6174 7461 6368 ated MIME attach
│ │ │ │ +0011abc0: 6d65 6e74 7320 796f 7520 7761 6e74 2074 ments you want t
│ │ │ │ +0011abd0: 6f20 6173 736f 6369 6174 6520 7769 7468 o associate with
│ │ │ │ +0011abe0: 2074 6865 2073 6572 7669 6365 206f 7065 the service ope
│ │ │ │ +0011abf0: 7261 7469 6f6e 2069 6e70 7574 2061 6e64 ration input and
│ │ │ │ +0011ac00: 206f 7574 7075 742e 3c2f 703e 0a3c 703e output.
│ │ │ │ +0011ac10: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +0011ac30: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +0011ac40: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>. A receive
│ │ │ │ +0011acb0: 7220 6d75 7374 2062 6520 696e 666f 726d r must be inform
│ │ │ │ +0011acc0: 6564 2074 6f20 7265 636f 676e 697a 6520 ed to recognize
│ │ │ │ +0011acd0: 4d54 4f4d 2061 7474 6163 686d 656e 7473 MTOM attachments
│ │ │ │ +0011ace0: 2062 7920 7365 7474 696e 6720 7468 6520 by setting the
│ │ │ │ +0011acf0: 3c63 6f64 653e 2353 4f41 505f 454e 435f When using w
│ │ │ │ +0011adf0: 7364 6c32 6820 746f 2062 7569 6c64 2063 sdl2h to build c
│ │ │ │ +0011ae00: 6c69 656e 7473 2061 6e64 2f6f 7220 7365 lients and/or se
│ │ │ │ +0011ae10: 7276 6963 6573 2c20 796f 7520 7368 6f75 rvices, you shou
│ │ │ │ +0011ae20: 6c64 2075 7365 2074 6865 203c 656d 3e3c ld use the <
│ │ │ │ +0011ae30: 636f 6465 3e74 7970 656d 6170 2e64 6174 code>typemap.dat
│ │ │ │ +0011ae40: 3c2f 636f 6465 3e3c 2f65 6d3e 2066 696c fil
│ │ │ │ +0011ae50: 6520 696e 636c 7564 6564 2069 6e20 7468 e included in th
│ │ │ │ +0011ae60: 6520 6753 4f41 5020 736f 7572 6365 2063 e gSOAP source c
│ │ │ │ +0011ae70: 6f64 6520 7061 636b 6167 652e 2054 6865 ode package. The
│ │ │ │ +0011ae80: 203c 656d 3e3c 636f 6465 3e74 7970 656d The wsdl2h
│ │ │ │ +0011afc0: 746f 6f6c 2075 7365 7320 7468 6520 3c65 tool uses the The Let's ta
│ │ │ │ +0011b400: 6b65 2061 206c 6f6f 6b20 6174 2061 6e20 ke a look at an
│ │ │ │ +0011b410: 6578 616d 706c 652e 2054 6865 2077 7364 example. The wsd
│ │ │ │ +0011b420: 6c32 6820 696d 706f 7274 6572 2067 656e l2h importer gen
│ │ │ │ +0011b430: 6572 6174 6573 2061 2068 6561 6465 7220 erates a header
│ │ │ │ +0011b440: 6669 6c65 2077 6974 6820 3c63 6f64 653e file with Supp
│ │ │ │ +0011b6c0: 6f73 6520 7468 6520 5753 444c 2064 6566 ose the WSDL def
│ │ │ │ +0011b6d0: 696e 6573 2061 6e20 6f70 6572 6174 696f ines an operatio
│ │ │ │ +0011b6e0: 6e3a 3c2f 703e 0a3c 6469 7620 636c 6173 n: After gen
│ │ │ │ +0011b7d0: 6572 6174 696e 6720 7468 6520 7374 7562 erating the stub
│ │ │ │ +0011b7e0: 2066 756e 6374 696f 6e73 2077 6974 6820 functions with
│ │ │ │ +0011b7f0: 7468 6520 736f 6170 6370 7032 2074 6f6f the soapcpp2 too
│ │ │ │ +0011b800: 6c2c 2077 6520 6361 6e20 696e 766f 6b65 l, we can invoke
│ │ │ │ +0011b810: 2074 6865 2073 7475 6220 6174 2074 6865 the stub at the
│ │ │ │ +0011b820: 2063 6c69 656e 7420 7369 6465 2077 6974 client side wit
│ │ │ │ +0011b830: 683a 3c2f 703e 0a3c 6469 7620 636c 6173 h: Note
│ │ │ │ +0011c170: 2074 6861 7420 7468 6520 3c63 6f64 653e that the At th
│ │ │ │ +0011c200: 6520 7365 7276 6572 2073 6964 652c 2077 e server side, w
│ │ │ │ +0011c210: 6520 7368 6f77 2061 6e20 6578 616d 706c e show an exampl
│ │ │ │ +0011c220: 6520 6f66 2061 6e20 6f70 6572 6174 696f e of an operatio
│ │ │ │ +0011c230: 6e20 6861 6e64 6c65 7220 7468 6174 206a n handler that j
│ │ │ │ +0011c240: 7573 7420 636f 7069 6573 2074 6865 2069 ust copies the i
│ │ │ │ +0011c250: 6e70 7574 2064 6174 6120 746f 206f 7574 nput data to out
│ │ │ │ +0011c260: 7075 743a 3c2f 703e 0a3c 6469 7620 636c put: The serv
│ │ │ │ -0011c4f0: 6572 206d 7573 7420 7573 6520 7468 6520 er must use the
│ │ │ │ -0011c500: 3c63 6f64 653e 2353 4f41 505f 454e 435f .... <
│ │ │ │ -0011c5d0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -0011c5e0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -0011c5f0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents Streaming
│ │ │ │ -0011c650: 204d 494d 452f 4d54 4f4d 2069 7320 6163 MIME/MTOM is ac
│ │ │ │ -0011c660: 6869 6576 6564 2077 6974 6820 6361 6c6c hieved with call
│ │ │ │ -0011c670: 6261 636b 2066 756e 6374 696f 6e73 2074 back functions t
│ │ │ │ -0011c680: 6f20 6665 7463 6820 616e 6420 7374 6f72 o fetch and stor
│ │ │ │ -0011c690: 6520 6461 7461 2064 7572 696e 6720 7472 e data during tr
│ │ │ │ -0011c6a0: 616e 736d 6973 7369 6f6e 2e20 5468 7265 ansmission. Thre
│ │ │ │ -0011c6b0: 6520 6675 6e63 7469 6f6e 2063 616c 6c62 e function callb
│ │ │ │ -0011c6c0: 6163 6b73 2066 6f72 2073 7472 6561 6d69 acks for streami
│ │ │ │ -0011c6d0: 6e67 204d 494d 452f 4d54 4f4d 206f 7574 ng MIME/MTOM out
│ │ │ │ -0011c6e0: 7075 7420 616e 6420 7468 7265 6520 6361 put and three ca
│ │ │ │ -0011c6f0: 6c6c 6261 636b 7320 666f 7220 7374 7265 llbacks for stre
│ │ │ │ -0011c700: 616d 696e 6720 4d49 4d45 2f4d 544f 4d20 aming MIME/MTOM
│ │ │ │ -0011c710: 696e 7075 7420 6172 6520 6176 6169 6c61 input are availa
│ │ │ │ -0011c720: 626c 652e 3c2f 703e 0a3c 756c 3e0a 3c6c ble. In addition,
│ │ │ │ -0011ee40: 2061 203c 636f 6465 3e76 6f69 642a 203c a The fo
│ │ │ │ -0011f0b0: 6c6c 6f77 696e 6720 6578 616d 706c 6520 llowing example
│ │ │ │ -0011f0c0: 696c 6c75 7374 7261 7465 7320 7468 6520 illustrates the
│ │ │ │ -0011f0d0: 636c 6965 6e74 2d73 6964 6520 696e 6974 client-side init
│ │ │ │ -0011f0e0: 6961 6c69 7a61 7469 6f6e 206f 6620 616e ialization of an
│ │ │ │ -0011f0f0: 2069 6d61 6765 2061 7474 6163 686d 656e image attachmen
│ │ │ │ -0011f100: 7420 7374 7275 6374 2074 6f20 7374 7265 t struct to stre
│ │ │ │ -0011f110: 616d 2061 2066 696c 6520 696e 746f 2061 am a file into a
│ │ │ │ -0011f120: 204d 544f 4d20 6174 7461 6368 6d65 6e74 MTOM attachment
│ │ │ │ -0011f130: 2077 6974 686f 7574 2048 5454 5020 6368 without HTTP ch
│ │ │ │ -0011f140: 756e 6b69 6e67 2028 4854 5450 2073 7472 unking (HTTP str
│ │ │ │ -0011f150: 6561 6d69 6e67 2063 6875 6e6b 6564 204d eaming chunked M
│ │ │ │ -0011f160: 544f 4d20 7472 616e 7366 6572 2069 7320 TOM transfer is
│ │ │ │ -0011f170: 7072 6573 656e 7465 6420 696e 2053 6563 presented in Sec
│ │ │ │ -0011f180: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Streaming chun
│ │ │ │ -0011f1c0: 6b65 6420 4d49 4d45 2f4d 544f 4d3c 2f61 ked MIME/MTOM ): Th
│ │ │ │ +0011c4d0: 6520 7365 7276 6572 206d 7573 7420 7573 e server must us
│ │ │ │ +0011c4e0: 6520 7468 6520 3c63 6f64 653e 2353 4f41 e the
│ │ │ │ +0011c5b0: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +0011c5d0: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +0011c5e0: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>. Str
│ │ │ │ +0011c630: 6561 6d69 6e67 204d 494d 452f 4d54 4f4d eaming MIME/MTOM
│ │ │ │ +0011c640: 2069 7320 6163 6869 6576 6564 2077 6974 is achieved wit
│ │ │ │ +0011c650: 6820 6361 6c6c 6261 636b 2066 756e 6374 h callback funct
│ │ │ │ +0011c660: 696f 6e73 2074 6f20 6665 7463 6820 616e ions to fetch an
│ │ │ │ +0011c670: 6420 7374 6f72 6520 6461 7461 2064 7572 d store data dur
│ │ │ │ +0011c680: 696e 6720 7472 616e 736d 6973 7369 6f6e ing transmission
│ │ │ │ +0011c690: 2e20 5468 7265 6520 6675 6e63 7469 6f6e . Three function
│ │ │ │ +0011c6a0: 2063 616c 6c62 6163 6b73 2066 6f72 2073 callbacks for s
│ │ │ │ +0011c6b0: 7472 6561 6d69 6e67 204d 494d 452f 4d54 treaming MIME/MT
│ │ │ │ +0011c6c0: 4f4d 206f 7574 7075 7420 616e 6420 7468 OM output and th
│ │ │ │ +0011c6d0: 7265 6520 6361 6c6c 6261 636b 7320 666f ree callbacks fo
│ │ │ │ +0011c6e0: 7220 7374 7265 616d 696e 6720 4d49 4d45 r streaming MIME
│ │ │ │ +0011c6f0: 2f4d 544f 4d20 696e 7075 7420 6172 6520 /MTOM input are
│ │ │ │ +0011c700: 6176 6169 6c61 626c 652e 3c2f 703e 0a3c available. In add
│ │ │ │ +0011ee20: 6974 696f 6e2c 2061 203c 636f 6465 3e76 ition, a
│ │ │ │ +0011f090: 5468 6520 666f 6c6c 6f77 696e 6720 6578 The following ex
│ │ │ │ +0011f0a0: 616d 706c 6520 696c 6c75 7374 7261 7465 ample illustrate
│ │ │ │ +0011f0b0: 7320 7468 6520 636c 6965 6e74 2d73 6964 s the client-sid
│ │ │ │ +0011f0c0: 6520 696e 6974 6961 6c69 7a61 7469 6f6e e initialization
│ │ │ │ +0011f0d0: 206f 6620 616e 2069 6d61 6765 2061 7474 of an image att
│ │ │ │ +0011f0e0: 6163 686d 656e 7420 7374 7275 6374 2074 achment struct t
│ │ │ │ +0011f0f0: 6f20 7374 7265 616d 2061 2066 696c 6520 o stream a file
│ │ │ │ +0011f100: 696e 746f 2061 204d 544f 4d20 6174 7461 into a MTOM atta
│ │ │ │ +0011f110: 6368 6d65 6e74 2077 6974 686f 7574 2048 chment without H
│ │ │ │ +0011f120: 5454 5020 6368 756e 6b69 6e67 2028 4854 TTP chunking (HT
│ │ │ │ +0011f130: 5450 2073 7472 6561 6d69 6e67 2063 6875 TP streaming chu
│ │ │ │ +0011f140: 6e6b 6564 204d 544f 4d20 7472 616e 7366 nked MTOM transf
│ │ │ │ +0011f150: 6572 2069 7320 7072 6573 656e 7465 6420 er is presented
│ │ │ │ +0011f160: 696e 2053 6563 7469 6f6e 203c 6120 636c in Section Streamin
│ │ │ │ +0011f1a0: 6720 6368 756e 6b65 6420 4d49 4d45 2f4d g chunked MIME/M
│ │ │ │ +0011f1b0: 544f 4d3c 2f61 3e20 293a 3c2f 703e 0a3c TOM ): The foll
│ │ │ │ -00120d00: 6f77 696e 6720 6578 616d 706c 6520 696c owing example il
│ │ │ │ -00120d10: 6c75 7374 7261 7465 7320 7468 6520 7374 lustrates the st
│ │ │ │ -00120d20: 7265 616d 696e 6720 6f66 2061 204d 494d reaming of a MIM
│ │ │ │ -00120d30: 452f 4d54 4f4d 2061 7474 6163 686d 656e E/MTOM attachmen
│ │ │ │ -00120d40: 7420 696e 746f 2061 2066 696c 6520 6279 t into a file by
│ │ │ │ -00120d50: 2061 2063 6c69 656e 743a 3c2f 703e 0a3c a client: Th
│ │ │ │ +00120ce0: 6520 666f 6c6c 6f77 696e 6720 6578 616d e following exam
│ │ │ │ +00120cf0: 706c 6520 696c 6c75 7374 7261 7465 7320 ple illustrates
│ │ │ │ +00120d00: 7468 6520 7374 7265 616d 696e 6720 6f66 the streaming of
│ │ │ │ +00120d10: 2061 204d 494d 452f 4d54 4f4d 2061 7474 a MIME/MTOM att
│ │ │ │ +00120d20: 6163 686d 656e 7420 696e 746f 2061 2066 achment into a f
│ │ │ │ +00120d30: 696c 6520 6279 2061 2063 6c69 656e 743a ile by a client:
│ │ │ │ +00120d40: 3c2f 703e 0a3c 6469 7620 636c 6173 733d Mes
│ │ │ │ -00122a00: 7361 6765 2063 6f6d 7072 6573 7369 6f6e sage compression
│ │ │ │ -00122a10: 2077 6974 6820 3c63 6f64 653e 2353 4f41 with Note that
│ │ │ │ -00122dd0: 7468 6520 6578 616d 706c 6520 6162 6f76 the example abov
│ │ │ │ -00122de0: 6520 666f 7220 3c63 6f64 653e 6d69 6d65 e for Message compr
│ │ │ │ +001229f0: 6573 7369 6f6e 2077 6974 6820 3c63 6f64 ession with Note
│ │ │ │ +00122db0: 2074 6861 7420 7468 6520 6578 616d 706c that the exampl
│ │ │ │ +00122dc0: 6520 6162 6f76 6520 666f 7220 3c63 6f64 e above for To read the M
│ │ │ │ -001235c0: 544f 4d20 6461 7461 2066 6f72 2074 7261 TOM data for tra
│ │ │ │ -001235d0: 6e73 6d69 7373 696f 6e3a 3c2f 703e 0a3c nsmission: To read
│ │ │ │ +001235a0: 2074 6865 204d 544f 4d20 6461 7461 2066 the MTOM data f
│ │ │ │ +001235b0: 6f72 2074 7261 6e73 6d69 7373 696f 6e3a or transmission:
│ │ │ │ +001235c0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d
│ │ │ │ -00124470: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ -00124490: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ -001244a0: 703e 0a3c 6832 3e3c 6120 636c 6173 733d p>. Wh
│ │ │ │ -00124520: 656e 2069 7420 6973 2070 7265 6665 7261 en it is prefera
│ │ │ │ -00124530: 626c 6520 6f72 2072 6571 7569 7265 6420 ble or required
│ │ │ │ -00124540: 746f 2072 6564 6972 6563 7420 696e 626f to redirect inbo
│ │ │ │ -00124550: 756e 6420 4d49 4d45 2f4d 544f 4d20 6174 und MIME/MTOM at
│ │ │ │ -00124560: 7461 6368 6d65 6e74 2073 7472 6561 6d73 tachment streams
│ │ │ │ -00124570: 2062 6173 6564 206f 6e20 534f 4150 206d based on SOAP m
│ │ │ │ -00124580: 6573 7361 6765 2062 6f64 7920 636f 6e74 essage body cont
│ │ │ │ -00124590: 656e 742c 2077 6865 7265 2066 6f72 2065 ent, where for e
│ │ │ │ -001245a0: 7861 6d70 6c65 2074 6865 206e 616d 6573 xample the names
│ │ │ │ -001245b0: 206f 6620 7468 6520 7265 736f 7572 6365 of the resource
│ │ │ │ -001245c0: 7320 6172 6520 6c69 7374 6564 2069 6e20 s are listed in
│ │ │ │ -001245d0: 7468 6520 534f 4150 206d 6573 7361 6765 the SOAP message
│ │ │ │ -001245e0: 2062 6f64 792c 2061 6e20 616c 7465 726e body, an altern
│ │ │ │ -001245f0: 6174 6976 6520 6d65 6368 616e 6973 6d20 ative mechanism
│ │ │ │ -00124600: 6d75 7374 2062 6520 7573 6564 2074 6f20 must be used to
│ │ │ │ -00124610: 6861 6e64 6c65 2074 6865 2061 7474 6163 handle the attac
│ │ │ │ -00124620: 686d 656e 7473 2e20 5468 6973 206d 6563 hments. This mec
│ │ │ │ -00124630: 6861 6e69 736d 2063 616e 2062 6520 7573 hanism can be us
│ │ │ │ -00124640: 6564 2061 7420 7468 6520 636c 6965 6e74 ed at the client
│ │ │ │ -00124650: 2061 6e64 2073 6572 7665 7220 7369 6465 and server side
│ │ │ │ -00124660: 2e3c 2f70 3e0a 3c70 3e42 6563 6175 7365 . Because
│ │ │ │ -00124670: 2074 6865 2072 6f75 7469 6e67 206f 6620 the routing of
│ │ │ │ -00124680: 7468 6520 7374 7265 616d 7320 6973 2061 the streams is a
│ │ │ │ -00124690: 6363 6f6d 706c 6973 6865 6420 7769 7468 ccomplished with
│ │ │ │ -001246a0: 2065 7870 6c69 6369 7420 6675 6e63 7469 explicit functi
│ │ │ │ -001246b0: 6f6e 2063 616c 6c73 2c20 7468 6973 206d on calls, this m
│ │ │ │ -001246c0: 6574 686f 6420 7368 6f75 6c64 206f 6e6c ethod should onl
│ │ │ │ -001246d0: 7920 6265 2075 7365 6420 7768 656e 2072 y be used when r
│ │ │ │ -001246e0: 6571 7569 7265 6420 616e 6420 7368 6f75 equired and shou
│ │ │ │ -001246f0: 6c64 206e 6f74 2062 6520 636f 6e73 6964 ld not be consid
│ │ │ │ -00124700: 6572 6564 206f 7074 696f 6e61 6c2e 2054 ered optional. T
│ │ │ │ -00124710: 6861 7420 6973 2c20 7768 656e 2079 6f75 hat is, when you
│ │ │ │ -00124720: 2065 6e61 626c 6520 7468 6973 206d 6574 enable this met
│ │ │ │ -00124730: 686f 642c 2079 6f75 206d 7573 7420 6368 hod, you must ch
│ │ │ │ -00124740: 6563 6b20 666f 7220 7065 6e64 696e 6720 eck for pending
│ │ │ │ -00124750: 4d49 4d45 2f4d 544f 4d20 6174 7461 6368 MIME/MTOM attach
│ │ │ │ -00124760: 6d65 6e74 7320 616e 6420 6861 6e64 6c65 ments and handle
│ │ │ │ -00124770: 2074 6865 6d20 6170 7072 6f70 7269 6174 them appropriat
│ │ │ │ -00124780: 656c 792e 2054 6869 7320 6973 2074 7275 ely. This is tru
│ │ │ │ -00124790: 6520 6576 656e 2077 6865 6e20 796f 7520 e even when you
│ │ │ │ -001247a0: 646f 6e27 7420 6578 7065 6374 204d 494d don't expect MIM
│ │ │ │ -001247b0: 452f 4d54 4f4d 2061 7474 6163 686d 656e E/MTOM attachmen
│ │ │ │ -001247c0: 7473 2069 6e20 7468 6520 7061 796c 6f61 ts in the payloa
│ │ │ │ -001247d0: 642c 2062 6563 6175 7365 2074 6865 2070 d, because the p
│ │ │ │ -001247e0: 6565 7220 6d61 7920 7472 6963 6b20 796f eer may trick yo
│ │ │ │ -001247f0: 7520 6279 2073 656e 6469 6e67 2061 7474 u by sending att
│ │ │ │ -00124800: 6163 686d 656e 7473 2061 6e79 7761 7920 achments anyway
│ │ │ │ -00124810: 616e 6420 796f 7520 7368 6f75 6c64 2062 and you should b
│ │ │ │ -00124820: 6520 7072 6570 6172 6564 2074 6f20 6163 e prepared to ac
│ │ │ │ -00124830: 6365 7074 206f 7220 7265 6a65 6374 2074 cept or reject t
│ │ │ │ -00124840: 6865 6d2e 3c2f 703e 0a3c 703e 5468 6520 hem. The
│ │ │ │ -00124850: 6578 706c 6963 6974 204d 494d 452f 4d54 explicit MIME/MT
│ │ │ │ -00124860: 4f4d 2073 7472 6561 6d69 6e67 206d 6563 OM streaming mec
│ │ │ │ -00124870: 6861 6e69 736d 2063 6f6e 7369 7374 7320 hanism consists
│ │ │ │ -00124880: 6f66 2074 6872 6565 2041 5049 2066 756e of three API fun
│ │ │ │ -00124890: 6374 696f 6e73 3a3c 2f70 3e0a 3c75 6c3e ctions: E
│ │ │ │ -00125280: 7861 6d70 6c65 2063 6c69 656e 7420 696e xample client in
│ │ │ │ -00125290: 2043 3a3c 2f70 3e0a 3c64 6976 2063 6c61 C: When it is p
│ │ │ │ +00124510: 7265 6665 7261 626c 6520 6f72 2072 6571 referable or req
│ │ │ │ +00124520: 7569 7265 6420 746f 2072 6564 6972 6563 uired to redirec
│ │ │ │ +00124530: 7420 696e 626f 756e 6420 4d49 4d45 2f4d t inbound MIME/M
│ │ │ │ +00124540: 544f 4d20 6174 7461 6368 6d65 6e74 2073 TOM attachment s
│ │ │ │ +00124550: 7472 6561 6d73 2062 6173 6564 206f 6e20 treams based on
│ │ │ │ +00124560: 534f 4150 206d 6573 7361 6765 2062 6f64 SOAP message bod
│ │ │ │ +00124570: 7920 636f 6e74 656e 742c 2077 6865 7265 y content, where
│ │ │ │ +00124580: 2066 6f72 2065 7861 6d70 6c65 2074 6865 for example the
│ │ │ │ +00124590: 206e 616d 6573 206f 6620 7468 6520 7265 names of the re
│ │ │ │ +001245a0: 736f 7572 6365 7320 6172 6520 6c69 7374 sources are list
│ │ │ │ +001245b0: 6564 2069 6e20 7468 6520 534f 4150 206d ed in the SOAP m
│ │ │ │ +001245c0: 6573 7361 6765 2062 6f64 792c 2061 6e20 essage body, an
│ │ │ │ +001245d0: 616c 7465 726e 6174 6976 6520 6d65 6368 alternative mech
│ │ │ │ +001245e0: 616e 6973 6d20 6d75 7374 2062 6520 7573 anism must be us
│ │ │ │ +001245f0: 6564 2074 6f20 6861 6e64 6c65 2074 6865 ed to handle the
│ │ │ │ +00124600: 2061 7474 6163 686d 656e 7473 2e20 5468 attachments. Th
│ │ │ │ +00124610: 6973 206d 6563 6861 6e69 736d 2063 616e is mechanism can
│ │ │ │ +00124620: 2062 6520 7573 6564 2061 7420 7468 6520 be used at the
│ │ │ │ +00124630: 636c 6965 6e74 2061 6e64 2073 6572 7665 client and serve
│ │ │ │ +00124640: 7220 7369 6465 2e3c 2f70 3e0a 3c70 3e42 r side. B
│ │ │ │ +00124650: 6563 6175 7365 2074 6865 2072 6f75 7469 ecause the routi
│ │ │ │ +00124660: 6e67 206f 6620 7468 6520 7374 7265 616d ng of the stream
│ │ │ │ +00124670: 7320 6973 2061 6363 6f6d 706c 6973 6865 s is accomplishe
│ │ │ │ +00124680: 6420 7769 7468 2065 7870 6c69 6369 7420 d with explicit
│ │ │ │ +00124690: 6675 6e63 7469 6f6e 2063 616c 6c73 2c20 function calls,
│ │ │ │ +001246a0: 7468 6973 206d 6574 686f 6420 7368 6f75 this method shou
│ │ │ │ +001246b0: 6c64 206f 6e6c 7920 6265 2075 7365 6420 ld only be used
│ │ │ │ +001246c0: 7768 656e 2072 6571 7569 7265 6420 616e when required an
│ │ │ │ +001246d0: 6420 7368 6f75 6c64 206e 6f74 2062 6520 d should not be
│ │ │ │ +001246e0: 636f 6e73 6964 6572 6564 206f 7074 696f considered optio
│ │ │ │ +001246f0: 6e61 6c2e 2054 6861 7420 6973 2c20 7768 nal. That is, wh
│ │ │ │ +00124700: 656e 2079 6f75 2065 6e61 626c 6520 7468 en you enable th
│ │ │ │ +00124710: 6973 206d 6574 686f 642c 2079 6f75 206d is method, you m
│ │ │ │ +00124720: 7573 7420 6368 6563 6b20 666f 7220 7065 ust check for pe
│ │ │ │ +00124730: 6e64 696e 6720 4d49 4d45 2f4d 544f 4d20 nding MIME/MTOM
│ │ │ │ +00124740: 6174 7461 6368 6d65 6e74 7320 616e 6420 attachments and
│ │ │ │ +00124750: 6861 6e64 6c65 2074 6865 6d20 6170 7072 handle them appr
│ │ │ │ +00124760: 6f70 7269 6174 656c 792e 2054 6869 7320 opriately. This
│ │ │ │ +00124770: 6973 2074 7275 6520 6576 656e 2077 6865 is true even whe
│ │ │ │ +00124780: 6e20 796f 7520 646f 6e27 7420 6578 7065 n you don't expe
│ │ │ │ +00124790: 6374 204d 494d 452f 4d54 4f4d 2061 7474 ct MIME/MTOM att
│ │ │ │ +001247a0: 6163 686d 656e 7473 2069 6e20 7468 6520 achments in the
│ │ │ │ +001247b0: 7061 796c 6f61 642c 2062 6563 6175 7365 payload, because
│ │ │ │ +001247c0: 2074 6865 2070 6565 7220 6d61 7920 7472 the peer may tr
│ │ │ │ +001247d0: 6963 6b20 796f 7520 6279 2073 656e 6469 ick you by sendi
│ │ │ │ +001247e0: 6e67 2061 7474 6163 686d 656e 7473 2061 ng attachments a
│ │ │ │ +001247f0: 6e79 7761 7920 616e 6420 796f 7520 7368 nyway and you sh
│ │ │ │ +00124800: 6f75 6c64 2062 6520 7072 6570 6172 6564 ould be prepared
│ │ │ │ +00124810: 2074 6f20 6163 6365 7074 206f 7220 7265 to accept or re
│ │ │ │ +00124820: 6a65 6374 2074 6865 6d2e 3c2f 703e 0a3c ject them. Example cli
│ │ │ │ +00125270: 656e 7420 696e 2043 3a3c 2f70 3e0a 3c64 ent in C: The serv
│ │ │ │ +001265f0: 6572 2d73 6964 6520 7365 7276 6963 6520 er-side service
│ │ │ │ +00126600: 6f70 6572 6174 696f 6e73 2061 7265 2069 operations are i
│ │ │ │ +00126610: 6d70 6c65 6d65 6e74 6564 2061 7320 7573 mplemented as us
│ │ │ │ +00126620: 7561 6c2c 2062 7574 2077 6974 6820 6164 ual, but with ad
│ │ │ │ +00126630: 6469 7469 6f6e 616c 2063 6865 636b 7320 ditional checks
│ │ │ │ +00126640: 666f 7220 4d49 4d45 2f4d 544f 4d20 6174 for MIME/MTOM at
│ │ │ │ +00126650: 7461 6368 6d65 6e74 733a 3c2f 703e 0a3c tachments: We al
│ │ │ │ -00128a40: 736f 2069 6e63 6c75 6465 6420 6120 3c63 so included a One-way SOAP
│ │ │ │ -00128bf0: 2d6f 7665 722d 5544 5020 6d65 7373 6167 -over-UDP messag
│ │ │ │ -00128c00: 6573 2028 7365 6520 5365 6374 696f 6e20 es (see Section
│ │ │ │ -00128c10: 3c61 2063 6c61 7373 3d22 656c 2220 6872 Asynchro
│ │ │ │ -00128c40: 6e6f 7573 206f 6e65 2d77 6179 206d 6573 nous one-way mes
│ │ │ │ -00128c50: 7361 6765 2070 6173 7369 6e67 3c2f 613e sage passing
│ │ │ │ -00128c60: 2029 2073 686f 756c 6420 6265 2064 6563 ) should be dec
│ │ │ │ -00128c70: 6c61 7265 6420 746f 2069 6e63 6c75 6465 lared to include
│ │ │ │ -00128c80: 2074 6865 203c 656d 3e3c 636f 6465 3e77 the Request-re
│ │ │ │ -00128f80: 7370 6f6e 7365 2053 4f41 502d 6f76 6572 sponse SOAP-over
│ │ │ │ -00128f90: 2d55 4450 206d 6573 7361 6765 7320 7368 -UDP messages sh
│ │ │ │ -00128fa0: 6f75 6c64 2062 6520 6465 636c 6172 6564 ould be declared
│ │ │ │ -00128fb0: 2074 6f20 696e 636c 7564 6520 7468 6520 to include the
│ │ │ │ -00128fc0: 3c65 6d3e 3c63 6f64 653e 7773 613a 4d65 For t
│ │ │ │ -001294a0: 6865 2063 6f6e 7465 6e74 2072 6571 7569 he content requi
│ │ │ │ -001294b0: 7265 6d65 6e74 7320 6f66 2074 6865 7365 rements of these
│ │ │ │ -001294c0: 2065 6c65 6d65 6e74 732c 2070 6c65 6173 elements, pleas
│ │ │ │ -001294d0: 6520 636f 6e73 756c 7420 7468 6520 534f e consult the SO
│ │ │ │ -001294e0: 4150 2d6f 7665 722d 5544 5020 7370 6563 AP-over-UDP spec
│ │ │ │ -001294f0: 6966 6963 6174 696f 6e20 616e 642f 6f72 ification and/or
│ │ │ │ -00129500: 2072 6561 6420 7468 6520 6e65 7874 2073 read the next s
│ │ │ │ -00129510: 6563 7469 6f6e 7320 6578 706c 6169 6e69 ections explaini
│ │ │ │ -00129520: 6e67 2053 4f41 502d 6f76 6572 2d55 4450 ng SOAP-over-UDP
│ │ │ │ -00129530: 2075 6e69 6361 7374 2c20 6d75 6c74 6963 unicast, multic
│ │ │ │ -00129540: 6173 742c 206f 6e65 2d77 6179 2c20 616e ast, one-way, an
│ │ │ │ -00129550: 6420 7265 7175 6573 742d 7265 7370 6f6e d request-respon
│ │ │ │ -00129560: 7365 2063 6c69 656e 7420 616e 6420 7365 se client and se
│ │ │ │ -00129570: 7276 6572 2061 7070 6c69 6361 7469 6f6e rver application
│ │ │ │ -00129580: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s. .... <
│ │ │ │ -00129590: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ -001295a0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ -001295b0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6833 ents Thi
│ │ │ │ -00129610: 7320 6578 616d 706c 6520 6173 7375 6d65 s example assume
│ │ │ │ -00129620: 7320 7468 6174 2074 6865 2069 6e74 6572 s that the inter
│ │ │ │ -00129630: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ -00129640: 2069 6e63 6c75 6465 7320 7468 6520 534f includes the SO
│ │ │ │ -00129650: 4150 2048 6561 6465 7220 7769 7468 2057 AP Header with W
│ │ │ │ -00129660: 532d 4164 6472 6573 7369 6e67 2065 6c65 S-Addressing ele
│ │ │ │ -00129670: 6d65 6e74 732c 2073 6565 203c 6120 636c ments, see The WS-Addr
│ │ │ │ -001296b0: 6573 7369 6e67 2070 6c75 6769 6e3c 2f61 essing plugin, and the .... <
│ │ │ │ +00127510: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +00127520: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +00127530: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents To
│ │ │ │ +00127590: 2073 656e 6420 4d49 4d45 2f4d 544f 4d20 send MIME/MTOM
│ │ │ │ +001275a0: 6174 7461 6368 6d65 6e74 732c 2074 6865 attachments, the
│ │ │ │ +001275b0: 2061 7474 6163 686d 656e 7420 7369 7a65 attachment size
│ │ │ │ +001275c0: 7320 6d75 7374 2062 6520 6465 7465 726d s must be determ
│ │ │ │ +001275d0: 696e 6564 2069 6e20 6164 7661 6e63 6520 ined in advance
│ │ │ │ +001275e0: 746f 2063 616c 6375 6c61 7465 2048 5454 to calculate HTT
│ │ │ │ +001275f0: 5020 6d65 7373 6167 6520 6c65 6e67 7468 P message length
│ │ │ │ +00127600: 2072 6571 7569 7265 6420 746f 2073 7472 required to str
│ │ │ │ +00127610: 6561 6d20 4d49 4d45 2f4d 544f 4d20 6f76 eam MIME/MTOM ov
│ │ │ │ +00127620: 6572 2048 5454 502e 2048 6f77 6576 6572 er HTTP. However
│ │ │ │ +00127630: 2c20 6368 756e 6b65 6420 4d49 4d45 2f4d , chunked MIME/M
│ │ │ │ +00127640: 544f 4d20 746f 6765 7468 6572 2077 6974 TOM together wit
│ │ │ │ +00127650: 6820 6368 756e 6b65 6420 4854 5450 2063 h chunked HTTP c
│ │ │ │ +00127660: 616e 2062 6520 7573 6564 2074 6f20 6f6d an be used to om
│ │ │ │ +00127670: 6974 2074 6869 7320 7374 6570 2e20 4669 it this step. Fi
│ │ │ │ +00127680: 7273 7420 7365 7420 7468 6520 3c63 6f64 rst set the ...
│ │ │ │ +00127a00: 9d20 3c61 2068 7265 663d 2223 223e 4261 . Ba
│ │ │ │ +00127a10: 636b 2074 6f20 7461 626c 6520 6f66 2063 ck to table of c
│ │ │ │ +00127a20: 6f6e 7465 6e74 733c 2f61 3e3c 2f70 3e0a ontents UD
│ │ │ │ +00127a70: 5020 6973 2061 2073 696d 706c 652c 2075 P is a simple, u
│ │ │ │ +00127a80: 6e72 656c 6961 626c 6520 6461 7461 6772 nreliable datagr
│ │ │ │ +00127a90: 616d 2070 726f 746f 636f 6c3a 2055 4450 am protocol: UDP
│ │ │ │ +00127aa0: 2073 6f63 6b65 7473 2061 7265 2063 6f6e sockets are con
│ │ │ │ +00127ab0: 6e65 6374 696f 6e6c 6573 732e 2055 4450 nectionless. UDP
│ │ │ │ +00127ac0: 2061 6464 7265 7373 2066 6f72 6d61 7473 address formats
│ │ │ │ +00127ad0: 2061 7265 2069 6465 6e74 6963 616c 2074 are identical t
│ │ │ │ +00127ae0: 6f20 7468 6f73 6520 7573 6564 2062 7920 o those used by
│ │ │ │ +00127af0: 5443 502e 2049 6e20 7061 7274 6963 756c TCP. In particul
│ │ │ │ +00127b00: 6172 2055 4450 2070 726f 7669 6465 7320 ar UDP provides
│ │ │ │ +00127b10: 6120 706f 7274 2069 6465 6e74 6966 6965 a port identifie
│ │ │ │ +00127b20: 7220 696e 2061 6464 6974 696f 6e20 746f r in addition to
│ │ │ │ +00127b30: 2074 6865 206e 6f72 6d61 6c20 496e 7465 the normal Inte
│ │ │ │ +00127b40: 726e 6574 2061 6464 7265 7373 2066 6f72 rnet address for
│ │ │ │ +00127b50: 6d61 742e 2054 6865 2055 4450 2070 6f72 mat. The UDP por
│ │ │ │ +00127b60: 7420 7370 6163 6520 6973 2073 6570 6172 t space is separ
│ │ │ │ +00127b70: 6174 6520 6672 6f6d 2074 6865 2054 4350 ate from the TCP
│ │ │ │ +00127b80: 2070 6f72 7420 7370 6163 6520 2869 2e65 port space (i.e
│ │ │ │ +00127b90: 2e20 6120 5544 5020 706f 7274 206d 6179 . a UDP port may
│ │ │ │ +00127ba0: 206e 6f74 2062 6520 2263 6f6e 6e65 6374 not be "connect
│ │ │ │ +00127bb0: 6564 2220 746f 2061 2054 4350 2070 6f72 ed" to a TCP por
│ │ │ │ +00127bc0: 7429 2e20 496e 2061 6464 6974 696f 6e20 t). In addition
│ │ │ │ +00127bd0: 6272 6f61 6463 6173 7420 7061 636b 6574 broadcast packet
│ │ │ │ +00127be0: 7320 6d61 7920 6265 2073 656e 7420 2861 s may be sent (a
│ │ │ │ +00127bf0: 7373 756d 696e 6720 7468 6520 756e 6465 ssuming the unde
│ │ │ │ +00127c00: 726c 7969 6e67 206e 6574 776f 726b 2073 rlying network s
│ │ │ │ +00127c10: 7570 706f 7274 7320 7468 6973 2920 6279 upports this) by
│ │ │ │ +00127c20: 2075 7369 6e67 2061 2072 6573 6572 7665 using a reserve
│ │ │ │ +00127c30: 6420 2262 726f 6164 6361 7374 0a61 6464 d "broadcast.add
│ │ │ │ +00127c40: 7265 7373 223b 2074 6869 7320 6164 6472 ress"; this addr
│ │ │ │ +00127c50: 6573 7320 6973 206e 6574 776f 726b 2069 ess is network i
│ │ │ │ +00127c60: 6e74 6572 6661 6365 2064 6570 656e 6465 nterface depende
│ │ │ │ +00127c70: 6e74 2e3c 2f70 3e0a 3c70 3e43 6c69 656e nt. Clien
│ │ │ │ +00127c80: 742d 7369 6465 206d 6573 7361 6765 7320 t-side messages
│ │ │ │ +00127c90: 7769 7468 2053 4f41 502d 6f76 6572 2d55 with SOAP-over-U
│ │ │ │ +00127ca0: 4450 2065 6e64 706f 696e 7420 5552 4c73 DP endpoint URLs
│ │ │ │ +00127cb0: 2028 3c63 6f64 653e 736f 6170 2e75 6470 ( The maximum mes
│ │ │ │ +00127fd0: 7361 6765 206c 656e 6774 6820 666f 7220 sage length for
│ │ │ │ +00127fe0: 6461 7461 6772 616d 2070 6163 6b65 7473 datagram packets
│ │ │ │ +00127ff0: 2069 7320 7265 7374 7269 6374 6564 2062 is restricted b
│ │ │ │ +00128000: 7920 7468 6520 6275 6666 6572 2073 697a y the buffer siz
│ │ │ │ +00128010: 6520 3c63 6f64 653e 2353 4f41 505f 4255 e The
│ │ │ │ +00128240: 534f 4150 2d6f 7665 722d 5544 5020 7370 SOAP-over-UDP sp
│ │ │ │ +00128250: 6563 6966 6963 6174 696f 6e20 7265 6c69 ecification reli
│ │ │ │ +00128260: 6573 206f 6e20 5753 2d41 6464 7265 7373 es on WS-Address
│ │ │ │ +00128270: 696e 672e 2054 6865 203c 656d 3e3c 636f ing. The The
│ │ │ │ +00128310: 2067 534f 4150 2069 6d70 6c65 6d65 6e74 gSOAP implement
│ │ │ │ +00128320: 6174 696f 6e20 636f 6e66 6f72 6d73 2074 ation conforms t
│ │ │ │ +00128330: 6f20 7468 6520 534f 4150 2d6f 7665 722d o the SOAP-over-
│ │ │ │ +00128340: 5544 5020 7265 7175 6972 656d 656e 7473 UDP requirements
│ │ │ │ +00128350: 3a3c 2f70 3e0a 3c75 6c3e 0a3c 6c69 3e53 : The followi
│ │ │ │ +00128540: 6e67 2061 6464 6974 696f 6e61 6c20 6665 ng additional fe
│ │ │ │ +00128550: 6174 7572 6573 2061 7265 2061 6c73 6f20 atures are also
│ │ │ │ +00128560: 6176 6169 6c61 626c 652c 2062 7574 2061 available, but a
│ │ │ │ +00128570: 7265 206e 6f74 2073 7570 706f 7274 6564 re not supported
│ │ │ │ +00128580: 2062 7920 7468 6520 534f 4150 2d6f 7665 by the SOAP-ove
│ │ │ │ +00128590: 722d 5544 5020 7370 6563 6966 6963 6174 r-UDP specificat
│ │ │ │ +001285a0: 696f 6e3a 3c2f 703e 0a3c 756c 3e0a 3c6c ion: .... <
│ │ │ │ +001286c0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +001286d0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +001286e0: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents A SOAP-over-U
│ │ │ │ +00128750: 4450 2061 7070 6c69 6361 7469 6f6e 206d DP application m
│ │ │ │ +00128760: 6179 2075 7365 2057 532d 4164 6472 6573 ay use WS-Addres
│ │ │ │ +00128770: 7369 6e67 2074 6f20 636f 6e74 726f 6c20 sing to control
│ │ │ │ +00128780: 6d65 7373 6167 6520 6465 6c69 7665 7279 message delivery
│ │ │ │ +00128790: 2061 7320 7065 7220 534f 4150 2d6f 7665 as per SOAP-ove
│ │ │ │ +001287a0: 722d 5544 5020 7370 6563 6966 6963 6174 r-UDP specificat
│ │ │ │ +001287b0: 696f 6e2e 3c2f 703e 0a3c 703e 5468 6520 ion. The
│ │ │ │ +001287c0: 3c65 6d3e 3c63 6f64 653e 7773 612e 683c We also include
│ │ │ │ +00128a30: 6420 6120 3c63 6f64 653e 2f2f 6773 6f61 d a One-wa
│ │ │ │ +00128bd0: 7920 534f 4150 2d6f 7665 722d 5544 5020 y SOAP-over-UDP
│ │ │ │ +00128be0: 6d65 7373 6167 6573 2028 7365 6520 5365 messages (see Se
│ │ │ │ +00128bf0: 6374 696f 6e20 3c61 2063 6c61 7373 3d22 ction As
│ │ │ │ +00128c20: 796e 6368 726f 6e6f 7573 206f 6e65 2d77 ynchronous one-w
│ │ │ │ +00128c30: 6179 206d 6573 7361 6765 2070 6173 7369 ay message passi
│ │ │ │ +00128c40: 6e67 3c2f 613e 2029 2073 686f 756c 6420 ng ) should
│ │ │ │ +00128c50: 6265 2064 6563 6c61 7265 6420 746f 2069 be declared to i
│ │ │ │ +00128c60: 6e63 6c75 6465 2074 6865 203c 656d 3e3c nclude the <
│ │ │ │ +00128c70: 636f 6465 3e77 7361 3a4d 6573 7361 6765 code>wsa:Message
│ │ │ │ +00128c80: 4944 3c2f 636f 6465 3e3c 2f65 6d3e 2c20 ID,
│ │ │ │ +00128c90: 3c65 6d3e 3c63 6f64 653e 7773 613a 546f Requ
│ │ │ │ +00128f60: 6573 742d 7265 7370 6f6e 7365 2053 4f41 est-response SOA
│ │ │ │ +00128f70: 502d 6f76 6572 2d55 4450 206d 6573 7361 P-over-UDP messa
│ │ │ │ +00128f80: 6765 7320 7368 6f75 6c64 2062 6520 6465 ges should be de
│ │ │ │ +00128f90: 636c 6172 6564 2074 6f20 696e 636c 7564 clared to includ
│ │ │ │ +00128fa0: 6520 7468 6520 3c65 6d3e 3c63 6f64 653e e the For the content
│ │ │ │ +00129490: 2072 6571 7569 7265 6d65 6e74 7320 6f66 requirements of
│ │ │ │ +001294a0: 2074 6865 7365 2065 6c65 6d65 6e74 732c these elements,
│ │ │ │ +001294b0: 2070 6c65 6173 6520 636f 6e73 756c 7420 please consult
│ │ │ │ +001294c0: 7468 6520 534f 4150 2d6f 7665 722d 5544 the SOAP-over-UD
│ │ │ │ +001294d0: 5020 7370 6563 6966 6963 6174 696f 6e20 P specification
│ │ │ │ +001294e0: 616e 642f 6f72 2072 6561 6420 7468 6520 and/or read the
│ │ │ │ +001294f0: 6e65 7874 2073 6563 7469 6f6e 7320 6578 next sections ex
│ │ │ │ +00129500: 706c 6169 6e69 6e67 2053 4f41 502d 6f76 plaining SOAP-ov
│ │ │ │ +00129510: 6572 2d55 4450 2075 6e69 6361 7374 2c20 er-UDP unicast,
│ │ │ │ +00129520: 6d75 6c74 6963 6173 742c 206f 6e65 2d77 multicast, one-w
│ │ │ │ +00129530: 6179 2c20 616e 6420 7265 7175 6573 742d ay, and request-
│ │ │ │ +00129540: 7265 7370 6f6e 7365 2063 6c69 656e 7420 response client
│ │ │ │ +00129550: 616e 6420 7365 7276 6572 2061 7070 6c69 and server appli
│ │ │ │ +00129560: 6361 7469 6f6e 732e 3c2f 703e 0a3c 703e cations.
│ │ │ │ +00129570: f09f 949d 203c 6120 6872 6566 3d22 2322 .... Back to table o
│ │ │ │ +00129590: 6620 636f 6e74 656e 7473 3c2f 613e 3c2f f contents
│ │ │ │ +001295a0: 703e 0a3c 6833 3e3c 6120 636c 6173 733d p>. This example
│ │ │ │ +00129600: 6173 7375 6d65 7320 7468 6174 2074 6865 assumes that the
│ │ │ │ +00129610: 2069 6e74 6572 6661 6365 2068 6561 6465 interface heade
│ │ │ │ +00129620: 7220 6669 6c65 2069 6e63 6c75 6465 7320 r file includes
│ │ │ │ +00129630: 7468 6520 534f 4150 2048 6561 6465 7220 the SOAP Header
│ │ │ │ +00129640: 7769 7468 2057 532d 4164 6472 6573 7369 with WS-Addressi
│ │ │ │ +00129650: 6e67 2065 6c65 6d65 6e74 732c 2073 6565 ng elements, see
│ │ │ │ +00129660: 203c 6120 636c 6173 733d 2265 6c22 2068 The W
│ │ │ │ +00129690: 532d 4164 6472 6573 7369 6e67 2070 6c75 S-Addressing plu
│ │ │ │ +001296a0: 6769 6e3c 2f61 3e2c 2061 6e64 2074 6865 gin, and the
│ │ │ │ +001296b0: 203c 636f 6465 3e6e 735f 5f73 656e 6453 This ex
│ │ │ │ -0012a310: 616d 706c 6520 6973 2073 696d 696c 6172 ample is similar
│ │ │ │ -0012a320: 2074 6f20 7468 6520 6f6e 652d 7761 7920 to the one-way
│ │ │ │ -0012a330: 756e 6963 6173 7420 6578 616d 706c 6520 unicast example
│ │ │ │ -0012a340: 6469 7363 7573 7365 6420 6162 6f76 652c discussed above,
│ │ │ │ -0012a350: 2062 7574 2075 7365 7320 6120 6272 6f61 but uses a broa
│ │ │ │ -0012a360: 6463 6173 7420 6164 6472 6573 7320 616e dcast address an
│ │ │ │ -0012a370: 6420 7468 6520 3c63 6f64 653e 534f 5f42 d the Please re
│ │ │ │ -0012b880: 6665 7220 746f 2074 6865 2073 6f63 6b65 fer to the socke
│ │ │ │ -0012b890: 7420 6f70 7469 6f6e 7320 666f 7220 3c63 t options for Pleas
│ │ │ │ -0012b9f0: 6520 7265 6665 7220 746f 2074 6865 2073 e refer to the s
│ │ │ │ -0012ba00: 6f63 6b65 7420 6f70 7469 6f6e 7320 666f ocket options fo
│ │ │ │ -0012ba10: 7220 3c63 6f64 653e 4950 5052 4f54 4f5f r Thi
│ │ │ │ -0012bbb0: 7320 6578 616d 706c 6520 6173 7375 6d65 s example assume
│ │ │ │ -0012bbc0: 7320 7468 6174 2074 6865 2069 6e74 6572 s that the inter
│ │ │ │ -0012bbd0: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ -0012bbe0: 2066 6f72 2073 6f61 7063 7070 3220 696e for soapcpp2 in
│ │ │ │ -0012bbf0: 636c 7564 6573 2074 6865 2053 4f41 5020 cludes the SOAP
│ │ │ │ -0012bc00: 4865 6164 6572 2077 6974 6820 5753 2d41 Header with WS-A
│ │ │ │ -0012bc10: 6464 7265 7373 696e 6720 656c 656d 656e ddressing elemen
│ │ │ │ -0012bc20: 7473 2069 6d70 6f72 7465 6420 7769 7468 ts imported with
│ │ │ │ -0012bc30: 203c 636f 6465 3e23 696d 706f 7274 2022 ..
│ │ │ │ -0012cac0: 949d 203c 6120 6872 6566 3d22 2322 3e42 .. B
│ │ │ │ -0012cad0: 6163 6b20 746f 2074 6162 6c65 206f 6620 ack to table of
│ │ │ │ -0012cae0: 636f 6e74 656e 7473 3c2f 613e 3c2f 703e contents This ex
│ │ │ │ -0012cb60: 616d 706c 6520 6973 2073 696d 696c 6172 ample is similar
│ │ │ │ -0012cb70: 2074 6f20 7468 6520 7265 7175 6573 742d to the request-
│ │ │ │ -0012cb80: 7265 7370 6f6e 7365 2075 6e69 6361 7374 response unicast
│ │ │ │ -0012cb90: 2065 7861 6d70 6c65 2064 6973 6375 7373 example discuss
│ │ │ │ -0012cba0: 6564 2061 626f 7665 2c20 6275 7420 7573 ed above, but us
│ │ │ │ -0012cbb0: 6573 2061 2062 726f 6164 6361 7374 2061 es a broadcast a
│ │ │ │ -0012cbc0: 6464 7265 7373 2061 6e64 2074 6865 203c ddress and the <
│ │ │ │ -0012cbd0: 636f 6465 3e53 4f5f 4252 4f41 4443 4153 code>SO_BROADCAS
│ │ │ │ -0012cbe0: 543c 2f63 6f64 653e 2073 6f63 6b65 7420 T socket
│ │ │ │ -0012cbf0: 6f70 7469 6f6e 2e20 4265 6361 7573 6520 option. Because
│ │ │ │ -0012cc00: 7765 2065 7870 6563 7420 746f 2072 6563 we expect to rec
│ │ │ │ -0012cc10: 6569 7665 206d 756c 7469 706c 6520 7265 eive multiple re
│ │ │ │ -0012cc20: 7370 6f6e 7365 732c 2077 6520 616c 736f sponses, we also
│ │ │ │ -0012cc30: 206e 6565 6420 746f 2075 7365 2073 6570 need to use sep
│ │ │ │ -0012cc40: 6172 6174 6520 7265 7175 6573 742d 7265 arate request-re
│ │ │ │ -0012cc50: 7370 6f6e 7365 206d 6573 7361 6765 7320 sponse messages
│ │ │ │ -0012cc60: 746f 2073 656e 6420 6f6e 6520 7265 7175 to send one requ
│ │ │ │ -0012cc70: 6573 7420 616e 6420 636f 6e73 756d 6520 est and consume
│ │ │ │ -0012cc80: 6d75 6c74 6970 6c65 2072 6573 706f 6e73 multiple respons
│ │ │ │ -0012cc90: 6573 2e20 496e 2074 6869 7320 6578 616d es. In this exam
│ │ │ │ -0012cca0: 706c 6520 7765 2064 6566 696e 6564 2061 ple we defined a
│ │ │ │ -0012ccb0: 203c 636f 6465 3e62 6361 7374 5374 7269 To obtain res
│ │ │ │ -0012d2f0: 706f 6e73 6520 6f6e 652d 7761 7920 6f70 ponse one-way op
│ │ │ │ -0012d300: 6572 6174 696f 6e73 2c20 7573 6520 3c61 erations, use The cl
│ │ │ │ -0012d370: 6965 6e74 2063 6f64 6520 696e 636c 7564 ient code includ
│ │ │ │ -0012d380: 6573 2061 206c 6f6f 7020 746f 2072 6563 es a loop to rec
│ │ │ │ -0012d390: 6569 7665 2072 6573 706f 6e73 6520 6d65 eive response me
│ │ │ │ -0012d3a0: 7373 6167 6573 2075 6e74 696c 2061 2074 ssages until a t
│ │ │ │ -0012d3b0: 696d 656f 7574 206f 6363 7572 733a 3c2f imeout occurs:
│ │ │ │ -0012d3c0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. T
│ │ │ │ +0012a2f0: 6869 7320 6578 616d 706c 6520 6973 2073 his example is s
│ │ │ │ +0012a300: 696d 696c 6172 2074 6f20 7468 6520 6f6e imilar to the on
│ │ │ │ +0012a310: 652d 7761 7920 756e 6963 6173 7420 6578 e-way unicast ex
│ │ │ │ +0012a320: 616d 706c 6520 6469 7363 7573 7365 6420 ample discussed
│ │ │ │ +0012a330: 6162 6f76 652c 2062 7574 2075 7365 7320 above, but uses
│ │ │ │ +0012a340: 6120 6272 6f61 6463 6173 7420 6164 6472 a broadcast addr
│ │ │ │ +0012a350: 6573 7320 616e 6420 7468 6520 3c63 6f64 ess and the Ple
│ │ │ │ +0012b860: 6173 6520 7265 6665 7220 746f 2074 6865 ase refer to the
│ │ │ │ +0012b870: 2073 6f63 6b65 7420 6f70 7469 6f6e 7320 socket options
│ │ │ │ +0012b880: 666f 7220 3c63 6f64 653e 4950 5052 4f54 for Please refer to
│ │ │ │ +0012b9e0: 2074 6865 2073 6f63 6b65 7420 6f70 7469 the socket opti
│ │ │ │ +0012b9f0: 6f6e 7320 666f 7220 3c63 6f64 653e 4950 ons for This example
│ │ │ │ +0012bba0: 6173 7375 6d65 7320 7468 6174 2074 6865 assumes that the
│ │ │ │ +0012bbb0: 2069 6e74 6572 6661 6365 2068 6561 6465 interface heade
│ │ │ │ +0012bbc0: 7220 6669 6c65 2066 6f72 2073 6f61 7063 r file for soapc
│ │ │ │ +0012bbd0: 7070 3220 696e 636c 7564 6573 2074 6865 pp2 includes the
│ │ │ │ +0012bbe0: 2053 4f41 5020 4865 6164 6572 2077 6974 SOAP Header wit
│ │ │ │ +0012bbf0: 6820 5753 2d41 6464 7265 7373 696e 6720 h WS-Addressing
│ │ │ │ +0012bc00: 656c 656d 656e 7473 2069 6d70 6f72 7465 elements importe
│ │ │ │ +0012bc10: 6420 7769 7468 203c 636f 6465 3e23 696d d with To obta
│ │ │ │ +0012d2d0: 696e 2072 6573 706f 6e73 6520 6f6e 652d in response one-
│ │ │ │ +0012d2e0: 7761 7920 6f70 6572 6174 696f 6e73 2c20 way operations,
│ │ │ │ +0012d2f0: 7573 6520 3c61 2068 7265 663d 2223 7773 use
│ │ │ │ +0012d350: 5468 6520 636c 6965 6e74 2063 6f64 6520 The client code
│ │ │ │ +0012d360: 696e 636c 7564 6573 2061 206c 6f6f 7020 includes a loop
│ │ │ │ +0012d370: 746f 2072 6563 6569 7665 2072 6573 706f to receive respo
│ │ │ │ +0012d380: 6e73 6520 6d65 7373 6167 6573 2075 6e74 nse messages unt
│ │ │ │ +0012d390: 696c 2061 2074 696d 656f 7574 206f 6363 il a timeout occ
│ │ │ │ +0012d3a0: 7572 733a 3c2f 703e 0a3c 6469 7620 636c urs: Note t
│ │ │ │ -0012e610: 6861 7420 6120 7365 7276 6572 2066 6f72 hat a server for
│ │ │ │ -0012e620: 2074 6865 203c 636f 6465 3e62 6361 7374 the
│ │ │ │ -0012e770: 5468 6520 666f 6c6c 6f77 696e 6720 6578 The following ex
│ │ │ │ -0012e780: 616d 706c 6520 636f 6465 2069 6c6c 7573 ample code illus
│ │ │ │ -0012e790: 7472 6174 6573 2061 2053 4f41 502d 6f76 trates a SOAP-ov
│ │ │ │ -0012e7a0: 6572 2d55 4450 2073 6572 7665 7220 666f er-UDP server fo
│ │ │ │ -0012e7b0: 7220 6f6e 652d 7761 7920 3c63 6f64 653e r one-way
│ │ │ │ +0012e5f0: 4e6f 7465 2074 6861 7420 6120 7365 7276 Note that a serv
│ │ │ │ +0012e600: 6572 2066 6f72 2074 6865 203c 636f 6465 er for the .... <
│ │ │ │ +0012e6e0: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +0012e6f0: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +0012e700: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6832 ents The follow
│ │ │ │ +0012e760: 696e 6720 6578 616d 706c 6520 636f 6465 ing example code
│ │ │ │ +0012e770: 2069 6c6c 7573 7472 6174 6573 2061 2053 illustrates a S
│ │ │ │ +0012e780: 4f41 502d 6f76 6572 2d55 4450 2073 6572 OAP-over-UDP ser
│ │ │ │ +0012e790: 7665 7220 666f 7220 6f6e 652d 7761 7920 ver for one-way
│ │ │ │ +0012e7a0: 3c63 6f64 653e 7365 6e64 5374 7269 6e67 The serv
│ │ │ │ -001308a0: 6572 2062 696e 6473 2074 6f20 6120 686f er binds to a ho
│ │ │ │ -001308b0: 7374 2061 6e64 2070 6f72 7420 616e 6420 st and port and
│ │ │ │ -001308c0: 6163 6365 7074 7320 6d65 7373 6167 6573 accepts messages
│ │ │ │ -001308d0: 2069 6e20 6120 6c6f 6f70 2e20 4265 6361 in a loop. Beca
│ │ │ │ -001308e0: 7573 6520 5544 5020 646f 6573 206e 6f74 use UDP does not
│ │ │ │ -001308f0: 2068 6176 6520 7468 6520 6571 7569 7661 have the equiva
│ │ │ │ -00130900: 6c65 6e74 206f 6620 616e 2061 6363 6570 lent of an accep
│ │ │ │ -00130910: 742c 2074 6865 206d 6573 7361 6765 7320 t, the messages
│ │ │ │ -00130920: 6361 6e6e 6f74 2062 6520 6469 7370 6174 cannot be dispat
│ │ │ │ -00130930: 6368 6564 2074 6f20 7468 7265 6164 732e ched to threads.
│ │ │ │ -00130940: 2049 6e73 7465 6164 2074 6865 203c 636f Instead the To obtain
│ │ │ │ -00130bb0: 2072 6573 706f 6e73 6520 6f6e 652d 7761 response one-wa
│ │ │ │ -00130bc0: 7920 6f70 6572 6174 696f 6e73 2066 726f y operations fro
│ │ │ │ -00130bd0: 6d20 6120 5753 444c 2c20 7573 6520 3c61 m a WSDL, use For U
│ │ │ │ -00130d60: 4450 206d 756c 7469 6361 7374 2073 7570 DP multicast sup
│ │ │ │ -00130d70: 706f 7274 2c20 666f 6c6c 6f77 2074 6865 port, follow the
│ │ │ │ -00130d80: 2073 7567 6765 7374 696f 6e73 2069 6e20 suggestions in
│ │ │ │ -00130d90: 5365 6374 696f 6e20 3c61 2063 6c61 7373 Section SOAP-over-UD
│ │ │ │ -00130dd0: 5020 7365 7276 6572 3c2f 613e 2061 6e64 P server and
│ │ │ │ -00130de0: 2063 6861 6e67 6520 7468 6520 696e 6974 change the init
│ │ │ │ -00130df0: 6961 6c69 7a61 7469 6f6e 2070 6172 7473 ialization parts
│ │ │ │ -00130e00: 206f 6620 7468 6520 636f 6465 2074 6f20 of the code to
│ │ │ │ -00130e10: 656e 6162 6c65 2055 4450 206d 756c 7469 enable UDP multi
│ │ │ │ -00130e20: 6361 7374 2070 6f72 7420 6269 6e64 696e cast port bindin
│ │ │ │ -00130e30: 6720 6279 2074 6f20 7465 6c6c 696e 6720 g by to telling
│ │ │ │ -00130e40: 7468 6520 6b65 726e 656c 2077 6869 6368 the kernel which
│ │ │ │ -00130e50: 206d 756c 7469 6361 7374 2067 726f 7570 multicast group
│ │ │ │ -00130e60: 7320 796f 7520 6172 6520 696e 7465 7265 s you are intere
│ │ │ │ -00130e70: 7374 6564 2069 6e3a 3c2f 703e 0a3c 6469 sted in: Th
│ │ │ │ +00130880: 6520 7365 7276 6572 2062 696e 6473 2074 e server binds t
│ │ │ │ +00130890: 6f20 6120 686f 7374 2061 6e64 2070 6f72 o a host and por
│ │ │ │ +001308a0: 7420 616e 6420 6163 6365 7074 7320 6d65 t and accepts me
│ │ │ │ +001308b0: 7373 6167 6573 2069 6e20 6120 6c6f 6f70 ssages in a loop
│ │ │ │ +001308c0: 2e20 4265 6361 7573 6520 5544 5020 646f . Because UDP do
│ │ │ │ +001308d0: 6573 206e 6f74 2068 6176 6520 7468 6520 es not have the
│ │ │ │ +001308e0: 6571 7569 7661 6c65 6e74 206f 6620 616e equivalent of an
│ │ │ │ +001308f0: 2061 6363 6570 742c 2074 6865 206d 6573 accept, the mes
│ │ │ │ +00130900: 7361 6765 7320 6361 6e6e 6f74 2062 6520 sages cannot be
│ │ │ │ +00130910: 6469 7370 6174 6368 6564 2074 6f20 7468 dispatched to th
│ │ │ │ +00130920: 7265 6164 732e 2049 6e73 7465 6164 2074 reads. Instead t
│ │ │ │ +00130930: 6865 203c 636f 6465 3e3c 6120 636c 6173 he To
│ │ │ │ +00130b90: 6f62 7461 696e 2072 6573 706f 6e73 6520 obtain response
│ │ │ │ +00130ba0: 6f6e 652d 7761 7920 6f70 6572 6174 696f one-way operatio
│ │ │ │ +00130bb0: 6e73 2066 726f 6d20 6120 5753 444c 2c20 ns from a WSDL,
│ │ │ │ +00130bc0: 7573 6520 3c61 2068 7265 663d 2223 7773 use For UDP multica
│ │ │ │ +00130d50: 7374 2073 7570 706f 7274 2c20 666f 6c6c st support, foll
│ │ │ │ +00130d60: 6f77 2074 6865 2073 7567 6765 7374 696f ow the suggestio
│ │ │ │ +00130d70: 6e73 2069 6e20 5365 6374 696f 6e20 3c61 ns in Section SOAP-o
│ │ │ │ +00130db0: 7665 722d 5544 5020 7365 7276 6572 3c2f ver-UDP server
│ │ │ │ +00130dc0: 613e 2061 6e64 2063 6861 6e67 6520 7468 a> and change th
│ │ │ │ +00130dd0: 6520 696e 6974 6961 6c69 7a61 7469 6f6e e initialization
│ │ │ │ +00130de0: 2070 6172 7473 206f 6620 7468 6520 636f parts of the co
│ │ │ │ +00130df0: 6465 2074 6f20 656e 6162 6c65 2055 4450 de to enable UDP
│ │ │ │ +00130e00: 206d 756c 7469 6361 7374 2070 6f72 7420 multicast port
│ │ │ │ +00130e10: 6269 6e64 696e 6720 6279 2074 6f20 7465 binding by to te
│ │ │ │ +00130e20: 6c6c 696e 6720 7468 6520 6b65 726e 656c lling the kernel
│ │ │ │ +00130e30: 2077 6869 6368 206d 756c 7469 6361 7374 which multicast
│ │ │ │ +00130e40: 2067 726f 7570 7320 796f 7520 6172 6520 groups you are
│ │ │ │ +00130e50: 696e 7465 7265 7374 6564 2069 6e3a 3c2f interested in:
│ │ │ │ +00130e60: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>. The following
│ │ │ │ -001360d0: 2068 6561 6465 7220 6669 6c65 2066 6f72 header file for
│ │ │ │ -001360e0: 2073 6f61 7063 7070 3220 7265 6665 7273 soapcpp2 refers
│ │ │ │ -001360f0: 2074 6f20 3c63 6f64 653e 7374 643a 3a6f to .... <
│ │ │ │ +00131b00: 6120 6872 6566 3d22 2322 3e42 6163 6b20 a href="#">Back
│ │ │ │ +00131b10: 746f 2074 6162 6c65 206f 6620 636f 6e74 to table of cont
│ │ │ │ +00131b20: 656e 7473 3c2f 613e 3c2f 703e 0a3c 6831 ents The follow
│ │ │ │ +00131b80: 696e 6720 6d61 6372 6f73 2061 7265 2064 ing macros are d
│ │ │ │ +00131b90: 6566 696e 6564 2069 6e20 7468 6520 4150 efined in the AP
│ │ │ │ +00131ba0: 4920 646f 6375 6d65 6e74 6174 696f 6e20 I documentation
│ │ │ │ +00131bb0: 4d6f 6475 6c65 203c 6120 636c 6173 733d Module WITH_MACRO c
│ │ │ │ +00131bf0: 6f6d 7069 6c65 2d74 696d 6520 666c 6167 ompile-time flag
│ │ │ │ +00131c00: 733c 2f61 3e2e 2054 6865 7365 206d 6163 s. These mac
│ │ │ │ +00131c10: 726f 7320 6172 6520 7573 6564 2074 6f20 ros are used to
│ │ │ │ +00131c20: 656e 6162 6c65 206f 7220 6469 7361 626c enable or disabl
│ │ │ │ +00131c30: 6520 6665 6174 7572 6573 2061 7320 7370 e features as sp
│ │ │ │ +00131c40: 6563 6966 6965 6420 6265 6c6f 772c 2062 ecified below, b
│ │ │ │ +00131c50: 7920 636f 6d70 696c 696e 6720 736f 7572 y compiling sour
│ │ │ │ +00131c60: 6365 2063 6f64 6520 6669 6c65 7320 7769 ce code files wi
│ │ │ │ +00131c70: 7468 2063 6f6d 7069 6c65 7220 6f70 7469 th compiler opti
│ │ │ │ +00131c80: 6f6e 203c 623e 3c63 6f64 653e 2d44 3c2f on The
│ │ │ │ +001342a0: 2066 6f6c 6c6f 7769 6e67 2073 7562 7365 following subse
│ │ │ │ +001342b0: 7420 6f66 206d 6163 726f 7320 6172 6520 t of macros are
│ │ │ │ +001342c0: 6465 6669 6e65 6420 696e 2074 6865 2041 defined in the A
│ │ │ │ +001342d0: 5049 2064 6f63 756d 656e 7461 7469 6f6e PI documentation
│ │ │ │ +001342e0: 204d 6f64 756c 6520 3c61 2063 6c61 7373 Module SOAP_MACRO
│ │ │ │ +00134320: 636f 6d70 696c 652d 7469 6d65 2076 616c compile-time val
│ │ │ │ +00134330: 7565 733c 2f61 3e2e 2054 6865 7365 206d ues. These m
│ │ │ │ +00134340: 6163 726f 7320 6172 6520 7573 6564 2074 acros are used t
│ │ │ │ +00134350: 6f20 656e 6162 6c65 206f 7220 6469 7361 o enable or disa
│ │ │ │ +00134360: 626c 6520 6665 6174 7572 6573 2061 7320 ble features as
│ │ │ │ +00134370: 7370 6563 6966 6965 6420 6265 6c6f 772c specified below,
│ │ │ │ +00134380: 2062 7920 636f 6d70 696c 696e 6720 736f by compiling so
│ │ │ │ +00134390: 7572 6365 2063 6f64 6520 6669 6c65 7320 urce code files
│ │ │ │ +001343a0: 7769 7468 2063 6f6d 7069 6c65 7220 6f70 with compiler op
│ │ │ │ +001343b0: 7469 6f6e 203c 623e 3c63 6f64 653e 2d44 tion The
│ │ │ │ +00135e30: 2054 6865 203c 656d 3e3c 636f 6465 3e73 The For example,
│ │ │ │ +00135fc0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d The fol
│ │ │ │ +001360b0: 6c6f 7769 6e67 2068 6561 6465 7220 6669 lowing header fi
│ │ │ │ +001360c0: 6c65 2066 6f72 2073 6f61 7063 7070 3220 le for soapcpp2
│ │ │ │ +001360d0: 7265 6665 7273 2074 6f20 3c63 6f64 653e refers to See al
│ │ │ │ -00136490: 736f 2053 6563 7469 6f6e 203c 6120 636c so Section Transient d
│ │ │ │ -001364d0: 6174 6120 7479 7065 733c 2f61 3e20 2c20 ata types ,
│ │ │ │ -001364e0: 6e6f 6e2d 7365 7269 616c 697a 6162 6c65 non-serializable
│ │ │ │ -001364f0: 2064 6174 6120 7479 7065 732e 3c2f 703e data types. The gSOAP en
│ │ │ │ -00136580: 6769 6e65 2073 7461 7465 2069 7320 7374 gine state is st
│ │ │ │ -00136590: 6f72 6564 2069 6e20 7468 6520 3c63 6f64 ored in the Furthermore,
│ │ │ │ -00136700: 7468 6573 6520 666c 6167 7320 6172 6520 these flags are
│ │ │ │ -00136710: 6469 7669 6465 6420 696e 746f 2066 6f75 divided into fou
│ │ │ │ -00136720: 7220 6361 7465 676f 7269 6573 3a20 7472 r categories: tr
│ │ │ │ -00136730: 616e 7370 6f72 7420 2849 4f29 2c20 636f ansport (IO), co
│ │ │ │ -00136740: 6e74 656e 7420 656e 636f 6469 6e67 2028 ntent encoding (
│ │ │ │ -00136750: 454e 4329 2c20 584d 4c20 7061 7273 696e ENC), XML parsin
│ │ │ │ -00136760: 6720 616e 6420 6765 6e65 7261 7469 6f6e g and generation
│ │ │ │ -00136770: 2028 584d 4c29 2c20 616e 6420 432f 432b (XML), and C/C+
│ │ │ │ -00136780: 2b20 7573 6167 6520 2843 292e 3c2f 703e + usage (C). The input-mo
│ │ │ │ -001367a0: 6465 2061 6e64 206f 7574 7075 742d 6d6f de and output-mo
│ │ │ │ -001367b0: 6465 2066 6c61 6773 2066 6f72 2069 6e62 de flags for inb
│ │ │ │ -001367c0: 6f75 6e64 2028 696e 2920 616e 6420 6f75 ound (in) and ou
│ │ │ │ -001367d0: 7462 6f75 6e64 2028 6f75 7429 206d 6573 tbound (out) mes
│ │ │ │ -001367e0: 7361 6765 2070 726f 6365 7373 696e 6720 sage processing
│ │ │ │ -001367f0: 6172 653a 3c2f 703e 0a3c 7461 626c 6520 are:__type members to
│ │ │ │ -000e0d30: 6861 6e64 6c65 206d 756c 7469 706c 6520 handle multiple
│ │ │ │ -000e0d40: 766f 6964 2070 6f69 6e74 6572 7320 696e void pointers in
│ │ │ │ -000e0d50: 2073 7472 7563 7473 2f63 6c61 7373 6573 structs/classes
│ │ │ │ -000e0d60: 2e20 466f 7220 6578 616d 706c 653a 3c2f . For example:
│ │ │ │ -000e0d70: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.
│ │ │ │ +000e0580: 6d79 5374 7275 6374 3c2f 636f 6465 3e20 myStruct
│ │ │ │ +000e0590: 7769 7468 2061 2076 6f69 6420 706f 696e with a void poin
│ │ │ │ +000e05a0: 7465 7220 746f 2061 6e20 696e 743a 3c2f ter to an int:
│ │ │ │ +000e05b0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.S
│ │ │ │ +000e0720: 2063 6f6e 7461 696e 7320 7468 6520 696e contains the in
│ │ │ │ +000e0730: 7465 6765 7220 696e 2069 7473 203c 656d teger in its val
element:<
│ │ │ │ +000e0760: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>.__type
│ │ │ │ +000e09d0: 7661 6c3c 2f63 6f64 653e 3c2f 656d 3e20 val
│ │ │ │ +000e09e0: 6361 7272 6965 7320 7468 6520 3c65 6d3e carries the
│ │ │ │ +000e09f0: 3c63 6f64 653e 7873 693a 7479 7065 3c2f xsi:type
│ │ │ │ +000e0a00: 636f 6465 3e3c 2f65 6d3e 2061 7474 7269 code>
attri
│ │ │ │ +000e0a10: 6275 7465 2066 726f 6d20 7768 6963 6820 bute from which
│ │ │ │ +000e0a20: 6974 2063 616e 2064 6574 6572 6d69 6e65 it can determine
│ │ │ │ +000e0a30: 2074 6865 2074 7970 652e 3c2f 703e 0a3c the type.vo
│ │ │ │ +000e0a90: 6964 2a3c 2f63 6f64 653e 206d 656d 6265 id*
membe
│ │ │ │ +000e0aa0: 722c 2074 6865 203c 636f 6465 3e76 6f69 r, the voi
│ │ │ │ +000e0ab0: 642a 3c2f 636f 6465 3e20 706f 696e 7465 d*
pointe
│ │ │ │ +000e0ac0: 7220 6d75 7374 2064 6972 6563 746c 7920 r must directly
│ │ │ │ +000e0ad0: 706f 696e 7420 746f 2074 6865 2073 7472 point to the str
│ │ │ │ +000e0ae0: 696e 6720 7661 6c75 6520 7261 7468 6572 ing value rather
│ │ │ │ +000e0af0: 2074 6861 6e20 696e 6469 7265 6374 6c79 than indirectly
│ │ │ │ +000e0b00: 2061 7320 7769 7468 2061 6c6c 206f 7468 as with all oth
│ │ │ │ +000e0b10: 6572 2074 7970 6573 2e20 466f 7220 6578 er types. For ex
│ │ │ │ +000e0b20: 616d 706c 653a 3c2f 6464 3e3c 2f64 6c3e ample:typedef char*
│ │ │ │ +000e0cc0: 636f 6465 3e2e 3c2f 703e 0a3c 703e 596f code>.
__t
│ │ │ │ +000e0d00: 7970 653c 2f63 6f64 653e 206d 656d 6265 ype
membe
│ │ │ │ +000e0d10: 7273 2074 6f20 6861 6e64 6c65 206d 756c rs to handle mul
│ │ │ │ +000e0d20: 7469 706c 6520 766f 6964 2070 6f69 6e74 tiple void point
│ │ │ │ +000e0d30: 6572 7320 696e 2073 7472 7563 7473 2f63 ers in structs/c
│ │ │ │ +000e0d40: 6c61 7373 6573 2e20 466f 7220 6578 616d lasses. For exam
│ │ │ │ +000e0d50: 706c 653a 3c2f 703e 0a3c 6469 7620 636c ple:void *p; // element &
│ │ │ │ -000e0ee0: 6c74 3b70 2667 743b 3c2f 7370 616e 3e3c lt;p><
│ │ │ │ -000e0ef0: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>.voi
│ │ │ │ -000e10a0: 642a 3c2f 636f 6465 3e20 7061 7261 6d65 d*
parame
│ │ │ │ -000e10b0: 7465 7273 2074 6f20 7061 7373 2070 6f6c ters to pass pol
│ │ │ │ -000e10c0: 796d 6f72 7068 6963 2061 7267 756d 656e ymorphic argumen
│ │ │ │ -000e10d0: 7473 2077 6974 686f 7574 2068 6176 696e ts without havin
│ │ │ │ -000e10e0: 6720 746f 2064 6566 696e 6520 6120 432b g to define a C+
│ │ │ │ -000e10f0: 2b20 636c 6173 7320 6869 6572 6172 6368 + class hierarch
│ │ │ │ -000e1100: 7920 2853 6563 7469 6f6e 203c 6120 636c y (Section Polymorphis
│ │ │ │ -000e1140: 6d2c 2064 6572 6976 6564 2074 7970 6573 m, derived types
│ │ │ │ -000e1150: 2c20 616e 6420 6479 6e61 6d69 6320 6269 , and dynamic bi
│ │ │ │ -000e1160: 6e64 696e 6720 696e 2043 2b2b 3c2f 613e nding in C++
│ │ │ │ -000e1170: 2029 2c20 7072 6f76 6964 6564 2074 6861 ), provided tha
│ │ │ │ -000e1180: 7420 3c65 6d3e 3c63 6f64 653e 7873 693a t xsi:
│ │ │ │ -000e1190: 7479 7065 3c2f 636f 6465 3e3c 2f65 6d3e type
│ │ │ │ -000e11a0: 2061 7474 7269 6275 7465 7320 6172 6520 attributes are
│ │ │ │ -000e11b0: 7072 6573 656e 7420 696e 2074 6865 2058 present in the X
│ │ │ │ -000e11c0: 4d4c 2065 6c65 6d65 6e74 732e 2046 6f72 ML elements. For
│ │ │ │ -000e11d0: 2065 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 example:__typ
│ │ │ │ +000e1070: 653c 2f63 6f64 653e 2061 6e64 203c 636f e
and typedef int
│ │ │ │ +000e12a0: 3c2f 7370 616e 3e20 7873 645f 5f69 6e74 xsd__int
│ │ │ │ +000e12b0: 3b20 3c2f 6469 763e 0a3c 6469 7620 636c ; char *name;int __type; void
│ │ │ │ -000e15d0: 202a 7265 7475 726e 5f3b 207d 202a 6f75 *return_; } *ou
│ │ │ │ -000e15e0: 7429 3b3c 2f64 6976 3e0a 3c2f 6469 763e t);da
│ │ │ │ +000e1620: 7461 3c2f 636f 6465 3e20 616e 6420 6120 ta
and a
│ │ │ │ +000e1630: 706f 6c79 6d6f 7270 6869 6320 6f75 7470 polymorphic outp
│ │ │ │ +000e1640: 7574 2070 6172 616d 6574 6572 203c 636f ut parameter __t
│ │ │ │ +000e1670: 7970 653c 2f63 6f64 653e 2070 6172 616d ype
param
│ │ │ │ +000e1680: 6574 6572 7320 6361 6e20 6265 206f 6e65 eters can be one
│ │ │ │ +000e1690: 206f 6620 3c63 6f64 653e 534f 4150 5f54 of SOAP_T
│ │ │ │ +000e16a0: 5950 455f 7873 645f 5f73 7472 696e 673c YPE_xsd__string<
│ │ │ │ +000e16b0: 2f63 6f64 653e 2c20 3c63 6f64 653e 534f /code>,
, o
│ │ │ │ +000e1720: 7220 3c63 6f64 653e 534f 4150 5f54 5950 r SO
│ │ │ │ +000e16c0: 4150 5f54 5950 455f 7873 645f 5f69 6e74 AP_TYPE_xsd__int
│ │ │ │ +000e16d0: 3c2f 636f 6465 3e2c 203c 636f 6465 3e53
, S
│ │ │ │ +000e16e0: 4f41 505f 5459 5045 5f78 7364 5f5f 666c OAP_TYPE_xsd__fl
│ │ │ │ +000e16f0: 6f61 743c 2f63 6f64 653e 2c20 3c63 6f64 oat
, SOAP_TYP
│ │ │ │ +000e1730: 455f 6e73 5f5f 7769 6467 6574 3c2f 636f E_ns__widget
void
│ │ │ │ +000e1790: 2a3c 2f63 6f64 653e 2070 6f6c 796d 6f72 *
polymor
│ │ │ │ +000e17a0: 7068 6963 206d 656d 6265 7273 2061 7320 phic members as
│ │ │ │ +000e17b0: 3c65 6d3e 3c63 6f64 653e 7873 643a 616e xsd:an
│ │ │ │ +000e17c0: 7954 7970 653c 2f63 6f64 653e 3c2f 656d yType
elements.v
│ │ │ │ +000e1810: 6f69 642a 3c2f 636f 6465 3e20 706f 696e oid*
poin
│ │ │ │ +000e1820: 7465 7273 2061 6c6c 6f77 7320 7573 2074 ters allows us t
│ │ │ │ +000e1830: 6f20 7265 7573 6520 7468 6973 206d 6563 o reuse this mec
│ │ │ │ +000e1840: 6861 6e69 736d 2077 6865 6e20 7765 2075 hanism when we u
│ │ │ │ +000e1850: 7365 203c 636f 6465 3e5f 5f73 656c 663c se __self<
│ │ │ │ +000e1860: 2f63 6f64 653e 2061 7320 6120 6d65 6d62 /code> as a memb
│ │ │ │ +000e1870: 6572 206e 616d 6520 7468 6174 2072 6566 er name that ref
│ │ │ │ +000e1880: 6572 7320 746f 2074 6865 2063 7572 7265 ers to the curre
│ │ │ │ +000e1890: 6e74 2058 4d4c 2065 6c65 6d65 6e74 2074 nt XML element t
│ │ │ │ +000e18a0: 6167 206e 616d 653a 3c2f 703e 0a3c 6469 ag name:
│ │ │ │ -000e1b80: 5f5f 6e73 5f5f 7265 636f 7264 3c2f 636f __ns__record with a void
│ │ │ │ -000e1ba0: 706f 696e 7465 7220 746f 2061 6e20 696e pointer to an in
│ │ │ │ -000e1bb0: 743a 3c2f 703e 0a3c 6469 7620 636c 6173 t:.
S
│ │ │ │ -000e1d30: 636f 6e74 6169 6e73 2074 6865 2069 6e74 contains the int
│ │ │ │ -000e1d40: 6567 6572 3a3c 2f70 3e0a 3c64 6976 2063 eger:.Fix
│ │ │ │ -000e1f60: 6564 2d73 697a 6520 6172 7261 7920 7365 ed-size array se
│ │ │ │ -000e1f70: 7269 616c 697a 6174 696f 6e3c 2f68 323e rialization
│ │ │ │ -000e1f80: 0a3c 703e 4669 7865 6420 7369 7a65 2061 .item
elements with
│ │ │ │ -000e1fe0: 7468 6520 6172 7261 7920 7661 6c75 6573 the array values
│ │ │ │ -000e1ff0: 2069 6e20 584d 4c2e 204d 756c 7469 2d64 in XML. Multi-d
│ │ │ │ -000e2000: 696d 656e 7369 6f6e 616c 2066 6978 6564 imensional fixed
│ │ │ │ -000e2010: 2073 697a 6520 6172 7261 7973 2061 7265 size arrays are
│ │ │ │ -000e2020: 2073 6572 6961 6c69 7a65 6420 6173 206e serialized as n
│ │ │ │ -000e2030: 6573 7465 6420 3c65 6d3e 3c63 6f64 653e ested
│ │ │ │ -000e2040: 6974 656d 3c2f 636f 6465 3e3c 2f65 6d3e item
│ │ │ │ -000e2050: 2065 6c65 6d65 6e74 732c 2077 6865 7265 elements, where
│ │ │ │ -000e2060: 2074 6865 206f 7574 6572 2065 6c65 6d65 the outer eleme
│ │ │ │ -000e2070: 6e74 7320 6172 6520 6172 7261 7973 2e3c nts are arrays.<
│ │ │ │ -000e2080: 2f70 3e0a 3c70 3e54 6865 2073 6572 6961 /p>.struct Ex
│ │ │ │ -000e22f0: 616d 706c 653c 2f63 6f64 653e 2e20 5468 ample
. Th
│ │ │ │ -000e2300: 6520 7365 7269 616c 697a 6564 206f 7574 e serialized out
│ │ │ │ -000e2310: 7075 7420 6f66 2061 7272 6179 203c 636f put of array .Dynamic ar
│ │ │ │ -000e26e0: 7261 7920 7365 7269 616c 697a 6174 696f ray serializatio
│ │ │ │ -000e26f0: 6e3c 2f68 323e 0a3c 703e 4479 6e61 6d69 n
.soa
│ │ │ │ -000e2860: 705f 6e65 775f 543c 2f63 6f64 653e 2066 p_new_T
f
│ │ │ │ -000e2870: 756e 6374 696f 6e73 2066 6f72 2074 7970 unctions for typ
│ │ │ │ -000e2880: 6520 3c63 6f64 653e 543c 2f63 6f64 653e e T
│ │ │ │ -000e2890: 2e20 5468 6973 2066 756e 6374 696f 6e20 . This function
│ │ │ │ -000e28a0: 6973 2075 7365 6420 746f 2061 6c6c 6f63 is used to alloc
│ │ │ │ -000e28b0: 6174 6520 616e 2061 7272 6179 206f 6620 ate an array of
│ │ │ │ -000e28c0: 7661 6c75 6573 2077 6869 6368 2063 616e values which can
│ │ │ │ -000e28d0: 2074 6865 6e20 6265 2061 7373 6967 6e65 then be assigne
│ │ │ │ -000e28e0: 6420 746f 2074 6865 2070 6f69 6e74 6572 d to the pointer
│ │ │ │ -000e28f0: 206d 656d 6265 7220 6f66 2074 6865 2073 member of the s
│ │ │ │ -000e2900: 7472 7563 742f 636c 6173 7320 7468 6174 truct/class that
│ │ │ │ -000e2910: 2073 746f 7265 7320 7468 6520 6172 7261 stores the arra
│ │ │ │ -000e2920: 7920 706f 696e 7465 7220 7769 7468 2069 y pointer with i
│ │ │ │ -000e2930: 7473 2073 697a 652e 3c2f 703e 0a3c 703e ts size.item
elements with
│ │ │ │ -000e2b90: 7661 6c75 6573 2c20 7468 6f75 6768 2053 values, though S
│ │ │ │ -000e2ba0: 4f41 5020 6465 7365 7269 616c 697a 6572 OAP deserializer
│ │ │ │ -000e2bb0: 7320 6d61 7920 6967 6e6f 7265 2074 6865 s may ignore the
│ │ │ │ -000e2bc0: 206e 616d 6520 6f66 2074 6865 7365 2065 name of these e
│ │ │ │ -000e2bd0: 6c65 6d65 6e74 7320 7768 656e 2070 6172 lements when par
│ │ │ │ -000e2be0: 7369 6e67 2058 4d4c 2061 7320 7374 6174 sing XML as stat
│ │ │ │ -000e2bf0: 6564 2069 6e20 7468 6520 534f 4150 2073 ed in the SOAP s
│ │ │ │ -000e2c00: 7065 6369 6669 6361 7469 6f6e 732e 3c2f pecifications.
│ │ │ │ -000e2c10: 703e 0a3c 703e 426f 7468 2053 4f41 502d p>..SO
│ │ │ │ -000e2d90: 4150 2d65 6e63 6f64 6564 2061 7272 6179 AP-encoded array
│ │ │ │ -000e2da0: 2062 6f75 6e64 733c 2f68 333e 0a3c 703e bounds
.SOAP-ENC:A
│ │ │ │ -000e2de0: 7272 6179 3c2f 636f 6465 3e3c 2f65 6d3e rray
│ │ │ │ -000e2df0: 2061 7474 7269 6275 7465 2069 6e20 584d attribute in XM
│ │ │ │ -000e2e00: 4c20 746f 2069 6465 6e74 6966 7920 7468 L to identify th
│ │ │ │ -000e2e10: 6520 6172 7261 7920 616e 6420 7468 6520 e array and the
│ │ │ │ -000e2e20: 3c65 6d3e 3c63 6f64 653e 534f 4150 2d45 SOAP-E
│ │ │ │ -000e2e30: 4e43 3a61 7272 6179 5479 7065 3c2f 636f NC:arrayType
SOAP-EN
│ │ │ │ -000e2fa0: 433a 6172 7261 7954 7970 653c 2f63 6f64 C:arrayType attribut
│ │ │ │ -000e2fc0: 6520 6361 6e6e 6f74 2065 7863 6565 6420 e cannot exceed
│ │ │ │ -000e2fd0: 3c63 6f64 653e 2353 4f41 505f 4d41 5841
#SOAP_MAXA
│ │ │ │ -000e2fe0: 5252 4159 5349 5a45 3c2f 636f 6465 3e2c RRAYSIZE
,
│ │ │ │ -000e2ff0: 2077 6869 6368 2069 7320 7365 7420 746f which is set to
│ │ │ │ -000e3000: 2031 3030 3030 3020 6279 2064 6566 6175 100000 by defau
│ │ │ │ -000e3010: 6c74 2e20 5468 6973 206c 696d 6974 2069 lt. This limit i
│ │ │ │ -000e3020: 7320 6e6f 7420 6120 6861 7264 206c 696d s not a hard lim
│ │ │ │ -000e3030: 6974 206f 6e20 7468 6520 6e75 6d62 6572 it on the number
│ │ │ │ -000e3040: 206f 6620 6172 7261 7920 656c 656d 656e of array elemen
│ │ │ │ -000e3050: 7473 2c20 6275 7420 7261 7468 6572 2074 ts, but rather t
│ │ │ │ -000e3060: 6f20 6176 6f69 6420 7072 652d 616c 6c6f o avoid pre-allo
│ │ │ │ -000e3070: 6361 7469 6e67 206c 6172 6765 2061 7272 cating large arr
│ │ │ │ -000e3080: 6179 7320 6173 2073 7461 7465 642e 2054 ays as stated. T
│ │ │ │ -000e3090: 6865 2068 6172 6420 6c69 6d69 7420 6f6e he hard limit on
│ │ │ │ -000e30a0: 2074 6865 206e 756d 6265 7220 6f66 2061 the number of a
│ │ │ │ -000e30b0: 7272 6179 2065 6c65 6d65 6e74 7320 7265 rray elements re
│ │ │ │ -000e30c0: 6365 6976 6564 2069 7320 3c63 6f64 653e ceived is
│ │ │ │ -000e30d0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::ma
│ │ │ │ -000e3190: 786f 6363 7572 733c 2f61 3e3c 2f63 6f64 xoccurs which is set
│ │ │ │ -000e31b0: 746f 203c 636f 6465 3e23 534f 4150 5f4d to
lim
│ │ │ │ -000e3210: 6974 206f 6e6c 7920 6e65 6761 7469 7665 it only negative
│ │ │ │ -000e3220: 6c79 2061 6666 6563 7473 206d 756c 7469 ly affects multi
│ │ │ │ -000e3230: 2d64 696d 656e 7369 6f6e 616c 2061 7272 -dimensional arr
│ │ │ │ -000e3240: 6179 7320 6265 6361 7573 6520 7468 6520 ays because the
│ │ │ │ -000e3250: 6469 6d65 6e73 696f 6e61 6c69 7479 206f dimensionality o
│ │ │ │ -000e3260: 6620 7468 6520 7265 6365 6976 696e 6720 f the receiving
│ │ │ │ -000e3270: 6172 7261 7920 6d61 7920 6265 206c 6f73 array may be los
│ │ │ │ -000e3280: 7420 7768 656e 2074 6865 206e 756d 6265 t when the numbe
│ │ │ │ -000e3290: 7220 6f66 2065 6c65 6d65 6e74 7320 6578 r of elements ex
│ │ │ │ -000e32a0: 6365 6564 7320 3130 3030 3030 2e20 4f6e ceeds 100000. On
│ │ │ │ -000e32b0: 652d 6469 6d65 6e73 696f 6e61 6c20 6172 e-dimensional ar
│ │ │ │ -000e32c0: 7261 7973 2061 7265 206e 6f74 2061 6666 rays are not aff
│ │ │ │ -000e32d0: 6563 7465 6420 616e 6420 706f 7075 6c61 ected and popula
│ │ │ │ -000e32e0: 7465 6420 6166 7465 7220 7468 6973 206c ted after this l
│ │ │ │ -000e32f0: 696d 6974 2062 7920 7369 6d70 6c79 2064 imit by simply d
│ │ │ │ -000e3300: 6573 6572 6961 6c69 7a69 6e67 2074 6865 eserializing the
│ │ │ │ -000e3310: 2061 7272 6179 2065 6c65 6d65 6e74 7320 array elements
│ │ │ │ -000e3320: 7265 6365 6976 6564 2e3c 2f70 3e0a 3c70 received.#SOAP_M
│ │ │ │ -000e31c0: 4158 4f43 4355 5253 3c2f 636f 6465 3e20 AXOCCURS
│ │ │ │ -000e31d0: 6279 2064 6566 6175 6c74 2e20 4279 2063 by default. By c
│ │ │ │ -000e31e0: 6f6e 7472 6173 742c 2074 6865 203c 636f ontrast, the .One-dim
│ │ │ │ -000e3390: 656e 7369 6f6e 616c 2064 796e 616d 6963 ensional dynamic
│ │ │ │ -000e33a0: 2053 4f41 502d 656e 636f 6465 6420 6172 SOAP-encoded ar
│ │ │ │ -000e33b0: 7261 7973 3c2f 6833 3e0a 3c70 3e41 2073 rays
.__ns__reco
│ │ │ │ +000e1b70: 7264 3c2f 636f 6465 3e20 7769 7468 2061 rd
with a
│ │ │ │ +000e1b80: 2076 6f69 6420 706f 696e 7465 7220 746f void pointer to
│ │ │ │ +000e1b90: 2061 6e20 696e 743a 3c2f 703e 0a3c 6469 an int:S
│ │ │ │ +000e1d10: 636f 6465 3e20 636f 6e74 6169 6e73 2074 code> contains t
│ │ │ │ +000e1d20: 6865 2069 6e74 6567 6572 3a3c 2f70 3e0a he integer:
ns:recor
│ │ │ │ +000e1d90: 643c 2f73 7061 6e3e 2667 743b 3c2f 6469 d>.ns:recor
│ │ │ │ +000e1eb0: 643c 2f73 7061 6e3e 2667 743b 3c2f 6469 d>.
│ │ │ │ +000e1f40: 613e 0a46 6978 6564 2d73 697a 6520 6172 a>.Fixed-size ar
│ │ │ │ +000e1f50: 7261 7920 7365 7269 616c 697a 6174 696f ray serializatio
│ │ │ │ +000e1f60: 6e3c 2f68 323e 0a3c 703e 4669 7865 6420 n
.item
elements
│ │ │ │ +000e1fc0: 2077 6974 6820 7468 6520 6172 7261 7920 with the array
│ │ │ │ +000e1fd0: 7661 6c75 6573 2069 6e20 584d 4c2e 204d values in XML. M
│ │ │ │ +000e1fe0: 756c 7469 2d64 696d 656e 7369 6f6e 616c ulti-dimensional
│ │ │ │ +000e1ff0: 2066 6978 6564 2073 697a 6520 6172 7261 fixed size arra
│ │ │ │ +000e2000: 7973 2061 7265 2073 6572 6961 6c69 7a65 ys are serialize
│ │ │ │ +000e2010: 6420 6173 206e 6573 7465 6420 3c65 6d3e d as nested
│ │ │ │ +000e2020: 3c63 6f64 653e 6974 656d 3c2f 636f 6465 item
elements,
│ │ │ │ +000e2040: 2077 6865 7265 2074 6865 206f 7574 6572 where the outer
│ │ │ │ +000e2050: 2065 6c65 6d65 6e74 7320 6172 6520 6172 elements are ar
│ │ │ │ +000e2060: 7261 7973 2e3c 2f70 3e0a 3c70 3e54 6865 rays.// Contents
│ │ │ │ +000e2190: 6f66 2066 696c 6520 2671 756f 743b 6669 of file "fi
│ │ │ │ +000e21a0: 7865 642e 6826 7175 6f74 3b3a 203c 2f73 xed.h": str
│ │ │ │ +000e22d0: 7563 7420 4578 616d 706c 653c 2f63 6f64 uct Example. The serializ
│ │ │ │ +000e22f0: 6564 206f 7574 7075 7420 6f66 2061 7272 ed output of arr
│ │ │ │ +000e2300: 6179 203c 636f 6465 3e61 3c2f 636f 6465 ay
a
is:item#SOAP_C_
│ │ │ │ +000e25f0: 4e4f 494f 423c 2f63 6f64 653e 2066 6c61 NOIOB
fla
│ │ │ │ +000e2600: 6720 6973 2073 6574 2c20 6f74 6865 7277 g is set, otherw
│ │ │ │ +000e2610: 6973 6520 3c63 6f64 653e 2353 4f41 505f ise #SOAP_
│ │ │ │ +000e2620: 494f 423c 2f63 6f64 653e 2065 7272 6f72 IOB
error
│ │ │ │ +000e2630: 7320 7769 6c6c 2062 6520 6765 6e65 7261 s will be genera
│ │ │ │ +000e2640: 7465 6420 6279 2074 6865 2064 6573 6572 ted by the deser
│ │ │ │ +000e2650: 6961 6c69 7a65 722e 3c2f 703e 0a3c 703e ializer..Dyna
│ │ │ │ +000e26c0: 6d69 6320 6172 7261 7920 7365 7269 616c mic array serial
│ │ │ │ +000e26d0: 697a 6174 696f 6e3c 2f68 323e 0a3c 703e ization
.T<
│ │ │ │ +000e2870: 2f63 6f64 653e 2e20 5468 6973 2066 756e /code>. This fun
│ │ │ │ +000e2880: 6374 696f 6e20 6973 2075 7365 6420 746f ction is used to
│ │ │ │ +000e2890: 2061 6c6c 6f63 6174 6520 616e 2061 7272 allocate an arr
│ │ │ │ +000e28a0: 6179 206f 6620 7661 6c75 6573 2077 6869 ay of values whi
│ │ │ │ +000e28b0: 6368 2063 616e 2074 6865 6e20 6265 2061 ch can then be a
│ │ │ │ +000e28c0: 7373 6967 6e65 6420 746f 2074 6865 2070 ssigned to the p
│ │ │ │ +000e28d0: 6f69 6e74 6572 206d 656d 6265 7220 6f66 ointer member of
│ │ │ │ +000e28e0: 2074 6865 2073 7472 7563 742f 636c 6173 the struct/clas
│ │ │ │ +000e28f0: 7320 7468 6174 2073 746f 7265 7320 7468 s that stores th
│ │ │ │ +000e2900: 6520 6172 7261 7920 706f 696e 7465 7220 e array pointer
│ │ │ │ +000e2910: 7769 7468 2069 7473 2073 697a 652e 3c2f with its size.
│ │ │ │ +000e2920: 703e 0a3c 703e 546f 2066 6163 696c 6974 p>.
item
elements
│ │ │ │ +000e2b70: 2077 6974 6820 7661 6c75 6573 2c20 7468 with values, th
│ │ │ │ +000e2b80: 6f75 6768 2053 4f41 5020 6465 7365 7269 ough SOAP deseri
│ │ │ │ +000e2b90: 616c 697a 6572 7320 6d61 7920 6967 6e6f alizers may igno
│ │ │ │ +000e2ba0: 7265 2074 6865 206e 616d 6520 6f66 2074 re the name of t
│ │ │ │ +000e2bb0: 6865 7365 2065 6c65 6d65 6e74 7320 7768 hese elements wh
│ │ │ │ +000e2bc0: 656e 2070 6172 7369 6e67 2058 4d4c 2061 en parsing XML a
│ │ │ │ +000e2bd0: 7320 7374 6174 6564 2069 6e20 7468 6520 s stated in the
│ │ │ │ +000e2be0: 534f 4150 2073 7065 6369 6669 6361 7469 SOAP specificati
│ │ │ │ +000e2bf0: 6f6e 732e 3c2f 703e 0a3c 703e 426f 7468 ons.<
│ │ │ │ +000e2d70: 2f61 3e0a 534f 4150 2d65 6e63 6f64 6564 /a>.SOAP-encoded
│ │ │ │ +000e2d80: 2061 7272 6179 2062 6f75 6e64 733c 2f68 array bounds.
SOAP
│ │ │ │ +000e2dc0: 2d45 4e43 3a41 7272 6179 3c2f 636f 6465 -ENC:Array
attribute
│ │ │ │ +000e2de0: 2069 6e20 584d 4c20 746f 2069 6465 6e74 in XML to ident
│ │ │ │ +000e2df0: 6966 7920 7468 6520 6172 7261 7920 616e ify the array an
│ │ │ │ +000e2e00: 6420 7468 6520 3c65 6d3e 3c63 6f64 653e d the
│ │ │ │ +000e2e10: 534f 4150 2d45 4e43 3a61 7272 6179 5479 SOAP-ENC:arrayTy
│ │ │ │ +000e2e20: 7065 3c2f 636f 6465 3e3c 2f65 6d3e 2061 pe
a
│ │ │ │ +000e2e30: 7474 7269 6275 7465 2074 6f20 6964 656e ttribute to iden
│ │ │ │ +000e2e40: 7469 6679 2074 6865 2061 7272 6179 2064 tify the array d
│ │ │ │ +000e2e50: 696d 656e 7369 6f6e 616c 6974 7920 616e imensionality an
│ │ │ │ +000e2e60: 6420 6974 7320 7369 7a65 2e3c 2f70 3e0a d its size.SOAP-EN
│ │ │ │ +000e2ef0: 433a 6172 7261 7954 7970 653c 2f63 6f64 C:arrayType attribut
│ │ │ │ +000e2f10: 652c 2072 6571 7569 7269 6e67 2074 6865 e, requiring the
│ │ │ │ +000e2f20: 2061 6c6c 6f63 6174 696f 6e20 6f66 206c allocation of l
│ │ │ │ +000e2f30: 6172 6765 2063 6875 6e6b 7320 6f66 206d arge chunks of m
│ │ │ │ +000e2f40: 656d 6f72 792c 2074 6865 2074 6f74 616c emory, the total
│ │ │ │ +000e2f50: 206e 756d 6265 7220 6f66 2061 7272 6179 number of array
│ │ │ │ +000e2f60: 2065 6c65 6d65 6e74 7320 7365 7420 6279 elements set by
│ │ │ │ +000e2f70: 2074 6865 203c 656d 3e3c 636f 6465 3e53 the
S
│ │ │ │ +000e2f80: 4f41 502d 454e 433a 6172 7261 7954 7970 OAP-ENC:arrayTyp
│ │ │ │ +000e2f90: 653c 2f63 6f64 653e 3c2f 656d 3e20 6174 e
at
│ │ │ │ +000e2fa0: 7472 6962 7574 6520 6361 6e6e 6f74 2065 tribute cannot e
│ │ │ │ +000e2fb0: 7863 6565 6420 3c63 6f64 653e 2353 4f41 xceed #SOA
│ │ │ │ +000e2fc0: 505f 4d41 5841 5252 4159 5349 5a45 3c2f P_MAXARRAYSIZE
│ │ │ │ +000e2fd0: 636f 6465 3e2c 2077 6869 6368 2069 7320 code>, which is
│ │ │ │ +000e2fe0: 7365 7420 746f 2031 3030 3030 3020 6279 set to 100000 by
│ │ │ │ +000e2ff0: 2064 6566 6175 6c74 2e20 5468 6973 206c default. This l
│ │ │ │ +000e3000: 696d 6974 2069 7320 6e6f 7420 6120 6861 imit is not a ha
│ │ │ │ +000e3010: 7264 206c 696d 6974 206f 6e20 7468 6520 rd limit on the
│ │ │ │ +000e3020: 6e75 6d62 6572 206f 6620 6172 7261 7920 number of array
│ │ │ │ +000e3030: 656c 656d 656e 7473 2c20 6275 7420 7261 elements, but ra
│ │ │ │ +000e3040: 7468 6572 2074 6f20 6176 6f69 6420 7072 ther to avoid pr
│ │ │ │ +000e3050: 652d 616c 6c6f 6361 7469 6e67 206c 6172 e-allocating lar
│ │ │ │ +000e3060: 6765 2061 7272 6179 7320 6173 2073 7461 ge arrays as sta
│ │ │ │ +000e3070: 7465 642e 2054 6865 2068 6172 6420 6c69 ted. The hard li
│ │ │ │ +000e3080: 6d69 7420 6f6e 2074 6865 206e 756d 6265 mit on the numbe
│ │ │ │ +000e3090: 7220 6f66 2061 7272 6179 2065 6c65 6d65 r of array eleme
│ │ │ │ +000e30a0: 6e74 7320 7265 6365 6976 6564 2069 7320 nts received is
│ │ │ │ +000e30b0: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22
so
│ │ │ │ +000e3170: 6170 3a3a 6d61 786f 6363 7572 733c 2f61 ap::maxoccurs
which i
│ │ │ │ +000e3190: 7320 7365 7420 746f 203c 636f 6465 3e23 s set to #
│ │ │ │ +000e31a0: 534f 4150 5f4d 4158 4f43 4355 5253 3c2f SOAP_MAXOCCURS
│ │ │ │ +000e31b0: 636f 6465 3e20 6279 2064 6566 6175 6c74 code> by default
│ │ │ │ +000e31c0: 2e20 4279 2063 6f6e 7472 6173 742c 2074 . By contrast, t
│ │ │ │ +000e31d0: 6865 203c 636f 6465 3e23 534f 4150 5f4d he
#SOAP_M
│ │ │ │ +000e31e0: 4158 4152 5241 5953 495a 453c 2f63 6f64 AXARRAYSIZE limit only ne
│ │ │ │ +000e3200: 6761 7469 7665 6c79 2061 6666 6563 7473 gatively affects
│ │ │ │ +000e3210: 206d 756c 7469 2d64 696d 656e 7369 6f6e multi-dimension
│ │ │ │ +000e3220: 616c 2061 7272 6179 7320 6265 6361 7573 al arrays becaus
│ │ │ │ +000e3230: 6520 7468 6520 6469 6d65 6e73 696f 6e61 e the dimensiona
│ │ │ │ +000e3240: 6c69 7479 206f 6620 7468 6520 7265 6365 lity of the rece
│ │ │ │ +000e3250: 6976 696e 6720 6172 7261 7920 6d61 7920 iving array may
│ │ │ │ +000e3260: 6265 206c 6f73 7420 7768 656e 2074 6865 be lost when the
│ │ │ │ +000e3270: 206e 756d 6265 7220 6f66 2065 6c65 6d65 number of eleme
│ │ │ │ +000e3280: 6e74 7320 6578 6365 6564 7320 3130 3030 nts exceeds 1000
│ │ │ │ +000e3290: 3030 2e20 4f6e 652d 6469 6d65 6e73 696f 00. One-dimensio
│ │ │ │ +000e32a0: 6e61 6c20 6172 7261 7973 2061 7265 206e nal arrays are n
│ │ │ │ +000e32b0: 6f74 2061 6666 6563 7465 6420 616e 6420 ot affected and
│ │ │ │ +000e32c0: 706f 7075 6c61 7465 6420 6166 7465 7220 populated after
│ │ │ │ +000e32d0: 7468 6973 206c 696d 6974 2062 7920 7369 this limit by si
│ │ │ │ +000e32e0: 6d70 6c79 2064 6573 6572 6961 6c69 7a69 mply deserializi
│ │ │ │ +000e32f0: 6e67 2074 6865 2061 7272 6179 2065 6c65 ng the array ele
│ │ │ │ +000e3300: 6d65 6e74 7320 7265 6365 6976 6564 2e3c ments received.<
│ │ │ │ +000e3310: 2f70 3e0a 3c70 3ef0 9f94 9d20 3c61 2068 /p>..
.O
│ │ │ │ +000e3370: 6e65 2d64 696d 656e 7369 6f6e 616c 2064 ne-dimensional d
│ │ │ │ +000e3380: 796e 616d 6963 2053 4f41 502d 656e 636f ynamic SOAP-enco
│ │ │ │ +000e3390: 6465 6420 6172 7261 7973 3c2f 6833 3e0a ded arrays
.
│ │ │ │ +000e33a0: 3c70 3e41 2073 7065 6369 616c 2066 6f72 array_name must be a non
│ │ │ │ -000e3810: 2d71 7561 6c69 6669 6564 206e 616d 6520 -qualified name
│ │ │ │ -000e3820: 616e 6420 3c63 6f64 653e 5479 7065 3c2f and
Type
│ │ │ │ -000e3830: 636f 6465 3e20 6973 2074 6865 2074 7970 code> is the typ
│ │ │ │ -000e3840: 6520 666f 7220 7468 6520 656c 656d 656e e for the elemen
│ │ │ │ -000e3850: 7473 206f 6620 7468 6520 6172 7261 792e ts of the array.
│ │ │ │ -000e3860: 2054 6865 203c 636f 6465 3e5f 5f70 7472 The
is the array s
│ │ │ │ -000e38c0: 697a 652e 2054 6865 203c 636f 6465 3e5f ize. The __ptr
│ │ │ │ -000e3870: 3c2f 636f 6465 3e20 6d65 6d62 6572 2070
member p
│ │ │ │ -000e3880: 6f69 6e74 7320 746f 2074 6865 2061 7272 oints to the arr
│ │ │ │ -000e3890: 6179 2076 616c 7565 7320 616e 6420 3c63 ay values and _
│ │ │ │ -000e38d0: 5f6f 6666 7365 743c 2f63 6f64 653e 206d _offset
m
│ │ │ │ -000e38e0: 656d 6265 7220 7370 6563 6966 6965 7320 ember specifies
│ │ │ │ -000e38f0: 616e 206f 7074 696f 6e61 6c20 6172 7261 an optional arra
│ │ │ │ -000e3900: 7920 6f66 6673 6574 2c20 7768 656e 206e y offset, when n
│ │ │ │ -000e3910: 6f6e 7a65 726f 2c20 7365 6520 5365 6374 onzero, see Sect
│ │ │ │ -000e3920: 696f 6e20 3c61 2063 6c61 7373 3d22 656c ion O
│ │ │ │ -000e3950: 6e65 2d64 696d 656e 7369 6f6e 616c 2064 ne-dimensional d
│ │ │ │ -000e3960: 796e 616d 6963 2053 4f41 502d 656e 636f ynamic SOAP-enco
│ │ │ │ -000e3970: 6465 6420 6172 7261 7973 2077 6974 6820 ded arrays with
│ │ │ │ -000e3980: 6e6f 6e2d 7a65 726f 206f 6666 7365 7473 non-zero offsets
│ │ │ │ -000e3990: 3c2f 613e 2e3c 2f70 3e0a 3c70 3e49 6620 .array_
│ │ │ │ -000e39b0: 6e61 6d65 3c2f 636f 6465 3e20 6973 2071 name
is q
│ │ │ │ -000e39c0: 7561 6c69 6669 6564 2077 6974 6820 6120 ualified with a
│ │ │ │ -000e39d0: 6e61 6d65 7370 6163 6520 7072 6566 6978 namespace prefix
│ │ │ │ -000e39e0: 2074 6865 6e20 7468 6520 6172 7261 7920 then the array
│ │ │ │ -000e39f0: 6973 206e 6f74 2061 2053 4f41 502d 656e is not a SOAP-en
│ │ │ │ -000e3a00: 636f 6465 6420 6172 7261 7920 6275 7420 coded array but
│ │ │ │ -000e3a10: 7261 7468 6572 2072 6570 7265 7365 6e74 rather represent
│ │ │ │ -000e3a20: 7320 6120 7365 7175 656e 6365 206f 6620 s a sequence of
│ │ │ │ -000e3a30: 584d 4c20 656c 656d 656e 7473 2c20 7365 XML elements, se
│ │ │ │ -000e3a40: 6520 5365 6374 696f 6e20 3c61 2063 6c61 e Section N
│ │ │ │ -000e3a70: 6f6e 2d53 4f41 5020 6479 6e61 6d69 6320 on-SOAP dynamic
│ │ │ │ -000e3a80: 6172 7261 7973 3c2f 613e 2e3c 2f70 3e0a arrays.
.__of
│ │ │ │ -000e3c10: 6673 6574 3c2f 636f 6465 3e20 6d65 6d62 fset
memb
│ │ │ │ -000e3c20: 6572 206f 6620 6120 6479 6e61 6d69 6320 er of a dynamic
│ │ │ │ -000e3c30: 6172 7261 7920 6973 2069 676e 6f72 6564 array is ignored
│ │ │ │ -000e3c40: 2e3c 2f64 643e 3c2f 646c 3e0a 3c70 3ef0 ..One
│ │ │ │ -000e3cb0: 2d64 696d 656e 7369 6f6e 616c 2064 796e -dimensional dyn
│ │ │ │ -000e3cc0: 616d 6963 2053 4f41 502d 656e 636f 6465 amic SOAP-encode
│ │ │ │ -000e3cd0: 6420 6172 7261 7973 2077 6974 6820 6e6f d arrays with no
│ │ │ │ -000e3ce0: 6e2d 7a65 726f 206f 6666 7365 7473 3c2f n-zero offsets
│ │ │ │ -000e3cf0: 6833 3e0a 3c70 3e54 6865 2064 6563 6c61 h3>.
int
│ │ │ │ -000e3da0: 5f5f 6f66 6673 6574 3c2f 636f 6465 3e20 __offset
│ │ │ │ -000e3db0: 6d65 6d62 6572 2e20 5768 656e 2073 6574 member. When set
│ │ │ │ -000e3dc0: 2074 6f20 616e 2069 6e74 6567 6572 2076 to an integer v
│ │ │ │ -000e3dd0: 616c 7565 2c20 7468 6520 7365 7269 616c alue, the serial
│ │ │ │ -000e3de0: 697a 6572 206f 6620 7468 6520 6479 6e61 izer of the dyna
│ │ │ │ -000e3df0: 6d69 6320 6172 7261 7920 7769 6c6c 2075 mic array will u
│ │ │ │ -000e3e00: 7365 2074 6869 7320 6d65 6d62 6572 2061 se this member a
│ │ │ │ -000e3e10: 7320 7468 6520 7374 6172 7420 696e 6465 s the start inde
│ │ │ │ -000e3e20: 7820 6f66 2074 6865 2061 7272 6179 2061 x of the array a
│ │ │ │ -000e3e30: 6e64 2074 6865 2053 4f41 502d 656e 636f nd the SOAP-enco
│ │ │ │ -000e3e40: 6465 6420 6172 7261 7920 6f66 6673 6574 ded array offset
│ │ │ │ -000e3e50: 2061 7474 7269 6275 7465 203c 656d 3e3c attribute <
│ │ │ │ -000e3e60: 636f 6465 3e53 4f41 502d 454e 433a 6f66 code>SOAP-ENC:of
│ │ │ │ -000e3e70: 6673 6574 3c2f 636f 6465 3e3c 2f65 6d3e fset
│ │ │ │ -000e3e80: 2077 696c 6c20 6170 7065 6172 2069 6e20 will appear in
│ │ │ │ -000e3e90: 7468 6520 584d 4c20 6d65 7373 6167 652e the XML message.
│ │ │ │ -000e3ea0: 204e 6f74 6520 7468 6174 2061 7272 6179 Note that array
│ │ │ │ -000e3eb0: 206f 6666 7365 7473 2069 7320 6120 534f offsets is a SO
│ │ │ │ -000e3ec0: 4150 2031 2e31 2073 7065 6369 6669 6320 AP 1.1 specific
│ │ │ │ -000e3ed0: 6665 6174 7572 6520 7768 6963 6820 6973 feature which is
│ │ │ │ -000e3ee0: 206e 6f74 2073 7570 706f 7274 6564 2069 not supported i
│ │ │ │ -000e3ef0: 6e20 534f 4150 2031 2e32 2e3c 2f70 3e0a n SOAP 1.2.int i); Vector
│ │ │ │ -000e43f0: 636f 6465 3e20 6d65 7468 6f64 7320 6172 code> methods ar
│ │ │ │ -000e4400: 653a 3c2f 703e 0a3c 6469 7620 636c 6173 e:
int __size; array_nam
│ │ │ │ +000e37e0: 653c 2f63 6f64 653e 206d 7573 7420 6265 e
must be
│ │ │ │ +000e37f0: 2061 206e 6f6e 2d71 7561 6c69 6669 6564 a non-qualified
│ │ │ │ +000e3800: 206e 616d 6520 616e 6420 3c63 6f64 653e name and
│ │ │ │ +000e3810: 5479 7065 3c2f 636f 6465 3e20 6973 2074 Type
is t
│ │ │ │ +000e3820: 6865 2074 7970 6520 666f 7220 7468 6520 he type for the
│ │ │ │ +000e3830: 656c 656d 656e 7473 206f 6620 7468 6520 elements of the
│ │ │ │ +000e3840: 6172 7261 792e 2054 6865 203c 636f 6465 array. The __ptr
me
│ │ │ │ +000e3860: 6d62 6572 2070 6f69 6e74 7320 746f 2074 mber points to t
│ │ │ │ +000e3870: 6865 2061 7272 6179 2076 616c 7565 7320 he array values
│ │ │ │ +000e3880: 616e 6420 3c63 6f64 653e 5f5f 7369 7a65 and __size
│ │ │ │ +000e3890: 3c2f 636f 6465 3e20 6973 2074 6865 2061
is the a
│ │ │ │ +000e38a0: 7272 6179 2073 697a 652e 2054 6865 203c rray size. The <
│ │ │ │ +000e38b0: 636f 6465 3e5f 5f6f 6666 7365 743c 2f63 code>__offset member spec
│ │ │ │ +000e38d0: 6966 6965 7320 616e 206f 7074 696f 6e61 ifies an optiona
│ │ │ │ +000e38e0: 6c20 6172 7261 7920 6f66 6673 6574 2c20 l array offset,
│ │ │ │ +000e38f0: 7768 656e 206e 6f6e 7a65 726f 2c20 7365 when nonzero, se
│ │ │ │ +000e3900: 6520 5365 6374 696f 6e20 3c61 2063 6c61 e Section One-dimensi
│ │ │ │ +000e3940: 6f6e 616c 2064 796e 616d 6963 2053 4f41 onal dynamic SOA
│ │ │ │ +000e3950: 502d 656e 636f 6465 6420 6172 7261 7973 P-encoded arrays
│ │ │ │ +000e3960: 2077 6974 6820 6e6f 6e2d 7a65 726f 206f with non-zero o
│ │ │ │ +000e3970: 6666 7365 7473 3c2f 613e 2e3c 2f70 3e0a ffsets.
│ │ │ │ +000e3990: 6172 7261 795f 6e61 6d65 3c2f 636f 6465 array_name
is qualified w
│ │ │ │ +000e39b0: 6974 6820 6120 6e61 6d65 7370 6163 6520 ith a namespace
│ │ │ │ +000e39c0: 7072 6566 6978 2074 6865 6e20 7468 6520 prefix then the
│ │ │ │ +000e39d0: 6172 7261 7920 6973 206e 6f74 2061 2053 array is not a S
│ │ │ │ +000e39e0: 4f41 502d 656e 636f 6465 6420 6172 7261 OAP-encoded arra
│ │ │ │ +000e39f0: 7920 6275 7420 7261 7468 6572 2072 6570 y but rather rep
│ │ │ │ +000e3a00: 7265 7365 6e74 7320 6120 7365 7175 656e resents a sequen
│ │ │ │ +000e3a10: 6365 206f 6620 584d 4c20 656c 656d 656e ce of XML elemen
│ │ │ │ +000e3a20: 7473 2c20 7365 6520 5365 6374 696f 6e20 ts, see Section
│ │ │ │ +000e3a30: 3c61 2063 6c61 7373 3d22 656c 2220 6872 Non-SOAP dy
│ │ │ │ +000e3a60: 6e61 6d69 6320 6172 7261 7973 3c2f 613e namic arrays
│ │ │ │ +000e3a70: 2e3c 2f70 3e0a 3c70 3e54 6865 2073 6f61 .
..
│ │ │ │ +000e3c90: 613e 0a4f 6e65 2d64 696d 656e 7369 6f6e a>.One-dimension
│ │ │ │ +000e3ca0: 616c 2064 796e 616d 6963 2053 4f41 502d al dynamic SOAP-
│ │ │ │ +000e3cb0: 656e 636f 6465 6420 6172 7261 7973 2077 encoded arrays w
│ │ │ │ +000e3cc0: 6974 6820 6e6f 6e2d 7a65 726f 206f 6666 ith non-zero off
│ │ │ │ +000e3cd0: 7365 7473 3c2f 6833 3e0a 3c70 3e54 6865 sets
.SOAP-
│ │ │ │ +000e3e50: 454e 433a 6f66 6673 6574 3c2f 636f 6465 ENC:offset
will appe
│ │ │ │ +000e3e70: 6172 2069 6e20 7468 6520 584d 4c20 6d65 ar in the XML me
│ │ │ │ +000e3e80: 7373 6167 652e 204e 6f74 6520 7468 6174 ssage. Note that
│ │ │ │ +000e3e90: 2061 7272 6179 206f 6666 7365 7473 2069 array offsets i
│ │ │ │ +000e3ea0: 7320 6120 534f 4150 2031 2e31 2073 7065 s a SOAP 1.1 spe
│ │ │ │ +000e3eb0: 6369 6669 6320 6665 6174 7572 6520 7768 cific feature wh
│ │ │ │ +000e3ec0: 6963 6820 6973 206e 6f74 2073 7570 706f ich is not suppo
│ │ │ │ +000e3ed0: 7274 6564 2069 6e20 534f 4150 2031 2e32 rted in SOAP 1.2
│ │ │ │ +000e3ee0: 2e3c 2f70 3e0a 3c70 3e46 6f72 2065 7861 .Vector<
│ │ │ │ +000e3f30: 2f63 6f64 653e 2063 6c61 7373 2c20 7768 /code> class, wh
│ │ │ │ +000e3f40: 6963 6820 6973 2061 2064 796e 616d 6963 ich is a dynamic
│ │ │ │ +000e3f50: 2061 7272 6179 206f 6620 666c 6f61 7469 array of floati
│ │ │ │ +000e3f60: 6e67 2070 6f69 6e74 2076 616c 7565 7320 ng point values
│ │ │ │ +000e3f70: 7769 7468 2061 6e20 696e 6465 7820 7468 with an index th
│ │ │ │ +000e3f80: 6174 2073 7461 7274 7320 6174 2031 3a3c at starts at 1:<
│ │ │ │ +000e3f90: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>.
int __size; Ve
│ │ │ │ +000e43d0: 6374 6f72 3c2f 636f 6465 3e20 6d65 7468 ctor
meth
│ │ │ │ +000e43e0: 6f64 7320 6172 653a 3c2f 703e 0a3c 6469 ods are:int n) return
│ │ │ │ -000e47c0: 7370 616e 3e20 5f5f 7074 725b 6920 2d20 span> __ptr[i -
│ │ │ │ -000e47d0: 5f5f 6f66 6673 6574 5d3b 203c 2f64 6976 __offset]; xsd:flo
│ │ │ │ -000e5030: 6174 5b34 5d3c 2f63 6f64 653e 3c2f 656d at[4]
is the type an
│ │ │ │ -000e5050: 6420 7368 6170 6520 6f66 2074 6865 2065 d shape of the e
│ │ │ │ -000e5060: 6e63 6f64 6564 2061 7272 6179 2c20 7768 ncoded array, wh
│ │ │ │ -000e5070: 6963 6820 7374 6172 7473 2061 7420 6f66 ich starts at of
│ │ │ │ -000e5080: 6673 6574 2031 2061 6e64 2074 6865 7265 fset 1 and there
│ │ │ │ -000e5090: 666f 7265 2074 6865 2065 6c65 6d65 6e74 fore the element
│ │ │ │ -000e50a0: 2061 7420 3020 6973 206f 6d69 7474 6564 at 0 is omitted
│ │ │ │ -000e50b0: 2e3c 2f70 3e0a 3c70 3ef0 9f94 9d20 3c61 .
│ │ │ │ -000e50f0: 3c61 2063 6c61 7373 3d22 616e 6368 6f72
│ │ │ │ -000e5110: 613e 0a4e 6573 7465 6420 6f6e 652d 6469 a>.Nested one-di
│ │ │ │ -000e5120: 6d65 6e73 696f 6e61 6c20 6479 6e61 6d69 mensional dynami
│ │ │ │ -000e5130: 6320 534f 4150 2d65 6e63 6f64 6564 2061 c SOAP-encoded a
│ │ │ │ -000e5140: 7272 6179 733c 2f68 333e 0a3c 703e 4f6e rrays
.cl
│ │ │ │ -000e51e0: 6173 7320 4d61 7472 6978 3c2f 636f 6465 ass Matrix
is declared:
│ │ │ │ -000e5200: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.int __size; .Multi
│ │ │ │ -000e5750: 2d64 696d 656e 7369 6f6e 616c 2064 796e -dimensional dyn
│ │ │ │ -000e5760: 616d 6963 2053 4f41 502d 656e 636f 6465 amic SOAP-encode
│ │ │ │ -000e5770: 6420 6172 7261 7973 3c2f 6833 3e0a 3c70 d arrays
.struct<
│ │ │ │ -000e57a0: 2f63 6f64 653e 206f 7220 3c63 6f64 653e /code> or
│ │ │ │ -000e57b0: 636c 6173 733c 2f63 6f64 653e 2069 7320 class
is
│ │ │ │ -000e57c0: 7573 6564 2074 6f20 6465 6669 6e65 206d used to define m
│ │ │ │ -000e57d0: 756c 7469 2d64 696d 656e 7369 6f6e 616c ulti-dimensional
│ │ │ │ -000e57e0: 2064 796e 616d 6963 2053 4f41 502d 656e dynamic SOAP-en
│ │ │ │ -000e57f0: 636f 6465 6420 6172 7261 7973 2e20 4561 coded arrays. Ea
│ │ │ │ -000e5800: 6368 2061 7272 6179 2068 6173 2061 2070 ch array has a p
│ │ │ │ -000e5810: 6f69 6e74 6572 2076 6172 6961 626c 6520 ointer variable
│ │ │ │ -000e5820: 616e 6420 6120 6d65 6d62 6572 2074 6861 and a member tha
│ │ │ │ -000e5830: 7420 7265 636f 7264 7320 7468 6520 6e75 t records the nu
│ │ │ │ -000e5840: 6d62 6572 206f 6620 656c 656d 656e 7473 mber of elements
│ │ │ │ -000e5850: 2070 6572 2064 696d 656e 7369 6f6e 2e20 per dimension.
│ │ │ │ -000e5860: 4120 3c63 6f64 653e 4b3c 2f63 6f64 653e A K
│ │ │ │ -000e5870: 2d64 696d 656e 7369 6f6e 616c 2061 7272 -dimensional arr
│ │ │ │ -000e5880: 6179 2069 7320 6465 636c 6172 6564 2061 ay is declared a
│ │ │ │ -000e5890: 733a 3c2f 703e 0a3c 6469 7620 636c 6173 s:
│ │ │ │ +000e5730: 0a4d 756c 7469 2d64 696d 656e 7369 6f6e .Multi-dimension
│ │ │ │ +000e5740: 616c 2064 796e 616d 6963 2053 4f41 502d al dynamic SOAP-
│ │ │ │ +000e5750: 656e 636f 6465 6420 6172 7261 7973 3c2f encoded arrays
│ │ │ │ +000e5760: 6833 3e0a 3c70 3e41 2073 7065 6369 616c h3>.
s
│ │ │ │ +000e5780: 7472 7563 743c 2f63 6f64 653e 206f 7220 truct
or
│ │ │ │ +000e5790: 3c63 6f64 653e 636c 6173 733c 2f63 6f64 class is used to de
│ │ │ │ +000e57b0: 6669 6e65 206d 756c 7469 2d64 696d 656e fine multi-dimen
│ │ │ │ +000e57c0: 7369 6f6e 616c 2064 796e 616d 6963 2053 sional dynamic S
│ │ │ │ +000e57d0: 4f41 502d 656e 636f 6465 6420 6172 7261 OAP-encoded arra
│ │ │ │ +000e57e0: 7973 2e20 4561 6368 2061 7272 6179 2068 ys. Each array h
│ │ │ │ +000e57f0: 6173 2061 2070 6f69 6e74 6572 2076 6172 as a pointer var
│ │ │ │ +000e5800: 6961 626c 6520 616e 6420 6120 6d65 6d62 iable and a memb
│ │ │ │ +000e5810: 6572 2074 6861 7420 7265 636f 7264 7320 er that records
│ │ │ │ +000e5820: 7468 6520 6e75 6d62 6572 206f 6620 656c the number of el
│ │ │ │ +000e5830: 656d 656e 7473 2070 6572 2064 696d 656e ements per dimen
│ │ │ │ +000e5840: 7369 6f6e 2e20 4120 3c63 6f64 653e 4b3c sion. A
K<
│ │ │ │ +000e5850: 2f63 6f64 653e 2d64 696d 656e 7369 6f6e /code>-dimension
│ │ │ │ +000e5860: 616c 2061 7272 6179 2069 7320 6465 636c al array is decl
│ │ │ │ +000e5870: 6172 6564 2061 733a 3c2f 703e 0a3c 6469 ared as:
arr
│ │ │ │ -000e5b60: 6179 5f6e 616d 653c 2f63 6f64 653e 206d ay_name
m
│ │ │ │ -000e5b70: 7573 7420 6265 2061 206e 6f6e 2d71 7561 ust be a non-qua
│ │ │ │ -000e5b80: 6c69 6669 6564 206e 616d 6520 616e 6420 lified name and
│ │ │ │ -000e5b90: 3c63 6f64 653e 5479 7065 3c2f 636f 6465 Type
is the type fo
│ │ │ │ -000e5bb0: 7220 7468 6520 656c 656d 656e 7473 206f r the elements o
│ │ │ │ -000e5bc0: 6620 7468 6520 6172 7261 792e 2054 6865 f the array. The
│ │ │ │ -000e5bd0: 203c 636f 6465 3e5f 5f70 7472 3c2f 636f __ptr member point
│ │ │ │ -000e5bf0: 7320 746f 2074 6865 2061 7272 6179 2076 s to the array v
│ │ │ │ -000e5c00: 616c 7565 732e 2054 6865 203c 636f 6465 alues. The
__size
a
│ │ │ │ -000e5c20: 7272 6179 2073 7065 6369 6669 6573 2074 rray specifies t
│ │ │ │ -000e5c30: 6865 206e 756d 6265 7220 6f66 2061 7272 he number of arr
│ │ │ │ -000e5c40: 6179 2065 6c65 6d65 6e74 7320 7065 7220 ay elements per
│ │ │ │ -000e5c50: 6469 6d65 6e73 696f 6e2e 2054 6865 203c dimension. The <
│ │ │ │ -000e5c60: 636f 6465 3e5f 5f6f 6666 7365 743c 2f63 code>__offset array speci
│ │ │ │ -000e5c80: 6669 6573 2061 6e20 6f70 7469 6f6e 616c fies an optional
│ │ │ │ -000e5c90: 206f 6666 7365 7420 7065 7220 6469 6d65 offset per dime
│ │ │ │ -000e5ca0: 6e73 696f 6e2e 3c2f 703e 0a3c 703e 466f nsion.int __size[2];
│ │ │ │ -000e5e20: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.__size[0]
holds the numb
│ │ │ │ -000e6020: 6572 206f 6620 726f 7773 2061 6e64 203c er of rows and <
│ │ │ │ -000e6030: 636f 6465 3e5f 5f73 697a 655b 315d 3c2f code>__size[1]
│ │ │ │ -000e6040: 636f 6465 3e20 686f 6c64 7320 7468 6520 code> holds the
│ │ │ │ -000e6050: 6e75 6d62 6572 206f 6620 636f 6c75 6d6e number of column
│ │ │ │ -000e6060: 7320 6f66 2074 6865 206d 6174 7269 782e s of the matrix.
│ │ │ │ -000e6070: 204c 696b 6577 6973 652c 203c 636f 6465 Likewise, __offset[0] is the row o
│ │ │ │ -000e60a0: 6666 7365 7420 616e 6420 3c63 6f64 653e ffset and
│ │ │ │ -000e60b0: 5f5f 6f66 6673 6574 5b31 5d3c 2f63 6f64 __offset[1] is the column
│ │ │ │ -000e60d0: 7320 6f66 6673 6574 2e3c 2f70 3e0a 3c64 s offset.
.No
│ │ │ │ -000e61f0: 6e2d 534f 4150 2064 796e 616d 6963 2061 n-SOAP dynamic a
│ │ │ │ -000e6200: 7272 6179 733c 2f68 333e 0a3c 703e 416e rrays
.__
│ │ │ │ -000e6430: 7074 723c 2f63 6f64 653e 2061 6e64 203c ptr
and <
│ │ │ │ -000e6440: 636f 6465 3e5f 5f73 697a 653c 2f63 6f64 code>__size members:int __offset[K];
│ │ │ │ +000e5a40: 3c73 7061 6e20 636c 6173 733d 2263 6f6d // optiona
│ │ │ │ +000e5a60: 6c20 534f 4150 2031 2e31 2061 7272 6179 l SOAP 1.1 array
│ │ │ │ +000e5a70: 206f 6666 7365 743c 2f73 7061 6e3e 3c2f offset
│ │ │ │ +000e5a80: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.Type
│ │ │ │ +000e5b80: 3c2f 636f 6465 3e20 6973 2074 6865 2074
is the t
│ │ │ │ +000e5b90: 7970 6520 666f 7220 7468 6520 656c 656d ype for the elem
│ │ │ │ +000e5ba0: 656e 7473 206f 6620 7468 6520 6172 7261 ents of the arra
│ │ │ │ +000e5bb0: 792e 2054 6865 203c 636f 6465 3e5f 5f70 y. The __p
│ │ │ │ +000e5bc0: 7472 3c2f 636f 6465 3e20 6d65 6d62 6572 tr
member
│ │ │ │ +000e5bd0: 2070 6f69 6e74 7320 746f 2074 6865 2061 points to the a
│ │ │ │ +000e5be0: 7272 6179 2076 616c 7565 732e 2054 6865 rray values. The
│ │ │ │ +000e5bf0: 203c 636f 6465 3e5f 5f73 697a 653c 2f63 __size array speci
│ │ │ │ +000e5c10: 6669 6573 2074 6865 206e 756d 6265 7220 fies the number
│ │ │ │ +000e5c20: 6f66 2061 7272 6179 2065 6c65 6d65 6e74 of array element
│ │ │ │ +000e5c30: 7320 7065 7220 6469 6d65 6e73 696f 6e2e s per dimension.
│ │ │ │ +000e5c40: 2054 6865 203c 636f 6465 3e5f 5f6f 6666 The
__off
│ │ │ │ +000e5c50: 7365 743c 2f63 6f64 653e 2061 7272 6179 set
array
│ │ │ │ +000e5c60: 2073 7065 6369 6669 6573 2061 6e20 6f70 specifies an op
│ │ │ │ +000e5c70: 7469 6f6e 616c 206f 6666 7365 7420 7065 tional offset pe
│ │ │ │ +000e5c80: 7220 6469 6d65 6e73 696f 6e2e 3c2f 703e r dimension.__siz
│ │ │ │ +000e5fd0: 653c 2f63 6f64 653e 206d 656d 6265 723a e
member:
│ │ │ │ +000e5fe0: 203c 636f 6465 3e5f 5f73 697a 655b 305d __size[0]
│ │ │ │ +000e5ff0: 3c2f 636f 6465 3e20 686f 6c64 7320 7468
holds th
│ │ │ │ +000e6000: 6520 6e75 6d62 6572 206f 6620 726f 7773 e number of rows
│ │ │ │ +000e6010: 2061 6e64 203c 636f 6465 3e5f 5f73 697a and __siz
│ │ │ │ +000e6020: 655b 315d 3c2f 636f 6465 3e20 686f 6c64 e[1]
hold
│ │ │ │ +000e6030: 7320 7468 6520 6e75 6d62 6572 206f 6620 s the number of
│ │ │ │ +000e6040: 636f 6c75 6d6e 7320 6f66 2074 6865 206d columns of the m
│ │ │ │ +000e6050: 6174 7269 782e 204c 696b 6577 6973 652c atrix. Likewise,
│ │ │ │ +000e6060: 203c 636f 6465 3e5f 5f6f 6666 7365 745b __offset[
│ │ │ │ +000e6070: 305d 3c2f 636f 6465 3e20 6973 2074 6865 0]
is the
│ │ │ │ +000e6080: 2072 6f77 206f 6666 7365 7420 616e 6420 row offset and
│ │ │ │ +000e6090: 3c63 6f64 653e 5f5f 6f66 6673 6574 5b31 __offset[1
│ │ │ │ +000e60a0: 5d3c 2f63 6f64 653e 2069 7320 7468 6520 ]
is the
│ │ │ │ +000e60b0: 636f 6c75 6d6e 7320 6f66 6673 6574 2e3c columns offset.<
│ │ │ │ +000e60c0: 2f70 3e0a 3c64 6c20 636c 6173 733d 2273 /p>.
│ │ │ │ +000e60e0: 3c64 743e 5761 726e 696e 673c 2f64 743e
.__offse
│ │ │ │ +000e6140: 743c 2f63 6f64 653e 206d 656d 6265 7220 t
member
│ │ │ │ +000e6150: 6f66 2061 2064 796e 616d 6963 2061 7272 of a dynamic arr
│ │ │ │ +000e6160: 6179 2069 7320 6967 6e6f 7265 642e 3c2f ay is ignored.
│ │ │ │ +000e6170: 6464 3e3c 2f64 6c3e 0a3c 703e f09f 949d dd>__siz
│ │ │ │ +000e6430: 653c 2f63 6f64 653e 206d 656d 6265 7273 e
members
│ │ │ │ +000e6440: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 :struct prefix__array_
│ │ │ │ +000e64a0: 6e61 6d65 203c 2f64 6976 3e0a 3c64 6976 name __size member (
__s
│ │ │ │ +000e6710: 697a 653c 2f63 6f64 653e 206d 656d 6265 ize
membe
│ │ │ │ +000e6720: 7220 283c 636f 6465 3e5f 5f73 697a 654e r (__sizeN
│ │ │ │ +000e6730: 616d 653c 2f63 6f64 653e 2069 7320 616c ame
is al
│ │ │ │ +000e6740: 736f 2061 6c6c 6f77 6564 2920 7468 6174 so allowed) that
│ │ │ │ +000e6750: 2070 7265 6365 6465 7320 6120 706f 696e precedes a poin
│ │ │ │ +000e6760: 7465 7220 6d65 6d62 6572 3a3c 2f70 3e0a ter member:__siz
│ │ │ │ -000e6bc0: 653c 2f63 6f64 653e 206d 656d 6265 7220 e
member
│ │ │ │ -000e6bd0: 7368 6f75 6c64 2062 6520 616e 203c 636f should be an size_t<
│ │ │ │ -000e6c10: 2f63 6f64 653e 2074 7970 6520 6f72 206f /code> type or o
│ │ │ │ -000e6c20: 7468 6572 2069 6e74 6567 6572 2074 7970 ther integer typ
│ │ │ │ -000e6c30: 652e 3c2f 703e 0a3c 703e 466f 7220 6578 e.
$' as a specia
│ │ │ │ -000e6f50: 6c20 6d61 726b 6572 2074 6f20 616e 6e6f l marker to anno
│ │ │ │ -000e6f60: 7461 7465 2061 2073 697a 6520 6d65 6d62 tate a size memb
│ │ │ │ -000e6f70: 6572 2069 6e73 7465 6164 206f 6620 7265 er instead of re
│ │ │ │ -000e6f80: 7175 6972 696e 6720 7468 6573 6520 6d65 quiring these me
│ │ │ │ -000e6f90: 6d62 6572 7320 746f 2073 7461 7274 2077 mbers to start w
│ │ │ │ -000e6fa0: 6974 6820 3c63 6f64 653e 5f5f 7369 7a65 ith
__size
│ │ │ │ -000e6fb0: 3c2f 636f 6465 3e3a 3c2f 703e 0a3c 6469
:Susan
│ │ │ │ -000e7540: 266c 743b 2f3c 7370 616e 2063 6c61 7373 </k
│ │ │ │ -000e7560: 6579 3c2f 7370 616e 3e26 6774 3b20 3c2f ey>
│ │ │ │ -000e7570: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.int nEmails;
│ │ │ │ -000e7ca0: 2020 2020 203c 7370 616e 2063 6c61 7373 // nu
│ │ │ │ -000e7cc0: 6d62 6572 206f 6620 656d 6169 6c73 203c mber of emails <
│ │ │ │ -000e7cd0: 2f73 7061 6e3e 3c2f 6469 763e 0a3c 6469 /span>ns__Con
│ │ │ │ -000e7dd0: 7461 6374 3c2f 636f 6465 3e20 6973 3a3c tact
is:<
│ │ │ │ -000e7de0: 2f70 3e0a 3c64 6976 2063 6c61 7373 3d22 /p>..STL
│ │ │ │ -000e8410: 2063 6f6e 7461 696e 6572 733c 2f68 333e containers
│ │ │ │ -000e8420: 0a3c 703e 5468 6520 5354 4c20 636f 6e74 .std
│ │ │ │ -000e8440: 3a3a 6465 7175 653c 2f63 6f64 653e 2c20 ::deque
,
│ │ │ │ -000e8450: 3c63 6f64 653e 7374 643a 3a6c 6973 743c std::list<
│ │ │ │ -000e8460: 2f63 6f64 653e 2c20 3c63 6f64 653e 7374 /code>,
st
│ │ │ │ -000e8470: 643a 3a73 6574 3c2f 636f 6465 3e2c 2061 d::set
, a
│ │ │ │ -000e8480: 6e64 203c 636f 6465 3e73 7464 3a3a 7665 nd std::ve
│ │ │ │ -000e8490: 6374 6f72 3c2f 636f 6465 3e20 6172 6520 ctor
are
│ │ │ │ -000e84a0: 7365 7269 616c 697a 6162 6c65 2069 6e20 serializable in
│ │ │ │ -000e84b0: 584d 4c20 6279 2074 6865 2073 6f61 7063 XML by the soapc
│ │ │ │ -000e84c0: 7070 322d 6765 6e65 7261 7465 6420 7365 pp2-generated se
│ │ │ │ -000e84d0: 7269 616c 697a 6572 732e 3c2f 703e 0a3c rializers.stldeque
│ │ │ │ -000e8540: 2e68 3c2f 636f 6465 3e3c 2f65 6d3e 2c20 .h
,
│ │ │ │ -000e8550: 3c65 6d3e 3c63 6f64 653e 7374 6c6c 6973 stllis
│ │ │ │ -000e8560: 742e 683c 2f63 6f64 653e 3c2f 656d 3e2c t.h
,
│ │ │ │ -000e8570: 203c 656d 3e3c 636f 6465 3e73 746c 7365 stlse
│ │ │ │ -000e8580: 742e 683c 2f63 6f64 653e 3c2f 656d 3e2c t.h
,
│ │ │ │ -000e8590: 206f 7220 3c65 6d3e 3c63 6f64 653e 7374 or st
│ │ │ │ -000e85a0: 6c76 6563 746f 722e 683c 2f63 6f64 653e lvector.h
│ │ │ │ -000e85b0: 3c2f 656d 3e20 746f 2065 6e61 626c 6520 to enable
│ │ │ │ -000e85c0: 3c63 6f64 653e 7374 643a 3a64 6571 7565 std::deque
│ │ │ │ -000e85d0: 3c2f 636f 6465 3e2c 203c 636f 6465 3e73
, s
│ │ │ │ -000e85e0: 7464 3a3a 6c69 7374 3c2f 636f 6465 3e2c td::list
,
│ │ │ │ -000e85f0: 203c 636f 6465 3e73 7464 3a3a 7365 743c std::set<
│ │ │ │ -000e8600: 2f63 6f64 653e 2c20 616e 6420 3c63 6f64 /code>, and
│ │ │ │ -000e88a0: 7368 6f77 6e20 6162 6f76 6520 6973 2070 shown above is p
│ │ │ │ -000e88b0: 6f73 7369 626c 652c 2062 7574 206e 6f74 ossible, but not
│ │ │ │ -000e88c0: 2072 6571 7569 7265 642e 2041 6c73 6f20 required. Also
│ │ │ │ -000e88d0: 3c63 6f64 653e 6d69 6e4f 6363 7572 7320 minOccurs
│ │ │ │ -000e88e0: 3a20 6d61 784f 6363 7572 733c 2f63 6f64 : maxOccurs and
min
│ │ │ │ -000e8900: 4f63 6375 7273 3c2f 636f 6465 3e20 6c65 Occurs
le
│ │ │ │ -000e8910: 6e67 7468 2063 6f6e 7374 7261 696e 7473 ngth constraints
│ │ │ │ -000e8920: 2063 616e 2062 6520 7370 6563 6966 6965 can be specifie
│ │ │ │ -000e8930: 6420 6173 2073 686f 776e 2069 6e20 7468 d as shown in th
│ │ │ │ -000e8940: 6520 6578 616d 706c 6520 6162 6f76 652e e example above.
│ │ │ │ -000e8950: 2054 6865 2058 4d4c 2073 6368 656d 6120 The XML schema
│ │ │ │ -000e8960: 7468 6174 2063 6f72 7265 7370 6f6e 6473 that corresponds
│ │ │ │ -000e8970: 2074 6f20 7468 6520 3c63 6f64 653e 6e73 to the ns
│ │ │ │ -000e8980: 5f5f 6d79 436c 6173 733c 2f63 6f64 653e __myClass
│ │ │ │ -000e8990: 2074 7970 6520 6973 3a3c 2f70 3e0a 3c64 type is:.minOccurs="1"
│ │ │ │ -000e8c00: 7370 616e 3e20 3c73 7061 6e20 636c 6173 span> maxO
│ │ │ │ -000e8c20: 6363 7572 733c 2f73 7061 6e3e 3d3c 7370 ccurs=name=
│ │ │ │ -000e8cd0: 3c73 7061 6e20 636c 6173 733d 2273 7472 &quo
│ │ │ │ -000e8cf0: 743b 6e61 6d65 2671 756f 743b 3c2f 7370 t;name" type
│ │ │ │ -000e8d20: 7370 616e 3e3d 3c73 7061 6e20 636c 6173 span>="xsd:stri
│ │ │ │ -000e8d50: 6e67 2671 756f 743b 3c2f 7370 616e 3e20 ng"
│ │ │ │ -000e8d60: 3c73 7061 6e20 636c 6173 733d 226b 6579 minOccurs<
│ │ │ │ -000e8d80: 2f73 7061 6e3e 3d3c 7370 616e 2063 6c61 /span>="2"
│ │ │ │ -000e8db0: 3c2f 7370 616e 3e20 3c73 7061 6e20 636c ma
│ │ │ │ -000e8dd0: 784f 6363 7572 733c 2f73 7061 6e3e 3d3c xOccurs=<
│ │ │ │ -000e8de0: 7370 616e 2063 6c61 7373 3d22 7374 7269 span class="stri
│ │ │ │ -000e8df0: 6e67 6c69 7465 7261 6c22 3e26 7175 6f74 ngliteral">"
│ │ │ │ -000e8e00: 3b75 6e62 6f75 6e64 6564 2671 756f 743b ;unbounded"
│ │ │ │ -000e8e10: 3c2f 7370 616e 3e2f 2667 743b 203c 2f64 /> ..
.ite
│ │ │ │ -000e8fd0: 7261 746f 7220 6265 6769 6e28 293c 2f63 rator begin() return iter
│ │ │ │ -000e8ff0: 6174 6f72 2074 6f20 6265 6769 6e6e 696e ator to beginnin
│ │ │ │ -000e9000: 673b 3c2f 6c69 3e0a 3c6c 693e 3c63 6f64 g;
iterato
│ │ │ │ -000e9070: 7220 656e 6428 293c 2f63 6f64 653e 2072 r end()
r
│ │ │ │ -000e9080: 6574 7572 6e20 6974 6572 6174 6f72 2074 eturn iterator t
│ │ │ │ -000e9090: 6f20 656e 643b 3c2f 6c69 3e0a 3c6c 693e o end;.const_iter
│ │ │ │ -000e90b0: 6174 6f72 2065 6e64 2829 2063 6f6e 7374 ator end() const
│ │ │ │ -000e90c0: 3c2f 636f 6465 3e20 7265 7475 726e 2063
return c
│ │ │ │ -000e90d0: 6f6e 7374 2069 7465 7261 746f 7220 746f onst iterator to
│ │ │ │ -000e90e0: 2065 6e64 3b3c 2f6c 693e 0a3c 6c69 3e3c end;iterator i
│ │ │ │ -000e9130: 6e73 6572 7428 6974 6572 6174 6f72 2070 nsert(iterator p
│ │ │ │ -000e9140: 6f73 2c20 636f 6e73 745f 7265 6665 7265 os, const_refere
│ │ │ │ -000e9150: 6e63 6520 7661 6c29 3c2f 636f 6465 3e20 nce val)
│ │ │ │ -000e9160: 696e 7365 7274 2065 6c65 6d65 6e74 2e3c insert element.<
│ │ │ │ -000e9170: 2f6c 693e 0a3c 2f75 6c3e 0a3c 703e 5468 /li>.iterator
│ │ │ │ -000e9190: 3c2f 636f 6465 3e20 7368 6f75 6c64 2062
should b
│ │ │ │ -000e91a0: 6520 6120 666f 7277 6172 6420 6974 6572 e a forward iter
│ │ │ │ -000e91b0: 6174 6f72 2077 6974 6820 6120 6465 7265 ator with a dere
│ │ │ │ -000e91c0: 6665 7265 6e63 6520 6f70 6572 6174 6f72 ference operator
│ │ │ │ -000e91d0: 2074 6f20 6163 6365 7373 2074 6865 2063 to access the c
│ │ │ │ -000e91e0: 6f6e 7461 696e 6572 2773 2065 6c65 6d65 ontainer's eleme
│ │ │ │ -000e91f0: 6e74 732c 2069 7420 6d75 7374 2062 6520 nts, it must be
│ │ │ │ -000e9200: 636f 6d70 6172 6162 6c65 2028 6571 7561 comparable (equa
│ │ │ │ -000e9210: 6c2f 756e 6571 7561 6c29 2c20 616e 6420 l/unequal), and
│ │ │ │ -000e9220: 6265 2070 7265 2d69 6e63 7265 6d65 6e74 be pre-increment
│ │ │ │ -000e9230: 6162 6c65 2028 3c63 6f64 653e 2b2b 6974 able (++it
│ │ │ │ -000e9240: 3c2f 636f 6465 3e29 2e20 5468 6520 636f
). The co
│ │ │ │ -000e9250: 6e73 7420 6974 6572 6174 6f72 2069 7320 nst iterator is
│ │ │ │ -000e9260: 7573 6564 2062 7920 6974 7320 736f 6170 used by its soap
│ │ │ │ -000e9270: 6370 7032 2d67 656e 6572 6174 6564 2073 cpp2-generated s
│ │ │ │ -000e9280: 6572 6961 6c69 7a65 7220 746f 2073 656e erializer to sen
│ │ │ │ -000e9290: 6420 6120 7365 7175 656e 6365 206f 6620 d a sequence of
│ │ │ │ -000e92a0: 584d 4c20 656c 656d 656e 7420 7661 6c75 XML element valu
│ │ │ │ -000e92b0: 6573 2e20 5468 6520 3c63 6f64 653e 696e es. The in
│ │ │ │ -000e92c0: 7365 7274 3c2f 636f 6465 3e20 6d65 7468 sert
meth
│ │ │ │ -000e92d0: 6f64 2069 7320 7573 6564 2074 6f20 706f od is used to po
│ │ │ │ -000e92e0: 7075 6c61 7465 2061 2063 6f6e 7461 696e pulate a contain
│ │ │ │ -000e92f0: 6572 2077 6974 6820 3c63 6f64 653e 436f er with Co
│ │ │ │ -000e9300: 6e74 6169 6e65 723a 3a69 7465 7261 746f ntainer::iterato
│ │ │ │ -000e9310: 7220 6920 3d20 636f 6e74 6169 6e65 722e r i = container.
│ │ │ │ -000e9320: 696e 7365 7274 2863 6f6e 7461 696e 6572 insert(container
│ │ │ │ -000e9330: 2e65 6e64 2829 2c20 7661 6c29 3c2f 636f .end(), val).
template <cl
│ │ │ │ -000e9430: 6173 733c 2f73 7061 6e3e 2054 2667 743b ass T>
│ │ │ │ -000e9440: 203c 2f64 6976 3e0a 3c64 6976 2063 6c61 typedef value_type
│ │ │ │ -000e9580: 2020 2020 2020 2020 202a 2070 6f69 6e74 * point
│ │ │ │ -000e9590: 6572 3b20 3c2f 6469 763e 0a3c 6469 7620 er; __size
m
│ │ │ │ +000e6bb0: 656d 6265 7220 7368 6f75 6c64 2062 6520 ember should be
│ │ │ │ +000e6bc0: 616e 203c 636f 6465 3e69 6e74 3c2f 636f an int type and can
│ │ │ │ +000e6be0: 6e6f 7420 6265 2061 203c 636f 6465 3e73 not be a
s
│ │ │ │ +000e6bf0: 697a 655f 743c 2f63 6f64 653e 2074 7970 ize_t
typ
│ │ │ │ +000e6c00: 6520 6f72 206f 7468 6572 2069 6e74 6567 e or other integ
│ │ │ │ +000e6c10: 6572 2074 7970 652e 3c2f 703e 0a3c 703e er type.struct ns__Map // number of
│ │ │ │ +000e6d50: 2070 6169 7273 203c 2f73 7061 6e3e 3c2f pairs
│ │ │ │ +000e6d60: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.$
' as a
│ │ │ │ +000e6f30: 7370 6563 6961 6c20 6d61 726b 6572 2074 special marker t
│ │ │ │ +000e6f40: 6f20 616e 6e6f 7461 7465 2061 2073 697a o annotate a siz
│ │ │ │ +000e6f50: 6520 6d65 6d62 6572 2069 6e73 7465 6164 e member instead
│ │ │ │ +000e6f60: 206f 6620 7265 7175 6972 696e 6720 7468 of requiring th
│ │ │ │ +000e6f70: 6573 6520 6d65 6d62 6572 7320 746f 2073 ese members to s
│ │ │ │ +000e6f80: 7461 7274 2077 6974 6820 3c63 6f64 653e tart with
│ │ │ │ +000e6f90: 5f5f 7369 7a65 3c2f 636f 6465 3e3a 3c2f __size
:
│ │ │ │ +000e6fa0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.int size;
│ │ │ │ +000e7070: 2f2f 206e 756d 6265 7220 6f66 2070 6169 // number of pai
│ │ │ │ +000e7080: 7273 203c 2f73 7061 6e3e 3c2f 6469 763e rs char *val;
│ │ │ │ +000e83f0: 613e 0a53 544c 2063 6f6e 7461 696e 6572 a>.STL container
│ │ │ │ +000e8400: 733c 2f68 333e 0a3c 703e 5468 6520 5354 s
.std:
│ │ │ │ +000e8440: 3a6c 6973 743c 2f63 6f64 653e 2c20 3c63 :list
, s
│ │ │ │ +000e8470: 7464 3a3a 7665 6374 6f72 3c2f 636f 6465 td::vector
are serializab
│ │ │ │ +000e8490: 6c65 2069 6e20 584d 4c20 6279 2074 6865 le in XML by the
│ │ │ │ +000e84a0: 2073 6f61 7063 7070 322d 6765 6e65 7261 soapcpp2-genera
│ │ │ │ +000e84b0: 7465 6420 7365 7269 616c 697a 6572 732e ted serializers.
│ │ │ │ +000e84c0: 3c2f 703e 0a3c 703e 496e 206f 7264 6572 st
│ │ │ │ +000e8520: 6c64 6571 7565 2e68 3c2f 636f 6465 3e3c ldeque.h
<
│ │ │ │ +000e8530: 2f65 6d3e 2c20 3c65 6d3e 3c63 6f64 653e /em>,
│ │ │ │ +000e8540: 7374 6c6c 6973 742e 683c 2f63 6f64 653e stllist.h
│ │ │ │ +000e8550: 3c2f 656d 3e2c 203c 656d 3e3c 636f 6465 , stlset.h
│ │ │ │ +000e8570: 3c2f 656d 3e2c 206f 7220 3c65 6d3e 3c63 , or std:
│ │ │ │ +000e85b0: 3a64 6571 7565 3c2f 636f 6465 3e2c 203c :deque
, <
│ │ │ │ +000e85c0: 636f 6465 3e73 7464 3a3a 6c69 7374 3c2f code>std::list
│ │ │ │ +000e85d0: 636f 6465 3e2c 203c 636f 6465 3e73 7464 code>, std
│ │ │ │ +000e85e0: 3a3a 7365 743c 2f63 6f64 653e 2c20 616e ::set
, an
│ │ │ │ +000e85f0: 6420 3c63 6f64 653e 7374 643a 3a76 6563 d std::vec
│ │ │ │ +000e8600: 746f 723c 2f63 6f64 653e 2c20 7265 7370 tor
, resp
│ │ │ │ +000e8610: 6563 7469 7665 6c79 2e20 466f 7220 6578 ectively. For ex
│ │ │ │ +000e8620: 616d 706c 653a 3c2f 703e 0a3c 6469 7620 ample:class ns__myClass .name
│ │ │ │ +000e8880: 636f 6465 3e20 7368 6f77 6e20 6162 6f76 code> shown abov
│ │ │ │ +000e8890: 6520 6973 2070 6f73 7369 626c 652c 2062 e is possible, b
│ │ │ │ +000e88a0: 7574 206e 6f74 2072 6571 7569 7265 642e ut not required.
│ │ │ │ +000e88b0: 2041 6c73 6f20 3c63 6f64 653e 6d69 6e4f Also
minO
│ │ │ │ +000e88c0: 6363 7572 7320 3a20 6d61 784f 6363 7572 ccurs : maxOccur
│ │ │ │ +000e88d0: 733c 2f63 6f64 653e 2061 6e64 203c 636f s
and maxOccurs="unbounded
│ │ │ │ +000e8df0: 2671 756f 743b 3c2f 7370 616e 3e2f 2667 "/&g
│ │ │ │ +000e8e00: 743b 203c 2f64 6976 3e0a 3c64 6976 2063 t;
│ │ │ │ +000e8f70: 0a3c 6c69 3e3c 636f 6465 3e76 6f69 6420 .
│ │ │ │ +000e9160: 0a3c 703e 5468 6520 3c63 6f64 653e 6974 .void
│ │ │ │ +000e8f80: 636c 6561 7228 293c 2f63 6f64 653e 2065 clear()
e
│ │ │ │ +000e8f90: 6d70 7479 2074 6865 2063 6f6e 7461 696e mpty the contain
│ │ │ │ +000e8fa0: 6572 3b3c 2f6c 693e 0a3c 6c69 3e3c 636f er;const_it
│ │ │ │ +000e9000: 6572 6174 6f72 2062 6567 696e 2829 2063 erator begin() c
│ │ │ │ +000e9010: 6f6e 7374 3c2f 636f 6465 3e20 7265 7475 onst
retu
│ │ │ │ +000e9020: 726e 2063 6f6e 7374 2069 7465 7261 746f rn const iterato
│ │ │ │ +000e9030: 7220 746f 2062 6567 696e 6e69 6e67 3b3c r to beginning;<
│ │ │ │ +000e9040: 2f6c 693e 0a3c 6c69 3e3c 636f 6465 3e69 /li>.i
│ │ │ │ +000e9050: 7465 7261 746f 7220 656e 6428 293c 2f63 terator end() return iter
│ │ │ │ +000e9070: 6174 6f72 2074 6f20 656e 643b 3c2f 6c69 ator to end;
cons
│ │ │ │ +000e9090: 745f 6974 6572 6174 6f72 2065 6e64 2829 t_iterator end()
│ │ │ │ +000e90a0: 2063 6f6e 7374 3c2f 636f 6465 3e20 7265 const
re
│ │ │ │ +000e90b0: 7475 726e 2063 6f6e 7374 2069 7465 7261 turn const itera
│ │ │ │ +000e90c0: 746f 7220 746f 2065 6e64 3b3c 2f6c 693e tor to end;size_
│ │ │ │ +000e90e0: 7420 7369 7a65 2829 3c2f 636f 6465 3e20 t size()
│ │ │ │ +000e90f0: 7265 7475 726e 2073 697a 653b 3c2f 6c69 return size;iter
│ │ │ │ +000e9110: 6174 6f72 2069 6e73 6572 7428 6974 6572 ator insert(iter
│ │ │ │ +000e9120: 6174 6f72 2070 6f73 2c20 636f 6e73 745f ator pos, const_
│ │ │ │ +000e9130: 7265 6665 7265 6e63 6520 7661 6c29 3c2f reference val)
│ │ │ │ +000e9140: 636f 6465 3e20 696e 7365 7274 2065 6c65 code> insert ele
│ │ │ │ +000e9150: 6d65 6e74 2e3c 2f6c 693e 0a3c 2f75 6c3e ment.
it
│ │ │ │ +000e9170: 6572 6174 6f72 3c2f 636f 6465 3e20 7368 erator
sh
│ │ │ │ +000e9180: 6f75 6c64 2062 6520 6120 666f 7277 6172 ould be a forwar
│ │ │ │ +000e9190: 6420 6974 6572 6174 6f72 2077 6974 6820 d iterator with
│ │ │ │ +000e91a0: 6120 6465 7265 6665 7265 6e63 6520 6f70 a dereference op
│ │ │ │ +000e91b0: 6572 6174 6f72 2074 6f20 6163 6365 7373 erator to access
│ │ │ │ +000e91c0: 2074 6865 2063 6f6e 7461 696e 6572 2773 the container's
│ │ │ │ +000e91d0: 2065 6c65 6d65 6e74 732c 2069 7420 6d75 elements, it mu
│ │ │ │ +000e91e0: 7374 2062 6520 636f 6d70 6172 6162 6c65 st be comparable
│ │ │ │ +000e91f0: 2028 6571 7561 6c2f 756e 6571 7561 6c29 (equal/unequal)
│ │ │ │ +000e9200: 2c20 616e 6420 6265 2070 7265 2d69 6e63 , and be pre-inc
│ │ │ │ +000e9210: 7265 6d65 6e74 6162 6c65 2028 3c63 6f64 rementable (class
│ │ │ │ +000e9420: 2054 2667 743b 203c 2f64 6976 3e0a 3c64 T> typedef T
│ │ │ │ +000e9500: 2020 2020 2020 2020 2020 2076 616c 7565 value
│ │ │ │ +000e9510: 5f74 7970 653b 203c 2f64 6976 3e0a 3c64 _type; protected: /* the membe
│ │ │ │ -000e9c10: 7220 6675 6e63 7469 6f6e 7320 6265 6c6f r functions belo
│ │ │ │ -000e9c20: 7720 6172 6520 7265 7175 6972 6564 2066 w are required f
│ │ │ │ -000e9c30: 6f72 2073 6572 6961 6c69 7a61 7469 6f6e or serialization
│ │ │ │ -000e9c40: 206f 6620 7465 6d70 6c61 7465 7320 2a2f of templates */
│ │ │ │ -000e9c50: 3c2f 7370 616e 3e20 3c2f 6469 763e 0a3c const { re
│ │ │ │ -000e9e80: 7475 726e 3c2f 7370 616e 3e20 7461 696c turn tail
│ │ │ │ -000e9e90: 3b20 7d20 3c2f 6469 763e 0a3c 6469 7620 ; } return
│ │ │ │ -000e9f40: 7370 616e 3e20 7461 696c 202d 2068 6561 span> tail - hea
│ │ │ │ -000e9f50: 643b 207d 203c 2f64 6976 3e0a 3c64 6976 d; } else if
│ │ │ │ -000ea0f0: 3c2f 7370 616e 3e20 2874 6169 6c20 2667 (tail &g
│ │ │ │ -000ea100: 743b 3d20 6865 6164 202b 2063 6170 6163 t;= head + capac
│ │ │ │ -000ea110: 6974 7929 203c 2f64 6976 3e0a 3c64 6976 ity) new v
│ │ │ │ -000ea8c0: 616c 7565 5f74 7970 655b 6361 7061 6369 alue_type[capaci
│ │ │ │ -000ea8d0: 7479 5d3b 203c 2f64 6976 3e0a 3c64 6976 ty]; #
│ │ │ │ -000eacc0: 696e 636c 7564 653c 2f63 6f64 653e 2064 include
d
│ │ │ │ -000eacd0: 6972 6563 7469 7665 7320 6172 6520 6e6f irectives are no
│ │ │ │ -000eace0: 7420 6578 6563 7574 6564 2062 7920 736f t executed by so
│ │ │ │ -000eacf0: 6170 6370 7032 2062 7574 2073 696d 706c apcpp2 but simpl
│ │ │ │ -000ead00: 7920 7061 7373 6564 206f 6e20 746f 2074 y passed on to t
│ │ │ │ -000ead10: 6865 2067 656e 6572 6174 6564 2073 6f75 he generated sou
│ │ │ │ -000ead20: 7263 6520 636f 6465 2e20 5468 6973 2069 rce code. This i
│ │ │ │ -000ead30: 6e63 6c75 6465 2073 7065 6369 6669 6573 nclude specifies
│ │ │ │ -000ead40: 2069 6e20 7468 6520 6765 6e65 7261 7465 in the generate
│ │ │ │ -000ead50: 6420 736f 7572 6365 2063 6f64 6520 7768 d source code wh
│ │ │ │ -000ead60: 6572 6520 7468 6520 636f 6e74 6169 6e65 ere the containe
│ │ │ │ -000ead70: 7220 6973 2061 6374 7561 6c6c 7920 6465 r is actually de
│ │ │ │ -000ead80: 6669 6e65 642e 3c2f 703e 0a3c 703e f09f fined.
│ │ │ │ -000eadf0: 613e 0a50 6f6c 796d 6f72 7068 6963 2064 a>.Polymorphic d
│ │ │ │ -000eae00: 796e 616d 6963 2061 7272 6179 7320 616e ynamic arrays an
│ │ │ │ -000eae10: 6420 6c69 7374 733c 2f68 333e 0a3c 703e d lists
.ns__Objec
│ │ │ │ -000eb420: 743c 2f63 6f64 653e 2062 6173 6520 696e t
base in
│ │ │ │ -000eb430: 7374 616e 6365 7320 6f72 203c 636f 6465 stances or ns__Data
│ │ │ │ -000eb450: 2064 6572 6976 6564 2069 6e73 7461 6e63 derived instanc
│ │ │ │ -000eb460: 6573 2c20 7768 6963 6820 7769 6c6c 2062 es, which will b
│ │ │ │ -000eb470: 6520 7365 7269 616c 697a 6564 2061 6363 e serialized acc
│ │ │ │ -000eb480: 6f72 6469 6e67 6c79 2069 6e20 584d 4c2e ordingly in XML.
│ │ │ │ -000eb490: 2044 6572 6976 6564 2069 6e73 7461 6e63 Derived instanc
│ │ │ │ -000eb4a0: 6573 2061 7265 2069 6e64 6963 6174 6564 es are indicated
│ │ │ │ -000eb4b0: 2062 7920 3c65 6d3e 3c63 6f64 653e 7873 by xs
│ │ │ │ -000eb4c0: 693a 7479 7065 3c2f 636f 6465 3e3c 2f65 i:type
attribute in
│ │ │ │ -000eb4e0: 584d 4c20 7769 7468 2074 6865 2071 7561 XML with the qua
│ │ │ │ -000eb4f0: 6c69 6669 6564 206e 616d 6520 6f66 2074 lified name of t
│ │ │ │ -000eb500: 6865 2063 6c61 7373 2c20 746f 2064 6973 he class, to dis
│ │ │ │ -000eb510: 7469 6e67 7569 7368 2064 6572 6976 6564 tinguish derived
│ │ │ │ -000eb520: 2069 6e73 7461 6e63 6573 2066 726f 6d20 instances from
│ │ │ │ -000eb530: 7468 6520 6261 7365 2069 6e73 7461 6e63 the base instanc
│ │ │ │ -000eb540: 6573 2e20 5769 7468 6f75 7420 7468 6973 es. Without this
│ │ │ │ -000eb550: 2061 7474 7269 6275 7465 2074 6865 2064 attribute the d
│ │ │ │ -000eb560: 6573 6572 6961 6c69 7a65 7220 7769 6c6c eserializer will
│ │ │ │ -000eb570: 206e 6f74 2069 6e73 7461 6e74 6961 7465 not instantiate
│ │ │ │ -000eb580: 2074 6865 2064 6572 6976 6564 2069 6e73 the derived ins
│ │ │ │ -000eb590: 7461 6e63 6520 6275 7420 6120 6261 7365 tance but a base
│ │ │ │ -000eb5a0: 2069 6e73 7461 6e63 6520 7369 6e63 6520 instance since
│ │ │ │ -000eb5b0: 7468 6572 6520 6973 206e 6f20 6964 656e there is no iden
│ │ │ │ -000eb5c0: 7469 6679 696e 6720 696e 666f 726d 6174 tifying informat
│ │ │ │ -000eb5d0: 696f 6e20 746f 2064 6973 7469 6e67 7569 ion to distingui
│ │ │ │ -000eb5e0: 7368 2074 6865 2058 4d4c 2066 6f72 6d73 sh the XML forms
│ │ │ │ -000eb5f0: 2065 7863 6570 7420 666f 7220 7468 6520 except for the
│ │ │ │ -000eb600: 3c65 6d3e 3c63 6f64 653e 7873 693a 7479 xsi:ty
│ │ │ │ -000eb610: 7065 3c2f 636f 6465 3e3c 2f65 6d3e 2061 pe
a
│ │ │ │ -000eb620: 7474 7269 6275 7465 2e3c 2f70 3e0a 3c70 ttribute.
│ │ │ │ -000eb6e0: 4172 7261 794f 664f 626a 6563 743c 2f63 ArrayOfObject and a non-S
│ │ │ │ -000eb700: 4f41 5020 6479 6e61 6d69 6320 6172 7261 OAP dynamic arra
│ │ │ │ -000eb710: 7920 3c63 6f64 653e 6e73 5f5f 4f62 6a65 y
ns__Obje
│ │ │ │ -000eb720: 6374 733c 2f63 6f64 653e 2074 6861 7420 cts
that
│ │ │ │ -000eb730: 686f 6c64 2076 616c 7565 7320 6f66 2061 hold values of a
│ │ │ │ -000eb740: 6e79 2073 6572 6961 6c69 7a61 626c 6520 ny serializable
│ │ │ │ -000eb750: 7479 7065 3a3c 2f70 3e0a 3c64 6976 2063 type: const { re
│ │ │ │ +000e9f20: 7475 726e 3c2f 7370 616e 3e20 7461 696c turn tail
│ │ │ │ +000e9f30: 202d 2068 6561 643b 207d 203c 2f64 6976 - head; } .Polymor
│ │ │ │ +000eade0: 7068 6963 2064 796e 616d 6963 2061 7272 phic dynamic arr
│ │ │ │ +000eadf0: 6179 7320 616e 6420 6c69 7374 733c 2f68 ays and lists.
// vector of
│ │ │ │ +000eb370: 2062 6173 6520 6f72 2064 6572 6976 6564 base or derived
│ │ │ │ +000eb380: 206f 626a 6563 7473 203c 2f73 7061 6e3e objects
│ │ │ │ +000eb390: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 ns_
│ │ │ │ +000eb400: 5f4f 626a 6563 743c 2f63 6f64 653e 2062 _Object
b
│ │ │ │ +000eb410: 6173 6520 696e 7374 616e 6365 7320 6f72 ase instances or
│ │ │ │ +000eb420: 203c 636f 6465 3e6e 735f 5f44 6174 613c ns__Data<
│ │ │ │ +000eb430: 2f63 6f64 653e 2064 6572 6976 6564 2069 /code> derived i
│ │ │ │ +000eb440: 6e73 7461 6e63 6573 2c20 7768 6963 6820 nstances, which
│ │ │ │ +000eb450: 7769 6c6c 2062 6520 7365 7269 616c 697a will be serializ
│ │ │ │ +000eb460: 6564 2061 6363 6f72 6469 6e67 6c79 2069 ed accordingly i
│ │ │ │ +000eb470: 6e20 584d 4c2e 2044 6572 6976 6564 2069 n XML. Derived i
│ │ │ │ +000eb480: 6e73 7461 6e63 6573 2061 7265 2069 6e64 nstances are ind
│ │ │ │ +000eb490: 6963 6174 6564 2062 7920 3c65 6d3e 3c63 icated by
use
│ │ │ │ +000ec9b0: 2074 6865 2073 616d 6520 7374 7275 6374 the same struct
│ │ │ │ +000ec9c0: 206f 7220 636c 6173 7320 7374 7275 6374 or class struct
│ │ │ │ +000ec9d0: 7572 652c 2062 7574 2077 6974 6820 616e ure, but with an
│ │ │ │ +000ec9e0: 6f74 6865 7220 6e61 6d65 2e20 466f 7220 other name. For
│ │ │ │ +000ec9f0: 6578 616d 706c 653a 3c2f 703e 0a3c 6469 example:
│ │ │ │ +000eb5f0: 7873 693a 7479 7065 3c2f 636f 6465 3e3c xsi:type
<
│ │ │ │ +000eb600: 2f65 6d3e 2061 7474 7269 6275 7465 2e3c /em> attribute.<
│ │ │ │ +000eb610: 2f70 3e0a 3c70 3e53 696e 6365 2077 6520 /p>.ArrayOfObj
│ │ │ │ +000eb6d0: 6563 743c 2f63 6f64 653e 2061 6e64 2061 ect
and a
│ │ │ │ +000eb6e0: 206e 6f6e 2d53 4f41 5020 6479 6e61 6d69 non-SOAP dynami
│ │ │ │ +000eb6f0: 6320 6172 7261 7920 3c63 6f64 653e 6e73 c array ns
│ │ │ │ +000eb700: 5f5f 4f62 6a65 6374 733c 2f63 6f64 653e __Objects
│ │ │ │ +000eb710: 2074 6861 7420 686f 6c64 2076 616c 7565 that hold value
│ │ │ │ +000eb720: 7320 6f66 2061 6e79 2073 6572 6961 6c69 s of any seriali
│ │ │ │ +000eb730: 7a61 626c 6520 7479 7065 3a3c 2f70 3e0a zable type:struct ArrayOfObject
│ │ │ │ +000eb930: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 // size of t
│ │ │ │ -000eba60: 6865 2061 7272 6179 3c2f 7370 616e 3e3c he array<
│ │ │ │ -000eba70: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>.__array
│ │ │ │ -000ebc90: 636f 6465 3e2c 2077 6869 6368 2073 7461 code>, which sta
│ │ │ │ -000ebca0: 7274 2077 6974 6820 6120 646f 7562 6c65 rt with a double
│ │ │ │ -000ebcb0: 2075 6e64 6572 7363 6f72 652e 2054 6865 underscore. The
│ │ │ │ -000ebcc0: 7365 206e 616d 6573 2061 7265 206e 6576 se names are nev
│ │ │ │ -000ebcd0: 6572 2076 6973 6962 6c65 2069 6e20 7365 er visible in se
│ │ │ │ -000ebce0: 7269 616c 697a 6564 2058 4d4c 2e20 5468 rialized XML. Th
│ │ │ │ -000ebcf0: 6520 3c63 6f64 653e 5f5f 7479 7065 3c2f e
__type
│ │ │ │ -000ebd00: 636f 6465 3e20 6d65 6d62 6572 206f 6620 code> member of
│ │ │ │ -000ebd10: 3c63 6f64 653e 5f5f 7772 6170 7065 723c
__wrapper<
│ │ │ │ -000ebd20: 2f63 6f64 653e 2069 7320 6120 3c63 6f64 /code> is a
T
__
│ │ │ │ -000ebd80: 6974 656d 3c2f 636f 6465 3e20 706f 696e item
poin
│ │ │ │ -000ebd90: 7473 2074 6f2c 2073 6565 2053 6563 7469 ts to, see Secti
│ │ │ │ -000ebda0: 6f6e 203c 6120 636c 6173 733d 2265 6c22 on Void poi
│ │ │ │ -000ebdd0: 6e74 6572 2073 6572 6961 6c69 7a61 7469 nter serializati
│ │ │ │ -000ebde0: 6f6e 3c2f 613e 2e3c 2f70 3e0a 3c70 3ef0 on..How
│ │ │ │ -000ebe50: 2074 6f20 6368 616e 6765 2074 6865 2074 to change the t
│ │ │ │ -000ebe60: 6167 206e 616d 6573 206f 6620 6172 7261 ag names of arra
│ │ │ │ -000ebe70: 7920 6974 656d 2065 6c65 6d65 6e74 733c y item elements<
│ │ │ │ -000ebe80: 2f68 333e 0a3c 703e 5468 6520 6465 6661 /h3>.
item, which
│ │ │ │ -000ebee0: 2063 616e 2062 6520 6368 616e 6765 642e can be changed.
│ │ │ │ -000ebef0: 2054 6865 203c 636f 6465 3e5f 5f70 7472 The
│ │ │ │ -000ebfc0: 206d 656d 6265 7220 6e61 6d65 3a3c 2f70 member name:__ptr
│ │ │ │ -000ebf00: 3c2f 636f 6465 3e20 6d65 6d62 6572 2069
member i
│ │ │ │ -000ebf10: 6e20 6120 7374 7275 6374 206f 7220 636c n a struct or cl
│ │ │ │ -000ebf20: 6173 7320 6f66 2061 2064 796e 616d 6963 ass of a dynamic
│ │ │ │ -000ebf30: 2061 7272 6179 206d 6179 2068 6176 6520 array may have
│ │ │ │ -000ebf40: 616e 206f 7074 696f 6e61 6c20 7375 6666 an optional suff
│ │ │ │ -000ebf50: 6978 2070 6172 7420 7468 6174 2073 7065 ix part that spe
│ │ │ │ -000ebf60: 6369 6669 6573 2074 6865 206e 616d 6520 cifies the name
│ │ │ │ -000ebf70: 6f66 2074 6865 2065 6c65 6d65 6e74 2074 of the element t
│ │ │ │ -000ebf80: 6167 2069 6e20 584d 4c2e 2054 6861 7420 ag in XML. That
│ │ │ │ -000ebf90: 6973 2c20 7468 6520 7375 6666 6978 2069 is, the suffix i
│ │ │ │ -000ebfa0: 7320 7061 7274 206f 6620 7468 6520 3c63 s part of the __wra
│ │ │ │ +000ebc50: 7070 6572 3c2f 636f 6465 3e20 616e 6420 pper
and
│ │ │ │ +000ebc60: 6d65 6d62 6572 203c 636f 6465 3e5f 5f61 member __a
│ │ │ │ +000ebc70: 7272 6179 3c2f 636f 6465 3e2c 2077 6869 rray
, whi
│ │ │ │ +000ebc80: 6368 2073 7461 7274 2077 6974 6820 6120 ch start with a
│ │ │ │ +000ebc90: 646f 7562 6c65 2075 6e64 6572 7363 6f72 double underscor
│ │ │ │ +000ebca0: 652e 2054 6865 7365 206e 616d 6573 2061 e. These names a
│ │ │ │ +000ebcb0: 7265 206e 6576 6572 2076 6973 6962 6c65 re never visible
│ │ │ │ +000ebcc0: 2069 6e20 7365 7269 616c 697a 6564 2058 in serialized X
│ │ │ │ +000ebcd0: 4d4c 2e20 5468 6520 3c63 6f64 653e 5f5f ML. The __
│ │ │ │ +000ebce0: 7479 7065 3c2f 636f 6465 3e20 6d65 6d62 type
memb
│ │ │ │ +000ebcf0: 6572 206f 6620 3c63 6f64 653e 5f5f 7772 er of __wr
│ │ │ │ +000ebd00: 6170 7065 723c 2f63 6f64 653e 2069 7320 apper
is
│ │ │ │ +000ebd10: 6120 3c63 6f64 653e 534f 4150 5f54 5950 a SOAP_TYP
│ │ │ │ +000ebd20: 455f 543c 2f63 6f64 653e 2076 616c 7565 E_T
value
│ │ │ │ +000ebd30: 2074 6861 7420 6964 656e 7469 6669 6573 that identifies
│ │ │ │ +000ebd40: 2074 6865 2074 7970 6520 3c63 6f64 653e the type
│ │ │ │ +000ebd50: 543c 2f63 6f64 653e 2074 6861 7420 3c63 T
that
│ │ │ │ +000ebe30: 613e 0a48 6f77 2074 6f20 6368 616e 6765 a>.How to change
│ │ │ │ +000ebe40: 2074 6865 2074 6167 206e 616d 6573 206f the tag names o
│ │ │ │ +000ebe50: 6620 6172 7261 7920 6974 656d 2065 6c65 f array item ele
│ │ │ │ +000ebe60: 6d65 6e74 733c 2f68 333e 0a3c 703e 5468 ments
.i
│ │ │ │ +000ebeb0: 7465 6d3c 2f63 6f64 653e 3c2f 656d 3e2c tem
,
│ │ │ │ +000ebec0: 2077 6869 6368 2063 616e 2062 6520 6368 which can be ch
│ │ │ │ +000ebed0: 616e 6765 642e 2054 6865 203c 636f 6465 anged. The __ptr
me
│ │ │ │ +000ebef0: 6d62 6572 2069 6e20 6120 7374 7275 6374 mber in a struct
│ │ │ │ +000ebf00: 206f 7220 636c 6173 7320 6f66 2061 2064 or class of a d
│ │ │ │ +000ebf10: 796e 616d 6963 2061 7272 6179 206d 6179 ynamic array may
│ │ │ │ +000ebf20: 2068 6176 6520 616e 206f 7074 696f 6e61 have an optiona
│ │ │ │ +000ebf30: 6c20 7375 6666 6978 2070 6172 7420 7468 l suffix part th
│ │ │ │ +000ebf40: 6174 2073 7065 6369 6669 6573 2074 6865 at specifies the
│ │ │ │ +000ebf50: 206e 616d 6520 6f66 2074 6865 2065 6c65 name of the ele
│ │ │ │ +000ebf60: 6d65 6e74 2074 6167 2069 6e20 584d 4c2e ment tag in XML.
│ │ │ │ +000ebf70: 2054 6861 7420 6973 2c20 7468 6520 7375 That is, the su
│ │ │ │ +000ebf80: 6666 6978 2069 7320 7061 7274 206f 6620 ffix is part of
│ │ │ │ +000ebf90: 7468 6520 3c63 6f64 653e 5f5f 7074 723c the __ptr<
│ │ │ │ +000ebfa0: 2f63 6f64 653e 206d 656d 6265 7220 6e61 /code> member na
│ │ │ │ +000ebfb0: 6d65 3a3c 2f70 3e0a 3c64 6976 2063 6c61 me:
World
│ │ │ │ -000ec3a0: 266c 743b 2f3c 7370 616e 2063 6c61 7373 </s
│ │ │ │ -000ec3c0: 7472 696e 673c 2f73 7061 6e3e 2667 743b tring>
│ │ │ │ -000ec3d0: 203c 2f64 6976 3e0a 3c64 6976 2063 6c61 .base64
│ │ │ │ -000ec570: 4269 6e61 7279 2073 6572 6961 6c69 7a61 Binary serializa
│ │ │ │ -000ec580: 7469 6f6e 3c2f 6832 3e0a 3c70 3e54 6865 tion
.base6
│ │ │ │ -000ec5a0: 3442 696e 6172 793c 2f63 6f64 653e 3c2f 4Binary
│ │ │ │ -000ec5b0: 656d 3e20 5853 4420 7479 7065 2069 7320 em> XSD type is
│ │ │ │ -000ec5c0: 696e 7472 6f64 7563 6564 2069 6e20 616e introduced in an
│ │ │ │ -000ec5d0: 2069 6e74 6572 6661 6365 2068 6561 6465 interface heade
│ │ │ │ -000ec5e0: 7220 6669 6c65 2066 6f72 2073 6f61 7063 r file for soapc
│ │ │ │ -000ec5f0: 7070 3220 7573 696e 6720 6120 7374 7275 pp2 using a stru
│ │ │ │ -000ec600: 6374 206f 7220 636c 6173 7320 7468 6174 ct or class that
│ │ │ │ -000ec610: 2063 6f6e 7461 696e 7320 616e 2061 7272 contains an arr
│ │ │ │ -000ec620: 6179 206f 6620 3c63 6f64 653e 756e 7369 ay of unsi
│ │ │ │ -000ec630: 676e 6564 2063 6861 723c 2f63 6f64 653e gned char
│ │ │ │ -000ec640: 2076 616c 7565 733a 3c2f 703e 0a3c 6469 values:string
│ │ │ │ +000ec310: 7370 616e 3e26 6774 3b20 3c2f 6469 763e span>> .
│ │ │ │ +000ec550: 6261 7365 3634 4269 6e61 7279 2073 6572 base64Binary ser
│ │ │ │ +000ec560: 6961 6c69 7a61 7469 6f6e 3c2f 6832 3e0a ialization
.
│ │ │ │ +000ec570: 3c70 3e54 6865 203c 656d 3e3c 636f 6465 base64Binary
XSD ty
│ │ │ │ +000ec5a0: 7065 2069 7320 696e 7472 6f64 7563 6564 pe is introduced
│ │ │ │ +000ec5b0: 2069 6e20 616e 2069 6e74 6572 6661 6365 in an interface
│ │ │ │ +000ec5c0: 2068 6561 6465 7220 6669 6c65 2066 6f72 header file for
│ │ │ │ +000ec5d0: 2073 6f61 7063 7070 3220 7573 696e 6720 soapcpp2 using
│ │ │ │ +000ec5e0: 6120 7374 7275 6374 206f 7220 636c 6173 a struct or clas
│ │ │ │ +000ec5f0: 7320 7468 6174 2063 6f6e 7461 696e 7320 s that contains
│ │ │ │ +000ec600: 616e 2061 7272 6179 206f 6620 3c63 6f64 an array of char *__ptr; .restrict
│ │ │ │ -000ecd60: 696f 6e3c 2f73 7061 6e3e 2667 743b 3c2f ion>
│ │ │ │ -000ecd70: 6469 763e 0a3c 6469 7620 636c 6173 733d div>..
│ │ │ │ -000ece40: 6865 7842 696e 6172 7920 7365 7269 616c hexBinary serial
│ │ │ │ -000ece50: 697a 6174 696f 6e3c 2f68 323e 0a3c 703e ization
.ba
│ │ │ │ -000ece70: 7365 3634 4269 6e61 7279 3c2f 636f 6465 se64Binary
XSD type
│ │ │ │ -000ece90: 6973 2069 6e74 726f 6475 6365 6420 696e is introduced in
│ │ │ │ -000ecea0: 2061 6e20 696e 7465 7266 6163 6520 6865 an interface he
│ │ │ │ -000eceb0: 6164 6572 2066 696c 6520 666f 7220 736f ader file for so
│ │ │ │ -000ecec0: 6170 6370 7032 2075 7369 6e67 2061 2073 apcpp2 using a s
│ │ │ │ -000eced0: 7472 7563 7420 6f72 2063 6c61 7373 2074 truct or class t
│ │ │ │ -000ecee0: 6861 7420 636f 6e74 6169 6e73 2061 6e20 hat contains an
│ │ │ │ -000ecef0: 6172 7261 7920 6f66 203c 636f 6465 3e75 array of u
│ │ │ │ -000ecf00: 6e73 6967 6e65 6420 6368 6172 3c2f 636f nsigned char values:
<
│ │ │ │ -000ed260: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -000ed270: 663d 2273 7472 7563 7478 7364 5f5f 5f5f f="structxsd____
│ │ │ │ -000ed280: 6261 7365 3634 5f62 696e 6172 792e 6874 base64_binary.ht
│ │ │ │ -000ed290: 6d6c 2220 7469 746c 653d 2258 5344 2062 ml" title="XSD b
│ │ │ │ -000ed2a0: 6173 6536 3442 696e 6172 7920 7374 7275 ase64Binary stru
│ │ │ │ -000ed2b0: 6374 7572 6520 7769 7468 2061 7474 6163 cture with attac
│ │ │ │ -000ed2c0: 686d 656e 7420 6461 7461 2e22 3e78 7364 hment data.">xsd
│ │ │ │ -000ed2d0: 5f5f 6261 7365 3634 4269 6e61 7279 3c2f __base64Binary
│ │ │ │ -000ed2e0: 613e 3c2f 636f 6465 3e20 6973 2061 6c72 a>
is alr
│ │ │ │ -000ed2f0: 6561 6479 2064 6566 696e 6564 2c20 7468 eady defined, th
│ │ │ │ -000ed300: 656e 2077 6520 6361 6e20 7369 6d70 6c79 en we can simply
│ │ │ │ -000ed310: 2075 7365 2061 203c 636f 6465 3e74 7970 use a typ
│ │ │ │ -000ed320: 6564 6566 3c2f 636f 6465 3e20 746f 2069 edef
to i
│ │ │ │ -000ed330: 6e74 726f 6475 6365 2074 6865 2068 6578 ntroduce the hex
│ │ │ │ -000ed340: 2076 6172 6961 6e74 3a3c 2f70 3e0a 3c64 variant:x
│ │ │ │ -000ed710: 7364 3a62 6173 6536 3442 696e 6172 793c sd:base64Binary<
│ │ │ │ -000ed720: 2f63 6f64 653e 3c2f 656d 3e20 616e 6420 /code>
and
│ │ │ │ -000ed730: 3c65 6d3e 3c63 6f64 653e 7873 643a 6865 xsd:he
│ │ │ │ -000ed740: 7842 696e 6172 793c 2f63 6f64 653e 3c2f xBinary
│ │ │ │ -000ed750: 656d 3e20 7365 7269 616c 697a 6572 732e em> serializers.
│ │ │ │ -000ed760: 3c2f 703e 0a3c 703e f09f 949d 203c 6120 <
│ │ │ │ -000ed7a0: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ -000ed7b0: 2069 643d 226c 6974 6572 616c 223e 3c2f id="literal">
│ │ │ │ -000ed7c0: 613e 0a53 4f41 5020 5250 4320 656e 636f a>.SOAP RPC enco
│ │ │ │ -000ed7d0: 6465 6420 7665 7273 7573 2064 6f63 756d ded versus docum
│ │ │ │ -000ed7e0: 656e 742f 6c69 7465 7261 6c20 7374 796c ent/literal styl
│ │ │ │ -000ed7f0: 653c 2f68 323e 0a3c 703e 534f 4150 2068 e
..
xsd
│ │ │ │ -000ed930: 3a73 6571 7565 6e63 6520 6d61 784f 6363 :sequence maxOcc
│ │ │ │ -000ed940: 7572 733d 2275 6e62 6f75 6e64 6564 223c urs="unbounded"<
│ │ │ │ -000ed950: 2f63 6f64 653e 3c2f 656d 3e20 6973 206e /code>
is n
│ │ │ │ -000ed960: 6f74 2061 6c6c 6f77 6564 292c 2061 6e64 ot allowed), and
│ │ │ │ -000ed970: 203c 656d 3e3c 636f 6465 3e78 7364 3a63 xsd:c
│ │ │ │ -000ed980: 686f 6963 653c 2f63 6f64 653e 3c2f 656d hoice
components are
│ │ │ │ -000ed9a0: 206e 6f74 2061 6c6c 6f77 6564 2e20 4d75 not allowed. Mu
│ │ │ │ -000ed9b0: 6c74 692d 7265 6665 7265 6e63 6564 2065 lti-referenced e
│ │ │ │ -000ed9c0: 6c65 6d65 6e74 7320 6172 6520 7573 6564 lements are used
│ │ │ │ -000ed9d0: 2074 6f20 7365 7269 616c 697a 6520 6461 to serialize da
│ │ │ │ -000ed9e0: 7461 2073 7472 7563 7475 7265 2067 7261 ta structure gra
│ │ │ │ -000ed9f0: 7068 732e 2042 6563 6175 7365 2061 6464 phs. Because add
│ │ │ │ -000eda00: 6974 696f 6e61 6c20 534f 4150 2d65 6e63 itional SOAP-enc
│ │ │ │ -000eda10: 6f64 696e 6720 7370 6563 6966 6963 2061 oding specific a
│ │ │ │ -000eda20: 7474 7269 6275 7465 7320 6172 6520 7072 ttributes are pr
│ │ │ │ -000eda30: 6573 656e 7420 7468 6174 2061 7265 206e esent that are n
│ │ │ │ -000eda40: 6f74 2064 6566 696e 6564 2069 6e20 7468 ot defined in th
│ │ │ │ -000eda50: 6520 584d 4c20 7363 6865 6d61 2028 6f66 e XML schema (of
│ │ │ │ -000eda60: 2074 6865 2057 5344 4c29 2c20 7374 7269 the WSDL), stri
│ │ │ │ -000eda70: 6374 2058 4d4c 2073 6368 656d 6120 7661 ct XML schema va
│ │ │ │ -000eda80: 6c69 6461 746f 7273 206d 6179 2072 656a lidators may rej
│ │ │ │ -000eda90: 6563 7420 534f 4150 2d65 6e63 6f64 6564 ect SOAP-encoded
│ │ │ │ -000edaa0: 2063 6f6e 7465 6e74 2e20 5468 6520 534f content. The SO
│ │ │ │ -000edab0: 4150 2042 6f64 7920 636f 6e74 6169 6e73 AP Body contains
│ │ │ │ -000edac0: 2061 7420 6d6f 7374 206f 6e65 2073 6572 at most one ser
│ │ │ │ -000edad0: 7669 6365 206f 7065 7261 7469 6f6e 2072 vice operation r
│ │ │ │ -000edae0: 6571 7565 7374 2065 6c65 6d65 6e74 206f equest element o
│ │ │ │ -000edaf0: 7220 6174 206d 6f73 7420 6f6e 6520 7365 r at most one se
│ │ │ │ -000edb00: 7276 6963 6520 6f70 6572 6174 696f 6e20 rvice operation
│ │ │ │ -000edb10: 7265 7370 6f6e 7365 2065 6c65 6d65 6e74 response element
│ │ │ │ -000edb20: 2061 6e64 2074 6865 2065 6e63 6f64 696e and the encodin
│ │ │ │ -000edb30: 6720 7374 796c 6520 6973 2069 6e64 6963 g style is indic
│ │ │ │ -000edb40: 6174 6564 2077 6974 6820 7468 6520 3c65 ated with the SOAP-ENV
│ │ │ │ -000edb60: 3a65 6e63 6f64 696e 6753 7479 6c65 3d22 :encodingStyle="
│ │ │ │ -000edb70: 2e2e 2e22 3c2f 636f 6465 3e3c 2f65 6d3e ..."
│ │ │ │ -000edb80: 2061 7474 7269 6275 7465 2069 6e20 7468 attribute in th
│ │ │ │ -000edb90: 6520 534f 4150 2042 6f64 7920 6f72 206f e SOAP Body or o
│ │ │ │ -000edba0: 6e65 206f 7220 6d6f 7265 206f 6620 6974 ne or more of it
│ │ │ │ -000edbb0: 7320 7375 622d 656c 656d 656e 7473 2e20 s sub-elements.
│ │ │ │ -000edbc0: 5468 6973 2073 7479 6c65 2069 7320 7370 This style is sp
│ │ │ │ -000edbd0: 6563 6966 6965 6420 666f 7220 7468 6520 ecified for the
│ │ │ │ -000edbe0: 656e 7469 7265 2073 6572 7669 6365 2064 entire service d
│ │ │ │ -000edbf0: 6563 6c61 7265 6420 756e 6465 7220 6e61 eclared under na
│ │ │ │ -000edc00: 6d65 7370 6163 6520 7072 6566 6978 203c mespace prefix <
│ │ │ │ -000edc10: 636f 6465 3e6e 733c 2f63 6f64 653e 2077 code>ns w
│ │ │ │ -000edc20: 6974 683a 203c 6469 7620 636c 6173 733d ith: SOAP-ENV:
│ │ │ │ -000ee210: 656e 636f 6469 6e67 5374 796c 653d 222e encodingStyle=".
│ │ │ │ -000ee220: 2e2e 223c 2f63 6f64 653e 3c2f 656d 3e20 .."
│ │ │ │ -000ee230: 6174 7472 6962 7574 6520 7368 6f75 6c64 attribute should
│ │ │ │ -000ee240: 2061 7070 6561 7220 696e 206c 6974 6572 appear in liter
│ │ │ │ -000ee250: 616c 2063 6f6e 7465 6e74 2e20 5468 6973 al content. This
│ │ │ │ -000ee260: 2073 7479 6c65 2069 7320 7370 6563 6966 style is specif
│ │ │ │ -000ee270: 6965 6420 666f 7220 7468 6520 656e 7469 ied for the enti
│ │ │ │ -000ee280: 7265 2073 6572 7669 6365 2064 6563 6c61 re service decla
│ │ │ │ -000ee290: 7265 6420 756e 6465 7220 6e61 6d65 7370 red under namesp
│ │ │ │ -000ee2a0: 6163 6520 7072 6566 6978 203c 636f 6465 ace prefix ns
with:
│ │ │ │ -000ee2c0: 203c 6469 7620 636c 6173 733d 2266 7261 //gso
│ │ │ │ -000ee3c0: 6170 206e 7320 7365 7276 6963 6520 7374 ap ns service st
│ │ │ │ -000ee3d0: 796c 653c 2f63 6f64 653e 2061 6e64 203c yle
and <
│ │ │ │ -000ee3e0: 636f 6465 3e2f 2f67 736f 6170 206e 7320 code>//gsoap ns
│ │ │ │ -000ee3f0: 7365 7276 6963 6520 656e 636f 6469 6e67 service encoding
│ │ │ │ -000ee400: 3c2f 636f 6465 3e20 7468 6572 6520 6172 there ar
│ │ │ │ -000ee410: 6520 616c 736f 2074 6865 2073 6572 7669 e also the servi
│ │ │ │ -000ee420: 6365 206f 7065 7261 7469 6f6e 2073 7065 ce operation spe
│ │ │ │ -000ee430: 6369 6669 6320 7665 7273 696f 6e73 203c cific versions <
│ │ │ │ -000ee440: 636f 6465 3e2f 2f67 736f 6170 206e 7320 code>//gsoap ns
│ │ │ │ -000ee450: 7365 7276 6963 6520 6d65 7468 6f64 2d73 service method-s
│ │ │ │ -000ee460: 7479 6c65 3c2f 636f 6465 3e2c 203c 636f tyle, //gsoa
│ │ │ │ -000ee4b0: 7020 6e73 2073 6572 7669 6365 206d 6574 p ns service met
│ │ │ │ -000ee4c0: 686f 642d 656e 636f 6469 6e67 3c2f 636f hod-encoding
/
│ │ │ │ -000ee4e0: 2f67 736f 6170 206e 7320 7365 7276 6963 /gsoap ns servic
│ │ │ │ -000ee4f0: 6520 6d65 7468 6f64 2d72 6573 706f 6e73 e method-respons
│ │ │ │ -000ee500: 652d 656e 636f 6469 6e67 3c2f 636f 6465 e-encoding
that explicitl
│ │ │ │ -000ee520: 7920 7370 6563 6966 7920 534f 4150 2052 y specify SOAP R
│ │ │ │ -000ee530: 5043 2065 6e63 6f64 6564 2c20 646f 6375 PC encoded, docu
│ │ │ │ -000ee540: 6d65 6e74 2f6c 6974 6572 616c 2c20 6f72 ment/literal, or
│ │ │ │ -000ee550: 2052 5043 206c 6974 6572 616c 2073 7479 RPC literal sty
│ │ │ │ -000ee560: 6c65 206d 6573 7361 6765 7320 666f 7220 le messages for
│ │ │ │ -000ee570: 7468 6520 696e 6469 6361 7465 6420 7365 the indicated se
│ │ │ │ -000ee580: 7276 6963 6520 6f70 6572 6174 696f 6e20 rvice operation
│ │ │ │ -000ee590: 6d65 7468 6f64 732e 3c2f 703e 0a3c 703e methods.typedef std::wstring
│ │ │ │ -000eefe0: 584d 4c3b 3c2f 6469 763e 0a3c 2f64 6976 XML;.
..XML v
│ │ │ │ -000ef260: 616c 6964 6174 696f 6e3c 2f68 313e 0a3c alidation
.<
│ │ │ │ -000ef270: 703e 536f 6d65 2058 4d4c 2076 616c 6964 p>Some XML valid
│ │ │ │ -000ef280: 6174 696f 6e20 636f 6e73 7472 6169 6e74 ation constraint
│ │ │ │ -000ef290: 7320 6172 6520 6e6f 7420 6175 746f 6d61 s are not automa
│ │ │ │ -000ef2a0: 7469 6361 6c6c 7920 7665 7269 6669 6564 tically verified
│ │ │ │ -000ef2b0: 2075 6e6c 6573 7320 6578 706c 6963 6974 unless explicit
│ │ │ │ -000ef2c0: 6c79 2073 6574 2075 7369 6e67 2074 6865 ly set using the
│ │ │ │ -000ef2d0: 203c 636f 6465 3e23 534f 4150 5f58 4d4c #SOAP_XML
│ │ │ │ -000ef2e0: 5f53 5452 4943 543c 2f63 6f64 653e 2066 _STRICT
f
│ │ │ │ -000ef2f0: 6c61 672e 2053 4f41 5020 5250 4320 656e lag. SOAP RPC en
│ │ │ │ -000ef300: 636f 6469 6e67 2069 7320 616e 2058 4d4c coding is an XML
│ │ │ │ -000ef310: 2066 6f72 6d61 7420 7468 6174 2064 6f65 format that doe
│ │ │ │ -000ef320: 7320 6e6f 7420 6166 666f 7264 2073 7472 s not afford str
│ │ │ │ -000ef330: 6963 7420 584d 4c20 7661 6c69 6461 7469 ict XML validati
│ │ │ │ -000ef340: 6f6e 2c20 6265 6361 7573 6520 6f66 2074 on, because of t
│ │ │ │ -000ef350: 6865 2061 6464 6974 696f 6e20 6f66 2053 he addition of S
│ │ │ │ -000ef360: 4f41 502d 7370 6563 6966 6963 2061 7474 OAP-specific att
│ │ │ │ -000ef370: 7269 6275 7465 7320 616e 6420 6f74 6865 ributes and othe
│ │ │ │ -000ef380: 7220 736d 616c 6c20 6465 7669 6174 696f r small deviatio
│ │ │ │ -000ef390: 6e73 2074 6861 7420 7769 6c6c 2062 6520 ns that will be
│ │ │ │ -000ef3a0: 6465 7465 6374 6564 2062 7920 616e 2061 detected by an a
│ │ │ │ -000ef3b0: 6767 7265 7373 6976 6520 584d 4c20 7661 ggressive XML va
│ │ │ │ -000ef3c0: 6c69 6461 746f 722c 206c 6561 6469 6e67 lidator, leading
│ │ │ │ -000ef3d0: 2074 6865 206d 6573 7361 6769 6e67 2066 the messaging f
│ │ │ │ -000ef3e0: 6169 6c75 7265 732e 2042 7920 746f 6e69 ailures. By toni
│ │ │ │ -000ef3f0: 6e67 2058 4d4c 2076 616c 6964 6174 696f ng XML validatio
│ │ │ │ -000ef400: 6e20 646f 776e 2c20 6974 2068 656c 7073 n down, it helps
│ │ │ │ -000ef410: 2074 6f20 696d 7072 6f76 6520 534f 4150 to improve SOAP
│ │ │ │ -000ef420: 2052 5043 2065 6e63 6f64 696e 6720 696e RPC encoding in
│ │ │ │ -000ef430: 7465 726f 7065 7261 6269 6c69 7479 2e3c teroperability.<
│ │ │ │ -000ef440: 2f70 3e0a 3c70 3e53 7472 6963 7420 7661 /p>.
│ │ │ │ -000ef480: 2353 4f41 505f 584d 4c5f 5354 5249 4354 #SOAP_XML_STRICT
│ │ │ │ -000ef490: 3c2f 636f 6465 3e20 6d6f 6465 2066 6c61
mode fla
│ │ │ │ -000ef4a0: 6720 7365 742c 2065 2e67 2e20 7769 7468 g set, e.g. with
│ │ │ │ -000ef4b0: 203c 636f 6465 3e73 6f61 705f 7365 745f soap_set_
│ │ │ │ -000ef4c0: 696d 6f64 6528 736f 6170 2c20 534f 4150 imode(soap, SOAP
│ │ │ │ -000ef4d0: 5f58 4d4c 5f53 5452 4943 5429 3c2f 636f _XML_STRICT) or
soa
│ │ │ │ -000ef4f0: 705f 6e65 7728 534f 4150 5f58 4d4c 5f53 p_new(SOAP_XML_S
│ │ │ │ -000ef500: 5452 4943 5429 3c2f 636f 6465 3e2c 2073 TRICT)
, s
│ │ │ │ -000ef510: 6565 2053 6563 7469 6f6e 203c 6120 636c ee Section Run-time flags<
│ │ │ │ -000ef550: 2f61 3e20 666f 7220 7468 6520 636f 6d70 /a> for the comp
│ │ │ │ -000ef560: 6c65 7465 206c 6973 7420 6f66 2066 6c61 lete list of fla
│ │ │ │ -000ef570: 6773 2e3c 2f70 3e0a 3c70 3e54 6865 206e gs.#WIT
│ │ │ │ -000ef650: 485f 5245 504c 4143 455f 494c 4c45 4741 H_REPLACE_ILLEGA
│ │ │ │ -000ef660: 4c5f 5554 4638 3c2f 636f 6465 3e20 746f L_UTF8
to
│ │ │ │ -000ef670: 2066 6f72 6365 2073 7472 6963 7420 5554 force strict UT
│ │ │ │ -000ef680: 462d 3820 7465 7874 2063 6f6e 7665 7273 F-8 text convers
│ │ │ │ -000ef690: 696f 6e73 2c20 7768 6963 6820 7265 706c ions, which repl
│ │ │ │ -000ef6a0: 6163 6573 2069 6e76 616c 6964 2055 5446 aces invalid UTF
│ │ │ │ -000ef6b0: 2d38 2077 6974 6820 552b 4646 4644 2e3c -8 with U+FFFD.<
│ │ │ │ -000ef6c0: 2f70 3e0a 3c70 3e53 6565 2061 6c73 6f20 /p>.<
│ │ │ │ -000ef7a0: 2f61 3e0a 4465 6661 756c 7420 7661 6c75 /a>.Default valu
│ │ │ │ -000ef7b0: 6573 3c2f 6832 3e0a 3c70 3e44 6566 6175 es
.
│ │ │ │ +000ece00: 3c61 2063 6c61 7373 3d22 616e 6368 6f72 .hexBinary
│ │ │ │ +000ece30: 7365 7269 616c 697a 6174 696f 6e3c 2f68 serialization.
│ │ │ │ +000ed720: 7873 643a 6865 7842 696e 6172 793c 2f63 xsd:hexBinary
serial
│ │ │ │ +000ed740: 697a 6572 732e 3c2f 703e 0a3c 703e f09f izers..SOAP RP
│ │ │ │ +000ed7b0: 4320 656e 636f 6465 6420 7665 7273 7573 C encoded versus
│ │ │ │ +000ed7c0: 2064 6f63 756d 656e 742f 6c69 7465 7261 document/litera
│ │ │ │ +000ed7d0: 6c20 7374 796c 653c 2f68 323e 0a3c 703e l style
..
.
│ │ │ │ +000ef1e0: 3c70 3ef0 9f94 9d20 3c61 2068 7265 663d xsd:choice
componen
│ │ │ │ +000ed980: 7473 2061 7265 206e 6f74 2061 6c6c 6f77 ts are not allow
│ │ │ │ +000ed990: 6564 2e20 4d75 6c74 692d 7265 6665 7265 ed. Multi-refere
│ │ │ │ +000ed9a0: 6e63 6564 2065 6c65 6d65 6e74 7320 6172 nced elements ar
│ │ │ │ +000ed9b0: 6520 7573 6564 2074 6f20 7365 7269 616c e used to serial
│ │ │ │ +000ed9c0: 697a 6520 6461 7461 2073 7472 7563 7475 ize data structu
│ │ │ │ +000ed9d0: 7265 2067 7261 7068 732e 2042 6563 6175 re graphs. Becau
│ │ │ │ +000ed9e0: 7365 2061 6464 6974 696f 6e61 6c20 534f se additional SO
│ │ │ │ +000ed9f0: 4150 2d65 6e63 6f64 696e 6720 7370 6563 AP-encoding spec
│ │ │ │ +000eda00: 6966 6963 2061 7474 7269 6275 7465 7320 ific attributes
│ │ │ │ +000eda10: 6172 6520 7072 6573 656e 7420 7468 6174 are present that
│ │ │ │ +000eda20: 2061 7265 206e 6f74 2064 6566 696e 6564 are not defined
│ │ │ │ +000eda30: 2069 6e20 7468 6520 584d 4c20 7363 6865 in the XML sche
│ │ │ │ +000eda40: 6d61 2028 6f66 2074 6865 2057 5344 4c29 ma (of the WSDL)
│ │ │ │ +000eda50: 2c20 7374 7269 6374 2058 4d4c 2073 6368 , strict XML sch
│ │ │ │ +000eda60: 656d 6120 7661 6c69 6461 746f 7273 206d ema validators m
│ │ │ │ +000eda70: 6179 2072 656a 6563 7420 534f 4150 2d65 ay reject SOAP-e
│ │ │ │ +000eda80: 6e63 6f64 6564 2063 6f6e 7465 6e74 2e20 ncoded content.
│ │ │ │ +000eda90: 5468 6520 534f 4150 2042 6f64 7920 636f The SOAP Body co
│ │ │ │ +000edaa0: 6e74 6169 6e73 2061 7420 6d6f 7374 206f ntains at most o
│ │ │ │ +000edab0: 6e65 2073 6572 7669 6365 206f 7065 7261 ne service opera
│ │ │ │ +000edac0: 7469 6f6e 2072 6571 7565 7374 2065 6c65 tion request ele
│ │ │ │ +000edad0: 6d65 6e74 206f 7220 6174 206d 6f73 7420 ment or at most
│ │ │ │ +000edae0: 6f6e 6520 7365 7276 6963 6520 6f70 6572 one service oper
│ │ │ │ +000edaf0: 6174 696f 6e20 7265 7370 6f6e 7365 2065 ation response e
│ │ │ │ +000edb00: 6c65 6d65 6e74 2061 6e64 2074 6865 2065 lement and the e
│ │ │ │ +000edb10: 6e63 6f64 696e 6720 7374 796c 6520 6973 ncoding style is
│ │ │ │ +000edb20: 2069 6e64 6963 6174 6564 2077 6974 6820 indicated with
│ │ │ │ +000edb30: 7468 6520 3c65 6d3e 3c63 6f64 653e 534f the SO
│ │ │ │ +000edb40: 4150 2d45 4e56 3a65 6e63 6f64 696e 6753 AP-ENV:encodingS
│ │ │ │ +000edb50: 7479 6c65 3d22 2e2e 2e22 3c2f 636f 6465 tyle="..."
attribute
│ │ │ │ +000edb70: 2069 6e20 7468 6520 534f 4150 2042 6f64 in the SOAP Bod
│ │ │ │ +000edb80: 7920 6f72 206f 6e65 206f 7220 6d6f 7265 y or one or more
│ │ │ │ +000edb90: 206f 6620 6974 7320 7375 622d 656c 656d of its sub-elem
│ │ │ │ +000edba0: 656e 7473 2e20 5468 6973 2073 7479 6c65 ents. This style
│ │ │ │ +000edbb0: 2069 7320 7370 6563 6966 6965 6420 666f is specified fo
│ │ │ │ +000edbc0: 7220 7468 6520 656e 7469 7265 2073 6572 r the entire ser
│ │ │ │ +000edbd0: 7669 6365 2064 6563 6c61 7265 6420 756e vice declared un
│ │ │ │ +000edbe0: 6465 7220 6e61 6d65 7370 6163 6520 7072 der namespace pr
│ │ │ │ +000edbf0: 6566 6978 203c 636f 6465 3e6e 733c 2f63 efix ns with:
SOAP-E
│ │ │ │ +000edf40: 4e56 3a65 6e63 6f64 696e 6753 7479 6c65 NV:encodingStyle
│ │ │ │ +000edf50: 3d22 2e2e 2e22 3c2f 636f 6465 3e3c 2f65 ="..."
attribute sho
│ │ │ │ +000edf70: 756c 6420 6170 7065 6172 2069 6e20 6c69 uld appear in li
│ │ │ │ +000edf80: 7465 7261 6c20 636f 6e74 656e 742e 2054 teral content. T
│ │ │ │ +000edf90: 6869 7320 7374 796c 6520 6973 2073 7065 his style is spe
│ │ │ │ +000edfa0: 6369 6669 6564 2066 6f72 2074 6865 2065 cified for the e
│ │ │ │ +000edfb0: 6e74 6972 6520 7365 7276 6963 6520 6465 ntire service de
│ │ │ │ +000edfc0: 636c 6172 6564 2075 6e64 6572 206e 616d clared under nam
│ │ │ │ +000edfd0: 6573 7061 6365 2070 7265 6669 7820 3c63 espace prefix SOA
│ │ │ │ +000ee1f0: 502d 454e 563a 656e 636f 6469 6e67 5374 P-ENV:encodingSt
│ │ │ │ +000ee200: 796c 653d 222e 2e2e 223c 2f63 6f64 653e yle="..."
│ │ │ │ +000ee210: 3c2f 656d 3e20 6174 7472 6962 7574 6520 attribute
│ │ │ │ +000ee220: 7368 6f75 6c64 2061 7070 6561 7220 696e should appear in
│ │ │ │ +000ee230: 206c 6974 6572 616c 2063 6f6e 7465 6e74 literal content
│ │ │ │ +000ee240: 2e20 5468 6973 2073 7479 6c65 2069 7320 . This style is
│ │ │ │ +000ee250: 7370 6563 6966 6965 6420 666f 7220 7468 specified for th
│ │ │ │ +000ee260: 6520 656e 7469 7265 2073 6572 7669 6365 e entire service
│ │ │ │ +000ee270: 2064 6563 6c61 7265 6420 756e 6465 7220 declared under
│ │ │ │ +000ee280: 6e61 6d65 7370 6163 6520 7072 6566 6978 namespace prefix
│ │ │ │ +000ee290: 203c 636f 6465 3e6e 733c 2f63 6f64 653e ns
│ │ │ │ +000ee2a0: 2077 6974 683a 203c 6469 7620 636c 6173 with: //gsoap ns serv
│ │ │ │ +000ee3b0: 6963 6520 7374 796c 653c 2f63 6f64 653e ice style
│ │ │ │ +000ee3c0: 2061 6e64 203c 636f 6465 3e2f 2f67 736f and //gso
│ │ │ │ +000ee3d0: 6170 206e 7320 7365 7276 6963 6520 656e ap ns service en
│ │ │ │ +000ee3e0: 636f 6469 6e67 3c2f 636f 6465 3e20 7468 coding
th
│ │ │ │ +000ee3f0: 6572 6520 6172 6520 616c 736f 2074 6865 ere are also the
│ │ │ │ +000ee400: 2073 6572 7669 6365 206f 7065 7261 7469 service operati
│ │ │ │ +000ee410: 6f6e 2073 7065 6369 6669 6320 7665 7273 on specific vers
│ │ │ │ +000ee420: 696f 6e73 203c 636f 6465 3e2f 2f67 736f ions //gso
│ │ │ │ +000ee430: 6170 206e 7320 7365 7276 6963 6520 6d65 ap ns service me
│ │ │ │ +000ee440: 7468 6f64 2d73 7479 6c65 3c2f 636f 6465 thod-style
, //gsoap
│ │ │ │ +000ee460: 206e 7320 7365 7276 6963 6520 6d65 7468 ns service meth
│ │ │ │ +000ee470: 6f64 2d72 6573 706f 6e73 652d 7374 796c od-response-styl
│ │ │ │ +000ee480: 653c 2f63 6f64 653e 2c20 3c63 6f64 653e e
,
│ │ │ │ +000ee490: 2f2f 6773 6f61 7020 6e73 2073 6572 7669 //gsoap ns servi
│ │ │ │ +000ee4a0: 6365 206d 6574 686f 642d 656e 636f 6469 ce method-encodi
│ │ │ │ +000ee4b0: 6e67 3c2f 636f 6465 3e2c 2061 6e64 203c ng
, and <
│ │ │ │ +000ee4c0: 636f 6465 3e2f 2f67 736f 6170 206e 7320 code>//gsoap ns
│ │ │ │ +000ee4d0: 7365 7276 6963 6520 6d65 7468 6f64 2d72 service method-r
│ │ │ │ +000ee4e0: 6573 706f 6e73 652d 656e 636f 6469 6e67 esponse-encoding
│ │ │ │ +000ee4f0: 3c2f 636f 6465 3e20 7468 6174 2065 7870 that exp
│ │ │ │ +000ee500: 6c69 6369 746c 7920 7370 6563 6966 7920 licitly specify
│ │ │ │ +000ee510: 534f 4150 2052 5043 2065 6e63 6f64 6564 SOAP RPC encoded
│ │ │ │ +000ee520: 2c20 646f 6375 6d65 6e74 2f6c 6974 6572 , document/liter
│ │ │ │ +000ee530: 616c 2c20 6f72 2052 5043 206c 6974 6572 al, or RPC liter
│ │ │ │ +000ee540: 616c 2073 7479 6c65 206d 6573 7361 6765 al style message
│ │ │ │ +000ee550: 7320 666f 7220 7468 6520 696e 6469 6361 s for the indica
│ │ │ │ +000ee560: 7465 6420 7365 7276 6963 6520 6f70 6572 ted service oper
│ │ │ │ +000ee570: 6174 696f 6e20 6d65 7468 6f64 732e 3c2f ation methods.
│ │ │ │ +000ee580: 703e 0a3c 703e 546f 2065 6e61 626c 6520 p>.//gsoap ns s
│ │ │ │ +000ee830: 6572 7669 6365 206d 6574 686f 642d 7265 ervice method-re
│ │ │ │ +000ee840: 7370 6f6e 7365 2d65 6e63 6f64 696e 673a sponse-encoding:
│ │ │ │ +000ee850: 2077 6562 6d65 7468 6f64 2065 6e63 6f64 webmethod encod
│ │ │ │ +000ee860: 6564 203c 2f73 7061 6e3e 3c2f 6469 763e ed soapcpp2
│ │ │ │ +000ee960: 2d65 3c2f 636f 6465 3e3c 2f62 3e20 6f70 -e
op
│ │ │ │ +000ee970: 7469 6f6e 203c 623e 3c63 6f64 653e 2d65 tion -e
│ │ │ │ +000ee980: 3c2f 636f 6465 3e3c 2f62 3e20 6973 2075
is u
│ │ │ │ +000ee990: 7365 6420 746f 2073 6574 2053 4f41 5020 sed to set SOAP
│ │ │ │ +000ee9a0: 5250 4320 656e 636f 6469 6e67 2062 7920 RPC encoding by
│ │ │ │ +000ee9b0: 6465 6661 756c 742e 3c2f 703e 0a3c 703e default.st
│ │ │ │ +000ee9d0: 796c 653c 2f63 6f64 653e 2064 6972 6563 yle
direc
│ │ │ │ +000ee9e0: 7469 7665 7320 796f 7520 6361 6e20 7370 tives you can sp
│ │ │ │ +000ee9f0: 6563 6966 7920 3c63 6f64 653e 7270 633c ecify rpc<
│ │ │ │ +000eea00: 2f63 6f64 653e 206f 7220 3c63 6f64 653e /code> or
│ │ │ │ +000eea10: 646f 6375 6d65 6e74 3c2f 636f 6465 3e2e document
.
│ │ │ │ +000eea20: 2046 6f72 2074 6865 203c 636f 6465 3e65 For the e
│ │ │ │ +000eea30: 6e63 6f64 696e 673c 2f63 6f64 653e 2064 ncoding
d
│ │ │ │ +000eea40: 6972 6563 7469 7665 7320 796f 7520 6361 irectives you ca
│ │ │ │ +000eea50: 6e20 7370 6563 6966 7920 3c63 6f64 653e n specify
│ │ │ │ +000eea60: 6c69 7465 7261 6c3c 2f63 6f64 653e 2c20 literal
,
│ │ │ │ +000eea70: 3c63 6f64 653e 656e 636f 6465 643c 2f63 encoded, or even a
│ │ │ │ +000eea90: 6375 7374 6f6d 2055 5249 2074 6861 7420 custom URI that
│ │ │ │ +000eeaa0: 696e 6469 6361 7465 7320 736f 6d65 2063 indicates some c
│ │ │ │ +000eeab0: 7573 746f 6d20 6f72 2070 726f 7072 6965 ustom or proprie
│ │ │ │ +000eeac0: 7461 7279 2065 6e63 6f64 696e 6720 666f tary encoding fo
│ │ │ │ +000eead0: 726d 6174 2069 6e20 584d 4c20 7768 6963 rmat in XML whic
│ │ │ │ +000eeae0: 6820 7769 6c6c 206e 6f74 2069 6e74 6572 h will not inter
│ │ │ │ +000eeaf0: 6f70 6572 6174 6520 7769 7468 2053 4f41 operate with SOA
│ │ │ │ +000eeb00: 5020 7072 6f63 6573 736f 7273 2074 6861 P processors tha
│ │ │ │ +000eeb10: 7420 6172 6520 6e6f 7420 636f 6d70 6174 t are not compat
│ │ │ │ +000eeb20: 6962 6c65 2077 6974 6820 7468 6520 7370 ible with the sp
│ │ │ │ +000eeb30: 6563 6966 6965 6420 656e 636f 6469 6e67 ecified encoding
│ │ │ │ +000eeb40: 2066 6f72 6d61 742e 2053 6565 2061 6c73 format. See als
│ │ │ │ +000eeb50: 6f20 5365 6374 696f 6e20 3c61 2063 6c61 o Section Directives<
│ │ │ │ +000eeb90: 2f61 3e2e 3c2f 703e 0a3c 703e 5365 6520 /a>.
.Se
│ │ │ │ +000eecd0: 7269 616c 697a 696e 6720 6d69 7865 6420 rializing mixed
│ │ │ │ +000eece0: 636f 6e74 656e 7420 7769 7468 206c 6974 content with lit
│ │ │ │ +000eecf0: 6572 616c 2058 4d4c 2073 7472 696e 6773 eral XML strings
│ │ │ │ +000eed00: 3c2f 6833 3e0a 3c70 3e58 4d4c 2069 7320
._XM
│ │ │ │ +000eed50: 4c3c 2f63 6f64 653e 2074 7970 6520 7468 L
type th
│ │ │ │ +000eed60: 6174 2069 7320 6120 7265 6775 6c61 7220 at is a regular
│ │ │ │ +000eed70: 3c63 6f64 653e 6368 6172 2a3c 2f63 6f64 char* string or you
│ │ │ │ +000eed90: 2063 616e 2064 6563 6c61 7265 2061 2077 can declare a w
│ │ │ │ +000eeda0: 6964 6520 6368 6172 6163 7465 7220 7374 ide character st
│ │ │ │ +000eedb0: 7269 6e67 2069 6e20 616e 2069 6e74 6572 ring in an inter
│ │ │ │ +000eedc0: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ +000eedd0: 2066 6f72 2073 6f61 7063 7070 3220 6173 for soapcpp2 as
│ │ │ │ +000eede0: 2066 6f6c 6c6f 7773 3a3c 2f70 3e0a 3c64 follows:
std::string literal XML
│ │ │ │ +000eeec0: 7479 7065 3a3c 2f70 3e0a 3c64 6976 2063 type:
│ │ │ │ +000ef240: 0a58 4d4c 2076 616c 6964 6174 696f 6e3c .XML validation<
│ │ │ │ +000ef250: 2f68 313e 0a3c 703e 536f 6d65 2058 4d4c /h1>.
#SO
│ │ │ │ +000ef2c0: 4150 5f58 4d4c 5f53 5452 4943 543c 2f63 AP_XML_STRICT flag. SOAP
│ │ │ │ +000ef2e0: 5250 4320 656e 636f 6469 6e67 2069 7320 RPC encoding is
│ │ │ │ +000ef2f0: 616e 2058 4d4c 2066 6f72 6d61 7420 7468 an XML format th
│ │ │ │ +000ef300: 6174 2064 6f65 7320 6e6f 7420 6166 666f at does not affo
│ │ │ │ +000ef310: 7264 2073 7472 6963 7420 584d 4c20 7661 rd strict XML va
│ │ │ │ +000ef320: 6c69 6461 7469 6f6e 2c20 6265 6361 7573 lidation, becaus
│ │ │ │ +000ef330: 6520 6f66 2074 6865 2061 6464 6974 696f e of the additio
│ │ │ │ +000ef340: 6e20 6f66 2053 4f41 502d 7370 6563 6966 n of SOAP-specif
│ │ │ │ +000ef350: 6963 2061 7474 7269 6275 7465 7320 616e ic attributes an
│ │ │ │ +000ef360: 6420 6f74 6865 7220 736d 616c 6c20 6465 d other small de
│ │ │ │ +000ef370: 7669 6174 696f 6e73 2074 6861 7420 7769 viations that wi
│ │ │ │ +000ef380: 6c6c 2062 6520 6465 7465 6374 6564 2062 ll be detected b
│ │ │ │ +000ef390: 7920 616e 2061 6767 7265 7373 6976 6520 y an aggressive
│ │ │ │ +000ef3a0: 584d 4c20 7661 6c69 6461 746f 722c 206c XML validator, l
│ │ │ │ +000ef3b0: 6561 6469 6e67 2074 6865 206d 6573 7361 eading the messa
│ │ │ │ +000ef3c0: 6769 6e67 2066 6169 6c75 7265 732e 2042 ging failures. B
│ │ │ │ +000ef3d0: 7920 746f 6e69 6e67 2058 4d4c 2076 616c y toning XML val
│ │ │ │ +000ef3e0: 6964 6174 696f 6e20 646f 776e 2c20 6974 idation down, it
│ │ │ │ +000ef3f0: 2068 656c 7073 2074 6f20 696d 7072 6f76 helps to improv
│ │ │ │ +000ef400: 6520 534f 4150 2052 5043 2065 6e63 6f64 e SOAP RPC encod
│ │ │ │ +000ef410: 696e 6720 696e 7465 726f 7065 7261 6269 ing interoperabi
│ │ │ │ +000ef420: 6c69 7479 2e3c 2f70 3e0a 3c70 3e53 7472 lity.
#SOAP_XML_
│ │ │ │ +000ef470: 5354 5249 4354 3c2f 636f 6465 3e20 6d6f STRICT
mo
│ │ │ │ +000ef480: 6465 2066 6c61 6720 7365 742c 2065 2e67 de flag set, e.g
│ │ │ │ +000ef490: 2e20 7769 7468 203c 636f 6465 3e73 6f61 . with soa
│ │ │ │ +000ef4a0: 705f 7365 745f 696d 6f64 6528 736f 6170 p_set_imode(soap
│ │ │ │ +000ef4b0: 2c20 534f 4150 5f58 4d4c 5f53 5452 4943 , SOAP_XML_STRIC
│ │ │ │ +000ef4c0: 5429 3c2f 636f 6465 3e20 6f72 203c 636f T)
or #SOAP_X
│ │ │ │ +000ef5b0: 4d4c 5f53 5452 4943 543c 2f63 6f64 653e ML_STRICT
│ │ │ │ +000ef5c0: 2069 7320 656e 6162 6c65 6420 616e 6420 is enabled and
│ │ │ │ +000ef5d0: 7661 6c69 6461 7469 6f6e 2063 6f6e 7374 validation const
│ │ │ │ +000ef5e0: 7261 696e 7473 2061 7265 2073 7065 6369 raints are speci
│ │ │ │ +000ef5f0: 6669 6564 2069 6e20 7468 6520 696e 7465 fied in the inte
│ │ │ │ +000ef600: 7266 6163 6520 6865 6164 6572 2066 696c rface header fil
│ │ │ │ +000ef610: 652e 3c2f 703e 0a3c 703e 5573 6520 636f e.
│ │ │ │ +000ef760: 3c61 2063 6c61 7373 3d22 616e 6368 6f72 .Defaul
│ │ │ │ +000ef790: 7420 7661 6c75 6573 3c2f 6832 3e0a 3c70 t values
.soap_
│ │ │ │ -000efd30: 6e65 775f 436c 6173 734e 616d 653c 2f63 new_ClassName the instanc
│ │ │ │ -000efd50: 6520 7769 6c6c 2062 6520 696e 6974 6961 e will be initia
│ │ │ │ -000efd60: 6c69 7a65 6420 7769 7468 2064 6566 6175 lized with defau
│ │ │ │ -000efd70: 6c74 2076 616c 7565 732e 3c2f 703e 0a3c lt values.
.Occu
│ │ │ │ -000efe60: 7272 656e 6365 2063 6f6e 7374 7261 696e rrence constrain
│ │ │ │ -000efe70: 7473 3c2f 6832 3e0a 3c70 3e4f 6363 7572 ts
..El
│ │ │ │ -000eff50: 656d 656e 7473 2077 6974 6820 6d69 6e4f ements with minO
│ │ │ │ -000eff60: 6363 7572 7320 616e 6420 6d61 784f 6363 ccurs and maxOcc
│ │ │ │ -000eff70: 7572 7320 7265 7374 7269 6374 696f 6e73 urs restrictions
│ │ │ │ -000eff80: 3c2f 6833 3e0a 3c70 3e54 6f20 666f 7263
.xsi:nil="t
│ │ │ │ -000f01f0: 7275 6522 3c2f 636f 6465 3e3c 2f65 6d3e rue"
│ │ │ │ -000f0200: 2069 7320 6164 6465 6420 696e 2074 6865 is added in the
│ │ │ │ -000f0210: 2073 6572 6961 6c69 7a65 6420 584d 4c2e serialized XML.
│ │ │ │ -000f0220: 3c2f 703e 0a3c 703e 5468 6520 3c63 6f64 max
│ │ │ │ -000f0250: 4f63 6375 7273 3c2f 636f 6465 3e20 6172 Occurs
ar
│ │ │ │ -000f0260: 6520 6f70 7469 6f6e 616c 2076 616c 7565 e optional value
│ │ │ │ -000f0270: 7320 7468 6174 206d 7573 7420 6265 2069 s that must be i
│ │ │ │ -000f0280: 6e74 6567 6572 206c 6974 6572 616c 732e nteger literals.
│ │ │ │ -000f0290: 2057 6865 6e20 3c63 6f64 653e 6d61 784f When maxO
│ │ │ │ -000f02a0: 6363 7572 733c 2f63 6f64 653e 2069 7320 ccurs
is
│ │ │ │ -000f02b0: 6e6f 7420 7370 6563 6966 6965 6420 7468 not specified th
│ │ │ │ -000f02c0: 656e 2074 6865 2063 6f6c 6f6e 2063 616e en the colon can
│ │ │ │ -000f02d0: 2062 6520 6f6d 6974 7465 642e 2057 6865 be omitted. Whe
│ │ │ │ -000f02e0: 6e20 3c63 6f64 653e 6d69 6e4f 6363 7572 n minOccur
│ │ │ │ -000f02f0: 733c 2f63 6f64 653e 2069 7320 6e6f 7420 s
is not
│ │ │ │ -000f0300: 7370 6563 6966 6965 6420 6974 2069 7320 specified it is
│ │ │ │ -000f0310: 6173 7375 6d65 6420 746f 2062 6520 6f6e assumed to be on
│ │ │ │ -000f0320: 6520 2831 2920 666f 7220 6e6f 6e2d 706f e (1) for non-po
│ │ │ │ -000f0330: 696e 7465 7220 6d65 6d62 6572 7320 7468 inter members th
│ │ │ │ -000f0340: 6174 2061 7265 2065 6c65 6d65 6e74 7320 at are elements
│ │ │ │ -000f0350: 616e 6420 7a65 726f 2028 3029 2066 6f72 and zero (0) for
│ │ │ │ -000f0360: 206d 656d 6265 7273 2074 6861 7420 6172 members that ar
│ │ │ │ -000f0370: 6520 706f 696e 7465 7273 206f 7220 6172 e pointers or ar
│ │ │ │ -000f0380: 6520 6174 7472 6962 7574 6573 2028 692e e attributes (i.
│ │ │ │ -000f0390: 652e 2068 6176 6520 6120 3c63 6f64 653e e. have a
│ │ │ │ -000f03a0: 403c 2f63 6f64 653e 2071 7561 6c69 6669 @
qualifi
│ │ │ │ -000f03b0: 6572 292e 3c2f 703e 0a3c 703e 4120 6465 er).value
│ │ │ │ -000f03e0: 3c2f 636f 6465 3e20 6d61 7920 6265 2070
may be p
│ │ │ │ -000f03f0: 726f 7669 6465 6420 616e 6420 6973 206f rovided and is o
│ │ │ │ -000f0400: 7074 696f 6e61 6c2e 3c2f 703e 0a3c 703e ptional.== (gSOAP versio
│ │ │ │ -000f0460: 6e20 322e 382e 3438 206f 7220 6772 6561 n 2.8.48 or grea
│ │ │ │ -000f0470: 7465 7229 2e3c 2f70 3e0a 3c70 3e46 6f72 ter).
// sequence
│ │ │ │ -000f08d0: 266c 743b 6e75 6d73 2667 743b 2077 6974 <nums> wit
│ │ │ │ -000f08e0: 6820 6d69 6e4f 6363 7572 733d 322c 206d h minOccurs=2, m
│ │ │ │ -000f08f0: 6178 4f63 6375 7273 3d75 6e62 6f75 6e64 axOccurs=unbound
│ │ │ │ -000f0900: 6564 203c 2f73 7061 6e3e 3c2f 6469 763e ed soap_new_ClassN
│ │ │ │ +000efd20: 616d 653c 2f63 6f64 653e 2074 6865 2069 ame
the i
│ │ │ │ +000efd30: 6e73 7461 6e63 6520 7769 6c6c 2062 6520 nstance will be
│ │ │ │ +000efd40: 696e 6974 6961 6c69 7a65 6420 7769 7468 initialized with
│ │ │ │ +000efd50: 2064 6566 6175 6c74 2076 616c 7565 732e default values.
│ │ │ │ +000efd60: 3c2f 703e 0a3c 703e 5365 6520 616c 736f .Occurrence con
│ │ │ │ +000efe50: 7374 7261 696e 7473 3c2f 6832 3e0a 3c70 straints
.<
│ │ │ │ +000eff30: 2f61 3e0a 456c 656d 656e 7473 2077 6974 /a>.Elements wit
│ │ │ │ +000eff40: 6820 6d69 6e4f 6363 7572 7320 616e 6420 h minOccurs and
│ │ │ │ +000eff50: 6d61 784f 6363 7572 7320 7265 7374 7269 maxOccurs restri
│ │ │ │ +000eff60: 6374 696f 6e73 3c2f 6833 3e0a 3c70 3e54 ctions
.#SOAP_XM
│ │ │ │ +000effc0: 4c5f 5354 5249 4354 3c2f 636f 6465 3e20 L_STRICT
│ │ │ │ +000effd0: 696e 7075 7420 6d6f 6465 2066 6c61 6720 input mode flag
│ │ │ │ +000effe0: 6d75 7374 2062 6520 7365 742e 2054 6865 must be set. The
│ │ │ │ +000efff0: 206d 696e 4f63 6375 7273 2061 6e64 206d minOccurs and m
│ │ │ │ +000f0000: 6178 4f63 6375 7273 2063 6f6e 7374 7261 axOccurs constra
│ │ │ │ +000f0010: 696e 7473 2061 7265 2073 7065 6369 6669 ints are specifi
│ │ │ │ +000f0020: 6564 2066 6f72 206d 656d 6265 7273 206f ed for members o
│ │ │ │ +000f0030: 6620 6120 7374 7275 6374 2061 6e64 206d f a struct and m
│ │ │ │ +000f0040: 656d 6265 7273 206f 6620 6120 636c 6173 embers of a clas
│ │ │ │ +000f0050: 7320 696e 2061 2068 6561 6465 7220 6669 s in a header fi
│ │ │ │ +000f0060: 6c65 2075 7369 6e67 2074 6865 2066 6f6c le using the fol
│ │ │ │ +000f0070: 6c6f 7769 6e67 2073 796e 7461 783a 3c2f lowing syntax:
│ │ │ │ +000f0080: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.nullptr
│ │ │ │ +000f0130: 3c2f 636f 6465 3e20 6973 206f 7074 696f
is optio
│ │ │ │ +000f0140: 6e61 6c20 616e 6420 696e 6469 6361 7465 nal and indicate
│ │ │ │ +000f0150: 7320 7468 6174 2074 6865 206d 656d 6265 s that the membe
│ │ │ │ +000f0160: 7220 6973 206e 696c 6c61 626c 6520 2867 r is nillable (g
│ │ │ │ +000f0170: 534f 4150 2076 6572 7369 6f6e 2032 2e38 SOAP version 2.8
│ │ │ │ +000f0180: 2e32 3420 6f72 2067 7265 6174 6572 292c .24 or greater),
│ │ │ │ +000f0190: 2077 6869 6368 206d 6561 6e73 2074 6861 which means tha
│ │ │ │ +000f01a0: 7420 7768 656e 204e 554c 4c20 616e 2065 t when NULL an e
│ │ │ │ +000f01b0: 6d70 7479 2065 6c65 6d65 6e74 2077 6974 mpty element wit
│ │ │ │ +000f01c0: 6820 3c65 6d3e 3c63 6f64 653e 7873 693a h xsi:
│ │ │ │ +000f01d0: 6e69 6c3d 2274 7275 6522 3c2f 636f 6465 nil="true"
is added
│ │ │ │ +000f01f0: 696e 2074 6865 2073 6572 6961 6c69 7a65 in the serialize
│ │ │ │ +000f0200: 6420 584d 4c2e 3c2f 703e 0a3c 703e 5468 d XML.minOccur
│ │ │ │ +000f0220: 733c 2f63 6f64 653e 2061 6e64 203c 636f s
and mi
│ │ │ │ +000f02d0: 6e4f 6363 7572 733c 2f63 6f64 653e 2069 nOccurs
i
│ │ │ │ +000f02e0: 7320 6e6f 7420 7370 6563 6966 6965 6420 s not specified
│ │ │ │ +000f02f0: 6974 2069 7320 6173 7375 6d65 6420 746f it is assumed to
│ │ │ │ +000f0300: 2062 6520 6f6e 6520 2831 2920 666f 7220 be one (1) for
│ │ │ │ +000f0310: 6e6f 6e2d 706f 696e 7465 7220 6d65 6d62 non-pointer memb
│ │ │ │ +000f0320: 6572 7320 7468 6174 2061 7265 2065 6c65 ers that are ele
│ │ │ │ +000f0330: 6d65 6e74 7320 616e 6420 7a65 726f 2028 ments and zero (
│ │ │ │ +000f0340: 3029 2066 6f72 206d 656d 6265 7273 2074 0) for members t
│ │ │ │ +000f0350: 6861 7420 6172 6520 706f 696e 7465 7273 hat are pointers
│ │ │ │ +000f0360: 206f 7220 6172 6520 6174 7472 6962 7574 or are attribut
│ │ │ │ +000f0370: 6573 2028 692e 652e 2068 6176 6520 6120 es (i.e. have a
│ │ │ │ +000f0380: 3c63 6f64 653e 403c 2f63 6f64 653e 2071 @
q
│ │ │ │ +000f0390: 7561 6c69 6669 6572 292e 3c2f 703e 0a3c ualifier).value
ma
│ │ │ │ +000f03d0: 7920 6265 2070 726f 7669 6465 6420 616e y be provided an
│ │ │ │ +000f03e0: 6420 6973 206f 7074 696f 6e61 6c2e 3c2f d is optional.
│ │ │ │ +000f03f0: 703e 0a3c 703e 4120 6669 7865 6420 696e p>.=
│ │ │ │ +000f0430: 3d3c 2f63 6f64 653e 2028 6753 4f41 5020 =
(gSOAP
│ │ │ │ +000f0440: 7665 7273 696f 6e20 322e 382e 3438 206f version 2.8.48 o
│ │ │ │ +000f0450: 7220 6772 6561 7465 7229 2e3c 2f70 3e0a r greater)..Required a
│ │ │ │ -000f0ba0: 6e64 2070 726f 6869 6269 7465 6420 6174 nd prohibited at
│ │ │ │ -000f0bb0: 7472 6962 7574 6573 3c2f 6833 3e0a 3c70 tributes
..Requ
│ │ │ │ +000f0b80: 6972 6564 2061 6e64 2070 726f 6869 6269 ired and prohibi
│ │ │ │ +000f0b90: 7465 6420 6174 7472 6962 7574 6573 3c2f ted attributes
│ │ │ │ +000f0ba0: 6833 3e0a 3c70 3e53 696d 696c 6172 2074 h3>.
int m 1;
│ │ │ │ -000f0dc0: 2f2f 2072 6571 7569 7265 6420 6174 7472 // required attr
│ │ │ │ -000f0dd0: 6962 7574 6520 286f 6363 7572 7320 6174 ibute (occurs at
│ │ │ │ -000f0de0: 206c 6561 7374 206f 6e63 6529 203c 2f73 least once) #SOAP
│ │ │ │ -000f0ff0: 5f58 4d4c 5f53 5452 4943 543c 2f63 6f64 _XML_STRICT input mode fl
│ │ │ │ -000f1010: 6167 2074 6f20 656e 6162 6c65 2074 6865 ag to enable the
│ │ │ │ -000f1020: 2076 616c 6964 6174 696f 6e20 6f66 2061 validation of a
│ │ │ │ -000f1030: 7474 7269 6275 7465 206f 6363 7572 7265 ttribute occurre
│ │ │ │ -000f1040: 6e63 6520 636f 6e73 7472 6169 6e74 732e nce constraints.
│ │ │ │ -000f1050: 3c2f 703e 0a3c 703e 5365 6520 616c 736f
.Value co
│ │ │ │ -000f1140: 6e73 7472 6169 6e74 733c 2f68 323e 0a3c nstraints
.<
│ │ │ │ -000f1150: 703e 5661 6c75 6520 636f 6e73 7472 6169 p>Value constrai
│ │ │ │ -000f1160: 6e74 7320 7265 7374 7269 6374 2074 6865 nts restrict the
│ │ │ │ -000f1170: 206c 656e 6774 6820 6f66 2073 7472 696e length of strin
│ │ │ │ -000f1180: 6773 2061 6e64 2074 6865 2072 616e 6765 gs and the range
│ │ │ │ -000f1190: 206f 6620 7661 6c75 6573 206f 6620 6e75 of values of nu
│ │ │ │ -000f11a0: 6d65 7269 6320 7479 7065 732e 3c2f 703e meric types.
│ │ │ │ -000f11b0: 0a3c 703e f09f 949d 203c 6120 6872 6566 ...Data le
│ │ │ │ -000f1220: 6e67 7468 2072 6573 7472 6963 7469 6f6e ngth restriction
│ │ │ │ -000f1230: 733c 2f68 333e 0a3c 703e 4120 7363 6865 s
.typedef by taking a
│ │ │ │ -000f1280: 2062 6173 6520 7072 696d 6974 6976 6520 base primitive
│ │ │ │ -000f1290: 746f 2064 6566 696e 6564 2061 2064 6572 to defined a der
│ │ │ │ -000f12a0: 6976 6564 2073 696d 706c 6554 7970 652e ived simpleType.
│ │ │ │ -000f12b0: 2046 6f72 2065 7861 6d70 6c65 3a3c 2f70 For example:
time.xsd<
│ │ │ │ -000f13a0: 2f63 6f64 653e 3c2f 656d 3e3a 3c2f 703e /code>
:#SOAP_XML_STRIC
│ │ │ │ +000f0fe0: 543c 2f63 6f64 653e 2069 6e70 7574 206d T
input m
│ │ │ │ +000f0ff0: 6f64 6520 666c 6167 2074 6f20 656e 6162 ode flag to enab
│ │ │ │ +000f1000: 6c65 2074 6865 2076 616c 6964 6174 696f le the validatio
│ │ │ │ +000f1010: 6e20 6f66 2061 7474 7269 6275 7465 206f n of attribute o
│ │ │ │ +000f1020: 6363 7572 7265 6e63 6520 636f 6e73 7472 ccurrence constr
│ │ │ │ +000f1030: 6169 6e74 732e 3c2f 703e 0a3c 703e 5365 aints..Va
│ │ │ │ +000f1120: 6c75 6520 636f 6e73 7472 6169 6e74 733c lue constraints<
│ │ │ │ +000f1130: 2f68 323e 0a3c 703e 5661 6c75 6520 636f /h2>.
.D
│ │ │ │ +000f1200: 6174 6120 6c65 6e67 7468 2072 6573 7472 ata length restr
│ │ │ │ +000f1210: 6963 7469 6f6e 733c 2f68 333e 0a3c 703e ictions
.type
│ │ │ │ +000f1250: 6465 663c 2f63 6f64 653e 2062 7920 7461 def
by ta
│ │ │ │ +000f1260: 6b69 6e67 2061 2062 6173 6520 7072 696d king a base prim
│ │ │ │ +000f1270: 6974 6976 6520 746f 2064 6566 696e 6564 itive to defined
│ │ │ │ +000f1280: 2061 2064 6572 6976 6564 2073 696d 706c a derived simpl
│ │ │ │ +000f1290: 6554 7970 652e 2046 6f72 2065 7861 6d70 eType. For examp
│ │ │ │ +000f12a0: 6c65 3a3c 2f70 3e0a 3c64 6976 2063 6c61 le:tim
│ │ │ │ +000f1380: 652e 7873 643c 2f63 6f64 653e 3c2f 656d e.xsd
:enum
│ │ │ │ -000f1730: 7469 6d65 5f5f 7a6f 6e65 207b 2045 5354 time__zone { EST
│ │ │ │ -000f1740: 2c20 474d 542c 202e 2e2e 207d 207a 6f6e , GMT, ... } zon
│ │ │ │ -000f1750: 653b 203c 2f64 6976 3e0a 3c64 6976 2063 e; use=<
│ │ │ │ -000f1b10: 7370 616e 2063 6c61 7373 3d22 7374 7269 span class="stri
│ │ │ │ -000f1b20: 6e67 6c69 7465 7261 6c22 3e26 7175 6f74 ngliteral">"
│ │ │ │ -000f1b30: 3b6f 7074 696f 6e61 6c26 7175 6f74 3b3c ;optional"<
│ │ │ │ -000f1b40: 2f73 7061 6e3e 2f26 6774 3b20 3c2f 6469 /span>/> .struct ns__data // simpleConten
│ │ │ │ -000f2270: 7420 7772 6170 7065 7220 3c2f 7370 616e t wrapper // simpleTyp
│ │ │ │ +000f2020: 6520 7265 7374 7269 6374 696f 6e20 6f66 e restriction of
│ │ │ │ +000f2030: 2073 7472 696e 6720 7769 7468 206d 6178 string with max
│ │ │ │ +000f2040: 206c 656e 6774 6820 3235 3620 6368 6172 length 256 char
│ │ │ │ +000f2050: 6163 7465 7273 203c 2f73 7061 6e3e 3c2f acters
│ │ │ │ +000f2060: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.typedef std::string *
│ │ │ │ +000f2180: 6e73 5f5f 7374 7269 6e67 3820 383b 203c ns__string8 8; <
│ │ │ │ +000f2190: 7370 616e 2063 6c61 7373 3d22 636f 6d6d span class="comm
│ │ │ │ +000f21a0: 656e 7422 3e2f 2f20 7369 6d70 6c65 5479 ent">// simpleTy
│ │ │ │ +000f21b0: 7065 2072 6573 7472 6963 7469 6f6e 206f pe restriction o
│ │ │ │ +000f21c0: 6620 7374 7269 6e67 2077 6974 6820 6174 f string with at
│ │ │ │ +000f21d0: 206c 6561 7374 2038 2063 6861 7261 6374 least 8 charact
│ │ │ │ +000f21e0: 6572 7320 3c2f 7370 616e 3e3c 2f64 6976 ers char *__item :256
│ │ │ │ +000f22d0: 3b20 3c73 7061 6e20 636c 6173 733d 2263 ; // simpl
│ │ │ │ +000f22f0: 6543 6f6e 7465 6e74 2077 6974 6820 6174 eContent with at
│ │ │ │ +000f2300: 206d 6f73 7420 3235 3620 6368 6172 6163 most 256 charac
│ │ │ │ +000f2310: 7465 7273 203c 2f73 7061 6e3e 3c2f 6469 ters ..Value r
│ │ │ │ -000f26c0: 616e 6765 2072 6573 7472 6963 7469 6f6e ange restriction
│ │ │ │ -000f26d0: 733c 2f68 333e 0a3c 703e 5369 6d69 6c61 s
.low :
│ │ │ │ -000f27a0: 6869 6768 3c2f 636f 6465 3e2c 2077 6865 high
, whe
│ │ │ │ -000f27b0: 7265 203c 636f 6465 3e6c 6f77 3c2f 636f re low and
hi
│ │ │ │ -000f27d0: 6768 3c2f 636f 6465 3e20 6172 6520 6f70 gh
are op
│ │ │ │ -000f27e0: 7469 6f6e 616c 2e3c 2f70 3e0a 3c70 3e41 tional.:
.
.. range <
│ │ │ │ -000f2900: 2f74 683e 3c74 6820 636c 6173 733d 226d /th> validation
│ │ │ │ -000f2930: 2063 6865 636b 2020 2020 3c2f 7468 3e3c check <
│ │ │ │ -000f2940: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>.. .1<
│ │ │ │ -000f2990: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code>
. .1 <= x
│ │ │ │ -000f2a60: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74 : 10
x &l
│ │ │ │ -000f2af0: 743b 3d20 3130 2020 2020 3c2f 7464 3e3c t;= 10 <
│ │ │ │ -000f2b00: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>.. .1
│ │ │ │ -000f2b50: 203a 2031 303c 2f63 6f64 653e 2020 203c : 10
<
│ │ │ │ -000f2b60: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>1 <= x
│ │ │ │ -000f2b90: 266c 743b 3d20 3130 2020 2020 3c2f 7464 <= 10 . .
│ │ │ │ -000f2c50: 3c74 7220 636c 6173 733d 226d 6172 6b64 <
│ │ │ │ -000f2c10: 7464 2063 6c61 7373 3d22 6d61 726b 646f td class="markdo
│ │ │ │ -000f2c20: 776e 5461 626c 6542 6f64 794e 6f6e 6522 wnTableBodyNone"
│ │ │ │ -000f2c30: 3e31 2026 6c74 3b20 7820 266c 743b 2031 >1 < x < 1
│ │ │ │ -000f2c40: 3020 2020 203c 2f74 643e 3c2f 7472 3e0a 0
│ │ │ │ -000f2bf0: 3120 266c 743b 203a 2026 6c74 3b20 3130 1 < : < 10
│ │ │ │ -000f2c00: 3c2f 636f 6465 3e20 2020 3c2f 7464 3e3c
. 1 <
│ │ │ │ -000f2ca0: 2031 303c 2f63 6f64 653e 2020 203c 2f74 10
1 < x <
│ │ │ │ -000f2ce0: 3b20 3130 2020 2020 3c2f 7464 3e3c 2f74 ; 10 .. .1 :
│ │ │ │ -000f2d40: 266c 743b 2031 303c 2f63 6f64 653e 2020 < 10
│ │ │ │ -000f2d50: 203c 2f74 643e 3c74 6420 636c 6173 733d 1 <=
│ │ │ │ -000f2d80: 7820 266c 743b 2031 3020 2020 203c 2f74 x < 10 . x &l
│ │ │ │ -000f2e20: 743b 2031 3020 2020 203c 2f74 643e 3c2f t; 10
│ │ │ │ -000f2e30: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. .<
│ │ │ │ -000f2e80: 3b20 3130 3c2f 636f 6465 3e20 2020 3c2f ; 10
│ │ │ │ -000f2e90: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>x < 10
│ │ │ │ -000f2ec0: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 .<
│ │ │ │ -000f2ef0: 7464 2063 6c61 7373 3d22 6d61 726b 646f td class="markdo
│ │ │ │ -000f2f00: 776e 5461 626c 6542 6f64 794e 6f6e 6522 wnTableBodyNone"
│ │ │ │ -000f2f10: 3e3c 636f 6465 3e31 2026 6c74 3b20 3a3c > .1 < :<
│ │ │ │ -000f2f20: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code>
. .
│ │ │ │ -000f2fb0: 3120 266c 743b 3c2f 636f 6465 3e20 2020 1 <
│ │ │ │ -000f2fc0: 3c2f 7464 3e3c 7464 2063 6c61 7373 3d22 1 < x
│ │ │ │ -000f2ff0: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74 1 < :
│ │ │ │ -000f3050: 2031 303c 2f63 6f64 653e 2020 203c 2f74 10
1 < x <
│ │ │ │ -000f3090: 3b3d 2031 3020 2020 3c2f 7464 3e3c 2f74 ;= 10 #SOAP
│ │ │ │ +000f2560: 5f58 4d4c 5f53 5452 4943 543c 2f63 6f64 _XML_STRICT mode flag to
│ │ │ │ +000f2580: 656e 6162 6c65 2074 6865 2076 616c 6964 enable the valid
│ │ │ │ +000f2590: 6174 696f 6e20 6f66 2076 616c 7565 206c ation of value l
│ │ │ │ +000f25a0: 656e 6774 6820 636f 6e73 7472 6169 6e74 ength constraint
│ │ │ │ +000f25b0: 732e 3c2f 703e 0a3c 703e 5365 6520 616c s.
.V
│ │ │ │ +000f26a0: 616c 7565 2072 616e 6765 2072 6573 7472 alue range restr
│ │ │ │ +000f26b0: 6963 7469 6f6e 733c 2f68 333e 0a3c 703e ictions
.
│ │ │ │ +000f2780: 6c6f 7720 3a20 6869 6768 3c2f 636f 6465 low : high
, where l
│ │ │ │ +000f27a0: 6f77 3c2f 636f 6465 3e20 616e 6420 3c63 ow
and < on either s
│ │ │ │ +000f2850: 6964 6520 6f66 2074 6865 203c 636f 6465 ide of the
:
range
│ │ │ │ +000f2870: 6f70 6572 6174 6f72 3a3c 2f70 3e0a 3c74 operator:. .ran
│ │ │ │ +000f28e0: 6765 2020 203c 2f74 683e 3c74 6820 636c ge vali
│ │ │ │ +000f2910: 6461 7469 6f6e 2063 6865 636b 2020 2020 dation check
│ │ │ │ +000f2920: 3c2f 7468 3e3c 2f74 723e 0a3c 7472 2063 . .1 <= x
│ │ │ │ +000f29b0: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74 1 :
1 &l
│ │ │ │ +000f2a40: 743b 3d20 7820 2020 203c 2f74 643e 3c2f t;= x
│ │ │ │ +000f2a50: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. .
│ │ │ │ +000f2ab0: 3c74 6420 636c 6173 733d 226d 6172 6b64 : 1
│ │ │ │ +000f2aa0: 303c 2f63 6f64 653e 2020 203c 2f74 643e 0
x <= 10
│ │ │ │ +000f2ae0: 3c2f 7464 3e3c 2f74 723e 0a3c 7472 2063 . .<
│ │ │ │ +000f2b30: 636f 6465 3e31 203a 2031 303c 2f63 6f64 code>1 : 10 1 &l
│ │ │ │ +000f2b70: 743b 3d20 7820 266c 743b 3d20 3130 2020 t;= x <= 10
│ │ │ │ +000f2b80: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 . .1 < : &
│ │ │ │ +000f2be0: 6c74 3b20 3130 3c2f 636f 6465 3e20 2020 lt; 10
│ │ │ │ +000f2bf0: 3c2f 7464 3e3c 7464 2063 6c61 7373 3d22 1 < x
│ │ │ │ +000f2c20: 266c 743b 2031 3020 2020 203c 2f74 643e < 10
│ │ │ │ +000f2c30: 3c2f 7472 3e0a 3c74 7220 636c 6173 733d . .
│ │ │ │ +000f2c80: 3120 266c 743b 2031 303c 2f63 6f64 653e 1 < 10
│ │ │ │ +000f2c90: 2020 203c 2f74 643e 3c74 6420 636c 6173 1 <
│ │ │ │ +000f2cc0: 2078 2026 6c74 3b20 3130 2020 2020 3c2f x < 10
│ │ │ │ +000f2cd0: 7464 3e3c 2f74 723e 0a3c 7472 2063 6c61 td> . .1
│ │ │ │ +000f2d60: 266c 743b 3d20 7820 266c 743b 2031 3020 <= x < 10
│ │ │ │ +000f2d70: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74
│ │ │ │ +000f2de0: 3c74 6420 636c 6173 733d 226d 6172 6b64 : < 1
│ │ │ │ +000f2dd0: 303c 2f63 6f64 653e 2020 203c 2f74 643e 0
x < 10 <
│ │ │ │ +000f2e10: 2f74 643e 3c2f 7472 3e0a 3c74 7220 636c /td>. . x <
│ │ │ │ +000f2ea0: 3b20 3130 2020 2020 3c2f 7464 3e3c 2f74 ; 10 .. .1 &
│ │ │ │ +000f2f00: 6c74 3b20 3a3c 2f63 6f64 653e 2020 203c lt; :
<
│ │ │ │ +000f2f10: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>1 < x
│ │ │ │ +000f2f40: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 . 1 <
│ │ │ │ -000f3e40: 656d 3e20 6172 6520 6769 7665 6e20 696e em> are given in
│ │ │ │ -000f3e50: 2061 2058 5344 2066 696c 652c 2074 6865 a XSD file, the
│ │ │ │ -000f3e60: 6e20 6120 4320 666f 726d 6174 2073 7472 n a C format str
│ │ │ │ -000f3e70: 696e 6720 6973 2070 726f 6475 6365 6420 ing is produced
│ │ │ │ -000f3e80: 746f 206f 7574 7075 7420 666c 6f61 7469 to output floati
│ │ │ │ -000f3e90: 6e67 2070 6f69 6e74 2076 616c 7565 7320 ng point values
│ │ │ │ -000f3ea0: 7769 7468 2074 6865 2070 726f 7065 7220 with the proper
│ │ │ │ -000f3eb0: 7072 6563 6973 696f 6e20 616e 6420 7363 precision and sc
│ │ │ │ -000f3ec0: 616c 652e 2046 6f72 2065 7861 6d70 6c65 ale. For example
│ │ │ │ -000f3ed0: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 :.1 &
│ │ │ │ +000f2fd0: 6c74 3b20 7820 2020 203c 2f74 643e 3c2f lt; x
│ │ │ │ +000f2fe0: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. ..1
│ │ │ │ +000f3030: 266c 743b 203a 2031 303c 2f63 6f64 653e < : 10
│ │ │ │ +000f3040: 2020 203c 2f74 643e 3c74 6420 636c 6173 1 <
│ │ │ │ +000f3070: 2078 2026 6c74 3b3d 2031 3020 2020 3c2f x <= 10
│ │ │ │ +000f3080: 7464 3e3c 2f74 723e 0a3c 2f74 6162 6c65 td> typedef int
│ │ │ │ +000f3110: 3c2f 7370 616e 3e20 6e73 5f5f 696e 7431 ns__int1
│ │ │ │ +000f3120: 3020 303a 3130 3b20 3c73 7061 6e20 636c 0 0:10; //
│ │ │ │ +000f3140: 2073 696d 706c 6554 7970 6520 7265 7374 simpleType rest
│ │ │ │ +000f3150: 7269 6374 696f 6e20 6f66 2069 6e74 2030 riction of int 0
│ │ │ │ +000f3160: 2e2e 3130 203c 2f73 7061 6e3e 3c2f 6469 ..10 .typedef flo
│ │ │ │ +000f32d0: 6174 3c2f 7370 616e 3e20 6e73 5f5f 666c at ns__fl
│ │ │ │ +000f32e0: 6f61 7420 2d31 2e30 2026 6c74 3b3a 266c oat -1.0 <:&l
│ │ │ │ +000f32f0: 743b 2031 302e 353b 203c 7370 616e 2063 t; 10.5; /
│ │ │ │ +000f3310: 2f20 7369 6d70 6c65 5479 7065 2072 6573 / simpleType res
│ │ │ │ +000f3320: 7472 6963 7469 6f6e 206f 6620 666c 6f61 triction of floa
│ │ │ │ +000f3330: 7420 696e 2028 2d31 2c31 302e 3529 203c t in (-1,10.5) <
│ │ │ │ +000f3340: 2f73 7061 6e3e 3c2f 6469 763e 0a3c 6469 /span>// required
│ │ │ │ -000f34f0: 6e61 6d65 2061 7474 7269 6275 7465 203c name attribute <
│ │ │ │ -000f3500: 2f73 7061 6e3e 3c2f 6469 763e 0a3c 6469 /span>
│ │ │ │ -000f3550: 2353 4f41 505f 584d 4c5f 5354 5249 4354 #SOAP_XML_STRICT
│ │ │ │ -000f3560: 3c2f 636f 6465 3e20 6d6f 6465 2066 6c61
mode fla
│ │ │ │ -000f3570: 6720 746f 2065 6e61 626c 6520 7468 6520 g to enable the
│ │ │ │ -000f3580: 7661 6c69 6461 7469 6f6e 206f 6620 7661 validation of va
│ │ │ │ -000f3590: 6c75 6520 7261 6e67 6520 636f 6e73 7472 lue range constr
│ │ │ │ -000f35a0: 6169 6e74 732e 3c2f 703e 0a3c 703e 5365 aints...
│ │ │ │ -000f3690: 5061 7474 6572 6e20 7265 7374 7269 6374 Pattern restrict
│ │ │ │ -000f36a0: 696f 6e73 3c2f 6833 3e0a 3c70 3e50 6174 ions
.
│ │ │ │ -000f37b0: 736f 6170 3a3a 6673 7661 6c69 6461 7465 soap::fsvalidate
│ │ │ │ -000f37c0: 3c2f 613e 3c2f 636f 6465 3e20 616e 6420
and
│ │ │ │ -000f37d0: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap::fwvalidat
│ │ │ │ -000f3880: 653c 2f61 3e3c 2f63 6f64 653e 2063 616c e
cal
│ │ │ │ -000f3890: 6c62 6163 6b73 2061 7265 2073 6574 2074 lbacks are set t
│ │ │ │ -000f38a0: 6f20 6120 7265 6765 7820 6d61 7463 6865 o a regex matche
│ │ │ │ -000f38b0: 722e 3c2f 703e 0a3c 703e 546f 2061 7373 r.typ
│ │ │ │ -000f3910: 6564 6566 3c2f 636f 6465 3e20 616e 6420 edef
and
│ │ │ │ -000f3920: 6120 7061 7474 6572 6e20 7374 7269 6e67 a pattern string
│ │ │ │ -000f3930: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 :typedef int
│ │ │ │ -000f39a0: 3c2f 7370 616e 3e20 7469 6d65 5f5f 7365 time__se
│ │ │ │ -000f39b0: 636f 6e64 203c 7370 616e 2063 6c61 7373 cond "[1-5]?[0-
│ │ │ │ -000f39e0: 395d 7c36 3026 7175 6f74 3b3c 2f73 7061 9]|60";xsd:t
│ │ │ │ -000f3e00: 6f74 616c 4469 6769 7473 3c2f 636f 6465 otalDigits
and <
│ │ │ │ -000f3e20: 636f 6465 3e78 7364 3a66 7261 6374 696f code>xsd:fractio
│ │ │ │ -000f3e30: 6e44 6967 6974 733c 2f63 6f64 653e 3c2f nDigitsfraction
│ │ │ │ -000f4130: 4469 6769 7473 3c2f 7370 616e 3e20 3c73 Digits value
│ │ │ │ -000f4160: 3d3c 7370 616e 2063 6c61 7373 3d22 7374 =&qu
│ │ │ │ -000f4180: 6f74 3b32 2671 756f 743b 3c2f 7370 616e ot;2"/>
│ │ │ │ -000f4470: 0a45 6c65 6d65 6e74 2061 6e64 2061 7474 .Element and att
│ │ │ │ -000f4480: 7269 6275 7465 2071 7561 6c69 6669 6564 ribute qualified
│ │ │ │ -000f4490: 2f75 6e71 7561 6c69 6669 6564 2066 6f72 /unqualified for
│ │ │ │ -000f44a0: 6d73 3c2f 6832 3e0a 3c70 3e53 7472 7563 ms
.#S
│ │ │ │ -000f4650: 4f41 505f 584d 4c5f 5354 5249 4354 3c2f OAP_XML_STRICT
│ │ │ │ -000f4660: 636f 6465 3e20 6973 2074 7572 6e65 6420 code> is turned
│ │ │ │ -000f4670: 6f66 6629 2e3c 2f70 3e0a 3c70 3e43 6f6e off).
//gsoap ns s
│ │ │ │ -000f4740: 6368 656d 6120 6174 7472 6962 7574 6546 chema attributeF
│ │ │ │ -000f4750: 6f72 6d3a 2075 6e71 7561 6c69 6669 6564 orm: unqualified
│ │ │ │ -000f4760: 203c 2f73 7061 6e3e 3c2f 6469 763e 0a3c #SOAP_XML_
│ │ │ │ +000f3540: 5354 5249 4354 3c2f 636f 6465 3e20 6d6f STRICT
mo
│ │ │ │ +000f3550: 6465 2066 6c61 6720 746f 2065 6e61 626c de flag to enabl
│ │ │ │ +000f3560: 6520 7468 6520 7661 6c69 6461 7469 6f6e e the validation
│ │ │ │ +000f3570: 206f 6620 7661 6c75 6520 7261 6e67 6520 of value range
│ │ │ │ +000f3580: 636f 6e73 7472 6169 6e74 732e 3c2f 703e constraints..Pattern re
│ │ │ │ +000f3680: 7374 7269 6374 696f 6e73 3c2f 6833 3e0a strictions
.
│ │ │ │ +000f3690: 3c70 3e50 6174 7465 726e 7320 6361 6e20
│ │ │ │ +000f3700: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::fsva
│ │ │ │ +000f37a0: 6c69 6461 7465 3c2f 613e 3c2f 636f 6465 lidate
and soap::fwv
│ │ │ │ +000f3860: 616c 6964 6174 653c 2f61 3e3c 2f63 6f64 alidate callbacks are
│ │ │ │ +000f3880: 2073 6574 2074 6f20 6120 7265 6765 7820 set to a regex
│ │ │ │ +000f3890: 6d61 7463 6865 722e 3c2f 703e 0a3c 703e matcher.
ti
│ │ │ │ +000f3a30: 6d65 2e78 7364 3c2f 636f 6465 3e3c 2f65 me.xsd
:xsd:totalDigits
│ │ │ │ +000f3df0: 3c2f 636f 6465 3e3c 2f65 6d3e 2061 6e64
and
│ │ │ │ +000f3e00: 203c 656d 3e3c 636f 6465 3e78 7364 3a66 xsd:f
│ │ │ │ +000f3e10: 7261 6374 696f 6e44 6967 6974 733c 2f63 ractionDigits
are gi
│ │ │ │ +000f3e30: 7665 6e20 696e 2061 2058 5344 2066 696c ven in a XSD fil
│ │ │ │ +000f3e40: 652c 2074 6865 6e20 6120 4320 666f 726d e, then a C form
│ │ │ │ +000f3e50: 6174 2073 7472 696e 6720 6973 2070 726f at string is pro
│ │ │ │ +000f3e60: 6475 6365 6420 746f 206f 7574 7075 7420 duced to output
│ │ │ │ +000f3e70: 666c 6f61 7469 6e67 2070 6f69 6e74 2076 floating point v
│ │ │ │ +000f3e80: 616c 7565 7320 7769 7468 2074 6865 2070 alues with the p
│ │ │ │ +000f3e90: 726f 7065 7220 7072 6563 6973 696f 6e20 roper precision
│ │ │ │ +000f3ea0: 616e 6420 7363 616c 652e 2046 6f72 2065 and scale. For e
│ │ │ │ +000f3eb0: 7861 6d70 6c65 3a3c 2f70 3e0a 3c64 6976 xample:float time__ratio
│ │ │ │ +000f42d0: 203c 7370 616e 2063 6c61 7373 3d22 7374 &qu
│ │ │ │ +000f42f0: 6f74 3b25 352e 3266 2671 756f 743b 3c2f ot;%5.2f"
│ │ │ │ +000f4300: 7370 616e 3e3b 3c2f 6469 763e 0a3c 2f64 span>;.Element a
│ │ │ │ +000f4460: 6e64 2061 7474 7269 6275 7465 2071 7561 nd attribute qua
│ │ │ │ +000f4470: 6c69 6669 6564 2f75 6e71 7561 6c69 6669 lified/unqualifi
│ │ │ │ +000f4480: 6564 2066 6f72 6d73 3c2f 6832 3e0a 3c70 ed forms
.ns__
│ │ │ │ -000f48b0: 7265 636f 7264 3c2f 636f 6465 3e20 7374 record
st
│ │ │ │ -000f48c0: 7275 6374 2069 7320 7365 7269 616c 697a ruct is serializ
│ │ │ │ -000f48d0: 6564 2077 6974 6820 7175 616c 6966 6965 ed with qualifie
│ │ │ │ -000f48e0: 6420 656c 656d 656e 7420 3c63 6f64 653e d element
│ │ │ │ -000f48f0: 6e61 6d65 3c2f 636f 6465 3e20 616e 6420 name
and
│ │ │ │ -000f4900: 756e 7175 616c 6966 6965 6420 6174 7472 unqualified attr
│ │ │ │ -000f4910: 6962 7574 6520 3c63 6f64 653e 7479 7065 ibute type
│ │ │ │ -000f4920: 3c2f 636f 6465 3e3a 3c2f 703e 0a3c 6469
:ns:name<
│ │ │ │ -000f4a30: 2f73 7061 6e3e 2667 743b 2e2e 2e26 6c74 /span>>...<
│ │ │ │ -000f4a40: 3b2f 3c73 7061 6e20 636c 6173 733d 226b ;/ns:n
│ │ │ │ -000f4a60: 616d 653c 2f73 7061 6e3e 2667 743b 203c ame> <
│ │ │ │ -000f4a70: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>.name
and unqualifie
│ │ │ │ +000f48f0: 6420 6174 7472 6962 7574 6520 3c63 6f64 d attribute "
│ │ │ │ +000f49c0: 2e2e 2e26 7175 6f74 3b3c 2f73 7061 6e3e ..."
│ │ │ │ +000f49d0: 2667 743b 203c 2f64 6976 3e0a 3c64 6976 > name
│ │ │ │ -000f4e10: 636f 6465 3e20 6973 2075 6e71 7561 6c69 code> is unquali
│ │ │ │ -000f4e20: 6669 6564 2061 6e64 203c 636f 6465 3e74 fied and
t
│ │ │ │ -000f4e30: 7970 653c 2f63 6f64 653e 2069 7320 7175 ype
is qu
│ │ │ │ -000f4e40: 616c 6966 6965 643a 3c2f 703e 0a3c 6469 alified:
│ │ │ │ -000f55e0: 6e61 6d65 3c2f 636f 6465 3e20 656c 656d name
elem
│ │ │ │ -000f55f0: 656e 7420 6465 6669 6e69 7469 6f6e 2074 ent definition t
│ │ │ │ -000f5600: 6861 7420 6973 2072 6566 6572 656e 6365 hat is reference
│ │ │ │ -000f5610: 6420 6279 2074 6865 206c 6f63 616c 2065 d by the local e
│ │ │ │ -000f5620: 6c65 6d65 6e74 2e3c 2f70 3e0a 3c70 3e4d lement."
│ │ │ │ -000f5d40: 756e 7175 616c 6966 6965 6426 7175 6f74 unqualified"
│ │ │ │ -000f5d50: 3b3c 2f73 7061 6e3e 2f26 6774 3b20 3c2f ;/>
│ │ │ │ -000f5d60: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.y.xsd
schema define
│ │ │ │ -000f6460: 7320 636f 6e74 6169 6e73 3a3c 2f70 3e0a s contains:element<
│ │ │ │ -000f64d0: 2f73 7061 6e3e 203c 7370 616e 2063 6c61 /span> nam
│ │ │ │ -000f64f0: 653c 2f73 7061 6e3e 3d3c 7370 616e 2063 e="zip&q
│ │ │ │ -000f6520: 756f 743b 3c2f 7370 616e 3e20 3c73 7061 uot; "
│ │ │ │ -000f6570: 7873 643a 7374 7269 6e67 2671 756f 743b xsd:string"
│ │ │ │ -000f6580: 3c2f 7370 616e 3e2f 2667 743b 3c2f 6469 />..XML n
│ │ │ │ -000f6690: 616d 6573 7061 6365 7320 616e 6420 7468 amespaces and th
│ │ │ │ -000f66a0: 6520 6e61 6d65 7370 6163 6520 6d61 7070 e namespace mapp
│ │ │ │ -000f66b0: 696e 6720 7461 626c 653c 2f68 313e 0a3c ing table
.<
│ │ │ │ -000f66c0: 703e 4120 6e61 6d65 7370 6163 6520 6d61 p>A namespace ma
│ │ │ │ -000f66d0: 7070 696e 6720 7461 626c 6520 7368 6f75 pping table shou
│ │ │ │ -000f66e0: 6c64 2062 6520 696e 636c 7564 6564 2069 ld be included i
│ │ │ │ -000f66f0: 6e20 7468 6520 736f 7572 6365 2063 6f64 n the source cod
│ │ │ │ -000f6700: 6520 6f66 2063 6c69 656e 7420 616e 6420 e of client and
│ │ │ │ -000f6710: 7365 7276 6963 6520 6170 706c 6963 6174 service applicat
│ │ │ │ -000f6720: 696f 6e73 2e20 5468 6520 6d61 7070 696e ions. The mappin
│ │ │ │ -000f6730: 6720 7461 626c 6520 6973 2075 7365 6420 g table is used
│ │ │ │ -000f6740: 6279 2074 6865 2073 6572 6961 6c69 7a65 by the serialize
│ │ │ │ -000f6750: 7273 2061 6e64 2064 6573 6572 6961 6c69 rs and deseriali
│ │ │ │ -000f6760: 7a65 7273 206f 6620 7468 6520 7374 7562 zers of the stub
│ │ │ │ -000f6770: 2061 6e64 2073 6b65 6c65 746f 6e20 6675 and skeleton fu
│ │ │ │ -000f6780: 6e63 7469 6f6e 7320 746f 2070 726f 6475 nctions to produ
│ │ │ │ -000f6790: 6365 2076 616c 6964 2058 4d4c 206d 6573 ce valid XML mes
│ │ │ │ -000f67a0: 7361 6765 7320 616e 6420 746f 2070 6172 sages and to par
│ │ │ │ -000f67b0: 7365 2061 6e64 2076 616c 6964 6174 6520 se and validate
│ │ │ │ -000f67c0: 584d 4c20 6d65 7373 6167 6573 2e20 4120 XML messages. A
│ │ │ │ -000f67d0: 7479 7069 6361 6c20 6d61 7070 696e 6720 typical mapping
│ │ │ │ -000f67e0: 7461 626c 6520 6973 2073 686f 776e 2062 table is shown b
│ │ │ │ -000f67f0: 656c 6f77 3a3c 2f70 3e0a 3c64 6976 2063 elow:.name
element defini
│ │ │ │ +000f55e0: 7469 6f6e 2074 6861 7420 6973 2072 6566 tion that is ref
│ │ │ │ +000f55f0: 6572 656e 6365 6420 6279 2074 6865 206c erenced by the l
│ │ │ │ +000f5600: 6f63 616c 2065 6c65 6d65 6e74 2e3c 2f70 ocal element.x.xsd
│ │ │ │ +000f59b0: 3c2f 636f 6465 3e3c 2f65 6d3e 7363 6865
sche
│ │ │ │ +000f59c0: 6d61 3a3c 2f70 3e0a 3c64 6976 2063 6c61 ma:sequence
│ │ │ │ +000f5ad0: 3c2f 7370 616e 3e26 6774 3b20 3c2f 6469 > ."
│ │ │ │ +000f5bc0: 7873 643a 7374 7269 6e67 2671 756f 743b xsd:string"
│ │ │ │ +000f5bd0: 3c2f 7370 616e 3e20 3c73 7061 6e20 636c mi
│ │ │ │ +000f5bf0: 6e4f 6363 7572 733c 2f73 7061 6e3e 3d3c nOccurs=<
│ │ │ │ +000f5c00: 7370 616e 2063 6c61 7373 3d22 7374 7269 span class="stri
│ │ │ │ +000f5c10: 6e67 6c69 7465 7261 6c22 3e26 7175 6f74 ngliteral">"
│ │ │ │ +000f5c20: 3b30 2671 756f 743b 3c2f 7370 616e 3e20 ;0"
│ │ │ │ +000f5c30: 3c73 7061 6e20 636c 6173 733d 226b 6579 maxOccurs<
│ │ │ │ +000f5c50: 2f73 7061 6e3e 3d3c 7370 616e 2063 6c61 /span>="1"
│ │ │ │ +000f5c80: 3c2f 7370 616e 3e20 3c73 7061 6e20 636c ni
│ │ │ │ +000f5ca0: 6c6c 6162 6c65 3c2f 7370 616e 3e3d 3c73 llable="
│ │ │ │ +000f5cd0: 7472 7565 2671 756f 743b 3c2f 7370 616e true" formname=
│ │ │ │ +000f5db0: 3c73 7061 6e20 636c 6173 733d 2273 7472 &quo
│ │ │ │ +000f5dd0: 743b 7068 6f6e 6526 7175 6f74 3b3c 2f73 t;phone" type<
│ │ │ │ +000f5e00: 2f73 7061 6e3e 3d3c 7370 616e 2063 6c61 /span>="xsd:str
│ │ │ │ +000f5e30: 696e 6726 7175 6f74 3b3c 2f73 7061 6e3e ing"
│ │ │ │ +000f5e40: 203c 7370 616e 2063 6c61 7373 3d22 6b65 minOccurs
│ │ │ │ +000f5e60: 3c2f 7370 616e 3e3d 3c73 7061 6e20 636c ="0"
│ │ │ │ +000f5e90: 3b3c 2f73 7061 6e3e 203c 7370 616e 2063 ; m
│ │ │ │ +000f5eb0: 6178 4f63 6375 7273 3c2f 7370 616e 3e3d axOccurs=
│ │ │ │ +000f5ec0: 3c73 7061 6e20 636c 6173 733d 2273 7472 &quo
│ │ │ │ +000f5ee0: 743b 3126 7175 6f74 3b3c 2f73 7061 6e3e t;1"
│ │ │ │ +000f5ef0: 203c 7370 616e 2063 6c61 7373 3d22 6b65 nillable<
│ │ │ │ +000f5f10: 2f73 7061 6e3e 3d3c 7370 616e 2063 6c61 /span>="true&qu
│ │ │ │ +000f5f40: 6f74 3b3c 2f73 7061 6e3e 203c 7370 616e ot; form=y.xsd
schema
│ │ │ │ +000f6440: 6465 6669 6e65 7320 636f 6e74 6169 6e73 defines contains
│ │ │ │ +000f6450: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 :
│ │ │ │ +000f6670: 0a58 4d4c 206e 616d 6573 7061 6365 7320 .XML namespaces
│ │ │ │ +000f6680: 616e 6420 7468 6520 6e61 6d65 7370 6163 and the namespac
│ │ │ │ +000f6690: 6520 6d61 7070 696e 6720 7461 626c 653c e mapping table<
│ │ │ │ +000f66a0: 2f68 313e 0a3c 703e 4120 6e61 6d65 7370 /h1>.
// must be f
│ │ │ │ -000f6a60: 6972 7374 203c 2f73 7061 6e3e 3c2f 6469 irst .// must be s
│ │ │ │ -000f6b40: 6563 6f6e 6420 3c2f 7370 616e 3e3c 2f64 econd .__) in an ident
│ │ │ │ -000f7070: 6966 6965 7220 6f72 2062 7920 7573 696e ifier or by usin
│ │ │ │ -000f7080: 6720 636f 6c6f 6e20 6e6f 7461 7469 6f6e g colon notation
│ │ │ │ -000f7090: 2c20 7365 6520 5365 6374 696f 6e20 3c61 , see Section C/C++ iden
│ │ │ │ -000f70d0: 7469 6669 6572 206e 616d 6520 746f 2058 tifier name to X
│ │ │ │ -000f70e0: 4d4c 2074 6167 206e 616d 6520 7472 616e ML tag name tran
│ │ │ │ -000f70f0: 736c 6174 696f 6e3c 2f61 3e2e 3c2f 703e slation.
-) are single
│ │ │ │ -000f7200: 2d63 6861 7261 6374 6572 2077 696c 6463 -character wildc
│ │ │ │ -000f7210: 6172 6473 2061 6e64 2061 7374 6572 6973 ards and asteris
│ │ │ │ -000f7220: 6b73 2028 3c63 6f64 653e 2a3c 2f63 6f64 ks (
*) are multi-ch
│ │ │ │ -000f7240: 6172 6163 7465 7220 7769 6c64 6361 7264 aracter wildcard
│ │ │ │ -000f7250: 732e 2046 6f72 2065 7861 6d70 6c65 2c20 s. For example,
│ │ │ │ -000f7260: 746f 2061 6363 6570 7420 616c 7465 726e to accept altern
│ │ │ │ -000f7270: 6174 6976 6520 7665 7273 696f 6e73 206f ative versions o
│ │ │ │ -000f7280: 6620 584d 4c20 7363 6865 6d61 7320 7769 f XML schemas wi
│ │ │ │ -000f7290: 7468 2064 6966 6665 7265 6e74 2061 7574 th different aut
│ │ │ │ -000f72a0: 686f 7269 6e67 2064 6174 6573 2c20 666f horing dates, fo
│ │ │ │ -000f72b0: 7572 2064 6173 6865 7320 6361 6e20 6265 ur dashes can be
│ │ │ │ -000f72c0: 2075 7365 6420 696e 2070 6c61 6365 206f used in place o
│ │ │ │ -000f72d0: 6620 7468 6520 7370 6563 6966 6963 2064 f the specific d
│ │ │ │ -000f72e0: 6174 6573 2069 6e20 7468 6520 6e61 6d65 ates in the name
│ │ │ │ -000f72f0: 7370 6163 6520 6d61 7070 696e 6720 7461 space mapping ta
│ │ │ │ -000f7300: 626c 6520 7061 7474 6572 6e3a 3c2f 703e ble pattern:
// binds &qu
│ │ │ │ +000f6db0: 6f74 3b6e 7326 7175 6f74 3b20 6e61 6d65 ot;ns" name
│ │ │ │ +000f6dc0: 7370 6163 6520 7072 6566 6978 2074 6f20 space prefix to
│ │ │ │ +000f6dd0: 7363 6865 6d61 2055 5249 3c2f 7370 616e schema URI/
│ │ │ │ -000f8030: 2f67 736f 6170 2026 6c74 3b70 7265 6669 /gsoap <prefi
│ │ │ │ -000f8040: 7826 6774 3b20 7363 6865 6d61 206e 616d x> schema nam
│ │ │ │ -000f8050: 6573 7061 6365 3a3c 2f63 6f64 653e 2064 espace:
d
│ │ │ │ -000f8060: 6972 6563 7469 7665 7320 696e 2074 6865 irectives in the
│ │ │ │ -000f8070: 2069 6e74 6572 6661 6365 2068 6561 6465 interface heade
│ │ │ │ -000f8080: 7220 6669 6c65 2c20 7365 6520 5365 6374 r file, see Sect
│ │ │ │ -000f8090: 696f 6e20 3c61 2063 6c61 7373 3d22 656c ion D
│ │ │ │ -000f80c0: 6972 6563 7469 7665 733c 2f61 3e2e 2049 irectives. I
│ │ │ │ -000f80d0: 6620 6469 7265 6374 6976 6573 2061 7265 f directives are
│ │ │ │ -000f80e0: 206e 6f74 2070 726f 7669 6465 6420 696e not provided in
│ │ │ │ -000f80f0: 2074 6865 2068 6561 6465 7220 6669 6c65 the header file
│ │ │ │ -000f8100: 2074 6865 6e20 6465 6661 756c 7420 5552 then default UR
│ │ │ │ -000f8110: 4973 206f 6620 7468 6520 666f 726d 203c Is of the form <
│ │ │ │ -000f8120: 656d 3e3c 636f 6465 3e3c 6120 6872 6566 em>http://tempuri.
│ │ │ │ -000f8160: 6f72 672f 7072 6566 6978 2e78 7364 3c2f org/prefix.xsd
│ │ │ │ -000f8170: 613e 3c2f 636f 6465 3e3c 2f65 6d3e 2066 a>
f
│ │ │ │ -000f8180: 6f72 2065 6163 6820 6e61 6d65 7370 6163 or each namespac
│ │ │ │ -000f8190: 6520 3c65 6d3e 3c63 6f64 653e 7072 6566 e pref
│ │ │ │ -000f81a0: 6978 3c2f 636f 6465 3e3c 2f65 6d3e 2e20 ix
.
│ │ │ │ -000f81b0: 5468 6520 736f 6170 6370 7032 2074 6f6f The soapcpp2 too
│ │ │ │ -000f81c0: 6c20 616c 736f 2067 656e 6572 6174 6573 l also generates
│ │ │ │ -000f81d0: 2061 2057 5344 4c20 616e 6420 6f6e 6520 a WSDL and one
│ │ │ │ -000f81e0: 6f72 206d 6f72 6520 5853 4420 6669 6c65 or more XSD file
│ │ │ │ -000f81f0: 732c 206f 6e65 2066 6f72 2065 6163 6820 s, one for each
│ │ │ │ -000f8200: 584d 4c20 6e61 6d65 7370 6163 652e 3c2f XML namespace.
│ │ │ │ -000f8210: 703e 0a3c 703e 5768 656e 2070 6172 7369 p>._QN
│ │ │ │ -000f8540: 616d 653c 2f63 6f64 653e 2074 7970 6520 ame
type
│ │ │ │ -000f8550: 6f72 2061 2051 4e61 6d65 2064 6563 6c61 or a QName decla
│ │ │ │ -000f8560: 7265 6420 7769 7468 203c 636f 6465 3e74 red with t
│ │ │ │ -000f8570: 7970 6564 6566 2073 7464 3a3a 7374 7269 ypedef std::stri
│ │ │ │ -000f8580: 6e67 2078 7364 5f5f 514e 616d 653c 2f63 ng xsd__QName, then this
│ │ │ │ -000f85a0: 514e 616d 6520 7374 7269 6e67 2077 696c QName string wil
│ │ │ │ -000f85b0: 6c20 616c 7761 7973 2063 6f6e 7461 696e l always contain
│ │ │ │ -000f85c0: 2071 7561 6c69 6669 6564 206e 616d 6573 qualified names
│ │ │ │ -000f85d0: 2077 6974 6820 6e6f 726d 616c 697a 6564 with normalized
│ │ │ │ -000f85e0: 2070 7265 6669 7865 732c 2069 2e65 2e20 prefixes, i.e.
│ │ │ │ -000f85f0: 7072 6566 6978 6573 2064 6566 696e 6564 prefixes defined
│ │ │ │ -000f8600: 2069 6e20 7468 6520 6e61 6d65 7370 6163 in the namespac
│ │ │ │ -000f8610: 6520 6d61 7070 696e 6720 7461 626c 652c e mapping table,
│ │ │ │ -000f8620: 2075 6e6c 6573 7320 7468 6520 7461 626c unless the tabl
│ │ │ │ -000f8630: 6520 6861 7320 6e6f 2065 6e74 7279 2c20 e has no entry,
│ │ │ │ -000f8640: 7365 6520 5365 6374 696f 6e20 3c61 2063 see Section How to use QNa
│ │ │ │ -000f8680: 6d65 2061 7474 7269 6275 7465 7320 616e me attributes an
│ │ │ │ -000f8690: 6420 656c 656d 656e 7473 3c2f 613e 2e3c d elements.<
│ │ │ │ -000f86a0: 2f70 3e0a 3c70 3e46 6f72 2065 7861 6d70 /p>.
//.<
│ │ │ │ +000f8110: 6120 6872 6566 3d22 6874 7470 3a2f 2f74 a href="http://t
│ │ │ │ +000f8120: 656d 7075 7269 2e6f 7267 2f70 7265 6669 empuri.org/prefi
│ │ │ │ +000f8130: 782e 7873 6422 3e68 7474 703a 2f2f 7465 x.xsd">http://te
│ │ │ │ +000f8140: 6d70 7572 692e 6f72 672f 7072 6566 6978 mpuri.org/prefix
│ │ │ │ +000f8150: 2e78 7364 3c2f 613e 3c2f 636f 6465 3e3c .xsd
<
│ │ │ │ +000f8160: 2f65 6d3e 2066 6f72 2065 6163 6820 6e61 /em> for each na
│ │ │ │ +000f8170: 6d65 7370 6163 6520 3c65 6d3e 3c63 6f64 mespace "
│ │ │ │ -000f8e80: 6874 7470 3a2f 2f74 656d 7075 7269 2e6f http://tempuri.o
│ │ │ │ -000f8e90: 7267 2f62 2e78 7364 2671 756f 743b 3c2f rg/b.xsd"
│ │ │ │ -000f8ea0: 7370 616e 3e26 6774 3b2e 2e2e 266c 743b span>>...<
│ │ │ │ -000f8eb0: 2f3c 7370 616e 2063 6c61 7373 3d22 6b65 /elt
│ │ │ │ -000f8ed0: 7370 616e 3e26 6774 3b3c 2f64 6976 3e0a span>>
│ │ │ │ -000f9870: 3c61 2063 6c61 7373 3d22 656c 2220 6872
│ │ │ │ -000f9930: 736f 6170 5f73 6574 5f6e 616d 6573 7061 soap_set_namespa
│ │ │ │ -000f9940: 6365 733c 2f61 3e3c 2f63 6f64 653e 2062 ces
b
│ │ │ │ -000f9950: 6566 6f72 6520 6361 6c6c 696e 6720 3c63 efore calling xmlsn namesp
│ │ │ │ -000f9a90: 6163 6520 6269 6e64 696e 6773 2069 6e20 ace bindings in
│ │ │ │ -000f9aa0: 7468 6520 726f 6f74 2065 6c65 6d65 6e74 the root element
│ │ │ │ -000f9ab0: 2c20 7768 6963 6820 6973 2067 656e 6572 , which is gener
│ │ │ │ -000f9ac0: 616c 6c79 206d 6f72 6520 6566 6669 6369 ally more effici
│ │ │ │ -000f9ad0: 656e 7420 666f 7220 6c61 7267 6572 2058 ent for larger X
│ │ │ │ -000f9ae0: 4d4c 2064 6f63 756d 656e 7473 2069 6e20 ML documents in
│ │ │ │ -000f9af0: 7768 6963 6820 6f74 6865 7277 6973 6520 which otherwise
│ │ │ │ -000f9b00: 7468 6520 3c65 6d3e 3c63 6f64 653e 786d the
xm
│ │ │ │ -000f9b10: 6c73 6e3c 2f63 6f64 653e 3c2f 656d 3e20 lsn
│ │ │ │ -000f9b20: 6e61 6d65 7370 6163 6520 6269 6e64 696e namespace bindin
│ │ │ │ -000f9b30: 6773 2077 696c 6c20 6265 2073 7072 696e gs will be sprin
│ │ │ │ -000f9b40: 6b6c 6564 2074 6872 6f75 6768 6f75 742e kled throughout.
│ │ │ │ -000f9b50: 2042 7920 636f 6e74 7261 7374 2c20 6361 By contrast, ca
│ │ │ │ -000f9b60: 6e6f 6e69 6361 6c20 584d 4c20 7265 7175 nonical XML requ
│ │ │ │ -000f9b70: 6972 6573 203c 656d 3e3c 636f 6465 3e78 ires x
│ │ │ │ -000f9b80: 6d6c 736e 3c2f 636f 6465 3e3c 2f65 6d3e mlsn
│ │ │ │ -000f9b90: 206e 616d 6573 7061 6365 2062 696e 6469 namespace bindi
│ │ │ │ -000f9ba0: 6e67 7320 6f6e 6c79 2074 6f20 6265 2069 ngs only to be i
│ │ │ │ -000f9bb0: 6e63 6c75 6465 6420 7768 656e 2075 7469 ncluded when uti
│ │ │ │ -000f9bc0: 6c69 7a65 642e 2054 6865 7265 666f 7265 lized. Therefore
│ │ │ │ -000f9bd0: 2c20 7468 6520 3c63 6f64 653e 2353 4f41 , the #SOA
│ │ │ │ -000f9be0: 505f 584d 4c5f 4341 4e4f 4e49 4341 4c3c P_XML_CANONICAL<
│ │ │ │ -000f9bf0: 2f63 6f64 653e 2063 6f6e 7465 7874 2066 /code> context f
│ │ │ │ -000f9c00: 6c61 6720 7072 6f64 7563 6573 2043 3134 lag produces C14
│ │ │ │ -000f9c10: 4e20 6578 636c 7573 6976 6520 584d 4c20 N exclusive XML
│ │ │ │ -000f9c20: 6d65 7373 6167 6573 2061 6e64 2064 6f63 messages and doc
│ │ │ │ -000f9c30: 756d 656e 7473 2c20 7768 6963 6820 656c uments, which el
│ │ │ │ -000f9c40: 696d 696e 6174 6573 2075 6e75 7365 6420 iminates unused
│ │ │ │ -000f9c50: 3c65 6d3e 3c63 6f64 653e 786d 6c73 6e3c
xmlsn<
│ │ │ │ -000f9c60: 2f63 6f64 653e 3c2f 656d 3e20 6e61 6d65 /code>
name
│ │ │ │ -000f9c70: 7370 6163 6520 6269 6e64 696e 6773 2066 space bindings f
│ │ │ │ -000f9c80: 726f 6d20 584d 4c2e 2055 6e66 6f72 7475 rom XML. Unfortu
│ │ │ │ -000f9c90: 6e61 7465 6c79 2c20 7468 6520 6375 7272 nately, the curr
│ │ │ │ -000f9ca0: 656e 7420 4331 344e 2073 7461 6e64 6172 ent C14N standar
│ │ │ │ -000f9cb0: 6420 6973 2062 7567 6779 2077 6974 6820 d is buggy with
│ │ │ │ -000f9cc0: 7265 7370 6563 7420 746f 2058 5344 2051 respect to XSD Q
│ │ │ │ -000f9cd0: 4e61 6d65 2063 6f6e 7465 6e74 2c20 6265 Name content, be
│ │ │ │ -000f9ce0: 6361 7573 6520 7072 6566 6978 6573 2075 cause prefixes u
│ │ │ │ -000f9cf0: 7365 6420 696e 2051 4e61 6d65 2063 6f6e sed in QName con
│ │ │ │ -000f9d00: 7465 6e74 2061 7265 206e 6f74 2063 6f6e tent are not con
│ │ │ │ -000f9d10: 7369 6465 7265 6420 7574 696c 697a 6564 sidered utilized
│ │ │ │ -000f9d20: 2e20 5468 6520 6753 4f41 5020 656e 6769 . The gSOAP engi
│ │ │ │ -000f9d30: 6e65 2063 6f6e 7369 6465 7273 2051 4e61 ne considers QNa
│ │ │ │ -000f9d40: 6d65 2063 6f6e 7465 6e74 2070 7265 6669 me content prefi
│ │ │ │ -000f9d50: 7865 7320 7574 696c 697a 6564 2061 6e64 xes utilized and
│ │ │ │ -000f9d60: 2074 6865 7265 666f 7265 2070 726f 6475 therefore produ
│ │ │ │ -000f9d70: 6365 7320 636f 7272 6563 7465 6420 6361 ces corrected ca
│ │ │ │ -000f9d80: 6e6f 6e69 6361 6c69 7a65 6420 584d 4c20 nonicalized XML
│ │ │ │ -000f9d90: 6f75 7470 7574 2074 6861 7420 7072 6576 output that prev
│ │ │ │ -000f9da0: 656e 7473 2074 6865 206c 6f73 7320 6f66 ents the loss of
│ │ │ │ -000f9db0: 206e 616d 6573 7061 6365 2069 6e66 6f72 namespace infor
│ │ │ │ -000f9dc0: 6d61 7469 6f6e 2066 6f72 2051 4e61 6d65 mation for QName
│ │ │ │ -000f9dd0: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s.<
│ │ │ │ -000f9e30: 2f61 3e0a 534f 4150 2048 6561 6465 7220 /a>.SOAP Header
│ │ │ │ -000f9e40: 7072 6f63 6573 7369 6e67 3c2f 6831 3e0a processing
.
│ │ │ │ -000f9e50: 3c70 3e41 2062 7569 6c74 2d69 6e20 534f <
│ │ │ │ -000f9e80: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -000f9e90: 663d 2273 7472 7563 745f 735f 6f5f 615f f="struct_s_o_a_
│ │ │ │ -000f9ea0: 705f 5f5f 655f 6e5f 765f 5f5f 5f5f 6865 p___e_n_v_____he
│ │ │ │ -000f9eb0: 6164 6572 2e68 746d 6c22 2074 6974 6c65 ader.html" title
│ │ │ │ -000f9ec0: 3d22 534f 4150 2048 6561 6465 7220 7374 ="SOAP Header st
│ │ │ │ -000f9ed0: 7275 6374 7572 652e 223e 534f 4150 5f45 ructure.">SOAP_E
│ │ │ │ -000f9ee0: 4e56 5f5f 4865 6164 6572 3c2f 613e 3c2f NV__Header
│ │ │ │ -000f9ef0: 636f 6465 3e20 6973 2067 656e 6572 6174 code> is generat
│ │ │ │ -000f9f00: 6564 2062 7920 7468 6520 736f 6170 6370 ed by the soapcp
│ │ │ │ -000f9f10: 7032 2074 6f6f 6c20 666f 7220 6578 6368 p2 tool for exch
│ │ │ │ -000f9f20: 616e 6769 6e67 2053 4f41 5020 6865 6164 anging SOAP head
│ │ │ │ -000f9f30: 6572 7320 696e 2053 4f41 5020 6d65 7373 ers in SOAP mess
│ │ │ │ -000f9f40: 6167 6573 2e20 5468 6973 2073 7472 7563 ages. This struc
│ │ │ │ -000f9f50: 7475 7265 2069 7320 656d 7074 7920 756e ture is empty un
│ │ │ │ -000f9f60: 6c65 7373 2068 6561 6465 7273 2061 7265 less headers are
│ │ │ │ -000f9f70: 2061 6464 6564 2062 7920 706c 7567 696e added by plugin
│ │ │ │ -000f9f80: 7320 616e 6420 6865 6164 6572 7320 7370 s and headers sp
│ │ │ │ -000f9f90: 6563 6966 6965 6420 6279 2057 5344 4c20 ecified by WSDL
│ │ │ │ -000f9fa0: 7370 6563 6966 6963 6174 696f 6e73 2028 specifications (
│ │ │ │ -000f9fb0: 692e 652e 2077 7364 6c32 6820 6164 6473 i.e. wsdl2h adds
│ │ │ │ -000f9fc0: 2053 4f41 5020 4865 6164 6572 7329 2e3c SOAP Headers).<
│ │ │ │ -000f9fd0: 2f70 3e0a 3c70 3e59 6f75 2063 616e 2063 /p>.
struct N
│ │ │ │ +000f9420: 616d 6573 7061 6365 3c2f 613e 202a 3c61 amespace *namespaces<
│ │ │ │ +000f9490: 2f61 3e3b 203c 2f64 6976 3e0a 3c64 6976 /a>; soap_set_n
│ │ │ │ +000f9920: 616d 6573 7061 6365 733c 2f61 3e3c 2f63 amespaces before call
│ │ │ │ +000f9940: 696e 6720 3c63 6f64 653e 3c61 2063 6c61 ing
soap_se
│ │ │ │ +000f99c0: 7276 653c 2f61 3e3c 2f63 6f64 653e 2e20 rve
.
│ │ │ │ +000f99d0: 4368 616e 6769 6e67 2074 6865 206e 616d Changing the nam
│ │ │ │ +000f99e0: 6573 7061 6365 7320 7461 626c 6520 696e espaces table in
│ │ │ │ +000f99f0: 2073 6572 7669 6365 206f 7065 7261 7469 service operati
│ │ │ │ +000f9a00: 6f6e 7320 6861 7320 6e6f 2065 6666 6563 ons has no effec
│ │ │ │ +000f9a10: 742e 3c2f 703e 0a3c 703e 5468 6520 584d t.xm
│ │ │ │ +000f9a60: 6c73 6e3c 2f63 6f64 653e 3c2f 656d 3e20 lsn
│ │ │ │ +000f9a70: 6e61 6d65 7370 6163 6520 6269 6e64 696e namespace bindin
│ │ │ │ +000f9a80: 6773 2069 6e20 7468 6520 726f 6f74 2065 gs in the root e
│ │ │ │ +000f9a90: 6c65 6d65 6e74 2c20 7768 6963 6820 6973 lement, which is
│ │ │ │ +000f9aa0: 2067 656e 6572 616c 6c79 206d 6f72 6520 generally more
│ │ │ │ +000f9ab0: 6566 6669 6369 656e 7420 666f 7220 6c61 efficient for la
│ │ │ │ +000f9ac0: 7267 6572 2058 4d4c 2064 6f63 756d 656e rger XML documen
│ │ │ │ +000f9ad0: 7473 2069 6e20 7768 6963 6820 6f74 6865 ts in which othe
│ │ │ │ +000f9ae0: 7277 6973 6520 7468 6520 3c65 6d3e 3c63 rwise the
│ │ │ │ +000f9c40: 786d 6c73 6e3c 2f63 6f64 653e 3c2f 656d xmlsn
namespace bind
│ │ │ │ +000f9c60: 696e 6773 2066 726f 6d20 584d 4c2e 2055 ings from XML. U
│ │ │ │ +000f9c70: 6e66 6f72 7475 6e61 7465 6c79 2c20 7468 nfortunately, th
│ │ │ │ +000f9c80: 6520 6375 7272 656e 7420 4331 344e 2073 e current C14N s
│ │ │ │ +000f9c90: 7461 6e64 6172 6420 6973 2062 7567 6779 tandard is buggy
│ │ │ │ +000f9ca0: 2077 6974 6820 7265 7370 6563 7420 746f with respect to
│ │ │ │ +000f9cb0: 2058 5344 2051 4e61 6d65 2063 6f6e 7465 XSD QName conte
│ │ │ │ +000f9cc0: 6e74 2c20 6265 6361 7573 6520 7072 6566 nt, because pref
│ │ │ │ +000f9cd0: 6978 6573 2075 7365 6420 696e 2051 4e61 ixes used in QNa
│ │ │ │ +000f9ce0: 6d65 2063 6f6e 7465 6e74 2061 7265 206e me content are n
│ │ │ │ +000f9cf0: 6f74 2063 6f6e 7369 6465 7265 6420 7574 ot considered ut
│ │ │ │ +000f9d00: 696c 697a 6564 2e20 5468 6520 6753 4f41 ilized. The gSOA
│ │ │ │ +000f9d10: 5020 656e 6769 6e65 2063 6f6e 7369 6465 P engine conside
│ │ │ │ +000f9d20: 7273 2051 4e61 6d65 2063 6f6e 7465 6e74 rs QName content
│ │ │ │ +000f9d30: 2070 7265 6669 7865 7320 7574 696c 697a prefixes utiliz
│ │ │ │ +000f9d40: 6564 2061 6e64 2074 6865 7265 666f 7265 ed and therefore
│ │ │ │ +000f9d50: 2070 726f 6475 6365 7320 636f 7272 6563 produces correc
│ │ │ │ +000f9d60: 7465 6420 6361 6e6f 6e69 6361 6c69 7a65 ted canonicalize
│ │ │ │ +000f9d70: 6420 584d 4c20 6f75 7470 7574 2074 6861 d XML output tha
│ │ │ │ +000f9d80: 7420 7072 6576 656e 7473 2074 6865 206c t prevents the l
│ │ │ │ +000f9d90: 6f73 7320 6f66 206e 616d 6573 7061 6365 oss of namespace
│ │ │ │ +000f9da0: 2069 6e66 6f72 6d61 7469 6f6e 2066 6f72 information for
│ │ │ │ +000f9db0: 2051 4e61 6d65 732e 3c2f 703e 0a3c 703e QNames..SOAP H
│ │ │ │ +000f9e20: 6561 6465 7220 7072 6f63 6573 7369 6e67 eader processing
│ │ │ │ +000f9e30: 3c2f 6831 3e0a 3c70 3e41 2062 7569 6c74
.mustUnd
│ │ │ │ -000fa4e0: 6572 7374 616e 643c 2f63 6f64 653e 2071 erstand
q
│ │ │ │ -000fa4f0: 7561 6c69 6669 6572 2073 7065 6369 6669 ualifier specifi
│ │ │ │ -000fa500: 6573 2074 6861 7420 7468 6520 656c 656d es that the elem
│ │ │ │ -000fa510: 656e 7420 6d75 7374 2062 6520 7072 6f63 ent must be proc
│ │ │ │ -000fa520: 6573 7365 6420 6279 2074 6865 2053 4f41 essed by the SOA
│ │ │ │ -000fa530: 5020 7072 6f63 6573 736f 7220 616e 6420 P processor and
│ │ │ │ -000fa540: 6361 6e6e 6f74 2062 6520 6967 6e6f 7265 cannot be ignore
│ │ │ │ -000fa550: 6420 6966 2074 6865 2070 726f 6365 7373 d if the process
│ │ │ │ -000fa560: 6f72 2068 6173 206e 6f20 6c6f 6769 6320 or has no logic
│ │ │ │ -000fa570: 696e 2070 6c61 6365 2066 6f72 2074 6869 in place for thi
│ │ │ │ -000fa580: 7320 534f 4150 2068 6561 6465 722c 2077 s SOAP header, w
│ │ │ │ -000fa590: 6869 6368 2069 7320 646f 6e65 2062 7920 hich is done by
│ │ │ │ -000fa5a0: 6164 6469 6e67 2061 203c 656d 3e3c 636f adding a t:trans
│ │ │ │ -000fa600: 6163 7469 6f6e 3c2f 636f 6465 3e3c 2f65 action
element. The
│ │ │ │ -000fa620: 736f 6170 6370 7032 2d67 656e 6572 6174 soapcpp2-generat
│ │ │ │ -000fa630: 6564 2073 6572 6961 6c69 7a65 7273 206f ed serializers o
│ │ │ │ -000fa640: 6265 7920 7468 6973 2073 6166 6574 7920 bey this safety
│ │ │ │ -000fa650: 7072 696e 6369 706c 652e 3c2f 703e 0a3c principle.t__trans
│ │ │ │ -000fa6c0: 6163 7469 6f6e 3c2f 636f 6465 3e2c 2061 action
, a
│ │ │ │ -000fa6d0: 7320 6361 6e20 6265 2073 6565 6e20 696e s can be seen in
│ │ │ │ -000fa6e0: 2074 6865 2067 656e 6572 6174 6564 2057 the generated W
│ │ │ │ -000fa6f0: 5344 4c20 6269 6e64 696e 673a 3c2f 703e SDL binding:
│ │ │ │ -000fa700: 0a3c 6469 7620 636c 6173 733d 2261 6c74 .binding<
│ │ │ │ -000fafe0: 2f73 7061 6e3e 2667 743b 3c2f 6469 763e /span>>
│ │ │ │ -000fb070: 2f2f 6773 6f61 7020 6e73 2073 6572 7669 //gsoap ns servi
│ │ │ │ -000fb080: 6365 206d 6574 686f 642d 6865 6164 6572 ce method-header
│ │ │ │ -000fb090: 2d70 6172 743a 3c2f 636f 6465 3e20 6f72 -part:
or
│ │ │ │ -000fb0a0: 2074 6865 206f 7574 7075 7420 6d65 7373 the output mess
│ │ │ │ -000fb0b0: 6167 6520 6861 7320 6120 6865 6164 6572 age has a header
│ │ │ │ -000fb0c0: 2077 6974 6820 3c63 6f64 653e 2f2f 6773 with //gs
│ │ │ │ -000fb0d0: 6f61 7020 6e73 2073 6572 7669 6365 206d oap ns service m
│ │ │ │ -000fb0e0: 6574 686f 642d 6f75 7470 7574 2d68 6561 ethod-output-hea
│ │ │ │ -000fb0f0: 6465 722d 7061 7274 3a3c 2f63 6f64 653e der-part:
│ │ │ │ -000fb100: 2e20 4d75 6c74 6970 6c65 2068 6561 6465 . Multiple heade
│ │ │ │ -000fb110: 7273 2063 616e 2062 6520 7370 6563 6966 rs can be specif
│ │ │ │ -000fb120: 6965 6420 7468 6973 2077 6179 2e3c 2f70 ied this way..t__trans
│ │ │ │ -000fb180: 6163 7469 6f6e 3c2f 636f 6465 3e20 6d65 action
me
│ │ │ │ -000fb190: 6d62 6572 3a3c 2f70 3e0a 3c64 6976 2063 mber:
│ │ │ │ -000fc0b0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::he
│ │ │ │ -000fc170: 6164 6572 3c2f 613e 3c2f 636f 6465 3e2e ader
.
│ │ │ │ -000fc180: 3c2f 703e 0a3c 646c 2063 6c61 7373 3d22 soap::h
│ │ │ │ -000fc2b0: 6561 6465 723c 2f61 3e3c 2f63 6f64 653e eader
│ │ │ │ -000fc2c0: 2074 6f20 4e55 4c4c 2077 6865 6e20 6e6f to NULL when no
│ │ │ │ -000fc2d0: 2053 4f41 5020 4865 6164 6572 2073 686f SOAP Header sho
│ │ │ │ -000fc2e0: 756c 6420 6265 2073 656e 742c 206f 7468 uld be sent, oth
│ │ │ │ -000fc2f0: 6572 7769 7365 2061 6e79 2053 4f41 5020 erwise any SOAP
│ │ │ │ -000fc300: 4865 6164 6572 7320 6375 7272 656e 746c Headers currentl
│ │ │ │ -000fc310: 7920 7072 6573 656e 7420 696e 2074 6865 y present in the
│ │ │ │ -000fc320: 203c 636f 6465 3e3c 6120 636c 6173 733d SOAP_ENV__Head
│ │ │ │ -000fc390: 6572 3c2f 613e 3c2f 636f 6465 3e20 7374 er
st
│ │ │ │ -000fc3a0: 7275 6374 2070 6f69 6e74 6564 2074 6f20 ruct pointed to
│ │ │ │ -000fc3b0: 6279 203c 636f 6465 3e3c 6120 636c 6173 by soap::header
will be
│ │ │ │ -000fc490: 2069 6e63 6c75 6465 6420 696e 2074 6865 included in the
│ │ │ │ -000fc4a0: 206d 6573 7361 6765 2e3c 2f64 643e 3c2f message.SOAP-EN
│ │ │ │ -000fc5e0: 563a 6163 746f 723c 2f63 6f64 653e 3c2f V:actor
│ │ │ │ -000fc5f0: 656d 3e20 6174 7472 6962 7574 652e 2054 em> attribute. T
│ │ │ │ -000fc600: 6865 203c 656d 3e3c 636f 6465 3e53 4f41 he SOA
│ │ │ │ -000fc610: 502d 454e 563a 6d75 7374 556e 6465 7273 P-ENV:mustUnders
│ │ │ │ -000fc620: 7461 6e64 3d22 7472 7565 223c 2f63 6f64 tand="true"
attribut
│ │ │ │ -000fc640: 6520 7468 656e 2069 6e64 6963 6174 6573 e then indicates
│ │ │ │ -000fc650: 2074 6865 2072 6571 7569 7265 6d65 6e74 the requirement
│ │ │ │ -000fc660: 2074 6861 7420 7468 6520 7265 6369 7069 that the recipi
│ │ │ │ -000fc670: 656e 7420 636f 7272 6573 706f 6e64 696e ent correspondin
│ │ │ │ -000fc680: 6720 746f 2074 6865 203c 656d 3e3c 636f g to the SOAP_EN
│ │ │ │ -000fc7e0: 565f 5f48 6561 6465 723c 2f61 3e3c 2f63 V__Header is declared
│ │ │ │ -000fc800: 203c 636f 6465 3e6d 7574 6162 6c65 3c2f
mutable
│ │ │ │ -000fc810: 636f 6465 3e2c 2077 6869 6368 206d 6561 code>, which mea
│ │ │ │ -000fc820: 6e73 2074 6861 7420 7265 2d64 6563 6c61 ns that re-decla
│ │ │ │ -000fc830: 7261 7469 6f6e 7320 6f66 2074 6865 2073 rations of the s
│ │ │ │ -000fc840: 7472 7563 7475 7265 7320 6172 6520 7065 tructures are pe
│ │ │ │ -000fc850: 726d 6974 7465 6420 616e 6420 6164 6469 rmitted and addi
│ │ │ │ -000fc860: 7469 6f6e 616c 206d 656d 6265 7273 2061 tional members a
│ │ │ │ -000fc870: 7265 2063 6f6c 6c65 6374 6564 2069 6e74 re collected int
│ │ │ │ -000fc880: 6f20 6f6e 6520 6669 6e61 6c20 7374 7275 o one final stru
│ │ │ │ -000fc890: 6374 7572 6520 6279 2074 6865 2073 6f61 cture by the soa
│ │ │ │ -000fc8a0: 7063 7070 3220 746f 6f6c 2e3c 2f70 3e0a pcpp2 tool.
ns__
│ │ │ │ -000fcc60: 7365 6172 6368 3c2f 636f 6465 3e20 7573 search
us
│ │ │ │ -000fcc70: 6573 206f 6e6c 7920 7468 6520 6669 7273 es only the firs
│ │ │ │ -000fcc80: 7420 6865 6164 6572 2070 6172 742c 2074 t header part, t
│ │ │ │ -000fcc90: 6865 6e20 7468 6973 2069 7320 6465 636c hen this is decl
│ │ │ │ -000fcca0: 6172 6564 2061 733a 3c2f 703e 0a3c 6469 ared as://gsoap ns
│ │ │ │ +000fb060: 2073 6572 7669 6365 206d 6574 686f 642d service method-
│ │ │ │ +000fb070: 6865 6164 6572 2d70 6172 743a 3c2f 636f header-part: or the outpu
│ │ │ │ +000fb090: 7420 6d65 7373 6167 6520 6861 7320 6120 t message has a
│ │ │ │ +000fb0a0: 6865 6164 6572 2077 6974 6820 3c63 6f64 header with
t_
│ │ │ │ +000fb160: 5f74 7261 6e73 6163 7469 6f6e 3c2f 636f _transaction member:
number
│ │ │ │ +000fbcd0: 7370 616e 3e26 6774 3b3c 2f64 6976 3e0a span>>so
│ │ │ │ +000fc150: 6170 3a3a 6865 6164 6572 3c2f 613e 3c2f ap::header
│ │ │ │ +000fc160: 636f 6465 3e2e 3c2f 703e 0a3c 646c 2063 code>.
.s
│ │ │ │ +000fc290: 6f61 703a 3a68 6561 6465 723c 2f61 3e3c oap::header<
│ │ │ │ +000fc2a0: 2f63 6f64 653e 2074 6f20 4e55 4c4c 2077 /code> to NULL w
│ │ │ │ +000fc2b0: 6865 6e20 6e6f 2053 4f41 5020 4865 6164 hen no SOAP Head
│ │ │ │ +000fc2c0: 6572 2073 686f 756c 6420 6265 2073 656e er should be sen
│ │ │ │ +000fc2d0: 742c 206f 7468 6572 7769 7365 2061 6e79 t, otherwise any
│ │ │ │ +000fc2e0: 2053 4f41 5020 4865 6164 6572 7320 6375 SOAP Headers cu
│ │ │ │ +000fc2f0: 7272 656e 746c 7920 7072 6573 656e 7420 rrently present
│ │ │ │ +000fc300: 696e 2074 6865 203c 636f 6465 3e3c 6120 in the
SOAP_ENV
│ │ │ │ +000fc370: 5f5f 4865 6164 6572 3c2f 613e 3c2f 636f __Header struct point
│ │ │ │ +000fc390: 6564 2074 6f20 6279 203c 636f 6465 3e3c ed to by
<
│ │ │ │ +000fc3a0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +000fc3b0: 663d 2273 7472 7563 7473 6f61 702e 6874 f="structsoap.ht
│ │ │ │ +000fc3c0: 6d6c 2361 6330 3931 6466 6534 6530 3162 ml#ac091dfe4e01b
│ │ │ │ +000fc3d0: 3661 3038 3264 3931 3663 3338 3165 3730 6a082d916c381e70
│ │ │ │ +000fc3e0: 3036 6261 2220 7469 746c 653d 2254 6865 06ba" title="The
│ │ │ │ +000fc3f0: 2073 6f61 703a 3a68 6561 6465 7220 706f soap::header po
│ │ │ │ +000fc400: 696e 7473 2074 6f20 6120 534f 4150 5f45 ints to a SOAP_E
│ │ │ │ +000fc410: 4e56 5f5f 4865 6164 6572 2073 7472 7563 NV__Header struc
│ │ │ │ +000fc420: 7475 7265 2077 6974 6820 7468 6520 534f ture with the SO
│ │ │ │ +000fc430: 4150 2048 6561 6465 7220 7468 6174 2077 AP Header that w
│ │ │ │ +000fc440: 6173 2072 6563 6569 7665 6420 6f72 2074 as received or t
│ │ │ │ +000fc450: 6861 2e2e 2e22 3e73 6f61 703a 3a68 6561 ha...">soap::hea
│ │ │ │ +000fc460: 6465 723c 2f61 3e3c 2f63 6f64 653e 2077 der
w
│ │ │ │ +000fc470: 696c 6c20 6265 2069 6e63 6c75 6465 6420 ill be included
│ │ │ │ +000fc480: 696e 2074 6865 206d 6573 7361 6765 2e3c in the message.<
│ │ │ │ +000fc490: 2f64 643e 3c2f 646c 3e0a 3c70 3e41 7420 /dd>soap::actor
│ │ │ │ +000fc580: 613e 3c2f 636f 6465 3e20 7374 7269 6e67 a>
string
│ │ │ │ +000fc590: 2076 6172 6961 626c 6520 6361 6e20 6265 variable can be
│ │ │ │ +000fc5a0: 2073 6574 2074 6f20 7365 7420 7468 6520 set to set the
│ │ │ │ +000fc5b0: 534f 4150 203c 656d 3e3c 636f 6465 3e53 SOAP S
│ │ │ │ +000fc5c0: 4f41 502d 454e 563a 6163 746f 723c 2f63 OAP-ENV:actor
attrib
│ │ │ │ +000fc5e0: 7574 652e 2054 6865 203c 656d 3e3c 636f ute. The SOAP-EN
│ │ │ │ +000fc680: 563a 6163 746f 723c 2f63 6f64 653e 3c2f V:actor
│ │ │ │ +000fc690: 656d 3e20 6174 7472 6962 7574 6520 7661 em> attribute va
│ │ │ │ +000fc6a0: 6c75 6520 6973 2072 6573 706f 6e73 6962 lue is responsib
│ │ │ │ +000fc6b0: 6c65 2074 6f20 7072 6f63 6573 7320 7468 le to process th
│ │ │ │ +000fc6c0: 6520 534f 4150 2048 6561 6465 7220 656c e SOAP Header el
│ │ │ │ +000fc6d0: 656d 656e 742e 2054 6865 2064 6574 6169 ement. The detai
│ │ │ │ +000fc6e0: 6c73 206f 6620 7768 6963 6820 6361 6e20 ls of which can
│ │ │ │ +000fc6f0: 6265 2066 6f75 6e64 2069 6e20 7468 6520 be found in the
│ │ │ │ +000fc700: 534f 4150 2031 2e31 2f31 2e32 2073 7065 SOAP 1.1/1.2 spe
│ │ │ │ +000fc710: 6369 6669 6361 7469 6f6e 7320 7468 6174 cifications that
│ │ │ │ +000fc720: 2074 6865 2067 534f 4150 2074 6f6f 6c73 the gSOAP tools
│ │ │ │ +000fc730: 2063 6f6e 666f 726d 2074 6f2e 3c2f 703e conform to.ns__logi
│ │ │ │ +000fca80: 6e3c 2f63 6f64 653e 2075 7365 7320 626f n
uses bo
│ │ │ │ +000fca90: 7468 2068 6561 6465 7220 7061 7274 7320 th header parts
│ │ │ │ +000fcaa0: 2861 7420 6d6f 7374 292c 2074 6865 6e20 (at most), then
│ │ │ │ +000fcab0: 7468 6973 2069 7320 6465 636c 6172 6564 this is declared
│ │ │ │ +000fcac0: 2061 733a 3c2f 703e 0a3c 6469 7620 636c as:int ns__search(..
│ │ │ │ +000fcd60: 2e29 3b3c 2f64 6976 3e0a 3c2f 6469 763e .);//gsoap ns s
│ │ │ │ -000fd260: 6572 7669 6365 206d 6574 686f 642d 696e ervice method-in
│ │ │ │ -000fd270: 7075 742d 6865 6164 6572 2d70 6172 743a put-header-part:
│ │ │ │ -000fd280: 206c 6f67 696e 2068 5f5f 6175 7468 656e login h__authen
│ │ │ │ -000fd290: 7469 6361 7469 6f6e 203c 2f73 7061 6e3e tication
│ │ │ │ -000fd2a0: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 .SOAP Fa
│ │ │ │ -000fd530: 756c 7420 7072 6f63 6573 7369 6e67 3c2f ult processing
│ │ │ │ -000fd540: 6831 3e0a 3c70 3e41 2062 7569 6c74 2d69 h1>.
struct UserAuth *h__a
│ │ │ │ +000fd1e0: 7574 6865 6e74 6963 6174 696f 6e3b 203c uthentication; <
│ │ │ │ +000fd1f0: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>. ns__login(.
│ │ │ │ +000fd3c0: 2e2e 293b 3c2f 6469 763e 0a3c 2f64 6976 ..);class
│ │ │ │ -00100160: 636f 6465 3e20 666f 7220 7468 6520 3c63 code> for the
and add
│ │ │ │ -001001f0: 6d65 7468 6f64 7320 666f 7220 636f 6e76 methods for conv
│ │ │ │ -00100200: 656e 6965 6e63 652e 3c2f 703e 0a3c 703e enience.SOAP_
│ │ │ │ -00100280: 454e 565f 5f44 6574 6169 6c3c 2f61 3e3c ENV__Detail<
│ │ │ │ -00100290: 2f63 6f64 653e 2073 7472 7563 7475 7265 /code> structure
│ │ │ │ -001002a0: 2063 616e 2062 6520 6368 616e 6765 6420 can be changed
│ │ │ │ -001002b0: 746f 2074 6865 206e 6565 6473 206f 6620 to the needs of
│ │ │ │ -001002c0: 5765 6220 7365 7276 6963 6520 6170 706c Web service appl
│ │ │ │ -001002d0: 6963 6174 696f 6e20 746f 2063 6f6d 6d75 ication to commu
│ │ │ │ -001002e0: 6e69 6361 7465 2073 7065 6369 6669 6320 nicate specific
│ │ │ │ -001002f0: 6661 756c 7420 6461 7461 2073 7472 7563 fault data struc
│ │ │ │ -00100300: 7475 7265 732c 2062 7574 2074 6869 7320 tures, but this
│ │ │ │ -00100310: 6973 2067 656e 6572 616c 6c79 206e 6f74 is generally not
│ │ │ │ -00100320: 206e 6563 6573 7361 7279 2062 6563 6175 necessary becau
│ │ │ │ -00100330: 7365 2074 6865 2061 7070 6c69 6361 7469 se the applicati
│ │ │ │ -00100340: 6f6e 2d73 7065 6369 6669 6320 534f 4150 on-specific SOAP
│ │ │ │ -00100350: 2046 6175 6c74 2064 6574 6169 6c73 2063 Fault details c
│ │ │ │ -00100360: 616e 2062 6520 7365 7269 616c 697a 6564 an be serialized
│ │ │ │ -00100370: 2076 6961 2074 6865 203c 636f 6465 3e5f via the
_
│ │ │ │ -00100380: 5f74 7970 653c 2f63 6f64 653e 2061 6e64 _type
and
│ │ │ │ -00100390: 203c 636f 6465 3e66 6175 6c74 3c2f 636f fault members in t
│ │ │ │ -001003b0: 6865 203c 636f 6465 3e3c 6120 636c 6173 he
SOAP_E
│ │ │ │ -00100420: 4e56 5f5f 4465 7461 696c 3c2f 613e 3c2f NV__Detail
│ │ │ │ -00100430: 636f 6465 3e20 6d65 6d62 6572 2c20 7365 code> member, se
│ │ │ │ -00100440: 6520 5365 6374 696f 6e20 3c61 2063 6c61 e Section V
│ │ │ │ -00100470: 6f69 6420 706f 696e 7465 7220 7365 7269 oid pointer seri
│ │ │ │ -00100480: 616c 697a 6174 696f 6e3c 2f61 3e20 6f6e alization on
│ │ │ │ -00100490: 2074 6865 2073 6572 6961 6c69 7a61 7469 the serializati
│ │ │ │ -001004a0: 6f6e 206f 6620 6461 7461 2072 6566 6572 on of data refer
│ │ │ │ -001004b0: 7265 6420 746f 2062 7920 3c63 6f64 653e red to by
│ │ │ │ -001004c0: 5f5f 7479 7065 3c2f 636f 6465 3e20 616e __type
an
│ │ │ │ -001004d0: 6420 3c63 6f64 653e 6661 756c 743c 2f63 d fault.
soap_sender
│ │ │ │ -001005e0: 5f66 6175 6c74 3c2f 613e 3c2f 636f 6465 _fault
or soap_
│ │ │ │ -001006a0: 7265 6365 6976 6572 5f66 6175 6c74 3c2f receiver_fault
│ │ │ │ -001006b0: 613e 3c2f 636f 6465 3e2c 2074 6865 6e20 a>
, then
│ │ │ │ -001006c0: 7468 6520 534f 4150 2046 6175 6c74 2073 the SOAP Fault s
│ │ │ │ -001006d0: 7472 7563 7475 7265 2069 7320 706f 7075 tructure is popu
│ │ │ │ -001006e0: 6c61 7465 6420 616e 6420 3c63 6f64 653e lated and
│ │ │ │ -001006f0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::fa
│ │ │ │ -001007b0: 756c 743c 2f61 3e3c 2f63 6f64 653e 2070 ult
p
│ │ │ │ -001007c0: 6f69 6e74 7320 746f 2074 6869 7320 534f oints to this SO
│ │ │ │ -001007d0: 4150 2046 6175 6c74 2e20 5468 6520 534f AP Fault. The SO
│ │ │ │ -001007e0: 4150 2046 6175 6c74 2069 7320 7365 6e74 AP Fault is sent
│ │ │ │ -001007f0: 2074 6f20 7468 6520 636c 6965 6e74 2e20 to the client.
│ │ │ │ -00100800: 5468 6520 636c 6965 6e74 2070 6f70 756c The client popul
│ │ │ │ -00100810: 6174 6573 2061 2053 4f41 5020 4661 756c ates a SOAP Faul
│ │ │ │ -00100820: 7420 7374 7275 6374 7572 6520 7468 6174 t structure that
│ │ │ │ -00100830: 2063 6f6e 7461 696e 7320 7468 6520 534f contains the SO
│ │ │ │ -00100840: 4150 2046 6175 6c74 206d 6573 7361 6765 AP Fault message
│ │ │ │ -00100850: 2077 6974 6820 6465 7461 696c 732e 3c2f with details.
│ │ │ │ -00100860: 703e 0a3c 703e 5365 7276 6572 2d73 6964 p>.<
│ │ │ │ -00100890: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -001008a0: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ -001008b0: 5f66 6175 6c74 2e68 746d 6c23 6761 6332 _fault.html#gac2
│ │ │ │ -001008c0: 3063 3835 3639 3833 3330 3533 3331 3831 0c85698330533181
│ │ │ │ -001008d0: 3936 6438 3938 6665 3235 3636 6166 2220 96d898fe2566af"
│ │ │ │ -001008e0: 7469 746c 653d 2253 6574 2053 4f41 5020 title="Set SOAP
│ │ │ │ -001008f0: 312e 3120 636c 6965 6e74 2066 6175 6c74 1.1 client fault
│ │ │ │ -00100900: 202f 2053 4f41 5020 312e 3220 7365 6e64 / SOAP 1.2 send
│ │ │ │ -00100910: 6572 2066 6175 6c74 2073 7472 696e 6720 er fault string
│ │ │ │ -00100920: 616e 6420 6465 7461 696c 2e22 3e73 6f61 and detail.">soa
│ │ │ │ -00100930: 705f 7365 6e64 6572 5f66 6175 6c74 3c2f p_sender_fault
│ │ │ │ -00100940: 613e 3c2f 636f 6465 3e20 6f72 203c 636f a>
or soap_
│ │ │ │ -00100ac0: 7365 6e64 6572 5f66 6175 6c74 3c2f 613e sender_fault
│ │ │ │ -00100ad0: 3c2f 636f 6465 3e20 6361 6c6c 2073 686f
call sho
│ │ │ │ -00100ae0: 756c 6420 6265 2075 7365 6420 746f 2069 uld be used to i
│ │ │ │ -00100af0: 6e66 6f72 6d20 7468 6174 2074 6865 2073 nform that the s
│ │ │ │ -00100b00: 656e 6465 7220 6973 2061 7420 6661 756c ender is at faul
│ │ │ │ -00100b10: 7420 616e 6420 7468 6520 7365 6e64 6572 t and the sender
│ │ │ │ -00100b20: 2028 636c 6965 6e74 2920 7368 6f75 6c64 (client) should
│ │ │ │ -00100b30: 206e 6f74 2072 652d 7365 6e64 2074 6865 not re-send the
│ │ │ │ -00100b40: 2072 6571 7565 7374 2e20 5468 6520 3c63 request. The void *fault;
│ │ │ │ +000fe460: 3c73 7061 6e20 636c 6173 733d 2263 6f6d // pointer
│ │ │ │ +000fe480: 2074 6f20 7468 6520 6661 756c 7420 6f62 to the fault ob
│ │ │ │ +000fe490: 6a65 6374 2c20 6f72 204e 554c 4c20 3c2f ject, or NULL
│ │ │ │ +000fe4a0: 7370 616e 3e3c 2f64 6976 3e0a 3c64 6976 span>SOAP_ENV__Faul
│ │ │ │ +00100080: 743c 2f61 3e3c 2f63 6f64 653e 2061 7265 t
are
│ │ │ │ +00100090: 2053 4f41 5020 312e 3120 7370 6563 6966 SOAP 1.1 specif
│ │ │ │ +001000a0: 6963 2e20 5468 6520 6c61 7374 2066 6976 ic. The last fiv
│ │ │ │ +001000b0: 6520 6d65 6d62 6572 7320 6172 6520 534f e members are SO
│ │ │ │ +001000c0: 4150 2031 2e32 2073 7065 6369 6669 632e AP 1.2 specific.
│ │ │ │ +001000d0: 2059 6f75 2063 616e 2072 6564 6566 696e You can redefin
│ │ │ │ +001000e0: 6520 7468 6573 6520 7374 7275 6374 7572 e these structur
│ │ │ │ +001000f0: 6573 2069 6e20 7468 6520 696e 7465 7266 es in the interf
│ │ │ │ +00100100: 6163 6520 6865 6164 6572 2066 696c 6520 ace header file
│ │ │ │ +00100110: 666f 7220 736f 6170 6370 7032 2e20 466f for soapcpp2. Fo
│ │ │ │ +00100120: 7220 6578 616d 706c 652c 2079 6f75 2063 r example, you c
│ │ │ │ +00100130: 616e 2075 7365 2061 203c 636f 6465 3e63 an use a c
│ │ │ │ +00100140: 6c61 7373 3c2f 636f 6465 3e20 666f 7220 lass
for
│ │ │ │ +00100150: 7468 6520 3c63 6f64 653e 3c61 2063 6c61 the SOAP_ENV__Fau
│ │ │ │ +001001c0: 6c74 3c2f 613e 3c2f 636f 6465 3e20 616e lt
an
│ │ │ │ +001001d0: 6420 6164 6420 6d65 7468 6f64 7320 666f d add methods fo
│ │ │ │ +001001e0: 7220 636f 6e76 656e 6965 6e63 652e 3c2f r convenience.
│ │ │ │ +001001f0: 703e 0a3c 703e 5468 6520 3c63 6f64 653e p>.
│ │ │ │ +00100200: 3c61 2063 6c61 7373 3d22 656c 2220 6872 SOAP_ENV__Detai
│ │ │ │ +00100270: 6c3c 2f61 3e3c 2f63 6f64 653e 2073 7472 l
str
│ │ │ │ +00100280: 7563 7475 7265 2063 616e 2062 6520 6368 ucture can be ch
│ │ │ │ +00100290: 616e 6765 6420 746f 2074 6865 206e 6565 anged to the nee
│ │ │ │ +001002a0: 6473 206f 6620 5765 6220 7365 7276 6963 ds of Web servic
│ │ │ │ +001002b0: 6520 6170 706c 6963 6174 696f 6e20 746f e application to
│ │ │ │ +001002c0: 2063 6f6d 6d75 6e69 6361 7465 2073 7065 communicate spe
│ │ │ │ +001002d0: 6369 6669 6320 6661 756c 7420 6461 7461 cific fault data
│ │ │ │ +001002e0: 2073 7472 7563 7475 7265 732c 2062 7574 structures, but
│ │ │ │ +001002f0: 2074 6869 7320 6973 2067 656e 6572 616c this is general
│ │ │ │ +00100300: 6c79 206e 6f74 206e 6563 6573 7361 7279 ly not necessary
│ │ │ │ +00100310: 2062 6563 6175 7365 2074 6865 2061 7070 because the app
│ │ │ │ +00100320: 6c69 6361 7469 6f6e 2d73 7065 6369 6669 lication-specifi
│ │ │ │ +00100330: 6320 534f 4150 2046 6175 6c74 2064 6574 c SOAP Fault det
│ │ │ │ +00100340: 6169 6c73 2063 616e 2062 6520 7365 7269 ails can be seri
│ │ │ │ +00100350: 616c 697a 6564 2076 6961 2074 6865 203c alized via the <
│ │ │ │ +00100360: 636f 6465 3e5f 5f74 7970 653c 2f63 6f64 code>__type and fau
│ │ │ │ +00100380: 6c74 3c2f 636f 6465 3e20 6d65 6d62 6572 lt
member
│ │ │ │ +00100390: 7320 696e 2074 6865 203c 636f 6465 3e3c s in the <
│ │ │ │ +001003a0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +001003b0: 663d 2273 7472 7563 745f 735f 6f5f 615f f="struct_s_o_a_
│ │ │ │ +001003c0: 705f 5f5f 655f 6e5f 765f 5f5f 5f5f 6465 p___e_n_v_____de
│ │ │ │ +001003d0: 7461 696c 2e68 746d 6c22 2074 6974 6c65 tail.html" title
│ │ │ │ +001003e0: 3d22 534f 4150 2046 6175 6c74 2044 6574 ="SOAP Fault Det
│ │ │ │ +001003f0: 6169 6c20 7374 7275 6374 7572 652e 223e ail structure.">
│ │ │ │ +00100400: 534f 4150 5f45 4e56 5f5f 4465 7461 696c SOAP_ENV__Detail
│ │ │ │ +00100410: 3c2f 613e 3c2f 636f 6465 3e20 6d65 6d62
memb
│ │ │ │ +00100420: 6572 2c20 7365 6520 5365 6374 696f 6e20 er, see Section
│ │ │ │ +00100430: 3c61 2063 6c61 7373 3d22 656c 2220 6872 Void pointe
│ │ │ │ +00100460: 7220 7365 7269 616c 697a 6174 696f 6e3c r serialization<
│ │ │ │ +00100470: 2f61 3e20 6f6e 2074 6865 2073 6572 6961 /a> on the seria
│ │ │ │ +00100480: 6c69 7a61 7469 6f6e 206f 6620 6461 7461 lization of data
│ │ │ │ +00100490: 2072 6566 6572 7265 6420 746f 2062 7920 referred to by
│ │ │ │ +001004a0: 3c63 6f64 653e 5f5f 7479 7065 3c2f 636f __type and
fa
│ │ │ │ +001004c0: 756c 743c 2f63 6f64 653e 2e3c 2f70 3e0a ult
.soap_
│ │ │ │ +001005c0: 7365 6e64 6572 5f66 6175 6c74 3c2f 613e sender_fault
│ │ │ │ +001005d0: 3c2f 636f 6465 3e20 6f72 203c 636f 6465
or soap_receiver_f
│ │ │ │ +00100690: 6175 6c74 3c2f 613e 3c2f 636f 6465 3e2c ault
,
│ │ │ │ +001006a0: 2074 6865 6e20 7468 6520 534f 4150 2046 then the SOAP F
│ │ │ │ +001006b0: 6175 6c74 2073 7472 7563 7475 7265 2069 ault structure i
│ │ │ │ +001006c0: 7320 706f 7075 6c61 7465 6420 616e 6420 s populated and
│ │ │ │ +001006d0: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 so
│ │ │ │ +00100790: 6170 3a3a 6661 756c 743c 2f61 3e3c 2f63 ap::fault points to t
│ │ │ │ +001007b0: 6869 7320 534f 4150 2046 6175 6c74 2e20 his SOAP Fault.
│ │ │ │ +001007c0: 5468 6520 534f 4150 2046 6175 6c74 2069 The SOAP Fault i
│ │ │ │ +001007d0: 7320 7365 6e74 2074 6f20 7468 6520 636c s sent to the cl
│ │ │ │ +001007e0: 6965 6e74 2e20 5468 6520 636c 6965 6e74 ient. The client
│ │ │ │ +001007f0: 2070 6f70 756c 6174 6573 2061 2053 4f41 populates a SOA
│ │ │ │ +00100800: 5020 4661 756c 7420 7374 7275 6374 7572 P Fault structur
│ │ │ │ +00100810: 6520 7468 6174 2063 6f6e 7461 696e 7320 e that contains
│ │ │ │ +00100820: 7468 6520 534f 4150 2046 6175 6c74 206d the SOAP Fault m
│ │ │ │ +00100830: 6573 7361 6765 2077 6974 6820 6465 7461 essage with deta
│ │ │ │ +00100840: 696c 732e 3c2f 703e 0a3c 703e 5365 7276 ils.
soap_re
│ │ │ │ +001009e0: 6365 6976 6572 5f66 6175 6c74 3c2f 613e ceiver_fault
│ │ │ │ +001009f0: 3c2f 636f 6465 3e2e 2054 6865 203c 636f
. The soap_r
│ │ │ │ +00100be0: 6563 6569 7665 725f 6661 756c 743c 2f61 eceiver_fault
call sh
│ │ │ │ +00100c00: 6f75 6c64 2062 6520 7573 6564 2074 6f20 ould be used to
│ │ │ │ +00100c10: 696e 6469 6361 7465 2061 2074 656d 706f indicate a tempo
│ │ │ │ +00100c20: 7261 7279 2073 6572 7665 722d 7369 6465 rary server-side
│ │ │ │ +00100c30: 2070 726f 626c 656d 2c20 736f 2061 2073 problem, so a s
│ │ │ │ +00100c40: 656e 6465 7220 2863 6c69 656e 7429 2063 ender (client) c
│ │ │ │ +00100c50: 616e 2072 652d 7365 6e64 2074 6865 2072 an re-send the r
│ │ │ │ +00100c60: 6571 7565 7374 206c 6174 6572 2e20 466f equest later. Fo
│ │ │ │ +00100c70: 7220 6578 616d 706c 653a 3c2f 703e 0a3c r example:// return fa
│ │ │ │ -00100f30: 756c 7420 746f 2073 656e 6465 7220 3c2f ult to sender
│ │ │ │ -00100f40: 7370 616e 3e3c 2f64 6976 3e0a 3c64 6976 span>"
│ │ │ │ -00101590: 4572 726f 7220 6d65 7373 6167 6526 7175 Error message&qu
│ │ │ │ -001015a0: 6f74 3b3c 2f73 7061 6e3e 2c20 4e55 4c4c ot;, NULL
│ │ │ │ -001015b0: 293b 203c 2f64 6976 3e0a 3c64 6976 2063 ); //.
│ │ │ │ +001013d0: 736f 6170 3a3a 6661 756c 743c 2f61 3e3c soap::fault<
│ │ │ │ +001013e0: 2f63 6f64 653e 206d 656d 6265 7220 6f66 /code> member of
│ │ │ │ +001013f0: 2074 6865 2063 7572 7265 6e74 2072 6566 the current ref
│ │ │ │ +00101400: 6572 656e 6365 2074 6f20 7468 6520 636f erence to the co
│ │ │ │ +00101410: 6e74 6578 7420 7769 7468 2061 7070 726f ntext with appro
│ │ │ │ +00101420: 7072 6961 7465 2064 6174 6120 6173 736f priate data asso
│ │ │ │ +00101430: 6369 6174 6564 2077 6974 6820 7468 6520 ciated with the
│ │ │ │ +00101440: 6578 6365 7074 696f 6e20 616e 6420 6279 exception and by
│ │ │ │ +00101450: 2072 6574 7572 6e69 6e67 2074 6865 2065 returning the e
│ │ │ │ +00101460: 7272 6f72 203c 636f 6465 3e23 534f 4150 rror
#SOAP
│ │ │ │ +00101470: 5f46 4155 4c54 3c2f 636f 6465 3e2e 2046 _FAULT
. F
│ │ │ │ +00101480: 6f72 2065 7861 6d70 6c65 3a3c 2f70 3e0a or example:so
│ │ │ │ -00102850: 6170 5f72 6563 6569 7665 725f 6661 756c ap_receiver_faul
│ │ │ │ -00102860: 743c 2f61 3e3c 2f63 6f64 653e 2061 6c6c t
all
│ │ │ │ -00102870: 6f63 6174 6573 2061 2066 6175 6c74 2073 ocates a fault s
│ │ │ │ -00102880: 7472 7563 7420 7468 656e 2077 6520 7365 truct then we se
│ │ │ │ -00102890: 7420 7468 6520 534f 4150 2046 6175 6c74 t the SOAP Fault
│ │ │ │ -001028a0: 2064 6574 6169 6c73 2061 7320 7368 6f77 details as show
│ │ │ │ -001028b0: 6e2e 3c2f 703e 0a3c 703e 4e6f 7465 2074 n..char*)"ter:Inval
│ │ │ │ -00102cf0: 6964 4172 6773 2671 756f 743b 3c2f 7370 idArgs"; // a
│ │ │ │ -00102d20: 514e 616d 6520 7661 6c75 653c 2f73 7061 QName valueSOAP-ENV
│ │ │ │ -00103650: 3a53 7562 636f 6465 3c2f 7370 616e 3e26 :Subcode&
│ │ │ │ -00103660: 6774 3b3c 2f64 6976 3e0a 3c64 6976 2063 gt;"
│ │ │ │ -001037a0: 656e 2671 756f 743b 3c2f 7370 616e 3e26 en"&
│ │ │ │ -001037b0: 6774 3b3c 7370 616e 2063 6c61 7373 3d22 gt;The reques
│ │ │ │ -001037f0: 7465 643c 2f73 7061 6e3e 203c 7370 616e ted profile
│ │ │ │ -00103820: 3c73 7061 6e20 636c 6173 733d 226b 6579 token Profile
│ │ │ │ -00103860: 546f 6b65 6e3c 2f73 7061 6e3e 203c 7370 Token mut
│ │ │ │ -00103a80: 6162 6c65 3c2f 636f 6465 3e2c 2077 6869 able
, whi
│ │ │ │ -00103a90: 6368 206d 6561 6e73 2074 6861 7420 7265 ch means that re
│ │ │ │ -00103aa0: 2d64 6563 6c61 7261 7469 6f6e 7320 6f66 -declarations of
│ │ │ │ -00103ab0: 2074 6865 2073 7472 7563 7475 7265 7320 the structures
│ │ │ │ -00103ac0: 6172 6520 7065 726d 6974 7465 6420 616e are permitted an
│ │ │ │ -00103ad0: 6420 6164 6469 7469 6f6e 616c 206d 656d d additional mem
│ │ │ │ -00103ae0: 6265 7273 2061 7265 2063 6f6c 6c65 6374 bers are collect
│ │ │ │ -00103af0: 6564 2069 6e74 6f20 6f6e 6520 6669 6e61 ed into one fina
│ │ │ │ -00103b00: 6c20 7374 7275 6374 7572 6520 6279 2074 l structure by t
│ │ │ │ -00103b10: 6865 2073 6f61 7063 7070 3220 746f 6f6c he soapcpp2 tool
│ │ │ │ -00103b20: 2e3c 2f70 3e0a 3c70 3e46 6f72 2061 6e20 .claim__f
│ │ │ │ -00106f70: 6f72 6d3c 2f63 6f64 653e 2073 7472 7563 orm
struc
│ │ │ │ -00106f80: 7420 6973 2064 6563 6c61 7265 6420 696e t is declared in
│ │ │ │ -00106f90: 2074 6865 2069 6e74 6572 6661 6365 2068 the interface h
│ │ │ │ -00106fa0: 6561 6465 7220 6669 6c65 2061 733a 3c2f eader file as:
│ │ │ │ -00106fb0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.// return fr
│ │ │ │ +001025d0: 6f6d 2073 6572 7669 6365 206f 7065 7261 om service opera
│ │ │ │ +001025e0: 7469 6f6e 2063 616c 6c20 7769 7468 2074 tion call with t
│ │ │ │ +001025f0: 6865 2066 6175 6c74 3c2f 7370 616e 3e3c he fault<
│ │ │ │ +00102600: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>.struct SO
│ │ │ │ +00102a60: 4150 5f45 4e56 5f5f 436f 6465 3c2f 613e AP_ENV__Code
│ │ │ │ +00102a70: 202a 7375 6263 6f64 6532 203d 2073 6f61 *subcode2 = soa
│ │ │ │ +00102a80: 705f 6e65 775f 534f 4150 5f45 4e56 5f5f p_new_SOAP_ENV__
│ │ │ │ +00102a90: 436f 6465 283c 6120 636c 6173 733d 2263 Code(soap
│ │ │ │ +00102ac0: 3c2f 613e 293b 3c2f 6469 763e 0a3c 6469 );xml:lang=
│ │ │ │ +00103780: 2671 756f 743b 656e 2671 756f 743b 3c2f "en"
│ │ │ │ +00103790: 7370 616e 3e26 6774 3b3c 7370 616e 2063 span>>T
│ │ │ │ +001037b0: 6865 3c2f 7370 616e 3e20 3c73 7061 6e20 he
│ │ │ │ +001037d0: 7265 7175 6573 7465 643c 2f73 7061 6e3e requested
│ │ │ │ +001037e0: 203c 7370 616e 2063 6c61 7373 3d22 6b65 profile
│ │ │ │ +00103800: 7370 616e 3e20 3c73 7061 6e20 636c 6173 span> toke
│ │ │ │ +00103820: 6e3c 2f73 7061 6e3e 203c 7370 616e 2063 n P
│ │ │ │ +00103840: 726f 6669 6c65 546f 6b65 6e3c 2f73 7061 rofileToken does not
│ │ │ │ +00103890: 7370 616e 3e20 3c73 7061 6e20 636c 6173 span> exis
│ │ │ │ +001038b0: 742e 3c2f 7370 616e 3e26 6c74 3b2f 3c73 t.</SOAP-ENV
│ │ │ │ +001038e0: 3a54 6578 743c 2f73 7061 6e3e 2667 743b :Text>
│ │ │ │ +001038f0: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 .MIME
│ │ │ │ +00104160: 2061 7474 6163 686d 656e 7473 3c2f 6831 attachments
.
│ │ │ │ +001046f0: 736f 6170 5f73 6574 5f6d 696d 655f 6174 soap_set_mime_at
│ │ │ │ +00104700: 7461 6368 6d65 6e74 3c2f 613e 3c2f 636f tachment. The first f
│ │ │ │ +00104720: 756e 6374 696f 6e20 6973 2066 6f72 2069 unction is for i
│ │ │ │ +00104730: 6e69 7469 616c 697a 6174 696f 6e20 7075 nitialization pu
│ │ │ │ +00104740: 7270 6f73 6573 2061 6e64 2074 6865 206c rposes and the l
│ │ │ │ +00104750: 6174 7465 7220 6675 6e63 7469 6f6e 2069 atter function i
│ │ │ │ +00104760: 7320 7573 6564 2074 6f20 7370 6563 6966 s used to specif
│ │ │ │ +00104770: 7920 6d65 7461 2064 6174 6120 616e 6420 y meta data and
│ │ │ │ +00104780: 636f 6e74 656e 7420 6461 7461 2066 6f72 content data for
│ │ │ │ +00104790: 2065 6163 6820 6174 7461 6368 6d65 6e74 each attachment
│ │ │ │ +001047a0: 2e3c 2f70 3e0a 3c70 3e53 6565 2061 6c73 .
.Send
│ │ │ │ +00104880: 696e 6720 6120 636f 6c6c 6563 7469 6f6e ing a collection
│ │ │ │ +00104890: 206f 6620 4d49 4d45 2061 7474 6163 686d of MIME attachm
│ │ │ │ +001048a0: 656e 7473 2028 5377 4129 3c2f 6832 3e0a ents (SwA)
.
│ │ │ │ +001048b0: 3c70 3e54 6865 2066 6f6c 6c6f 7769 6e67 .
.void soap_set_
│ │ │ │ +001049d0: 6d69 6d65 2873 7472 7563 7420 736f 6170 mime(struct soap
│ │ │ │ +001049e0: 202a 736f 6170 2c20 636f 6e73 7420 6368 *soap, const ch
│ │ │ │ +001049f0: 6172 202a 626f 756e 6461 7279 2c20 636f ar *boundary, co
│ │ │ │ +00104a00: 6e73 7420 6368 6172 202a 7374 6172 7429 nst char *start)
│ │ │ │ +00104a10: 3c2f 613e 3c2f 636f 6465 3e20 5468 6973
This
│ │ │ │ +00104a20: 2066 756e 6374 696f 6e20 656e 6162 6c65 function enable
│ │ │ │ +00104a30: 7320 7365 6e64 696e 6720 4d49 4d45 2061 s sending MIME a
│ │ │ │ +00104a40: 7474 6163 686d 656e 7473 2e20 5468 6973 ttachments. This
│ │ │ │ +00104a50: 2066 756e 6374 696f 6e20 6973 2067 656e function is gen
│ │ │ │ +00104a60: 6572 616c 6c79 206e 6f74 2072 6571 7569 erally not requi
│ │ │ │ +00104a70: 7265 6420 7768 656e 2074 6865 2063 6f6e red when the con
│ │ │ │ +00104a80: 7465 7874 2069 7320 696e 6974 6961 6c69 text is initiali
│ │ │ │ +00104a90: 7a65 6420 7769 7468 203c 636f 6465 3e23 zed with #
│ │ │ │ +00104aa0: 534f 4150 5f45 4e43 5f4d 494d 453c 2f63 SOAP_ENC_MIME, because MI
│ │ │ │ +00104ac0: 4d45 2061 7474 6163 686d 656e 7473 2061 ME attachments a
│ │ │ │ +00104ad0: 7265 2061 7574 6f6d 6174 6963 616c 6c79 re automatically
│ │ │ │ +00104ae0: 2064 6574 6563 7465 6420 6173 203c 636f detected as
an
│ │ │ │ +00104b80: 6420 3c63 6f64 653e 3c61 2063 6c61 7373 d _x
│ │ │ │ +00104bf0: 6f70 5f5f 496e 636c 7564 653c 2f61 3e3c op__Include<
│ │ │ │ +00104c00: 2f63 6f64 653e 2073 7472 7563 7475 7265 /code> structure
│ │ │ │ +00104c10: 7320 696e 2074 6865 2064 6174 6120 746f s in the data to
│ │ │ │ +00104c20: 2073 6572 6961 6c69 7a65 2061 7320 616e serialize as an
│ │ │ │ +00104c30: 2058 4d4c 206d 6573 7361 6765 2077 6974 XML message wit
│ │ │ │ +00104c40: 6820 7468 6520 6174 7461 6368 6d65 6e74 h the attachment
│ │ │ │ +00104c50: 7320 6175 746f 6d61 7469 6361 6c6c 7920 s automatically
│ │ │ │ +00104c60: 6164 6465 6420 6f72 204d 494d 4520 6174 added or MIME at
│ │ │ │ +00104c70: 7461 6368 6d65 6e74 7320 6361 6e20 6265 tachments can be
│ │ │ │ +00104c80: 2065 7870 6c69 6369 746c 7920 6164 6465 explicitly adde
│ │ │ │ +00104c90: 6420 7769 7468 203c 636f 6465 3e3c 6120 d with
soap_set_mim
│ │ │ │ +00104d30: 655f 6174 7461 6368 6d65 6e74 3c2f 613e e_attachment
│ │ │ │ +00104d40: 3c2f 636f 6465 3e2e 2050 6172 616d 6574
. Paramet
│ │ │ │ +00104d50: 6572 203c 636f 6465 3e62 6f75 6e64 6172 er boundar
│ │ │ │ +00104d60: 793c 2f63 6f64 653e 2073 7065 6369 6669 y
specifi
│ │ │ │ +00104d70: 6573 2061 204d 494d 4520 626f 756e 6461 es a MIME bounda
│ │ │ │ +00104d80: 7279 2073 7472 696e 6720 6f72 204e 554c ry string or NUL
│ │ │ │ +00104d90: 4c20 746f 2068 6176 6520 7468 6520 656e L to have the en
│ │ │ │ +00104da0: 6769 6e65 2067 656e 6572 6174 6520 6120 gine generate a
│ │ │ │ +00104db0: 4d49 4d45 2062 6f75 6e64 6172 7920 7374 MIME boundary st
│ │ │ │ +00104dc0: 7269 6e67 2e20 5061 7261 6d65 7465 7220 ring. Parameter
│ │ │ │ +00104dd0: 3c63 6f64 653e 7374 6172 743c 2f63 6f64 start specifies the
│ │ │ │ +00104df0: 2073 7461 7274 2063 6f6e 7465 6e74 2049 start content I
│ │ │ │ +00104e00: 4420 666f 7220 7468 6520 6669 7273 7420 D for the first
│ │ │ │ +00104e10: 4d49 4d45 2062 6f64 7920 636f 6e74 6169 MIME body contai
│ │ │ │ +00104e20: 6e69 6e67 2074 6865 2053 4f41 5020 6f72 ning the SOAP or
│ │ │ │ +00104e30: 2058 4d4c 206d 6573 7361 6765 2e20 5768 XML message. Wh
│ │ │ │ +00104e40: 656e 204e 554c 4c2c 2074 6865 2073 7461 en NULL, the sta
│ │ │ │ +00104e50: 7274 2049 4420 6f66 2074 6865 2053 4f41 rt ID of the SOA
│ │ │ │ +00104e60: 5020 6d65 7373 6167 6520 6973 203c 656d P message is
<SOAP-
│ │ │ │ +00104e80: 454e 563a 456e 7665 6c6f 7065 2667 743b ENV:Envelope>
│ │ │ │ +00104e90: 3c2f 636f 6465 3e3c 2f65 6d3e 2e3c 2f6c
..int
│ │ │ │ +00104eb0: 2073 6f61 705f 7365 745f 6d69 6d65 5f61 soap_set_mime_a
│ │ │ │ +00104ec0: 7474 6163 686d 656e 7428 7374 7275 6374 ttachment(struct
│ │ │ │ +00104ed0: 2073 6f61 7020 2a73 6f61 702c 2063 6861 soap *soap, cha
│ │ │ │ +00104ee0: 7220 2a70 7472 2c20 7369 7a65 5f74 2073 r *ptr, size_t s
│ │ │ │ +00104ef0: 697a 652c 2065 6e75 6d20 736f 6170 5f6d ize, enum soap_m
│ │ │ │ +00104f00: 696d 655f 656e 636f 6469 6e67 2065 6e63 ime_encoding enc
│ │ │ │ +00104f10: 6f64 696e 672c 2063 6f6e 7374 2063 6861 oding, const cha
│ │ │ │ +00104f20: 7220 2a74 7970 652c 2063 6f6e 7374 2063 r *type, const c
│ │ │ │ +00104f30: 6861 7220 2a69 642c 2063 6f6e 7374 2063 har *id, const c
│ │ │ │ +00104f40: 6861 7220 2a6c 6f63 6174 696f 6e2c 2063 har *location, c
│ │ │ │ +00104f50: 6f6e 7374 2063 6861 7220 2a64 6573 6372 onst char *descr
│ │ │ │ +00104f60: 6970 7469 6f6e 293c 2f63 6f64 653e 2054 iption)
T
│ │ │ │ +00104f70: 6869 7320 6675 6e63 7469 6f6e 2061 6464 his function add
│ │ │ │ +00104f80: 7320 6120 4d49 4d45 2061 7474 6163 686d s a MIME attachm
│ │ │ │ +00104f90: 656e 7420 746f 2061 2053 4f41 502f 584d ent to a SOAP/XM
│ │ │ │ +00104fa0: 4c20 6d65 7373 6167 6520 746f 2073 656e L message to sen
│ │ │ │ +00104fb0: 642e 2054 6865 2073 7065 6369 6669 6564 d. The specified
│ │ │ │ +00104fc0: 203c 636f 6465 3e70 7472 3c2f 636f 6465 ptr
points to the
│ │ │ │ +00104fe0: 6461 7461 2074 6f20 7365 6e64 206f 6620 data to send of
│ │ │ │ +00104ff0: 6c65 6e67 7468 2073 7065 6369 6669 6564 length specified
│ │ │ │ +00105000: 2062 7920 3c63 6f64 653e 7369 7a65 3c2f by size
│ │ │ │ +00105010: 636f 6465 3e2e 2054 6865 203c 636f 6465 code>. The
encoding
│ │ │ │ +00105030: 2070 6172 616d 6574 6572 2069 7320 6120 parameter is a
│ │ │ │ +00105040: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap_mime
│ │ │ │ +001050d0: 5f65 6e63 6f64 696e 673c 2f61 3e3c 2f63 _encoding value that
│ │ │ │ +001050f0: 6973 2072 6563 6f6d 6d65 6e64 6564 2074 is recommended t
│ │ │ │ +00105100: 6f20 6265 2073 7065 6369 6669 6564 2061 o be specified a
│ │ │ │ +00105110: 7320 3c63 6f64 653e 2353 4f41 505f 4d49 s
#SOAP_MI
│ │ │ │ +00105120: 4d45 5f4e 4f4e 453c 2f63 6f64 653e 2074 ME_NONE
t
│ │ │ │ +00105130: 6f20 7370 6563 6966 7920 7468 6174 2074 o specify that t
│ │ │ │ +00105140: 6865 204d 494d 4520 6461 7461 2063 6f6e he MIME data con
│ │ │ │ +00105150: 7465 6e74 2069 7320 6e6f 7420 656e 636f tent is not enco
│ │ │ │ +00105160: 6465 6420 696e 2061 6e79 2077 6179 2028 ded in any way (
│ │ │ │ +00105170: 7468 6520 4d49 4d45 2061 7474 6163 686d the MIME attachm
│ │ │ │ +00105180: 656e 7420 6675 6e63 7469 6f6e 2073 696d ent function sim
│ │ │ │ +00105190: 706c 7920 636f 7069 6573 2074 6865 2072 ply copies the r
│ │ │ │ +001051a0: 6177 2064 6174 6120 746f 2074 6865 204d aw data to the M
│ │ │ │ +001051b0: 494d 4520 626c 6f63 6b20 7769 7468 6f75 IME block withou
│ │ │ │ +001051c0: 7420 656e 636f 6469 6e67 292e 2054 6865 t encoding). The
│ │ │ │ +001051d0: 203c 636f 6465 3e74 7970 653c 2f63 6f64 type parameter is
│ │ │ │ +001051f0: 7265 7175 6972 6564 2061 6e64 2069 6e64 required and ind
│ │ │ │ +00105200: 6963 6174 6573 2074 6865 204d 494d 4520 icates the MIME
│ │ │ │ +00105210: 7479 7065 206f 6620 7468 6520 6461 7461 type of the data
│ │ │ │ +00105220: 2c20 7375 6368 2061 7320 2269 6d61 6765 , such as "image
│ │ │ │ +00105230: 2f6a 7067 222e 2054 6865 203c 636f 6465 /jpg". The
id
param
│ │ │ │ +00105250: 6574 6572 2075 6e69 7175 656c 7920 6964 eter uniquely id
│ │ │ │ +00105260: 656e 7469 6669 6573 2074 6865 2061 7474 entifies the att
│ │ │ │ +00105270: 6163 686d 656e 7420 696e 2074 6865 206d achment in the m
│ │ │ │ +00105280: 6573 7361 6765 2c20 7768 6963 6820 6361 essage, which ca
│ │ │ │ +00105290: 6e20 6265 206f 6d69 7474 6564 2062 7920 n be omitted by
│ │ │ │ +001052a0: 7370 6563 6966 7969 6e67 204e 554c 4c2e specifying NULL.
│ │ │ │ +001052b0: 2054 6865 203c 636f 6465 3e6c 6f63 6174 The locat
│ │ │ │ +001052c0: 696f 6e3c 2f63 6f64 653e 2070 6172 616d ion
param
│ │ │ │ +001052d0: 6574 6572 2073 7065 6369 6669 6573 2061 eter specifies a
│ │ │ │ +001052e0: 206c 6f63 6174 696f 6e20 7374 7269 6e67 location string
│ │ │ │ +001052f0: 206f 7220 4e55 4c4c 2e20 5468 6520 3c63 or NULL. The #SOA
│ │ │ │ +00105360: 505f 4f4b 3c2f 636f 6465 3e20 6f72 2061 P_OK
or a
│ │ │ │ +00105370: 203c 636f 6465 3e3c 6120 636c 6173 733d soap_sta
│ │ │ │ +00105430: 7475 733c 2f61 3e3c 2f63 6f64 653e 2065 tus
e
│ │ │ │ +00105440: 7272 6f72 2063 6f64 652e 3c2f 6c69 3e0a rror code.void <
│ │ │ │ +00105460: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +00105470: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +00105480: 5f6d 696d 652e 6874 6d6c 2367 6138 3163 _mime.html#ga81c
│ │ │ │ +00105490: 6564 6232 3436 3730 6562 6461 3438 6137 edb24670ebda48a7
│ │ │ │ +001054a0: 3936 3739 6434 3638 3232 3131 6622 2074 9679d4682211f" t
│ │ │ │ +001054b0: 6974 6c65 3d22 4469 7361 626c 6520 4d49 itle="Disable MI
│ │ │ │ +001054c0: 4d45 2061 7474 6163 686d 656e 7473 2e22 ME attachments."
│ │ │ │ +001054d0: 3e73 6f61 705f 636c 725f 6d69 6d65 2873 >soap_clr_mime(s
│ │ │ │ +001054e0: 7472 7563 7420 736f 6170 202a 736f 6170 truct soap *soap
│ │ │ │ +001054f0: 293c 2f61 3e3c 2f63 6f64 653e 2054 6869 )
Thi
│ │ │ │ +00105500: 7320 6675 6e63 7469 6f6e 2064 6973 6162 s function disab
│ │ │ │ +00105510: 6c65 7320 4d49 4d45 2061 7474 6163 686d les MIME attachm
│ │ │ │ +00105520: 656e 7473 2073 7563 6820 6173 2061 6674 ents such as aft
│ │ │ │ +00105530: 6572 2073 656e 6469 6e67 2061 206d 756c er sending a mul
│ │ │ │ +00105540: 7469 7061 7274 2d72 656c 6174 6564 206d tipart-related m
│ │ │ │ +00105550: 6573 7361 6765 2077 6974 6820 6174 7461 essage with atta
│ │ │ │ +00105560: 6368 6d65 6e74 7320 746f 2073 7769 7463 chments to switc
│ │ │ │ +00105570: 6820 6261 636b 2074 6f20 6e6f 6e2d 6d75 h back to non-mu
│ │ │ │ +00105580: 6c74 6970 6172 742d 7265 6c61 7465 6420 ltipart-related
│ │ │ │ +00105590: 6d65 7373 6167 696e 672c 2075 6e6c 6573 messaging, unles
│ │ │ │ +001055a0: 7320 7468 6520 6461 7461 2074 6f20 7365 s the data to se
│ │ │ │ +001055b0: 7269 616c 697a 6520 6173 2061 206d 6573 rialize as a mes
│ │ │ │ +001055c0: 7361 6765 2063 6f6e 7461 696e 7320 6174 sage contains at
│ │ │ │ +001055d0: 7461 6368 6d65 6e74 7320 7375 6368 2061 tachments such a
│ │ │ │ +001055e0: 7320 3c63 6f64 653e 3c61 2063 6c61 7373 s xsd__base6
│ │ │ │ +00105660: 3442 696e 6172 793c 2f61 3e3c 2f63 6f64 4Binary for MIME atta
│ │ │ │ +00105680: 6368 6d65 6e74 7320 616e 6420 3c63 6f64 chments and
│ │ │ │ +00105710: 2066 6f72 204d 544f 4d20 6174 7461 6368 for MTOM attach
│ │ │ │ +00105720: 6d65 6e74 732e 3c2f 6c69 3e0a 3c2f 756c ments.<
│ │ │ │ +00105760: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +00105770: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +00105780: 5f6d 696d 652e 6874 6d6c 2367 6139 3138 _mime.html#ga918
│ │ │ │ +00105790: 3065 3562 6136 3334 6232 3033 3035 6237 0e5ba634b20305b7
│ │ │ │ +001057a0: 3535 6234 3130 3034 3564 3965 6522 2074 55b410045d9ee" t
│ │ │ │ +001057b0: 6974 6c65 3d22 456e 6162 6c65 204d 494d itle="Enable MIM
│ │ │ │ +001057c0: 4520 6174 7461 6368 6d65 6e74 732e 223e E attachments.">
│ │ │ │ +001057d0: 736f 6170 5f73 6574 5f6d 696d 653c 2f61 soap_set_mime
, you ha
│ │ │ │ +001057f0: 7665 2074 6f20 6d61 6b65 2073 7572 6520 ve to make sure
│ │ │ │ +00105800: 7468 6520 626f 756e 6461 7279 2063 616e the boundary can
│ │ │ │ +00105810: 6e6f 7420 6d61 7463 6820 616e 7920 7061 not match any pa
│ │ │ │ +00105820: 7274 7320 6f66 2074 6865 206d 6573 7361 rts of the messa
│ │ │ │ +00105830: 6765 2061 6e64 2061 7474 6163 686d 656e ge and attachmen
│ │ │ │ +00105840: 7473 2074 6861 7420 796f 7520 6172 6520 ts that you are
│ │ │ │ +00105850: 7365 6e64 696e 672c 2062 6563 6175 7365 sending, because
│ │ │ │ +00105860: 2074 6865 2062 6f75 6e64 6172 7920 6465 the boundary de
│ │ │ │ +00105870: 6c69 6e65 6174 6573 2074 6865 2061 7474 lineates the att
│ │ │ │ +00105880: 6163 686d 656e 7473 2e3c 2f70 3e0a 3c70 achments.so
│ │ │ │ +00105950: 6170 5f73 6574 5f6d 696d 655f 6174 7461 ap_set_mime_atta
│ │ │ │ +00105960: 6368 6d65 6e74 3c2f 613e 3c2f 636f 6465 chment
is destroyed w
│ │ │ │ +00105980: 6974 6820 3c63 6f64 653e 3c61 2063 6c61 ith so
│ │ │ │ +00105a50: 6170 5f65 6e64 3c2f 613e 3c2f 636f 6465 ap_end
or when a mess
│ │ │ │ +00105a70: 6167 6520 6973 2072 6563 6569 7665 642e age is received.
│ │ │ │ +00105a80: 2054 6865 7265 666f 7265 2c20 6361 6c6c Therefore, call
│ │ │ │ +00105a90: 203c 636f 6465 3e3c 6120 636c 6173 733d so
│ │ │ │ +00105b20: 6170 5f73 6574 5f6d 696d 655f 6174 7461 ap_set_mime_atta
│ │ │ │ +00105b30: 6368 6d65 6e74 3c2f 613e 3c2f 636f 6465 chment
to set attachm
│ │ │ │ +00105b50: 656e 7473 2062 6566 6f72 6520 7365 6e64 ents before send
│ │ │ │ +00105b60: 696e 6720 6120 6d65 7373 6167 652e 3c2f ing a message.
│ │ │ │ +00105b70: 703e 0a3c 703e 5468 6520 666f 6c6c 6f77 p>.h
│ │ │ │ +00105c50: 7265 663c 2f63 6f64 653e 3c2f 656d 3e20 ref
│ │ │ │ +00105c60: 6174 7472 6962 7574 6573 2e20 5468 6520 attributes. The
│ │ │ │ +00105c70: 3c63 6f64 653e 7374 7275 6374 2063 6c61 struct cla
│ │ │ │ +00105c80: 696d 5f5f 666f 726d 3c2f 636f 6465 3e20 im__form
│ │ │ │ +00105c90: 6461 7461 2074 7970 6520 696e 636c 7564 data type includ
│ │ │ │ +00105ca0: 6573 2061 2064 6566 696e 6974 696f 6e20 es a definition
│ │ │ │ +00105cb0: 6f66 2061 203c 636f 6465 3e68 7265 663c of a href<
│ │ │ │ +00105cc0: 2f63 6f64 653e 2061 7474 7269 6275 7465 /code> attribute
│ │ │ │ +00105cd0: 2066 6f72 2074 6869 7320 7075 7270 6f73 for this purpos
│ │ │ │ +00105ce0: 652e 3c2f 703e 0a3c 6469 7620 636c 6173 e.
/* initializ
│ │ │ │ +00105e80: 6520 616e 6420 656e 6162 6c65 204d 494d e and enable MIM
│ │ │ │ +00105e90: 4520 2a2f 3c2f 7370 616e 3e20 3c2f 6469 E */ .if (soap_call_cla
│ │ │ │ +00106550: 696d 5f5f 696e 7375 7261 6e63 655f 636c im__insurance_cl
│ │ │ │ +00106560: 6169 6d5f 6175 746f 283c 6120 636c 6173 aim_auto(
│ │ │ │ +00106590: 736f 6170 3c2f 613e 2c20 666f 726d 312c soap, form1,
│ │ │ │ +001065a0: 2066 6f72 6d32 2c20 2e2e 2e29 2920 3c2f form2, ...))
│ │ │ │ +001065b0: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.h
│ │ │ │ -001070e0: 7265 663c 2f63 6f64 653e 3c2f 656d 3e73 ref
s
│ │ │ │ -001070f0: 2074 6f20 7468 6520 636c 6169 6d20 666f to the claim fo
│ │ │ │ -00107100: 726d 7320 6174 7461 6368 6564 2e20 5468 rms attached. Th
│ │ │ │ -00107110: 6520 7573 6520 6f66 203c 656d 3e3c 636f e use of hr
│ │ │ │ -001071d0: 6566 3c2f 636f 6465 3e3c 2f65 6d3e 2077 ef
w
│ │ │ │ -001071e0: 6974 6820 584f 5020 656c 656d 656e 7473 ith XOP elements
│ │ │ │ -001071f0: 2e3c 2f70 3e0a 3c70 3e54 6f20 6173 736f .// add a HTM
│ │ │ │ -00107620: 4c20 646f 6375 6d65 6e74 2028 6874 6d6c L document (html
│ │ │ │ -00107630: 446f 6320 706f 696e 7473 2074 6f20 6461 Doc points to da
│ │ │ │ -00107640: 7461 2c20 7768 6572 6520 7468 6520 4854 ta, where the HT
│ │ │ │ -00107650: 4d4c 2064 6f63 2069 7320 7374 6f72 6564 ML doc is stored
│ │ │ │ -00107660: 2069 6e20 636f 6d70 6c69 616e 6365 2077 in compliance w
│ │ │ │ -00107670: 6974 6820 3762 6974 2065 6e63 6f64 696e ith 7bit encodin
│ │ │ │ -00107680: 6720 5246 4332 3034 3529 203c 2f73 7061 g RFC2045) "
│ │ │ │ -00107870: 266c 743b 636c 6169 6d30 3631 3430 3061 <claim061400a
│ │ │ │ -00107880: 2e68 746d 6c40 636c 6169 6d69 6e67 2d69 .html@claiming-i
│ │ │ │ -00107890: 742e 636f 6d26 6774 3b26 7175 6f74 3b3c t.com>"<
│ │ │ │ -001078a0: 2f73 7061 6e3e 2c20 4e55 4c4c 2c20 4e55 /span>, NULL, NU
│ │ │ │ -001078b0: 4c4c 2929 203c 2f64 6976 3e0a 3c64 6976 LL)) .Retrieving a c
│ │ │ │ -00107da0: 6f6c 6c65 6374 696f 6e20 6f66 204d 494d ollection of MIM
│ │ │ │ -00107db0: 452f 4d54 4f4d 2061 7474 6163 686d 656e E/MTOM attachmen
│ │ │ │ -00107dc0: 7473 2028 5377 4129 3c2f 6832 3e0a 3c70 ts (SwA)
."
│ │ │ │ -001084b0: 7369 7a65 2020 2020 2020 203d 2575 6c5c size =%ul\
│ │ │ │ -001084c0: 6e26 7175 6f74 3b3c 2f73 7061 6e3e 2c20 n",
│ │ │ │ -001084d0: 6174 7461 6368 6d65 6e74 2d26 6774 3b3c attachment-><
│ │ │ │ -001084e0: 6120 636c 6173 733d 2263 6f64 6522 2068 a class="code" h
│ │ │ │ -001084f0: 7265 663d 2273 7472 7563 7473 6f61 705f ref="structsoap_
│ │ │ │ -00108500: 5f6d 756c 7469 7061 7274 2e68 746d 6c23 _multipart.html#
│ │ │ │ -00108510: 6166 6334 6236 3966 3565 3961 6465 3635 afc4b69f5e9ade65
│ │ │ │ -00108520: 3236 6232 3336 3831 6331 3035 6435 6361 26b23681c105d5ca
│ │ │ │ -00108530: 3522 3e73 697a 653c 2f61 3e29 3b3c 2f64 5">size);."
│ │ │ │ -00108b00: 2671 756f 743b 3c2f 7370 616e 3e29 3b3c ");<
│ │ │ │ +00107020: 6e65 223e 2020 4020 3c73 7061 6e20 636c ne"> @ char *h
│ │ │ │ +00107050: 7265 663b 203c 2f64 6976 3e0a 3c64 6976 ref; href or oth
│ │ │ │ +00107120: 6572 2061 7474 7269 6275 7465 7320 666f er attributes fo
│ │ │ │ +00107130: 7220 7265 6665 7272 696e 6720 746f 2074 r referring to t
│ │ │ │ +00107140: 6865 204d 494d 4520 6174 7461 6368 6d65 he MIME attachme
│ │ │ │ +00107150: 6e74 7320 6973 206f 7074 696f 6e61 6c20 nts is optional
│ │ │ │ +00107160: 6163 636f 7264 696e 6720 746f 2074 6865 according to the
│ │ │ │ +00107170: 2053 7741 2073 7461 6e64 6172 642e 204d SwA standard. M
│ │ │ │ +00107180: 544f 4d20 6f6e 2074 6865 206f 7468 6572 TOM on the other
│ │ │ │ +00107190: 2068 616e 6420 6d61 6e64 6174 6573 2074 hand mandates t
│ │ │ │ +001071a0: 6865 2075 7365 206f 6620 3c65 6d3e 3c63 he use of
<
│ │ │ │ +001071c0: 2f65 6d3e 2077 6974 6820 584f 5020 656c /em> with XOP el
│ │ │ │ +001071d0: 656d 656e 7473 2e3c 2f70 3e0a 3c70 3e54 ements.// enable MI
│ │ │ │ +001075c0: 4d45 3c2f 7370 616e 3e3c 2f64 6976 3e0a ME<
│ │ │ │ +00107d50: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ +00107d60: 2069 643d 2253 5741 7265 6365 6976 696e id="SWAreceivin
│ │ │ │ +00107d70: 6722 3e3c 2f61 3e0a 5265 7472 6965 7669 g">.Retrievi
│ │ │ │ +00107d80: 6e67 2061 2063 6f6c 6c65 6374 696f 6e20 ng a collection
│ │ │ │ +00107d90: 6f66 204d 494d 452f 4d54 4f4d 2061 7474 of MIME/MTOM att
│ │ │ │ +00107da0: 6163 686d 656e 7473 2028 5377 4129 3c2f achments (SwA)
│ │ │ │ +00107db0: 6832 3e0a 3c70 3e4d 494d 4520 6174 7461 h2>.
soap<
│ │ │ │ +00107e60: 2f63 6f64 653e 2063 6f6e 7465 7874 2e20 /code> context.
│ │ │ │ +00107e70: 4166 7465 7220 7265 6365 6976 696e 6720 After receiving
│ │ │ │ +00107e80: 6120 7365 7420 6f66 204d 494d 452f 4d54 a set of MIME/MT
│ │ │ │ +00107e90: 4f4d 2061 7474 6163 686d 656e 7473 2c20 OM attachments,
│ │ │ │ +00107ea0: 6569 7468 6572 2061 7420 7468 6520 636c either at the cl
│ │ │ │ +00107eb0: 6965 6e74 2d73 6964 6520 6f72 2074 6865 ient-side or the
│ │ │ │ +00107ec0: 2073 6572 7665 722d 7369 6465 2c20 7468 server-side, th
│ │ │ │ +00107ed0: 6520 6c69 7374 206f 6620 4d49 4d45 2f4d e list of MIME/M
│ │ │ │ +00107ee0: 544f 4d20 6174 7461 6368 6d65 6e74 7320 TOM attachments
│ │ │ │ +00107ef0: 6361 6e20 6265 2074 7261 7665 7273 6564 can be traversed
│ │ │ │ +00107f00: 2074 6f20 6578 7472 6163 7420 6d65 7461 to extract meta
│ │ │ │ +00107f10: 2064 6174 6120 616e 6420 7468 6520 6174 data and the at
│ │ │ │ +00107f20: 7461 6368 6d65 6e74 2063 6f6e 7465 6e74 tachment content
│ │ │ │ +00107f30: 2e20 5468 6520 6669 7273 7420 6174 7461 . The first atta
│ │ │ │ +00107f40: 6368 6d65 6e74 2069 6e20 7468 6520 636f chment in the co
│ │ │ │ +00107f50: 6c6c 6563 7469 6f6e 206f 6620 4d49 4d45 llection of MIME
│ │ │ │ +00107f60: 2f4d 544f 4d20 6174 7461 6368 6d65 6e74 /MTOM attachment
│ │ │ │ +00107f70: 7320 616c 7761 7973 2063 6f6e 7461 696e s always contain
│ │ │ │ +00107f80: 7320 6d65 7461 2064 6174 6120 6162 6f75 s meta data abou
│ │ │ │ +00107f90: 7420 7468 6520 534f 4150 206d 6573 7361 t the SOAP messa
│ │ │ │ +00107fa0: 6765 2069 7473 656c 6620 2862 6563 6175 ge itself (becau
│ │ │ │ +00107fb0: 7365 2074 6865 2053 4f41 5020 6d65 7373 se the SOAP mess
│ │ │ │ +00107fc0: 6167 6520 7761 7320 7072 6f63 6573 7365 age was processe
│ │ │ │ +00107fd0: 6420 7468 6520 6174 7461 6368 6d65 6e74 d the attachment
│ │ │ │ +00107fe0: 2064 6f65 7320 6e6f 7420 636f 6e74 6169 does not contai
│ │ │ │ +00107ff0: 6e20 616e 7920 7573 6566 756c 2064 6174 n any useful dat
│ │ │ │ +00108000: 6129 2e3c 2f70 3e0a 3c70 3e54 6f20 7472 a).
"
│ │ │ │ +00108680: 2671 756f 743b 3c2f 7370 616e 3e29 3b3c ");<
│ │ │ │ +00108690: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>."
│ │ │ │ +001087f0: 2671 756f 743b 3c2f 7370 616e 3e29 3b3c ");<
│ │ │ │ +00108800: 2f64 6976 3e0a 3c64 6976 2063 6c61 7373 /div>.
│ │ │ │ +0010a3c0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap_unlink<
│ │ │ │ +0010a490: 2f61 3e3c 2f63 6f64 653e 206f 6e20 7468 /a>
on th
│ │ │ │ +0010a4a0: 6520 3c63 6f64 653e 7074 723c 2f63 6f64 e ptr
soap_multi
│ │ │ │ +0010a540: 7061 7274 3c2f 613e 3c2f 636f 6465 3e20 part
│ │ │ │ +0010a550: 7374 7275 6374 2e20 5468 6520 3c63 6f64 struct. The .D
│ │ │ │ +0010a6e0: 494d 4520 6174 7461 6368 6d65 6e74 733c IME attachments<
│ │ │ │ +0010a6f0: 2f68 313e 0a3c 703e 4170 706c 6963 6174 /h1>.
#SOAP_M
│ │ │ │ +0010a820: 4158 4449 4d45 5349 5a45 3c2f 636f 6465 AXDIMESIZE
. This limit ca
│ │ │ │ +0010a840: 6e20 6265 2063 6861 6e67 6564 2061 7320 n be changed as
│ │ │ │ +0010a850: 6e65 6564 6564 2e20 5769 7468 2073 7472 needed. With str
│ │ │ │ +0010a860: 6561 6d69 6e67 2044 494d 4520 7573 696e eaming DIME usin
│ │ │ │ +0010a870: 6720 6361 6c6c 6261 636b 2066 756e 6374 g callback funct
│ │ │ │ +0010a880: 696f 6e73 2c20 6461 7461 2068 616e 646c ions, data handl
│ │ │ │ +0010a890: 6572 7320 6172 6520 7573 6564 2074 6f20 ers are used to
│ │ │ │ +0010a8a0: 7061 7373 2074 6865 2064 6174 6120 746f pass the data to
│ │ │ │ +0010a8b0: 2061 6e64 2066 726f 6d20 6120 7265 736f and from a reso
│ │ │ │ +0010a8c0: 7572 6365 2066 726f 6d20 7768 6963 6820 urce from which
│ │ │ │ +0010a8d0: 746f 2066 6574 6368 2074 6865 2064 6174 to fetch the dat
│ │ │ │ +0010a8e0: 6120 746f 2073 656e 6420 6f72 2064 6174 a to send or dat
│ │ │ │ +0010a8f0: 6120 746f 2073 746f 7265 2c20 7375 6368 a to store, such
│ │ │ │ +0010a900: 2061 7320 6120 6669 6c65 206f 7220 6465 as a file or de
│ │ │ │ +0010a910: 7669 6365 2e20 5365 6520 5365 6374 696f vice. See Sectio
│ │ │ │ +0010a920: 6e20 3c61 2063 6c61 7373 3d22 656c 2220 n
│ │ │ │ +0010a950: 5374 7265 616d 696e 6720 4449 4d45 3c2f Streaming DIME
│ │ │ │ +0010a960: 613e 202e 3c2f 703e 0a3c 703e 466f 7220 a> ..Se
│ │ │ │ +0010ab20: 6e64 696e 6720 6120 636f 6c6c 6563 7469 nding a collecti
│ │ │ │ +0010ab30: 6f6e 206f 6620 4449 4d45 2061 7474 6163 on of DIME attac
│ │ │ │ +0010ab40: 686d 656e 7473 3c2f 6832 3e0a 3c70 3e54 hments
..
void soa
│ │ │ │ +0010ad20: 705f 7365 745f 6469 6d65 2873 7472 7563 p_set_dime(struc
│ │ │ │ +0010ad30: 7420 736f 6170 202a 736f 6170 293c 2f61 t soap *soap)
This fu
│ │ │ │ +0010ad50: 6e63 7469 6f6e 2065 6e61 626c 6573 2073 nction enables s
│ │ │ │ +0010ad60: 656e 6469 6e67 2044 494d 4520 6174 7461 ending DIME atta
│ │ │ │ +0010ad70: 6368 6d65 6e74 732e 2054 6869 7320 6675 chments. This fu
│ │ │ │ +0010ad80: 6e63 7469 6f6e 2069 7320 6765 6e65 7261 nction is genera
│ │ │ │ +0010ad90: 6c6c 7920 6e6f 7420 7265 7175 6972 6564 lly not required
│ │ │ │ +0010ada0: 2062 6563 6175 7365 2044 494d 4520 6174 because DIME at
│ │ │ │ +0010adb0: 7461 6368 6d65 6e74 7320 6172 6520 6175 tachments are au
│ │ │ │ +0010adc0: 746f 6d61 7469 6361 6c6c 7920 6465 7465 tomatically dete
│ │ │ │ +0010add0: 6374 6564 2061 7320 3c63 6f64 653e 3c61 cted as xsd_
│ │ │ │ +0010ae50: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
and s
│ │ │ │ +0010b010: 6f61 705f 7365 745f 6469 6d65 5f61 7474 oap_set_dime_att
│ │ │ │ +0010b020: 6163 686d 656e 743c 2f61 3e3c 2f63 6f64 achment
size. The
para
│ │ │ │ +0010b1f0: 6d65 7465 7220 756e 6971 7565 6c79 2069 meter uniquely i
│ │ │ │ +0010b200: 6465 6e74 6966 6965 7320 7468 6520 6174 dentifies the at
│ │ │ │ +0010b210: 7461 6368 6d65 6e74 2069 6e20 7468 6520 tachment in the
│ │ │ │ +0010b220: 6d65 7373 6167 652c 2077 6869 6368 2063 message, which c
│ │ │ │ +0010b230: 616e 2062 6520 6f6d 6974 7465 6420 6279 an be omitted by
│ │ │ │ +0010b240: 2073 7065 6369 6679 696e 6720 4e55 4c4c specifying NULL
│ │ │ │ +0010b250: 2e20 5468 6520 3c63 6f64 653e 6f70 7469 . The ty
│ │ │ │ +0010b190: 7065 3c2f 636f 6465 3e20 7061 7261 6d65 pe
parame
│ │ │ │ +0010b1a0: 7465 7220 696e 6469 6361 7465 7320 7468 ter indicates th
│ │ │ │ +0010b1b0: 6520 4d49 4d45 2074 7970 6520 6f66 2074 e MIME type of t
│ │ │ │ +0010b1c0: 6865 2064 6174 6120 6f72 2063 616e 2062 he data or can b
│ │ │ │ +0010b1d0: 6520 4e55 4c4c 2e20 5468 6520 3c63 6f64 e NULL. The opti
│ │ │ │ +0010b260: 6f6e 3c2f 636f 6465 3e20 7061 7261 6d65 on
parame
│ │ │ │ +0010b270: 7465 7220 6973 2061 6e20 6f70 7469 6f6e ter is an option
│ │ │ │ +0010b280: 2073 7563 6820 6173 2061 2064 6573 6372 such as a descr
│ │ │ │ +0010b290: 6970 7469 6f6e 206f 6620 7468 6520 6461 iption of the da
│ │ │ │ +0010b2a0: 7461 2061 6e64 203c 636f 6465 3e6f 7074 ta and opt
│ │ │ │ +0010b2b0: 7970 653c 2f63 6f64 653e 2069 7320 6120 ype
is a
│ │ │ │ +0010b2c0: 7573 6572 2d64 6566 696e 6564 206f 7074 user-defined opt
│ │ │ │ +0010b2d0: 696f 6e20 7479 7065 2028 6173 2070 6572 ion type (as per
│ │ │ │ +0010b2e0: 2044 494d 4520 6f70 7469 6f6e 2073 7065 DIME option spe
│ │ │ │ +0010b2f0: 6369 6669 6361 7469 6f6e 2066 6f72 6d61 cification forma
│ │ │ │ +0010b300: 7429 2e20 5468 6520 3c63 6f64 653e 7074 t). The pt
│ │ │ │ +0010b310: 723c 2f63 6f64 653e 2070 6172 616d 6574 r
paramet
│ │ │ │ +0010b320: 6572 206d 7573 7420 6265 2070 6572 7369 er must be persi
│ │ │ │ +0010b330: 7374 656e 742e 2054 6865 203c 636f 6465 stent. The ptr
para
│ │ │ │ +0010b350: 6d65 7465 7220 7061 7373 6564 2074 6f20 meter passed to
│ │ │ │ +0010b360: 7468 6973 2066 756e 6374 696f 6e20 6d75 this function mu
│ │ │ │ +0010b370: 7374 2062 6520 7065 7273 6973 7465 6e74 st be persistent
│ │ │ │ +0010b380: 2069 6e20 6d65 6d6f 7279 2075 6e74 696c in memory until
│ │ │ │ +0010b390: 2074 6865 2061 7474 6163 686d 656e 7420 the attachment
│ │ │ │ +0010b3a0: 7761 7320 7365 6e74 2e20 5265 7475 726e was sent. Return
│ │ │ │ +0010b3b0: 7320 3c63 6f64 653e 2353 4f41 505f 4f4b s #SOAP_OK
│ │ │ │ +0010b3c0: 3c2f 636f 6465 3e20 6f72 2061 203c 636f
or a void soa
│ │ │ │ +0010b530: 705f 636c 725f 6469 6d65 2873 7472 7563 p_clr_dime(struc
│ │ │ │ +0010b540: 7420 736f 6170 202a 736f 6170 293c 2f61 t soap *soap)
This fu
│ │ │ │ +0010b560: 6e63 7469 6f6e 2064 6973 6162 6c65 7320 nction disables
│ │ │ │ +0010b570: 4449 4d45 2061 7474 6163 686d 656e 7473 DIME attachments
│ │ │ │ +0010b580: 2c20 756e 6c65 7373 2074 6865 2064 6174 , unless the dat
│ │ │ │ +0010b590: 6120 746f 2073 6572 6961 6c69 7a65 2061 a to serialize a
│ │ │ │ +0010b5a0: 7320 616e 2058 4d4c 206d 6573 7361 6765 s an XML message
│ │ │ │ +0010b5b0: 2063 6f6e 7461 696e 7320 6174 7461 6368 contains attach
│ │ │ │ +0010b5c0: 6d65 6e74 7320 6465 6669 6e65 6420 6279 ments defined by
│ │ │ │ +0010b5d0: 203c 636f 6465 3e3c 6120 636c 6173 733d xsd__base64
│ │ │ │ +0010b650: 4269 6e61 7279 3c2f 613e 3c2f 636f 6465 Binary
and _xop__Include<
│ │ │ │ +0010b6e0: 2f61 3e3c 2f63 6f64 653e 2073 7472 7563 /a>
struc
│ │ │ │ +0010b6f0: 7475 7265 732e 3c2f 6c69 3e0a 3c2f 756c tures..Retrieving
│ │ │ │ +0010b980: 2061 2063 6f6c 6c65 6374 696f 6e20 6f66 a collection of
│ │ │ │ +0010b990: 2044 494d 4520 6174 7461 6368 6d65 6e74 DIME attachment
│ │ │ │ +0010b9a0: 733c 2f68 323e 0a3c 703e 4449 4d45 2061 s
.options
│ │ │ │ -0010cd40: 6d65 6d62 6572 2069 7320 6176 6169 6c61 member is availa
│ │ │ │ -0010cd50: 626c 6520 6173 2077 656c 6c2c 2062 7574 ble as well, but
│ │ │ │ -0010cd60: 206e 6f74 2073 686f 776e 2069 6e20 7468 not shown in th
│ │ │ │ -0010cd70: 6520 636f 6465 2061 626f 7665 2e20 5468 e code above. Th
│ │ │ │ -0010cd80: 6520 3c63 6f64 653e 6f70 7469 6f6e 733c e options<
│ │ │ │ -0010cd90: 2f63 6f64 653e 2063 6f6e 7465 6e74 2069 /code> content i
│ │ │ │ -0010cda0: 7320 666f 726d 6174 7465 6420 6163 636f s formatted acco
│ │ │ │ -0010cdb0: 7264 696e 6720 746f 2074 6865 2044 494d rding to the DIM
│ │ │ │ -0010cdc0: 4520 7370 6563 6966 6963 6174 696f 6e3a E specification:
│ │ │ │ -0010cdd0: 2074 6865 2066 6972 7374 2074 776f 2062 the first two b
│ │ │ │ -0010cde0: 7974 6573 2061 7265 2072 6573 6572 7665 ytes are reserve
│ │ │ │ -0010cdf0: 6420 666f 7220 7468 6520 6f70 7469 6f6e d for the option
│ │ │ │ -0010ce00: 2074 7970 652c 2074 6865 206e 6578 7420 type, the next
│ │ │ │ -0010ce10: 7477 6f20 6279 7465 7320 7374 6f72 6520 two bytes store
│ │ │ │ -0010ce20: 7468 6520 7369 7a65 206f 6620 7468 6520 the size of the
│ │ │ │ -0010ce30: 6f70 7469 6f6e 2064 6174 612c 2066 6f6c option data, fol
│ │ │ │ -0010ce40: 6c6f 7765 6420 6279 2074 6865 2028 6269 lowed by the (bi
│ │ │ │ -0010ce50: 6e61 7279 2920 6f70 7469 6f6e 2064 6174 nary) option dat
│ │ │ │ -0010ce60: 612e 3c2f 703e 0a3c 703e 4120 6361 6c6c a.
so
│ │ │ │ -0010cf40: 6170 5f65 6e64 3c2f 613e 3c2f 636f 6465 ap_end
removes all of
│ │ │ │ -0010cf60: 2074 6865 2072 6563 6569 7665 6420 4449 the received DI
│ │ │ │ -0010cf70: 4d45 2064 6174 612e 2054 6f20 7072 6573 ME data. To pres
│ │ │ │ -0010cf80: 6572 7665 2061 6e20 6174 7461 6368 6d65 erve an attachme
│ │ │ │ -0010cf90: 6e74 2069 6e20 6d65 6d6f 7279 2c20 7573 nt in memory, us
│ │ │ │ -0010cfa0: 6520 3c63 6f64 653e 3c61 2063 6c61 7373 e soap
│ │ │ │ -0010d070: 5f75 6e6c 696e 6b3c 2f61 3e3c 2f63 6f64 _unlink on the
│ │ │ │ -0010d090: 7074 723c 2f63 6f64 653e 206d 656d 6265 ptr
membe
│ │ │ │ -0010d0a0: 7220 6f66 2074 6865 203c 636f 6465 3e3c r of the <
│ │ │ │ -0010d0b0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0010d0c0: 663d 2273 7472 7563 7473 6f61 705f 5f6d f="structsoap__m
│ │ │ │ -0010d0d0: 756c 7469 7061 7274 2e68 746d 6c22 2074 ultipart.html" t
│ │ │ │ -0010d0e0: 6974 6c65 3d22 4449 4d45 2f4d 494d 452f itle="DIME/MIME/
│ │ │ │ -0010d0f0: 4d54 4f4d 2061 7474 6163 686d 656e 7420 MTOM attachment
│ │ │ │ -0010d100: 6461 7461 2072 6563 6569 7665 6420 6279 data received by
│ │ │ │ -0010d110: 2074 6865 2065 6e67 696e 652e 223e 736f the engine.">so
│ │ │ │ -0010d120: 6170 5f6d 756c 7469 7061 7274 3c2f 613e ap_multipart
│ │ │ │ -0010d130: 3c2f 636f 6465 3e20 7374 7275 6374 2e20
struct.
│ │ │ │ -0010d140: 5468 6520 3c63 6f64 653e 3c61 2063 6c61 The so
│ │ │ │ -0010d210: 6170 5f75 6e6c 696e 6b3c 2f61 3e3c 2f63 ap_unlink function ca
│ │ │ │ -0010d230: 6e20 6265 2075 7365 6420 746f 2070 7265 n be used to pre
│ │ │ │ -0010d240: 7665 6e74 2064 6561 6c6c 6f63 6174 696f vent deallocatio
│ │ │ │ -0010d250: 6e20 6f66 2064 6573 6572 6961 6c69 7a65 n of deserialize
│ │ │ │ -0010d260: 6420 6461 7461 2e3c 2f70 3e0a 3c70 3ef0 d data.
.Ser
│ │ │ │ -0010d2d0: 6961 6c69 7a69 6e67 2062 696e 6172 7920 ializing binary
│ │ │ │ -0010d2e0: 6461 7461 2077 6974 6820 4449 4d45 2061 data with DIME a
│ │ │ │ -0010d2f0: 7474 6163 686d 656e 7473 3c2f 6832 3e0a ttachments
.
│ │ │ │ -0010d300: 3c70 3e42 696e 6172 7920 6461 7461 2073 xsd__base6
│ │ │ │ -0010d3a0: 3442 696e 6172 793c 2f61 3e3c 2f63 6f64 4Binary and
xsd__hexBin
│ │ │ │ -0010d430: 6172 793c 2f61 3e3c 2f63 6f64 653e 2074 ary
t
│ │ │ │ -0010d440: 7970 6573 2063 616e 2062 6520 7365 7269 ypes can be seri
│ │ │ │ -0010d450: 616c 697a 6564 2061 6e64 2064 6573 6572 alized and deser
│ │ │ │ -0010d460: 6961 6c69 7a65 6420 6173 2044 494d 4520 ialized as DIME
│ │ │ │ -0010d470: 6174 7461 6368 6d65 6e74 7320 7768 656e attachments when
│ │ │ │ -0010d480: 206f 6e65 206f 7220 6d6f 7265 206f 6620 one or more of
│ │ │ │ -0010d490: 7468 6520 6578 7472 6120 6d65 6d62 6572 the extra member
│ │ │ │ -0010d4a0: 7320 3c63 6f64 653e 6964 3c2f 636f 6465 s id
, type, and
a
│ │ │ │ -0010d620: 7320 6578 706c 6169 6e65 6420 696e 2074 s explained in t
│ │ │ │ -0010d630: 6865 2070 7265 7669 6f75 7320 7365 6374 he previous sect
│ │ │ │ -0010d640: 696f 6e2e 2054 6865 2073 6572 6961 6c69 ion. The seriali
│ │ │ │ -0010d650: 7a61 7469 6f6e 2070 726f 6365 7373 2069 zation process i
│ │ │ │ -0010d660: 7320 6175 746f 6d61 7465 6420 666f 7220 s automated for
│ │ │ │ -0010d670: 534f 4150 2065 6e63 6f64 6564 206d 6573 SOAP encoded mes
│ │ │ │ -0010d680: 7361 6765 7320 616e 6420 4449 4d45 2061 sages and DIME a
│ │ │ │ -0010d690: 7474 6163 686d 656e 7473 2077 696c 6c20 ttachments will
│ │ │ │ -0010d6a0: 6265 2073 656e 6420 6576 656e 2077 6865 be send even whe
│ │ │ │ -0010d6b0: 6e20 3c63 6f64 653e 3c61 2063 6c61 7373 n
│ │ │ │ -0010d4d0: 6f70 7469 6f6e 733c 2f63 6f64 653e 2061 options
a
│ │ │ │ -0010d4e0: 7265 206e 6f6e 2d4e 554c 4c2e 2054 6865 re non-NULL. The
│ │ │ │ -0010d4f0: 7365 2061 7474 6163 686d 656e 7473 2077 se attachments w
│ │ │ │ -0010d500: 696c 6c20 6265 2061 7574 6f6d 6174 6963 ill be automatic
│ │ │ │ -0010d510: 616c 6c79 2074 7261 6e73 6d69 7474 6564 ally transmitted
│ │ │ │ -0010d520: 2070 7269 6f72 2074 6f20 7468 6520 7365 prior to the se
│ │ │ │ -0010d530: 7175 656e 6365 206f 6620 7365 636f 6e64 quence of second
│ │ │ │ -0010d540: 6172 7920 4449 4d45 2061 7474 6163 686d ary DIME attachm
│ │ │ │ -0010d550: 656e 7473 2064 6566 696e 6564 2062 7920 ents defined by
│ │ │ │ -0010d560: 7468 6520 7573 6572 2077 6974 6820 3c63 the user with soap_se
│ │ │ │ -0010d730: 745f 6469 6d65 3c2f 613e 3c2f 636f 6465 t_dime
or soap_set_dime_
│ │ │ │ -0010d7e0: 6174 7461 6368 6d65 6e74 3c2f 613e 3c2f attachment
│ │ │ │ -0010d7f0: 636f 6465 3e20 6172 6520 6e6f 7420 7573 code> are not us
│ │ │ │ -0010d800: 6564 2e20 466f 7220 6e6f 6e2d 534f 4150 ed. For non-SOAP
│ │ │ │ -0010d810: 2d65 6e63 6f64 6564 206d 6573 7361 6765 -encoded message
│ │ │ │ -0010d820: 7320 7375 6368 2061 7320 646f 6375 6d65 s such as docume
│ │ │ │ -0010d830: 6e74 2f6c 6974 6572 616c 206d 6573 7361 nt/literal messa
│ │ │ │ -0010d840: 6765 7320 796f 7520 6d75 7374 2073 7469 ges you must sti
│ │ │ │ -0010d850: 6c6c 2063 616c 6c20 3c63 6f64 653e 3c61 ll call
s
│ │ │ │ -0010d8d0: 6f61 705f 7365 745f 6469 6d65 3c2f 613e oap_set_dime
│ │ │ │ -0010d8e0: 3c2f 636f 6465 3e20 746f 2065 6e61 626c
to enabl
│ │ │ │ -0010d8f0: 6520 7365 6e64 696e 6720 6d65 7373 6167 e sending messag
│ │ │ │ -0010d900: 6573 2077 6974 6820 6174 7461 6368 6d65 es with attachme
│ │ │ │ -0010d910: 6e74 732e 3c2f 703e 0a3c 703e 546f 2065 nts.options
│ │ │ │ +0010cd20: 636f 6465 3e20 6d65 6d62 6572 2069 7320 code> member is
│ │ │ │ +0010cd30: 6176 6169 6c61 626c 6520 6173 2077 656c available as wel
│ │ │ │ +0010cd40: 6c2c 2062 7574 206e 6f74 2073 686f 776e l, but not shown
│ │ │ │ +0010cd50: 2069 6e20 7468 6520 636f 6465 2061 626f in the code abo
│ │ │ │ +0010cd60: 7665 2e20 5468 6520 3c63 6f64 653e 6f70 ve. The
op
│ │ │ │ +0010cd70: 7469 6f6e 733c 2f63 6f64 653e 2063 6f6e tions
con
│ │ │ │ +0010cd80: 7465 6e74 2069 7320 666f 726d 6174 7465 tent is formatte
│ │ │ │ +0010cd90: 6420 6163 636f 7264 696e 6720 746f 2074 d according to t
│ │ │ │ +0010cda0: 6865 2044 494d 4520 7370 6563 6966 6963 he DIME specific
│ │ │ │ +0010cdb0: 6174 696f 6e3a 2074 6865 2066 6972 7374 ation: the first
│ │ │ │ +0010cdc0: 2074 776f 2062 7974 6573 2061 7265 2072 two bytes are r
│ │ │ │ +0010cdd0: 6573 6572 7665 6420 666f 7220 7468 6520 eserved for the
│ │ │ │ +0010cde0: 6f70 7469 6f6e 2074 7970 652c 2074 6865 option type, the
│ │ │ │ +0010cdf0: 206e 6578 7420 7477 6f20 6279 7465 7320 next two bytes
│ │ │ │ +0010ce00: 7374 6f72 6520 7468 6520 7369 7a65 206f store the size o
│ │ │ │ +0010ce10: 6620 7468 6520 6f70 7469 6f6e 2064 6174 f the option dat
│ │ │ │ +0010ce20: 612c 2066 6f6c 6c6f 7765 6420 6279 2074 a, followed by t
│ │ │ │ +0010ce30: 6865 2028 6269 6e61 7279 2920 6f70 7469 he (binary) opti
│ │ │ │ +0010ce40: 6f6e 2064 6174 612e 3c2f 703e 0a3c 703e on data.
│ │ │ │ +0010ce60: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap_end
│ │ │ │ +0010cf30: 3c2f 636f 6465 3e20 7265 6d6f 7665 7320
removes
│ │ │ │ +0010cf40: 616c 6c20 6f66 2074 6865 2072 6563 6569 all of the recei
│ │ │ │ +0010cf50: 7665 6420 4449 4d45 2064 6174 612e 2054 ved DIME data. T
│ │ │ │ +0010cf60: 6f20 7072 6573 6572 7665 2061 6e20 6174 o preserve an at
│ │ │ │ +0010cf70: 7461 6368 6d65 6e74 2069 6e20 6d65 6d6f tachment in memo
│ │ │ │ +0010cf80: 7279 2c20 7573 6520 3c63 6f64 653e 3c61 ry, use soap_unlink
on the
│ │ │ │ +0010d070: 3c63 6f64 653e 7074 723c 2f63 6f64 653e ptr
│ │ │ │ +0010d080: 206d 656d 6265 7220 6f66 2074 6865 203c member of the <
│ │ │ │ +0010d090: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap_multipa
│ │ │ │ +0010d110: 7274 3c2f 613e 3c2f 636f 6465 3e20 7374 rt st
│ │ │ │ +0010d120: 7275 6374 2e20 5468 6520 3c63 6f64 653e ruct. The
│ │ │ │ +0010d130: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap_unlink<
│ │ │ │ +0010d200: 2f61 3e3c 2f63 6f64 653e 2066 756e 6374 /a>
funct
│ │ │ │ +0010d210: 696f 6e20 6361 6e20 6265 2075 7365 6420 ion can be used
│ │ │ │ +0010d220: 746f 2070 7265 7665 6e74 2064 6561 6c6c to prevent deall
│ │ │ │ +0010d230: 6f63 6174 696f 6e20 6f66 2064 6573 6572 ocation of deser
│ │ │ │ +0010d240: 6961 6c69 7a65 6420 6461 7461 2e3c 2f70 ialized data.
│ │ │ │ +0010d2b0: 613e 0a53 6572 6961 6c69 7a69 6e67 2062 a>.Serializing b
│ │ │ │ +0010d2c0: 696e 6172 7920 6461 7461 2077 6974 6820 inary data with
│ │ │ │ +0010d2d0: 4449 4d45 2061 7474 6163 686d 656e 7473 DIME attachments
│ │ │ │ +0010d2e0: 3c2f 6832 3e0a 3c70 3e42 696e 6172 7920
.xsd_
│ │ │ │ +0010d380: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
and id
│ │ │ │ +0010d490: 3c2f 636f 6465 3e2c 203c 636f 6465 3e74
, t
│ │ │ │ +0010d4a0: 7970 653c 2f63 6f64 653e 2c20 616e 6420 ype
, and
│ │ │ │ +0010d4b0: 3c63 6f64 653e 6f70 7469 6f6e 733c 2f63 options are non-NUL
│ │ │ │ +0010d4d0: 4c2e 2054 6865 7365 2061 7474 6163 686d L. These attachm
│ │ │ │ +0010d4e0: 656e 7473 2077 696c 6c20 6265 2061 7574 ents will be aut
│ │ │ │ +0010d4f0: 6f6d 6174 6963 616c 6c79 2074 7261 6e73 omatically trans
│ │ │ │ +0010d500: 6d69 7474 6564 2070 7269 6f72 2074 6f20 mitted prior to
│ │ │ │ +0010d510: 7468 6520 7365 7175 656e 6365 206f 6620 the sequence of
│ │ │ │ +0010d520: 7365 636f 6e64 6172 7920 4449 4d45 2061 secondary DIME a
│ │ │ │ +0010d530: 7474 6163 686d 656e 7473 2064 6566 696e ttachments defin
│ │ │ │ +0010d540: 6564 2062 7920 7468 6520 7573 6572 2077 ed by the user w
│ │ │ │ +0010d550: 6974 6820 3c63 6f64 653e 3c61 2063 6c61 ith
soap_set_dime_a
│ │ │ │ +0010d5f0: 7474 6163 686d 656e 743c 2f61 3e3c 2f63 ttachment as explaine
│ │ │ │ +0010d610: 6420 696e 2074 6865 2070 7265 7669 6f75 d in the previou
│ │ │ │ +0010d620: 7320 7365 6374 696f 6e2e 2054 6865 2073 s section. The s
│ │ │ │ +0010d630: 6572 6961 6c69 7a61 7469 6f6e 2070 726f erialization pro
│ │ │ │ +0010d640: 6365 7373 2069 7320 6175 746f 6d61 7465 cess is automate
│ │ │ │ +0010d650: 6420 666f 7220 534f 4150 2065 6e63 6f64 d for SOAP encod
│ │ │ │ +0010d660: 6564 206d 6573 7361 6765 7320 616e 6420 ed messages and
│ │ │ │ +0010d670: 4449 4d45 2061 7474 6163 686d 656e 7473 DIME attachments
│ │ │ │ +0010d680: 2077 696c 6c20 6265 2073 656e 6420 6576 will be send ev
│ │ │ │ +0010d690: 656e 2077 6865 6e20 3c63 6f64 653e 3c61 en when
to
│ │ │ │ +0010d8d0: 2065 6e61 626c 6520 7365 6e64 696e 6720 enable sending
│ │ │ │ +0010d8e0: 6d65 7373 6167 6573 2077 6974 6820 6174 messages with at
│ │ │ │ +0010d8f0: 7461 6368 6d65 6e74 732e 3c2f 703e 0a3c tachments.s
│ │ │ │ +0010d710: 6f61 705f 7365 745f 6469 6d65 3c2f 613e oap_set_dime
│ │ │ │ +0010d720: 3c2f 636f 6465 3e20 6f72 203c 636f 6465
or soap_set
│ │ │ │ +0010d7c0: 5f64 696d 655f 6174 7461 6368 6d65 6e74 _dime_attachment
│ │ │ │ +0010d7d0: 3c2f 613e 3c2f 636f 6465 3e20 6172 6520
are
│ │ │ │ +0010d7e0: 6e6f 7420 7573 6564 2e20 466f 7220 6e6f not used. For no
│ │ │ │ +0010d7f0: 6e2d 534f 4150 2d65 6e63 6f64 6564 206d n-SOAP-encoded m
│ │ │ │ +0010d800: 6573 7361 6765 7320 7375 6368 2061 7320 essages such as
│ │ │ │ +0010d810: 646f 6375 6d65 6e74 2f6c 6974 6572 616c document/literal
│ │ │ │ +0010d820: 206d 6573 7361 6765 7320 796f 7520 6d75 messages you mu
│ │ │ │ +0010d830: 7374 2073 7469 6c6c 2063 616c 6c20 3c63 st still call xsd__base6
│ │ │ │ +0010d9e0: 3442 696e 6172 793c 2f61 3e3c 2f63 6f64 4Binary type with thr
│ │ │ │ +0010da00: 6565 2061 6464 6974 696f 6e61 6c20 6d65 ee additional me
│ │ │ │ +0010da10: 6d62 6572 733a 3c2f 703e 0a3c 6469 7620 mbers:.
id member is f
│ │ │ │ -0010e380: 6f72 2061 7474 6163 686d 656e 7420 7265 or attachment re
│ │ │ │ -0010e390: 6665 7265 6e63 696e 672c 2074 7970 6963 ferencing, typic
│ │ │ │ -0010e3a0: 616c 6c79 2061 2063 6f6e 7465 6e74 2069 ally a content i
│ │ │ │ -0010e3b0: 6420 2843 4944 2920 6f72 2061 2055 5549 d (CID) or a UUI
│ │ │ │ -0010e3c0: 4420 7768 6963 6820 6361 6e20 6265 206f D which can be o
│ │ │ │ -0010e3d0: 6274 6169 6e65 6420 7769 7468 203c 636f btained with
, a
│ │ │ │ -0010e480: 203c 636f 6465 3e74 7970 653c 2f63 6f64 type member is use
│ │ │ │ -0010e4a0: 6420 746f 2073 7065 6369 6679 2074 6865 d to specify the
│ │ │ │ -0010e4b0: 204d 494d 4520 7479 7065 206f 6620 7468 MIME type of th
│ │ │ │ -0010e4c0: 6520 6461 7461 2c20 7468 6520 3c63 6f64 e data, the
│ │ │ │ -0010e4e0: 206d 656d 6265 7220 6973 2075 7365 6420 member is used
│ │ │ │ -0010e4f0: 746f 2070 6967 6779 2d62 6163 6b20 6164 to piggy-back ad
│ │ │ │ -0010e500: 6469 7469 6f6e 616c 2069 6e66 6f72 6d61 ditional informa
│ │ │ │ -0010e510: 7469 6f6e 2077 6974 6820 6120 4449 4d45 tion with a DIME
│ │ │ │ -0010e520: 2061 7474 6163 686d 656e 742e 2054 6865 attachment. The
│ │ │ │ -0010e530: 206f 7264 6572 206f 6620 7468 6520 6465 order of the de
│ │ │ │ -0010e540: 636c 6172 6174 696f 6e20 6f66 2074 6865 claration of the
│ │ │ │ -0010e550: 206d 656d 6265 7273 2069 7320 7369 676e members is sign
│ │ │ │ -0010e560: 6966 6963 616e 742e 2049 6e20 6164 6469 ificant. In addi
│ │ │ │ -0010e570: 7469 6f6e 2c20 6e6f 206f 7468 6572 206d tion, no other m
│ │ │ │ -0010e580: 656d 6265 7273 206f 7220 6d65 7468 6f64 embers or method
│ │ │ │ -0010e590: 7320 6d61 7920 6265 2064 6563 6c61 7265 s may be declare
│ │ │ │ -0010e5a0: 6420 6265 666f 7265 2061 6e79 206f 6620 d before any of
│ │ │ │ -0010e5b0: 7468 6573 6520 6d65 6d62 6572 7320 696e these members in
│ │ │ │ -0010e5c0: 2074 6865 2073 7472 7563 742f 636c 6173 the struct/clas
│ │ │ │ -0010e5d0: 732c 2062 7574 2061 6464 6974 696f 6e61 s, but additiona
│ │ │ │ -0010e5e0: 6c20 6d65 6d62 6572 7320 616e 6420 6d65 l members and me
│ │ │ │ -0010e5f0: 7468 6f64 7320 6d61 7920 6170 7065 6172 thods may appear
│ │ │ │ -0010e600: 2061 6674 6572 2074 6865 206d 656d 6265 after the membe
│ │ │ │ -0010e610: 7220 6465 636c 6172 6174 696f 6e73 2e20 r declarations.
│ │ │ │ -0010e620: 5468 6520 6578 7465 6e64 6564 203c 636f The extended id
│ │ │ │ -0010e6e0: 2061 6e64 203c 636f 6465 3e74 7970 653c and type<
│ │ │ │ -0010e6f0: 2f63 6f64 653e 206d 656d 6265 7273 2063 /code> members c
│ │ │ │ -0010e700: 6f6e 7461 696e 2074 6578 742e 2054 6865 ontain text. The
│ │ │ │ -0010e710: 2073 6574 2074 6865 2044 494d 452d 7370 set the DIME-sp
│ │ │ │ -0010e720: 6563 6966 6963 206f 7074 696f 6e73 206d ecific options m
│ │ │ │ -0010e730: 656d 6265 722c 2079 6f75 2063 616e 2075 ember, you can u
│ │ │ │ -0010e740: 7365 2074 6865 203c 636f 6465 3e3c 6120 se the
soap
│ │ │ │ -0010e7c0: 5f64 696d 655f 6f70 7469 6f6e 3c2f 613e _dime_option
│ │ │ │ -0010e7d0: 3c2f 636f 6465 3e20 6675 6e63 7469 6f6e
function
│ │ │ │ -0010e7e0: 203c 636f 6465 3e63 6861 7220 2a73 6f61 char *soa
│ │ │ │ -0010e7f0: 705f 6469 6d65 5f6f 7074 696f 6e28 7374 p_dime_option(st
│ │ │ │ -0010e800: 7275 6374 2073 6f61 7020 2a73 6f61 702c ruct soap *soap,
│ │ │ │ -0010e810: 2075 6e73 6967 6e65 6420 7368 6f72 7420 unsigned short
│ │ │ │ -0010e820: 7479 7065 2c20 636f 6e73 7420 6368 6172 type, const char
│ │ │ │ -0010e830: 202a 6f70 7469 6f6e 293c 2f63 6f64 653e *option)
│ │ │ │ -0010e840: 2e3c 2f70 3e0a 3c70 3e54 6869 7320 6675 .id or
type
│ │ │ │ -0010ed80: 3c2f 636f 6465 3e20 6d65 6d62 6572 2076
member v
│ │ │ │ -0010ed90: 616c 7565 7320 6172 6520 6e6f 6e2d 4e55 alues are non-NU
│ │ │ │ -0010eda0: 4c4c 2061 7420 7275 6e20 7469 6d65 2c20 LL at run time,
│ │ │ │ -0010edb0: 7468 6520 6461 7461 2077 696c 6c20 6265 the data will be
│ │ │ │ -0010edc0: 2073 6572 6961 6c69 7a65 6420 6173 2061 serialized as a
│ │ │ │ -0010edd0: 2044 494d 4520 6174 7461 6368 6d65 6e74 DIME attachment
│ │ │ │ -0010ede0: 2e3c 2f70 3e0a 3c70 3e54 6865 2053 4f41 .href attribu
│ │ │ │ -0010ee40: 7465 732e 2054 6869 7320 6765 6e65 7261 tes. This genera
│ │ │ │ -0010ee50: 6c6c 7920 776f 726b 7320 7769 6c6c 2077 lly works will w
│ │ │ │ -0010ee60: 6974 6820 534f 4150 2052 5043 2065 6e63 ith SOAP RPC enc
│ │ │ │ -0010ee70: 6f64 6564 206d 6573 7361 6769 6e67 2c20 oded messaging,
│ │ │ │ -0010ee80: 6265 6361 7573 6520 3c65 6d3e 3c63 6f64 because
id
membe
│ │ │ │ +0010e360: 7220 6973 2066 6f72 2061 7474 6163 686d r is for attachm
│ │ │ │ +0010e370: 656e 7420 7265 6665 7265 6e63 696e 672c ent referencing,
│ │ │ │ +0010e380: 2074 7970 6963 616c 6c79 2061 2063 6f6e typically a con
│ │ │ │ +0010e390: 7465 6e74 2069 6420 2843 4944 2920 6f72 tent id (CID) or
│ │ │ │ +0010e3a0: 2061 2055 5549 4420 7768 6963 6820 6361 a UUID which ca
│ │ │ │ +0010e3b0: 6e20 6265 206f 6274 6169 6e65 6420 7769 n be obtained wi
│ │ │ │ +0010e3c0: 7468 203c 636f 6465 3e3c 6120 636c 6173 th soap_r
│ │ │ │ +0010e450: 616e 645f 7575 6964 3c2f 613e 3c2f 636f and_uuid, a
typ
│ │ │ │ +0010e470: 653c 2f63 6f64 653e 206d 656d 6265 7220 e
member
│ │ │ │ +0010e480: 6973 2075 7365 6420 746f 2073 7065 6369 is used to speci
│ │ │ │ +0010e490: 6679 2074 6865 204d 494d 4520 7479 7065 fy the MIME type
│ │ │ │ +0010e4a0: 206f 6620 7468 6520 6461 7461 2c20 7468 of the data, th
│ │ │ │ +0010e4b0: 6520 3c63 6f64 653e 6f70 7469 6f6e 733c e options<
│ │ │ │ +0010e4c0: 2f63 6f64 653e 206d 656d 6265 7220 6973 /code> member is
│ │ │ │ +0010e4d0: 2075 7365 6420 746f 2070 6967 6779 2d62 used to piggy-b
│ │ │ │ +0010e4e0: 6163 6b20 6164 6469 7469 6f6e 616c 2069 ack additional i
│ │ │ │ +0010e4f0: 6e66 6f72 6d61 7469 6f6e 2077 6974 6820 nformation with
│ │ │ │ +0010e500: 6120 4449 4d45 2061 7474 6163 686d 656e a DIME attachmen
│ │ │ │ +0010e510: 742e 2054 6865 206f 7264 6572 206f 6620 t. The order of
│ │ │ │ +0010e520: 7468 6520 6465 636c 6172 6174 696f 6e20 the declaration
│ │ │ │ +0010e530: 6f66 2074 6865 206d 656d 6265 7273 2069 of the members i
│ │ │ │ +0010e540: 7320 7369 676e 6966 6963 616e 742e 2049 s significant. I
│ │ │ │ +0010e550: 6e20 6164 6469 7469 6f6e 2c20 6e6f 206f n addition, no o
│ │ │ │ +0010e560: 7468 6572 206d 656d 6265 7273 206f 7220 ther members or
│ │ │ │ +0010e570: 6d65 7468 6f64 7320 6d61 7920 6265 2064 methods may be d
│ │ │ │ +0010e580: 6563 6c61 7265 6420 6265 666f 7265 2061 eclared before a
│ │ │ │ +0010e590: 6e79 206f 6620 7468 6573 6520 6d65 6d62 ny of these memb
│ │ │ │ +0010e5a0: 6572 7320 696e 2074 6865 2073 7472 7563 ers in the struc
│ │ │ │ +0010e5b0: 742f 636c 6173 732c 2062 7574 2061 6464 t/class, but add
│ │ │ │ +0010e5c0: 6974 696f 6e61 6c20 6d65 6d62 6572 7320 itional members
│ │ │ │ +0010e5d0: 616e 6420 6d65 7468 6f64 7320 6d61 7920 and methods may
│ │ │ │ +0010e5e0: 6170 7065 6172 2061 6674 6572 2074 6865 appear after the
│ │ │ │ +0010e5f0: 206d 656d 6265 7220 6465 636c 6172 6174 member declarat
│ │ │ │ +0010e600: 696f 6e73 2e20 5468 6520 6578 7465 6e64 ions. The extend
│ │ │ │ +0010e610: 6564 203c 636f 6465 3e3c 6120 636c 6173 ed
xsd__hexBinary<
│ │ │ │ +0010e690: 2f61 3e3c 2f63 6f64 653e 2074 7970 6520 /a>
type
│ │ │ │ +0010e6a0: 6973 2073 696d 696c 6172 2e3c 2f70 3e0a is similar.id<
│ │ │ │ +0010e6c0: 2f63 6f64 653e 2061 6e64 203c 636f 6465 /code> and
fu
│ │ │ │ +0010e7c0: 6e63 7469 6f6e 203c 636f 6465 3e63 6861 nction type
mem
│ │ │ │ +0010e6e0: 6265 7273 2063 6f6e 7461 696e 2074 6578 bers contain tex
│ │ │ │ +0010e6f0: 742e 2054 6865 2073 6574 2074 6865 2044 t. The set the D
│ │ │ │ +0010e700: 494d 452d 7370 6563 6966 6963 206f 7074 IME-specific opt
│ │ │ │ +0010e710: 696f 6e73 206d 656d 6265 722c 2079 6f75 ions member, you
│ │ │ │ +0010e720: 2063 616e 2075 7365 2074 6865 203c 636f can use the cha
│ │ │ │ +0010e7d0: 7220 2a73 6f61 705f 6469 6d65 5f6f 7074 r *soap_dime_opt
│ │ │ │ +0010e7e0: 696f 6e28 7374 7275 6374 2073 6f61 7020 ion(struct soap
│ │ │ │ +0010e7f0: 2a73 6f61 702c 2075 6e73 6967 6e65 6420 *soap, unsigned
│ │ │ │ +0010e800: 7368 6f72 7420 7479 7065 2c20 636f 6e73 short type, cons
│ │ │ │ +0010e810: 7420 6368 6172 202a 6f70 7469 6f6e 293c t char *option)<
│ │ │ │ +0010e820: 2f63 6f64 653e 2e3c 2f70 3e0a 3c70 3e54 /code>.
i
│ │ │ │ +0010ed50: 643c 2f63 6f64 653e 206f 7220 3c63 6f64 d
or hr
│ │ │ │ +0010ee10: 6566 3c2f 636f 6465 3e3c 2f65 6d3e 2061 ef
a
│ │ │ │ +0010ee20: 7474 7269 6275 7465 732e 2054 6869 7320 ttributes. This
│ │ │ │ +0010ee30: 6765 6e65 7261 6c6c 7920 776f 726b 7320 generally works
│ │ │ │ +0010ee40: 7769 6c6c 2077 6974 6820 534f 4150 2052 will with SOAP R
│ │ │ │ +0010ee50: 5043 2065 6e63 6f64 6564 206d 6573 7361 PC encoded messa
│ │ │ │ +0010ee60: 6769 6e67 2c20 6265 6361 7573 6520 3c65 ging, because href attribu
│ │ │ │ +0010ee90: 7465 7320 6172 6520 7065 726d 6974 7465 tes are permitte
│ │ │ │ +0010eea0: 642e 2048 6f77 6576 6572 2c20 7769 7468 d. However, with
│ │ │ │ +0010eeb0: 2064 6f63 756d 656e 742f 6c69 7465 7261 document/litera
│ │ │ │ +0010eec0: 6c20 7374 796c 6520 7468 6520 7265 6665 l style the refe
│ │ │ │ +0010eed0: 7265 6e63 696e 6720 6d65 6368 616e 6973 rencing mechanis
│ │ │ │ +0010eee0: 6d20 6d75 7374 2062 6520 6578 706c 6963 m must be explic
│ │ │ │ +0010eef0: 6974 6c79 2064 6566 696e 6564 2069 6e20 itly defined in
│ │ │ │ +0010ef00: 7468 6520 7363 6865 6d61 206f 6620 7468 the schema of th
│ │ │ │ +0010ef10: 6520 6269 6e61 7279 2074 7970 652e 2054 e binary type. T
│ │ │ │ +0010ef20: 6865 7265 666f 7265 2c20 4d54 4f4d 2069 herefore, MTOM i
│ │ │ │ +0010ef30: 7320 7468 6520 7072 6566 6572 7265 6420 s the preferred
│ │ │ │ +0010ef40: 6174 7461 6368 6d65 6e74 206d 6563 6861 attachment mecha
│ │ │ │ +0010ef50: 6e69 736d 2066 6f72 2064 6f63 756d 656e nism for documen
│ │ │ │ +0010ef60: 742f 6c69 7465 7261 6c20 7374 796c 6520 t/literal style
│ │ │ │ +0010ef70: 6d65 7373 6167 696e 672e 3c2f 703e 0a3c messaging.
char *id; href
│ │ │ │ -0010f7c0: 636f 6465 3e3c 2f65 6d3e 2061 7474 7269 code>
attri
│ │ │ │ -0010f7d0: 6275 7465 7320 666f 7220 7265 6665 7265 butes for refere
│ │ │ │ -0010f7e0: 6e63 696e 672e 2057 6865 6e20 6120 6469 ncing. When a di
│ │ │ │ -0010f7f0: 6666 6572 656e 7420 6174 7472 6962 7574 fferent attribut
│ │ │ │ -0010f800: 6520 6973 2074 6f20 6265 2075 7365 642c e is to be used,
│ │ │ │ -0010f810: 2074 6869 7320 6d75 7374 2062 6520 6578 this must be ex
│ │ │ │ -0010f820: 706c 6963 6974 6c79 2064 6566 696e 6564 plicitly defined
│ │ │ │ -0010f830: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 ://gsoap WSre
│ │ │ │ -0010f880: 6620 7363 6865 6d61 2069 6d70 6f72 743a f schema import:
│ │ │ │ -0010f890: 2068 7474 703a 2f2f 7363 6865 6d61 732e http://schemas.
│ │ │ │ -0010f8a0: 786d 6c73 6f61 702e 6f72 672f 7773 2f32 xmlsoap.org/ws/2
│ │ │ │ -0010f8b0: 3030 322f 3034 2f72 6566 6572 656e 6365 002/04/reference
│ │ │ │ -0010f8c0: 2f20 3c2f 7370 616e 3e3c 2f64 6976 3e0a / char *type; xsd:bas
│ │ │ │ +0010f740: 6536 3442 696e 6172 793c 2f63 6f64 653e e64Binary
│ │ │ │ +0010f750: 3c2f 656d 3e2c 2073 7563 6820 7468 6174 , such that
│ │ │ │ +0010f760: 2074 6865 2064 6174 6120 6361 6e20 6265 the data can be
│ │ │ │ +0010f770: 2073 6572 6961 6c69 7a65 6420 6173 2044 serialized as D
│ │ │ │ +0010f780: 494d 4520 6174 7461 6368 6d65 6e74 7320 IME attachments
│ │ │ │ +0010f790: 7573 696e 6720 3c65 6d3e 3c63 6f64 653e using
│ │ │ │ +0010f7a0: 6872 6566 3c2f 636f 6465 3e3c 2f65 6d3e href
│ │ │ │ +0010f7b0: 2061 7474 7269 6275 7465 7320 666f 7220 attributes for
│ │ │ │ +0010f7c0: 7265 6665 7265 6e63 696e 672e 2057 6865 referencing. Whe
│ │ │ │ +0010f7d0: 6e20 6120 6469 6666 6572 656e 7420 6174 n a different at
│ │ │ │ +0010f7e0: 7472 6962 7574 6520 6973 2074 6f20 6265 tribute is to be
│ │ │ │ +0010f7f0: 2075 7365 642c 2074 6869 7320 6d75 7374 used, this must
│ │ │ │ +0010f800: 2062 6520 6578 706c 6963 6974 6c79 2064 be explicitly d
│ │ │ │ +0010f810: 6566 696e 6564 3a3c 2f70 3e0a 3c64 6976 efined:..Streamin
│ │ │ │ -00110740: 6720 4449 4d45 3c2f 6832 3e0a 3c70 3e53 g DIME
..
.void *(*soap.fd
│ │ │ │ -00110840: 696d 6572 6561 646f 7065 6e29 2873 7472 imereadopen)(str
│ │ │ │ -00110850: 7563 7420 736f 6170 202a 736f 6170 2c20 uct soap *soap,
│ │ │ │ -00110860: 766f 6964 202a 6861 6e64 6c65 2c20 636f void *handle, co
│ │ │ │ -00110870: 6e73 7420 6368 6172 202a 6964 2c20 636f nst char *id, co
│ │ │ │ -00110880: 6e73 7420 6368 6172 202a 7479 7065 2c20 nst char *type,
│ │ │ │ -00110890: 636f 6e73 7420 6368 6172 202a 6f70 7469 const char *opti
│ │ │ │ -001108a0: 6f6e 7329 3c2f 636f 6465 3e20 5468 6973 ons)
This
│ │ │ │ -001108b0: 2063 616c 6c62 6163 6b20 6973 2063 616c callback is cal
│ │ │ │ -001108c0: 6c65 6420 6279 2074 6865 2065 6e67 696e led by the engin
│ │ │ │ -001108d0: 6520 746f 2073 7461 7274 2073 656e 6469 e to start sendi
│ │ │ │ -001108e0: 6e67 2061 2073 7472 6561 6d69 6e67 2044 ng a streaming D
│ │ │ │ -001108f0: 494d 4520 6174 7461 6368 6d65 6e74 2e20 IME attachment.
│ │ │ │ -00110900: 5468 6973 2063 616c 6c62 6163 6b20 6f70 This callback op
│ │ │ │ -00110910: 656e 7320 6120 7374 7265 616d 2074 6f20 ens a stream to
│ │ │ │ -00110920: 7374 6172 7420 7265 6164 696e 6720 7468 start reading th
│ │ │ │ -00110930: 6520 6174 7461 6368 6d65 6e74 2064 6174 e attachment dat
│ │ │ │ -00110940: 6120 746f 2073 656e 642e 2054 6865 2061 a to send. The a
│ │ │ │ -00110950: 6374 7561 6c20 6461 7461 2073 7472 6561 ctual data strea
│ │ │ │ -00110960: 6d20 7769 6c6c 2062 6520 7265 6164 2069 m will be read i
│ │ │ │ -00110970: 6e20 6368 756e 6b73 2075 7369 6e67 2074 n chunks using t
│ │ │ │ -00110980: 6865 203c 636f 6465 3e3c 6120 636c 6173 he soap::f
│ │ │ │ -00110a20: 6469 6d65 7265 6164 3c2f 613e 3c2f 636f dimeread callback unt
│ │ │ │ -00110a40: 696c 206e 6f20 6d6f 7265 2064 6174 6120 il no more data
│ │ │ │ -00110a50: 6973 2061 7661 696c 6162 6c65 2061 6e64 is available and
│ │ │ │ -00110a60: 2074 6865 203c 636f 6465 3e3c 6120 636c the
parameter cont
│ │ │ │ -00110b70: 6169 6e73 2074 6865 2076 616c 7565 206f ains the value o
│ │ │ │ -00110b80: 6620 7468 6520 3c63 6f64 653e 5f5f 7074 f the soap::fdimerea
│ │ │ │ -00110b10: 6463 6c6f 7365 3c2f 613e 3c2f 636f 6465 dclose
callback is ca
│ │ │ │ -00110b30: 6c6c 6564 2074 6f20 636c 6f73 6520 7468 lled to close th
│ │ │ │ -00110b40: 6520 7374 7265 616d 2e20 5468 6520 3c63 e stream. The __pt
│ │ │ │ -00110b90: 723c 2f63 6f64 653e 206d 656d 6265 7220 r
member
│ │ │ │ -00110ba0: 7661 7269 6162 6c65 206f 6620 7468 6520 variable of the
│ │ │ │ -00110bb0: 6174 7461 6368 6d65 6e74 2073 7472 7563 attachment struc
│ │ │ │ -00110bc0: 742f 636c 6173 7320 7769 7468 2064 6174 t/class with dat
│ │ │ │ -00110bd0: 6120 2865 2e67 2e20 3c63 6f64 653e 3c61 a (e.g. xsd_
│ │ │ │ -00110c50: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
or __pt
│ │ │ │ -00110d00: 723c 2f63 6f64 653e 2c20 3c63 6f64 653e r
,
│ │ │ │ -00110d10: 5f5f 7369 7a65 3c2f 636f 6465 3e2c 203c __size
, <
│ │ │ │ -00110d20: 636f 6465 3e69 643c 2f63 6f64 653e 2c20 code>id,
│ │ │ │ -00110d30: 3c63 6f64 653e 7479 7065 3c2f 636f 6465 type
and opti
│ │ │ │ -00110d50: 6f6e 733c 2f63 6f64 653e 206d 656d 6265 ons
membe
│ │ │ │ -00110d60: 7273 292c 2077 6869 6368 2073 686f 756c rs), which shoul
│ │ │ │ -00110d70: 6420 6265 2061 2070 6f69 6e74 6572 2074 d be a pointer t
│ │ │ │ -00110d80: 6f20 7370 6563 6966 6963 2069 6e66 6f72 o specific infor
│ │ │ │ -00110d90: 6d61 7469 6f6e 2073 7563 6820 6173 2061 mation such as a
│ │ │ │ -00110da0: 2066 696c 6520 6465 7363 7269 7074 6f72 file descriptor
│ │ │ │ -00110db0: 206f 7220 6120 706f 696e 7465 7220 746f or a pointer to
│ │ │ │ -00110dc0: 2061 2073 6f6d 6520 6170 706c 6963 6174 a some applicat
│ │ │ │ -00110dd0: 696f 6e2d 7370 6563 6966 6963 2064 6174 ion-specific dat
│ │ │ │ -00110de0: 6120 746f 2062 6520 7061 7373 6564 2074 a to be passed t
│ │ │ │ -00110df0: 6f20 7468 6973 2063 616c 6c62 6163 6b2e o this callback.
│ │ │ │ -00110e00: 2042 6f74 6820 7468 6520 3c63 6f64 653e Both the
│ │ │ │ -00110e10: 5f5f 7074 723c 2f63 6f64 653e 2061 6e64 __ptr
and
│ │ │ │ -00110e20: 203c 636f 6465 3e5f 5f73 697a 653c 2f63 __size members of
│ │ │ │ -00110e40: 7468 6520 6174 7461 6368 6d65 6e74 2073 the attachment s
│ │ │ │ -00110e50: 7472 7563 742f 636c 6173 7320 7368 6f75 truct/class shou
│ │ │ │ -00110e60: 6c64 2068 6176 6520 6265 656e 2073 6574 ld have been set
│ │ │ │ -00110e70: 2062 7920 7468 6520 6170 706c 6963 6174 by the applicat
│ │ │ │ -00110e80: 696f 6e20 7072 696f 7220 746f 2074 6865 ion prior to the
│ │ │ │ -00110e90: 2073 6572 6961 6c69 7a61 7469 6f6e 206f serialization o
│ │ │ │ -00110ea0: 6620 7468 6520 6d65 7373 6167 6520 7769 f the message wi
│ │ │ │ -00110eb0: 7468 2061 7474 6163 686d 656e 7473 2e20 th attachments.
│ │ │ │ -00110ec0: 4966 2074 6865 203c 636f 6465 3e5f 5f73 If the
__s
│ │ │ │ -00110ed0: 697a 653c 2f63 6f64 653e 2069 7320 7a65 ize
is ze
│ │ │ │ -00110ee0: 726f 2061 6e64 2048 5454 5020 6368 756e ro and HTTP chun
│ │ │ │ -00110ef0: 6b69 6e67 2069 7320 656e 6162 6c65 6420 king is enabled
│ │ │ │ -00110f00: 2877 6974 6820 3c63 6f64 653e 2353 4f41 (with #SOA
│ │ │ │ -00110f10: 505f 494f 5f43 4855 4e4b 3c2f 636f 6465 P_IO_CHUNK
), then chunked
│ │ │ │ -00110f30: 2044 494d 4520 6174 7461 6368 6d65 6e74 DIME attachment
│ │ │ │ -00110f40: 7320 6172 6520 7365 6e74 2c20 7365 6520 s are sent, see
│ │ │ │ -00110f50: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap::fdim
│ │ │ │ -00110ff0: 6572 6561 643c 2f61 3e3c 2f63 6f64 653e eread
│ │ │ │ -00111000: 2e20 5468 6520 3c63 6f64 653e 6964 3c2f . The id
│ │ │ │ -00111010: 636f 6465 3e2c 203c 636f 6465 3e74 7970 code>,
parameters are
│ │ │ │ -00111050: 2074 6865 203c 636f 6465 3e69 643c 2f63 the typ
│ │ │ │ -00111020: 653c 2f63 6f64 653e 2061 6e64 203c 636f e
and id (optional I
│ │ │ │ -00111070: 4429 2c20 3c63 6f64 653e 7479 7065 3c2f D),
type
│ │ │ │ -00111080: 636f 6465 3e20 2861 204d 494d 4520 7479 code> (a MIME ty
│ │ │ │ -00111090: 7065 2920 616e 6420 3c63 6f64 653e 6f70 pe) and
op
│ │ │ │ -001110a0: 7469 6f6e 733c 2f63 6f64 653e 2028 4449 tions
(DI
│ │ │ │ -001110b0: 4d45 206f 7074 696f 6e73 2061 7265 2073 ME options are s
│ │ │ │ -001110c0: 6574 2077 6974 6820 3c63 6f64 653e 3c61 et with soa
│ │ │ │ -00111140: 705f 6469 6d65 5f6f 7074 696f 6e3c 2f61 p_dime_option
) of the
│ │ │ │ -00111160: 2061 7474 6163 686d 656e 7420 7374 7275 attachment stru
│ │ │ │ -00111170: 6374 2f63 6c61 7373 2c20 7265 7370 6563 ct/class, respec
│ │ │ │ -00111180: 7469 7665 6c79 2c20 6f66 2077 6869 6368 tively, of which
│ │ │ │ -00111190: 2061 7420 6c65 6173 7420 6f6e 6520 6d65 at least one me
│ │ │ │ -001111a0: 6d62 6572 2073 686f 756c 6420 6265 206e mber should be n
│ │ │ │ -001111b0: 6f6e 2d4e 554c 4c2e 2054 6865 2063 616c on-NULL. The cal
│ │ │ │ -001111c0: 6c62 6163 6b20 7368 6f75 6c64 2072 6574 lback should ret
│ │ │ │ -001111d0: 7572 6e20 7468 6520 3c63 6f64 653e 6861 urn the ha
│ │ │ │ -001111e0: 6e64 6c65 3c2f 636f 6465 3e20 7061 7261 ndle
para
│ │ │ │ -001111f0: 6d65 7465 7220 7661 6c75 6520 6f72 2061 meter value or a
│ │ │ │ -00111200: 6e6f 7468 6572 2070 6f69 6e74 6572 2076 nother pointer v
│ │ │ │ -00111210: 616c 7565 2c20 7768 6963 6820 6973 2070 alue, which is p
│ │ │ │ -00111220: 6173 7365 6420 6173 2074 6865 206e 6577 assed as the new
│ │ │ │ -00111230: 203c 636f 6465 3e68 616e 646c 653c 2f63 handle parameter t
│ │ │ │ -00111250: 6f20 3c63 6f64 653e 3c61 2063 6c61 7373 o
soap::fd
│ │ │ │ -001112f0: 696d 6572 6561 643c 2f61 3e3c 2f63 6f64 imeread
soap::fdimer
│ │ │ │ -001113b0: 6561 6463 6c6f 7365 3c2f 613e 3c2f 636f eadclose callbacks. W
│ │ │ │ -001113d0: 6865 6e20 616e 2065 7272 6f72 206f 6363 hen an error occ
│ │ │ │ -001113e0: 7572 7265 6420 696e 2074 6869 7320 6361 urred in this ca
│ │ │ │ -001113f0: 6c6c 6261 636b 2c20 7468 6520 6361 6c6c llback, the call
│ │ │ │ -00111400: 6261 636b 2073 686f 756c 6420 7265 7475 back should retu
│ │ │ │ -00111410: 726e 204e 554c 4c20 616e 6420 7365 7420 rn NULL and set
│ │ │ │ -00111420: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22
soap
│ │ │ │ -001114d0: 3a3a 6572 726f 723c 2f61 3e3c 2f63 6f64 ::error to an error c
│ │ │ │ -001114f0: 6f64 652c 2065 2e67 2e20 7573 696e 6720 ode, e.g. using
│ │ │ │ -00111500: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22
soap_recei
│ │ │ │ -001115b0: 7665 725f 6661 756c 743c 2f61 3e3c 2f63 ver_fault. The callba
│ │ │ │ -001115d0: 636b 206d 6179 2072 6574 7572 6e20 4e55 ck may return NU
│ │ │ │ -001115e0: 4c4c 2061 6e64 2073 6574 203c 636f 6465 LL and set
soap::err
│ │ │ │ -001116a0: 6f72 3c2f 613e 3c2f 636f 6465 3e20 746f or
to
│ │ │ │ -001116b0: 203c 636f 6465 3e23 534f 4150 5f4f 4b3c #SOAP_OK<
│ │ │ │ -001116c0: 2f63 6f64 653e 2077 6865 6e20 7468 6973 /code> when this
│ │ │ │ -001116d0: 2073 7065 6369 6669 6320 4449 4d45 2061 specific DIME a
│ │ │ │ -001116e0: 7474 6163 686d 656e 7420 7368 6f75 6c64 ttachment should
│ │ │ │ -001116f0: 206e 6f74 2074 6f20 6265 2073 7472 6561 not to be strea
│ │ │ │ -00111700: 6d65 6420 616e 6420 7468 6520 656e 6769 med and the engi
│ │ │ │ -00111710: 6e65 2077 696c 6c20 7369 6d70 6c79 2073 ne will simply s
│ │ │ │ -00111720: 6b69 7020 6974 2e3c 2f6c 693e 0a3c 6c69 kip it.
size_t (*
│ │ │ │ -00111740: 736f 6170 2e66 6469 6d65 7265 6164 2928 soap.fdimeread)(
│ │ │ │ -00111750: 7374 7275 6374 2073 6f61 7020 2a73 6f61 struct soap *soa
│ │ │ │ -00111760: 702c 2076 6f69 6420 2a68 616e 646c 652c p, void *handle,
│ │ │ │ -00111770: 2063 6861 7220 2a62 7566 2c20 7369 7a65 char *buf, size
│ │ │ │ -00111780: 5f74 206c 656e 293c 2f63 6f64 653e 2054 _t len)
T
│ │ │ │ -00111790: 6869 7320 6361 6c6c 6261 636b 2069 7320 his callback is
│ │ │ │ -001117a0: 6361 6c6c 6564 2062 7920 7468 6520 656e called by the en
│ │ │ │ -001117b0: 6769 6e65 2074 6f20 7265 6164 2061 2063 gine to read a c
│ │ │ │ -001117c0: 6875 6e6b 206f 6620 6174 7461 6368 6d65 hunk of attachme
│ │ │ │ -001117d0: 6e74 2064 6174 6120 746f 2074 7261 6e73 nt data to trans
│ │ │ │ -001117e0: 6d69 742e 2054 6865 203c 636f 6465 3e68 mit. The h
│ │ │ │ -001117f0: 616e 646c 653c 2f63 6f64 653e 2070 6172 andle
par
│ │ │ │ -00111800: 616d 6574 6572 2063 6f6e 7461 696e 7320 ameter contains
│ │ │ │ -00111810: 7468 6520 6861 6e64 6c65 2072 6574 7572 the handle retur
│ │ │ │ -00111820: 6e65 6420 6279 2074 6865 203c 636f 6465 ned by the soap::fd
│ │ │ │ -001118d0: 696d 6572 6561 646f 7065 6e3c 2f61 3e3c imereadopen<
│ │ │ │ -001118e0: 2f63 6f64 653e 2063 616c 6c62 6163 6b2e /code> callback.
│ │ │ │ -001118f0: 2054 6865 203c 636f 6465 3e62 7566 3c2f The
buf
│ │ │ │ -00111900: 636f 6465 3e20 7061 7261 6d65 7465 7220 code> parameter
│ │ │ │ -00111910: 6973 2074 6865 2062 7566 6665 7220 6f66 is the buffer of
│ │ │ │ -00111920: 206c 656e 6774 6820 3c63 6f64 653e 6c65 length
le
│ │ │ │ -00111930: 6e3c 2f63 6f64 653e 2069 6e74 6f20 7768 n
into wh
│ │ │ │ -00111940: 6963 6820 6120 6368 756e 6b20 6f66 2064 ich a chunk of d
│ │ │ │ -00111950: 6174 6120 7368 6f75 6c64 2062 6520 7772 ata should be wr
│ │ │ │ -00111960: 6974 7465 6e20 6279 2074 6865 2063 616c itten by the cal
│ │ │ │ -00111970: 6c62 6163 6b2e 2054 6865 2061 6374 7561 lback. The actua
│ │ │ │ -00111980: 6c20 616d 6f75 6e74 206f 6620 6461 7461 l amount of data
│ │ │ │ -00111990: 2077 7269 7474 656e 2069 6e74 6f20 7468 written into th
│ │ │ │ -001119a0: 6520 6275 6666 6572 206d 6179 2062 6520 e buffer may be
│ │ │ │ -001119b0: 6c65 7373 2074 6861 6e20 3c63 6f64 653e less than
│ │ │ │ -001119c0: 6c65 6e3c 2f63 6f64 653e 2061 6e64 2074 len
and t
│ │ │ │ -001119d0: 6869 7320 6163 7475 616c 2061 6d6f 756e his actual amoun
│ │ │ │ -001119e0: 7420 7368 6f75 6c64 2062 6520 7265 7475 t should be retu
│ │ │ │ -001119f0: 726e 6564 2062 7920 7468 6520 6361 6c6c rned by the call
│ │ │ │ -00111a00: 6261 636b 2e20 4120 7265 7475 726e 2076 back. A return v
│ │ │ │ -00111a10: 616c 7565 206f 6620 7a65 726f 2069 6e64 alue of zero ind
│ │ │ │ -00111a20: 6963 6174 6573 2061 6e20 6572 726f 7220 icates an error
│ │ │ │ -00111a30: 616e 6420 3c63 6f64 653e 3c61 2063 6c61 and
│ │ │ │ -00111ae0: 736f 6170 3a3a 6572 726f 723c 2f61 3e3c soap::error<
│ │ │ │ -00111af0: 2f63 6f64 653e 2073 686f 756c 6420 6265 /code> should be
│ │ │ │ -00111b00: 2073 6574 2e20 5468 6520 3c63 6f64 653e set. The
or
│ │ │ │ -00111bf0: 203c 636f 6465 3e3c 6120 636c 6173 733d
│ │ │ │ -00111b10: 5f5f 7369 7a65 3c2f 636f 6465 3e20 6d65 __size
me
│ │ │ │ -00111b20: 6d62 6572 2076 6172 6961 626c 6520 6f66 mber variable of
│ │ │ │ -00111b30: 2074 6865 2061 7474 6163 686d 656e 7420 the attachment
│ │ │ │ -00111b40: 7374 7275 6374 2f63 6c61 7373 2077 6974 struct/class wit
│ │ │ │ -00111b50: 6820 6461 7461 2028 652e 672e 203c 636f h data (e.g. _xo
│ │ │ │ -00111c60: 705f 5f49 6e63 6c75 6465 3c2f 613e 3c2f p__Include
│ │ │ │ -00111c70: 636f 6465 3e20 7769 7468 203c 636f 6465 code> with
__ptr
, <
│ │ │ │ -00111c90: 636f 6465 3e5f 5f73 697a 653c 2f63 6f64 code>__size, id,
type<
│ │ │ │ -00111cc0: 2f63 6f64 653e 2061 6e64 203c 636f 6465 /code> and
options
│ │ │ │ -00111ce0: 6d65 6d62 6572 7329 2073 686f 756c 6420 members) should
│ │ │ │ -00111cf0: 6265 2073 6574 2062 7920 7468 6520 6170 be set by the ap
│ │ │ │ -00111d00: 706c 6963 6174 696f 6e20 7072 696f 7220 plication prior
│ │ │ │ -00111d10: 746f 2074 6865 2073 6572 6961 6c69 7a61 to the serializa
│ │ │ │ -00111d20: 7469 6f6e 206f 6620 7468 6520 6d65 7373 tion of the mess
│ │ │ │ -00111d30: 6167 6520 7769 7468 2061 7474 6163 686d age with attachm
│ │ │ │ -00111d40: 656e 7473 2e20 5468 6520 7661 6c75 6520 ents. The value
│ │ │ │ -00111d50: 6f66 203c 636f 6465 3e5f 5f73 697a 653c of __size<
│ │ │ │ -00111d60: 2f63 6f64 653e 2069 6e64 6963 6174 6573 /code> indicates
│ │ │ │ -00111d70: 2074 6865 2074 6f74 616c 2073 697a 6520 the total size
│ │ │ │ -00111d80: 6f66 2074 6865 2061 7474 6163 686d 656e of the attachmen
│ │ │ │ -00111d90: 7420 6461 7461 2074 6f20 6265 2074 7261 t data to be tra
│ │ │ │ -00111da0: 6e73 6d69 7474 6564 2e20 4966 2074 6865 nsmitted. If the
│ │ │ │ -00111db0: 203c 636f 6465 3e5f 5f73 697a 653c 2f63
__size member vari
│ │ │ │ -00111dd0: 6162 6c65 2069 7320 7a65 726f 2061 6e64 able is zero and
│ │ │ │ -00111de0: 2048 5454 5020 6368 756e 6b69 6e67 2069 HTTP chunking i
│ │ │ │ -00111df0: 7320 656e 6162 6c65 6420 2877 6974 6820 s enabled (with
│ │ │ │ -00111e00: 3c63 6f64 653e 2353 4f41 505f 494f 5f43
#SOAP_IO_C
│ │ │ │ -00111e10: 4855 4e4b 3c2f 636f 6465 3e29 2c20 7468 HUNK
), th
│ │ │ │ -00111e20: 656e 2044 494d 4520 6368 756e 6b65 6420 en DIME chunked
│ │ │ │ -00111e30: 7472 616e 7366 6572 7320 6172 6520 6163 transfers are ac
│ │ │ │ -00111e40: 7469 7661 7465 6420 6279 2074 6865 2065 tivated by the e
│ │ │ │ -00111e50: 6e67 696e 652c 2077 6869 6368 2069 7320 ngine, which is
│ │ │ │ -00111e60: 6d6f 7265 2066 6c65 7869 626c 6520 7369 more flexible si
│ │ │ │ -00111e70: 6e63 6520 7468 6520 6174 7461 6368 6d65 nce the attachme
│ │ │ │ -00111e80: 6e74 2064 6174 6120 7369 7a65 2064 6f65 nt data size doe
│ │ │ │ -00111e90: 7320 6e6f 7420 6e65 6564 2074 6f20 6265 s not need to be
│ │ │ │ -00111ea0: 2064 6574 6572 6d69 6e65 6420 696e 2061 determined in a
│ │ │ │ -00111eb0: 6476 616e 6365 2e20 546f 2075 7365 2044 dvance. To use D
│ │ │ │ -00111ec0: 494d 4520 6368 756e 6b65 6420 7472 616e IME chunked tran
│ │ │ │ -00111ed0: 7366 6572 732c 2065 6e61 626c 6520 4854 sfers, enable HT
│ │ │ │ -00111ee0: 5450 2063 6875 6e6b 696e 6720 7769 7468 TP chunking with
│ │ │ │ -00111ef0: 203c 636f 6465 3e23 534f 4150 5f49 4f5f #SOAP_IO_
│ │ │ │ -00111f00: 4348 554e 4b3c 2f63 6f64 653e 2028 616c CHUNK
(al
│ │ │ │ -00111f10: 736f 203c 636f 6465 3e23 534f 4150 5f49 so #SOAP_I
│ │ │ │ -00111f20: 4f5f 5354 4f52 453c 2f63 6f64 653e 2063 O_STORE
c
│ │ │ │ -00111f30: 616e 2062 6520 7573 6564 2c20 6275 7420 an be used, but
│ │ │ │ -00111f40: 7468 6973 2062 7566 6665 7273 2074 6865 this buffers the
│ │ │ │ -00111f50: 2065 6e74 6972 6520 6d65 7373 6167 6520 entire message
│ │ │ │ -00111f60: 696e 206d 656d 6f72 7920 6265 666f 7265 in memory before
│ │ │ │ -00111f70: 2074 7261 6e73 6d69 7373 696f 6e29 2061 transmission) a
│ │ │ │ -00111f80: 6e64 2073 6574 2074 6865 203c 636f 6465 nd set the __size
m
│ │ │ │ -00111fa0: 656d 6265 7220 7661 7269 6162 6c65 206f ember variable o
│ │ │ │ -00111fb0: 6620 7468 6520 6174 7461 6368 6d65 6e74 f the attachment
│ │ │ │ -00111fc0: 2073 7472 7563 742f 636c 6173 7320 746f struct/class to
│ │ │ │ -00111fd0: 207a 6572 6f2e 2057 6865 6e20 4449 4d45 zero. When DIME
│ │ │ │ -00111fe0: 2061 7474 6163 686d 656e 7420 6368 756e attachment chun
│ │ │ │ -00111ff0: 6b69 6e67 2069 7320 656e 6162 6c65 642c king is enabled,
│ │ │ │ -00112000: 2074 6869 7320 6361 6c6c 6261 636b 2073 this callback s
│ │ │ │ -00112010: 686f 756c 6420 636f 6d70 6c65 7465 6c79 hould completely
│ │ │ │ -00112020: 2066 696c 6c20 7468 6520 3c63 6f64 653e fill the
│ │ │ │ -00112030: 6275 663c 2f63 6f64 653e 2062 7566 6665 buf
buffe
│ │ │ │ -00112040: 7220 7769 7468 203c 636f 6465 3e6c 656e r with len
│ │ │ │ -00112050: 3c2f 636f 6465 3e20 6279 7465 7320 756e
bytes un
│ │ │ │ -00112060: 6c65 7373 2074 6865 206c 6173 7420 6461 less the last da
│ │ │ │ -00112070: 7461 2063 6875 6e6b 2069 7320 7265 6163 ta chunk is reac
│ │ │ │ -00112080: 6865 6420 616e 6420 6665 7765 7220 6279 hed and fewer by
│ │ │ │ -00112090: 7465 7320 6172 6520 7265 7475 726e 6564 tes are returned
│ │ │ │ -001120a0: 2e3c 2f6c 693e 0a3c 6c69 3e3c 636f 6465 .void (*soap.fdi
│ │ │ │ -001120c0: 6d65 7265 6164 636c 6f73 6529 2873 7472 mereadclose)(str
│ │ │ │ -001120d0: 7563 7420 736f 6170 202a 736f 6170 2c20 uct soap *soap,
│ │ │ │ -001120e0: 766f 6964 202a 6861 6e64 6c65 293c 2f63 void *handle) This callba
│ │ │ │ -00112100: 636b 2069 7320 6361 6c6c 6564 2062 7920 ck is called by
│ │ │ │ -00112110: 7468 6520 656e 6769 6e65 2074 6f20 636c the engine to cl
│ │ │ │ -00112120: 6f73 6520 7468 6520 4449 4d45 2061 7474 ose the DIME att
│ │ │ │ -00112130: 6163 686d 656e 7420 7374 7265 616d 2061 achment stream a
│ │ │ │ -00112140: 6674 6572 2072 6561 6469 6e67 2e20 5468 fter reading. Th
│ │ │ │ -00112150: 6520 3c63 6f64 653e 6861 6e64 6c65 3c2f e
handle
│ │ │ │ -00112160: 636f 6465 3e20 7061 7261 6d65 7465 7220 code> parameter
│ │ │ │ -00112170: 636f 6e74 6169 6e73 2074 6865 2068 616e contains the han
│ │ │ │ -00112180: 646c 6520 7265 7475 726e 6564 2062 7920 dle returned by
│ │ │ │ -00112190: 7468 6520 3c63 6f64 653e 3c61 2063 6c61 the
soap::fdimeread
│ │ │ │ -00112240: 6f70 656e 3c2f 613e 3c2f 636f 6465 3e20 open
│ │ │ │ -00112250: 6361 6c6c 6261 636b 2e3c 2f6c 693e 0a3c callback.void *(
│ │ │ │ -00112270: 2a73 6f61 702e 6664 696d 6577 7269 7465 *soap.fdimewrite
│ │ │ │ -00112280: 6f70 656e 2928 7374 7275 6374 2073 6f61 open)(struct soa
│ │ │ │ -00112290: 7020 2a73 6f61 702c 2063 6f6e 7374 2063 p *soap, const c
│ │ │ │ -001122a0: 6861 7220 2a69 642c 2063 6f6e 7374 2063 har *id, const c
│ │ │ │ -001122b0: 6861 7220 2a74 7970 652c 2063 6f6e 7374 har *type, const
│ │ │ │ -001122c0: 2063 6861 7220 2a6f 7074 696f 6e73 293c char *options)<
│ │ │ │ -001122d0: 2f63 6f64 653e 2043 616c 6c65 6420 6279 /code> Called by
│ │ │ │ -001122e0: 2074 6865 2074 6f20 7374 6172 7420 7265 the to start re
│ │ │ │ -001122f0: 6365 6976 696e 6720 6120 7374 7265 616d ceiving a stream
│ │ │ │ -00112300: 696e 6720 4449 4d45 2061 7474 6163 686d ing DIME attachm
│ │ │ │ -00112310: 656e 742e 2054 6869 7320 6361 6c6c 6261 ent. This callba
│ │ │ │ -00112320: 636b 206f 7065 6e73 2061 2073 7472 6561 ck opens a strea
│ │ │ │ -00112330: 6d20 746f 2073 7461 7274 2077 7269 7469 m to start writi
│ │ │ │ -00112340: 6e67 2074 6865 2061 7474 6163 686d 656e ng the attachmen
│ │ │ │ -00112350: 7420 6461 7461 2072 6563 6569 7665 642e t data received.
│ │ │ │ -00112360: 2054 6865 2061 6374 7561 6c20 6461 7461 The actual data
│ │ │ │ -00112370: 2073 7472 6561 6d20 7769 6c6c 2062 6520 stream will be
│ │ │ │ -00112380: 7772 6974 7465 6e20 696e 2063 6875 6e6b written in chunk
│ │ │ │ -00112390: 7320 7573 696e 6720 7468 6520 3c63 6f64 s using the
c
│ │ │ │ -00112450: 616c 6c62 6163 6b20 756e 7469 6c20 6e6f allback until no
│ │ │ │ -00112460: 206d 6f72 6520 6461 7461 2069 7320 6176 more data is av
│ │ │ │ -00112470: 6169 6c61 626c 6520 616e 6420 7468 6520 ailable and the
│ │ │ │ -00112480: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soa
│ │ │ │ -00112520: 703a 3a66 6469 6d65 7772 6974 6563 6c6f p::fdimewriteclo
│ │ │ │ -00112530: 7365 3c2f 613e 3c2f 636f 6465 3e20 6361 se
ca
│ │ │ │ -00112540: 6c6c 6261 636b 2069 7320 6361 6c6c 6564 llback is called
│ │ │ │ -00112550: 2074 6f20 636c 6f73 6520 7468 6520 7374 to close the st
│ │ │ │ -00112560: 7265 616d 2e20 5468 6520 3c63 6f64 653e ream. The
│ │ │ │ -00112570: 6964 3c2f 636f 6465 3e2c 203c 636f 6465 id
, type
and
│ │ │ │ -00112590: 203c 636f 6465 3e6f 7074 696f 6e73 3c2f options
│ │ │ │ -001125a0: 636f 6465 3e20 7061 7261 6d65 7465 7273 code> parameters
│ │ │ │ -001125b0: 2061 7265 2074 6865 203c 636f 6465 3e69 are the
i
│ │ │ │ -001125c0: 643c 2f63 6f64 653e 2c20 3c63 6f64 653e d
,
│ │ │ │ -001125d0: 7479 7065 3c2f 636f 6465 3e20 616e 6420 type
and
│ │ │ │ -001125e0: 3c63 6f64 653e 6f70 7469 6f6e 733c 2f63 options of the atta
│ │ │ │ -00112600: 6368 6d65 6e74 2073 7472 7563 742f 636c chment struct/cl
│ │ │ │ -00112610: 6173 7320 2865 2e67 2e20 3c63 6f64 653e ass (e.g.
,
│ │ │ │ -00112760: 203c 636f 6465 3e69 643c 2f63 6f64 653e
│ │ │ │ -00112620: 3c61 2063 6c61 7373 3d22 656c 2220 6872 xs
│ │ │ │ -00112690: 645f 5f62 6173 6536 3442 696e 6172 793c d__base64Binary<
│ │ │ │ -001126a0: 2f61 3e3c 2f63 6f64 653e 206f 7220 3c63 /a>
or __
│ │ │ │ -00112740: 7074 723c 2f63 6f64 653e 2c20 3c63 6f64 ptr
, id
│ │ │ │ -00112770: 2c20 3c63 6f64 653e 7479 7065 3c2f 636f , type and
op
│ │ │ │ -00112790: 7469 6f6e 733c 2f63 6f64 653e 206d 656d tions
mem
│ │ │ │ -001127a0: 6265 7273 292c 2072 6573 7065 6374 6976 bers), respectiv
│ │ │ │ -001127b0: 656c 792e 2054 6865 2063 616c 6c62 6163 ely. The callbac
│ │ │ │ -001127c0: 6b20 7368 6f75 6c64 2072 6574 7572 6e20 k should return
│ │ │ │ -001127d0: 6120 6861 6e64 6c65 2c20 7768 6963 6820 a handle, which
│ │ │ │ -001127e0: 6973 2070 6173 7365 6420 746f 2074 6865 is passed to the
│ │ │ │ -001127f0: 203c 636f 6465 3e3c 6120 636c 6173 733d soap::fd
│ │ │ │ -00112890: 696d 6577 7269 7465 3c2f 613e 3c2f 636f imewrite and
This cal
│ │ │ │ -00112e10: 6c62 6163 6b20 6973 2063 616c 6c65 6420 lback is called
│ │ │ │ -00112e20: 6279 2074 6865 2065 6e67 696e 6520 746f by the engine to
│ │ │ │ -00112e30: 2063 6c6f 7365 2074 6865 2044 494d 4520 close the DIME
│ │ │ │ -00112e40: 6174 7461 6368 6d65 6e74 2073 7472 6561 attachment strea
│ │ │ │ -00112e50: 6d20 6166 7465 7220 7772 6974 696e 672e m after writing.
│ │ │ │ -00112e60: 2054 6865 203c 636f 6465 3e68 616e 646c The soap::fdime
│ │ │ │ -00112950: 7772 6974 6563 6c6f 7365 3c2f 613e 3c2f writeclose
│ │ │ │ -00112960: 636f 6465 3e20 6361 6c6c 6261 636b 732e code> callbacks.
│ │ │ │ -00112970: 2054 6865 203c 636f 6465 3e5f 5f70 7472 The
│ │ │ │ -00112a00: 206d 656d 6265 7220 7661 7269 6162 6c65 member variable
│ │ │ │ -00112a10: 2069 7320 7365 7420 746f 2074 6865 2073 is set to the s
│ │ │ │ -00112a20: 697a 6520 6f66 2074 6865 2061 7474 6163 ize of the attac
│ │ │ │ -00112a30: 686d 656e 7420 7265 6365 6976 6564 2e20 hment received.
│ │ │ │ -00112a40: 5468 6520 6d61 7869 6d75 6d20 4449 4d45 The maximum DIME
│ │ │ │ -00112a50: 2061 7474 6163 686d 656e 7420 7369 7a65 attachment size
│ │ │ │ -00112a60: 2072 6563 6569 7665 6420 6973 206c 696d received is lim
│ │ │ │ -00112a70: 6974 6564 2062 7920 3c63 6f64 653e 2353 ited by __ptr
│ │ │ │ -00112980: 3c2f 636f 6465 3e20 6d65 6d62 6572 2076
member v
│ │ │ │ -00112990: 6172 6961 626c 6520 6f66 2074 6865 2061 ariable of the a
│ │ │ │ -001129a0: 7474 6163 686d 656e 7420 7374 7275 6374 ttachment struct
│ │ │ │ -001129b0: 2f63 6c61 7373 2069 7320 7365 7420 6279 /class is set by
│ │ │ │ -001129c0: 2074 6865 2065 6e67 696e 6520 746f 2074 the engine to t
│ │ │ │ -001129d0: 6865 2076 616c 7565 206f 6620 7468 6973 he value of this
│ │ │ │ -001129e0: 2068 616e 646c 652e 2054 6865 203c 636f handle. The #S
│ │ │ │ -00112a80: 4f41 505f 4d41 5844 494d 4553 495a 453c OAP_MAXDIMESIZE<
│ │ │ │ -00112a90: 2f63 6f64 653e 2e3c 2f6c 693e 0a3c 6c69 /code>..
.
│ │ │ │ -00112cb0: 2052 6574 7572 6e73 203c 636f 6465 3e23 Returns int (*soa
│ │ │ │ -00112ab0: 702e 6664 696d 6577 7269 7465 2928 7374 p.fdimewrite)(st
│ │ │ │ -00112ac0: 7275 6374 2073 6f61 7020 2a73 6f61 702c ruct soap *soap,
│ │ │ │ -00112ad0: 2076 6f69 6420 2a68 616e 646c 652c 2063 void *handle, c
│ │ │ │ -00112ae0: 6f6e 7374 2063 6861 7220 2a62 7566 2c20 onst char *buf,
│ │ │ │ -00112af0: 7369 7a65 5f74 206c 656e 293c 2f63 6f64 size_t len) This callback
│ │ │ │ -00112b10: 2069 7320 6361 6c6c 6564 2062 7920 7468 is called by th
│ │ │ │ -00112b20: 6520 656e 6769 6e65 2074 6f20 7772 6974 e engine to writ
│ │ │ │ -00112b30: 6520 6120 6368 756e 6b20 6f66 2061 7474 e a chunk of att
│ │ │ │ -00112b40: 6163 686d 656e 7420 6461 7461 2072 6563 achment data rec
│ │ │ │ -00112b50: 6569 7665 642e 2054 6865 203c 636f 6465 eived. The
callba
│ │ │ │ -00112c60: 636b 2e20 5468 6520 3c63 6f64 653e 6275 ck. The handle
p
│ │ │ │ -00112b70: 6172 616d 6574 6572 2063 6f6e 7461 696e arameter contain
│ │ │ │ -00112b80: 7320 7468 6520 6861 6e64 6c65 2072 6574 s the handle ret
│ │ │ │ -00112b90: 7572 6e65 6420 6279 2074 6865 203c 636f urned by the bu
│ │ │ │ -00112c70: 663c 2f63 6f64 653e 2070 6172 616d 6574 f
paramet
│ │ │ │ -00112c80: 6572 2063 6f6e 7461 696e 7320 7468 6520 er contains the
│ │ │ │ -00112c90: 6461 7461 206f 6620 6c65 6e67 7468 203c data of length <
│ │ │ │ -00112ca0: 636f 6465 3e6c 656e 3c2f 636f 6465 3e2e code>len#
│ │ │ │ -00112cc0: 534f 4150 5f4f 4b3c 2f63 6f64 653e 206f SOAP_OK
o
│ │ │ │ -00112cd0: 7220 6120 3c63 6f64 653e 3c61 2063 6c61 r a soap_
│ │ │ │ -00112d90: 7374 6174 7573 3c2f 613e 3c2f 636f 6465 status
(int) error co
│ │ │ │ -00112db0: 6465 2e3c 2f6c 693e 0a3c 6c69 3e3c 636f de..handl
│ │ │ │ -00112e70: 653c 2f63 6f64 653e 2070 6172 616d 6574 e
paramet
│ │ │ │ -00112e80: 6572 2063 6f6e 7461 696e 7320 7468 6520 er contains the
│ │ │ │ -00112e90: 6861 6e64 6c65 2072 6574 7572 6e65 6420 handle returned
│ │ │ │ -00112ea0: 6279 2074 6865 203c 636f 6465 3e3c 6120 by the soap::fdimew
│ │ │ │ -00112f50: 7269 7465 6f70 656e 3c2f 613e 3c2f 636f riteopen callback..
void* s
│ │ │ │ -00113050: 6f61 703a 3a75 7365 723c 2f61 3e3c 2f63 oap::user member is a
│ │ │ │ -00113070: 7661 696c 6162 6c65 2074 6f20 7061 7373 vailable to pass
│ │ │ │ -00113080: 2075 7365 722d 6465 6669 6e65 6420 6461 user-defined da
│ │ │ │ -00113090: 7461 2074 6f20 7468 6520 6361 6c6c 6261 ta to the callba
│ │ │ │ -001130a0: 636b 732e 2054 6869 7320 7761 792c 2079 cks. This way, y
│ │ │ │ -001130b0: 6f75 2063 616e 2073 6574 203c 636f 6465 ou can set
void* s
│ │ │ │ -00113180: 6f61 703a 3a75 7365 723c 2f61 3e3c 2f63 oap::user to point to
│ │ │ │ -001131a0: 2061 7070 6c69 6361 7469 6f6e 2064 6174 application dat
│ │ │ │ -001131b0: 6120 7468 6174 2074 6865 2063 616c 6c62 a that the callb
│ │ │ │ -001131c0: 6163 6b73 206e 6565 6420 7375 6368 2061 acks need such a
│ │ │ │ -001131d0: 7320 6120 6669 6c65 206e 616d 6520 666f s a file name fo
│ │ │ │ -001131e0: 7220 6578 616d 706c 652e 3c2f 703e 0a3c r example.
size_t
│ │ │ │ -00113b10: 7370 616e 3e20 693b 203c 2f64 6976 3e0a span> i; l
│ │ │ │ +0010fb70: 6f63 6174 696f 6e3c 2f63 6f64 653e 3c2f ocation
│ │ │ │ +0010fb80: 656d 3e20 6174 7472 6962 7574 6520 6465 em> attribute de
│ │ │ │ +0010fb90: 6669 6e65 6420 696e 2074 6865 2063 6f6e fined in the con
│ │ │ │ +0010fba0: 7465 6e74 2072 6566 6572 656e 6365 2073 tent reference s
│ │ │ │ +0010fbb0: 6368 656d 612c 2061 7320 6465 6669 6e65 chema, as define
│ │ │ │ +0010fbc0: 6420 696e 206f 6e65 206f 6620 7468 6520 d in one of the
│ │ │ │ +0010fbd0: 7665 6e64 6f72 2773 2073 7065 6369 6669 vendor's specifi
│ │ │ │ +0010fbe0: 6320 5753 444c 2065 7874 656e 7369 6f6e c WSDL extension
│ │ │ │ +0010fbf0: 7320 666f 7220 4449 4d45 203c 6120 6872 s for DIME
│ │ │ │ +0010fc50: 6874 7470 3a2f 2f77 7777 2e67 6f74 646f http://www.gotdo
│ │ │ │ +0010fc60: 746e 6574 2e63 6f6d 2f74 6561 6d2f 786d tnet.com/team/xm
│ │ │ │ +0010fc70: 6c5f 7773 7370 6563 732f 6469 6d65 2f57 l_wsspecs/dime/W
│ │ │ │ +0010fc80: 5344 4c2d 4578 7465 6e73 696f 6e2d 666f SDL-Extension-fo
│ │ │ │ +0010fc90: 722d 4449 4d45 2e68 746d 3c2f 613e 2e3c r-DIME.htm.<
│ │ │ │ +0010fca0: 2f70 3e0a 3c70 3e57 6865 6e20 7265 6365 /p>.
│ │ │ │ +0010fd10: 3c61 2063 6c61 7373 3d22 656c 2220 6872 xs
│ │ │ │ +0010fd80: 645f 5f62 6173 6536 3442 696e 6172 793c d__base64Binary<
│ │ │ │ +0010fd90: 2f61 3e3c 2f63 6f64 653e 2061 6e64 203c /a>
and <
│ │ │ │ +0010fda0: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>xsd
│ │ │ │ +0010fe10: 5f5f 6865 7842 696e 6172 793c 2f61 3e3c __hexBinary<
│ │ │ │ +0010fe20: 2f63 6f64 653e 2062 696e 6172 7920 6461 /code> binary da
│ │ │ │ +0010fe30: 7461 2074 7970 6573 206f 6e6c 7920 7768 ta types only wh
│ │ │ │ +0010fe40: 656e 2074 6865 2058 4d4c 2070 6172 7473 en the XML parts
│ │ │ │ +0010fe50: 206f 6620 7468 6520 6d65 7373 6167 6520 of the message
│ │ │ │ +0010fe60: 7573 6573 203c 656d 3e3c 636f 6465 3e68 uses h
│ │ │ │ +0010fe70: 7265 663c 2f63 6f64 653e 3c2f 656d 3e20 ref
│ │ │ │ +0010fe80: 6174 7472 6962 7574 6573 2074 6f20 7265 attributes to re
│ │ │ │ +0010fe90: 6665 7220 746f 2074 6865 7365 2061 7474 fer to these att
│ │ │ │ +0010fea0: 6163 686d 656e 7473 2e20 4966 2073 6f2c achments. If so,
│ │ │ │ +0010feb0: 2074 6865 2062 696e 6172 7920 6461 7461 the binary data
│ │ │ │ +0010fec0: 2074 7970 6520 3c63 6f64 653e 5f5f 7074 type __pt
│ │ │ │ +0010fed0: 723c 2f63 6f64 653e 2061 6e64 203c 636f r
and __pt
│ │ │ │ +0010ffd0: 723c 2f63 6f64 653e 206d 656d 6265 7220 r
member
│ │ │ │ +0010ffe0: 6973 204e 554c 4c20 616e 6420 7468 6520 is NULL and the
│ │ │ │ +0010fff0: 3c63 6f64 653e 6964 3c2f 636f 6465 3e20 id
│ │ │ │ +00110000: 6d65 6d62 6572 2072 6566 6572 7320 746f member refers to
│ │ │ │ +00110010: 2074 6865 2065 7874 6572 6e61 6c20 6461 the external da
│ │ │ │ +00110020: 7461 2073 6f75 7263 652e 3c2f 703e 0a3c ta source.dime
│ │ │ │ +00110040: 5f69 645f 666f 726d 6174 3c2f 636f 6465 _id_format
attribute of t
│ │ │ │ +00110060: 6865 2063 7572 7265 6e74 2063 6f6e 7465 he current conte
│ │ │ │ +00110070: 7874 2063 616e 2062 6520 7365 7420 746f xt can be set to
│ │ │ │ +00110080: 2074 6865 2064 6566 6175 6c74 2066 6f72 the default for
│ │ │ │ +00110090: 6d61 7420 6f66 2044 494d 4520 6964 206d mat of DIME id m
│ │ │ │ +001100a0: 656d 6265 7273 2e20 5468 6520 666f 726d embers. The form
│ │ │ │ +001100b0: 6174 2073 7472 696e 6720 6d75 7374 2063 at string must c
│ │ │ │ +001100c0: 6f6e 7461 696e 2061 203c 636f 6465 3e64 ontain a d
│ │ │ │ +001100d0: 3c2f 636f 6465 3e20 666f 726d 6174 2073
format s
│ │ │ │ +001100e0: 7065 6369 6669 6572 2028 6f72 2061 6e79 pecifier (or any
│ │ │ │ +001100f0: 206f 7468 6572 203c 636f 6465 3e69 6e74 other int
│ │ │ │ +00110100: 3c2f 636f 6465 3e2d 6261 7365 6420 666f
-based fo
│ │ │ │ +00110110: 726d 6174 2073 7065 6369 6669 6572 292e rmat specifier).
│ │ │ │ +00110120: 2054 6865 2076 616c 7565 206f 6620 7468 The value of th
│ │ │ │ +00110130: 6973 2073 7065 6369 6669 6572 2069 7320 is specifier is
│ │ │ │ +00110140: 6120 6e6f 6e2d 6e65 6761 7469 7665 2069 a non-negative i
│ │ │ │ +00110150: 6e74 6567 6572 2c20 7769 7468 207a 6572 nteger, with zer
│ │ │ │ +00110160: 6f20 6265 696e 6720 7468 6520 7661 6c75 o being the valu
│ │ │ │ +00110170: 6520 6f66 2074 6865 2044 494d 4520 6174 e of the DIME at
│ │ │ │ +00110180: 7461 6368 6d65 6e74 2069 6420 666f 7220 tachment id for
│ │ │ │ +00110190: 7468 6520 534f 4150 206d 6573 7361 6765 the SOAP message
│ │ │ │ +001101a0: 2e20 466f 7220 6578 616d 706c 652c 3c2f . For example,
│ │ │ │ +001101b0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.id
member will us
│ │ │ │ +00110590: 6520 6120 6175 746f 2d67 656e 6572 6174 e a auto-generat
│ │ │ │ +001105a0: 6564 2069 6420 7661 6c75 6520 6261 7365 ed id value base
│ │ │ │ +001105b0: 6420 6f6e 2074 6865 2066 6f72 6d61 7420 d on the format
│ │ │ │ +001105c0: 7374 7269 6e67 2e3c 2f70 3e0a 3c64 6c20 string.
..St
│ │ │ │ +00110720: 7265 616d 696e 6720 4449 4d45 3c2f 6832 reaming DIME
..
.<
│ │ │ │ +00112f60: 703e 496e 2061 6464 6974 696f 6e2c 2061 p>In addition, a
│ │ │ │ +00112f70: 203c 636f 6465 3e76 6f69 642a 203c 6120 void *(*s
│ │ │ │ +00110820: 6f61 702e 6664 696d 6572 6561 646f 7065 oap.fdimereadope
│ │ │ │ +00110830: 6e29 2873 7472 7563 7420 736f 6170 202a n)(struct soap *
│ │ │ │ +00110840: 736f 6170 2c20 766f 6964 202a 6861 6e64 soap, void *hand
│ │ │ │ +00110850: 6c65 2c20 636f 6e73 7420 6368 6172 202a le, const char *
│ │ │ │ +00110860: 6964 2c20 636f 6e73 7420 6368 6172 202a id, const char *
│ │ │ │ +00110870: 7479 7065 2c20 636f 6e73 7420 6368 6172 type, const char
│ │ │ │ +00110880: 202a 6f70 7469 6f6e 7329 3c2f 636f 6465 *options)
This callback
│ │ │ │ +001108a0: 6973 2063 616c 6c65 6420 6279 2074 6865 is called by the
│ │ │ │ +001108b0: 2065 6e67 696e 6520 746f 2073 7461 7274 engine to start
│ │ │ │ +001108c0: 2073 656e 6469 6e67 2061 2073 7472 6561 sending a strea
│ │ │ │ +001108d0: 6d69 6e67 2044 494d 4520 6174 7461 6368 ming DIME attach
│ │ │ │ +001108e0: 6d65 6e74 2e20 5468 6973 2063 616c 6c62 ment. This callb
│ │ │ │ +001108f0: 6163 6b20 6f70 656e 7320 6120 7374 7265 ack opens a stre
│ │ │ │ +00110900: 616d 2074 6f20 7374 6172 7420 7265 6164 am to start read
│ │ │ │ +00110910: 696e 6720 7468 6520 6174 7461 6368 6d65 ing the attachme
│ │ │ │ +00110920: 6e74 2064 6174 6120 746f 2073 656e 642e nt data to send.
│ │ │ │ +00110930: 2054 6865 2061 6374 7561 6c20 6461 7461 The actual data
│ │ │ │ +00110940: 2073 7472 6561 6d20 7769 6c6c 2062 6520 stream will be
│ │ │ │ +00110950: 7265 6164 2069 6e20 6368 756e 6b73 2075 read in chunks u
│ │ │ │ +00110960: 7369 6e67 2074 6865 203c 636f 6465 3e3c sing the <
│ │ │ │ +00110970: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +00110980: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +00110990: 5f63 616c 6c62 6163 6b73 2e68 746d 6c23 _callbacks.html#
│ │ │ │ +001109a0: 6761 3438 3237 3061 6439 3839 3631 6333 ga48270ad98961c3
│ │ │ │ +001109b0: 6666 3438 6337 6235 3634 3834 6562 6233 ff48c7b56484ebb3
│ │ │ │ +001109c0: 6661 2220 7469 746c 653d 2243 616c 6c62 fa" title="Callb
│ │ │ │ +001109d0: 6163 6b20 746f 2072 6561 6420 6461 7461 ack to read data
│ │ │ │ +001109e0: 2069 6e20 6120 4449 4d45 2061 7474 6163 in a DIME attac
│ │ │ │ +001109f0: 686d 656e 7420 7374 7265 616d 2e22 3e73 hment stream.">s
│ │ │ │ +00110a00: 6f61 703a 3a66 6469 6d65 7265 6164 3c2f oap::fdimeread
│ │ │ │ +00110a10: 613e 3c2f 636f 6465 3e20 6361 6c6c 6261 a>
callba
│ │ │ │ +00110a20: 636b 2075 6e74 696c 206e 6f20 6d6f 7265 ck until no more
│ │ │ │ +00110a30: 2064 6174 6120 6973 2061 7661 696c 6162 data is availab
│ │ │ │ +00110a40: 6c65 2061 6e64 2074 6865 203c 636f 6465 le and the soap::fd
│ │ │ │ +00110af0: 696d 6572 6561 6463 6c6f 7365 3c2f 613e imereadclose
│ │ │ │ +00110b00: 3c2f 636f 6465 3e20 6361 6c6c 6261 636b
callback
│ │ │ │ +00110b10: 2069 7320 6361 6c6c 6564 2074 6f20 636c is called to cl
│ │ │ │ +00110b20: 6f73 6520 7468 6520 7374 7265 616d 2e20 ose the stream.
│ │ │ │ +00110b30: 5468 6520 3c63 6f64 653e 6861 6e64 6c65 The handle
│ │ │ │ +00110b40: 3c2f 636f 6465 3e20 7061 7261 6d65 7465
paramete
│ │ │ │ +00110b50: 7220 636f 6e74 6169 6e73 2074 6865 2076 r contains the v
│ │ │ │ +00110b60: 616c 7565 206f 6620 7468 6520 3c63 6f64 alue of the _x
│ │ │ │ +00110cc0: 6f70 5f5f 496e 636c 7564 653c 2f61 3e3c op__Include<
│ │ │ │ +00110cd0: 2f63 6f64 653e 2077 6974 6820 3c63 6f64 /code> with
,
│ │ │ │ +00110cf0: 3c63 6f64 653e 5f5f 7369 7a65 3c2f 636f __size,
id
type
│ │ │ │ +00110d20: 3c2f 636f 6465 3e20 616e 6420 3c63 6f64
and __ptr
__s
│ │ │ │ +00110e10: 697a 653c 2f63 6f64 653e 206d 656d 6265 ize
membe
│ │ │ │ +00110e20: 7273 206f 6620 7468 6520 6174 7461 6368 rs of the attach
│ │ │ │ +00110e30: 6d65 6e74 2073 7472 7563 742f 636c 6173 ment struct/clas
│ │ │ │ +00110e40: 7320 7368 6f75 6c64 2068 6176 6520 6265 s should have be
│ │ │ │ +00110e50: 656e 2073 6574 2062 7920 7468 6520 6170 en set by the ap
│ │ │ │ +00110e60: 706c 6963 6174 696f 6e20 7072 696f 7220 plication prior
│ │ │ │ +00110e70: 746f 2074 6865 2073 6572 6961 6c69 7a61 to the serializa
│ │ │ │ +00110e80: 7469 6f6e 206f 6620 7468 6520 6d65 7373 tion of the mess
│ │ │ │ +00110e90: 6167 6520 7769 7468 2061 7474 6163 686d age with attachm
│ │ │ │ +00110ea0: 656e 7473 2e20 4966 2074 6865 203c 636f ents. If the soap
│ │ │ │ +00110fd0: 3a3a 6664 696d 6572 6561 643c 2f61 3e3c ::fdimeread<
│ │ │ │ +00110fe0: 2f63 6f64 653e 2e20 5468 6520 3c63 6f64 /code>. The
, options
│ │ │ │ +00111020: 3c2f 636f 6465 3e20 7061 7261 6d65 7465
paramete
│ │ │ │ +00111030: 7273 2061 7265 2074 6865 203c 636f 6465 rs are the id
(opti
│ │ │ │ +00111050: 6f6e 616c 2049 4429 2c20 3c63 6f64 653e onal ID),
│ │ │ │ +00111060: 7479 7065 3c2f 636f 6465 3e20 2861 204d type
(a M
│ │ │ │ +00111070: 494d 4520 7479 7065 2920 616e 6420 3c63 IME type) and han
│ │ │ │ +00111220: 646c 653c 2f63 6f64 653e 2070 6172 616d dle
param
│ │ │ │ +00111230: 6574 6572 2074 6f20 3c63 6f64 653e 3c61 eter to so
│ │ │ │ +001112d0: 6170 3a3a 6664 696d 6572 6561 643c 2f61 ap::fdimeread
and soap::error
to an e
│ │ │ │ +001114d0: 7272 6f72 2063 6f64 652c 2065 2e67 2e20 rror code, e.g.
│ │ │ │ +001114e0: 7573 696e 6720 3c63 6f64 653e 3c61 2063 using soap
│ │ │ │ +00111590: 5f72 6563 6569 7665 725f 6661 756c 743c _receiver_fault<
│ │ │ │ +001115a0: 2f61 3e3c 2f63 6f64 653e 2e20 5468 6520 /a>
. The
│ │ │ │ +001115b0: 6361 6c6c 6261 636b 206d 6179 2072 6574 callback may ret
│ │ │ │ +001115c0: 7572 6e20 4e55 4c4c 2061 6e64 2073 6574 urn NULL and set
│ │ │ │ +001115d0: 203c 636f 6465 3e3c 6120 636c 6173 733d soa
│ │ │ │ +00111680: 703a 3a65 7272 6f72 3c2f 613e 3c2f 636f p::error
#SO
│ │ │ │ +001116a0: 4150 5f4f 4b3c 2f63 6f64 653e 2077 6865 AP_OK
whe
│ │ │ │ +001116b0: 6e20 7468 6973 2073 7065 6369 6669 6320 n this specific
│ │ │ │ +001116c0: 4449 4d45 2061 7474 6163 686d 656e 7420 DIME attachment
│ │ │ │ +001116d0: 7368 6f75 6c64 206e 6f74 2074 6f20 6265 should not to be
│ │ │ │ +001116e0: 2073 7472 6561 6d65 6420 616e 6420 7468 streamed and th
│ │ │ │ +001116f0: 6520 656e 6769 6e65 2077 696c 6c20 7369 e engine will si
│ │ │ │ +00111700: 6d70 6c79 2073 6b69 7020 6974 2e3c 2f6c mply skip it..siz
│ │ │ │ +00111720: 655f 7420 282a 736f 6170 2e66 6469 6d65 e_t (*soap.fdime
│ │ │ │ +00111730: 7265 6164 2928 7374 7275 6374 2073 6f61 read)(struct soa
│ │ │ │ +00111740: 7020 2a73 6f61 702c 2076 6f69 6420 2a68 p *soap, void *h
│ │ │ │ +00111750: 616e 646c 652c 2063 6861 7220 2a62 7566 andle, char *buf
│ │ │ │ +00111760: 2c20 7369 7a65 5f74 206c 656e 293c 2f63 , size_t len)
so
│ │ │ │ +001118b0: 6170 3a3a 6664 696d 6572 6561 646f 7065 ap::fdimereadope
│ │ │ │ +001118c0: 6e3c 2f61 3e3c 2f63 6f64 653e 2063 616c n
cal
│ │ │ │ +001118d0: 6c62 6163 6b2e 2054 6865 203c 636f 6465 lback. The buf
para
│ │ │ │ +001118f0: 6d65 7465 7220 6973 2074 6865 2062 7566 meter is the buf
│ │ │ │ +00111900: 6665 7220 6f66 206c 656e 6774 6820 3c63 fer of length len
│ │ │ │ +001119b0: 2061 6e64 2074 6869 7320 6163 7475 616c and this actual
│ │ │ │ +001119c0: 2061 6d6f 756e 7420 7368 6f75 6c64 2062 amount should b
│ │ │ │ +001119d0: 6520 7265 7475 726e 6564 2062 7920 7468 e returned by th
│ │ │ │ +001119e0: 6520 6361 6c6c 6261 636b 2e20 4120 7265 e callback. A re
│ │ │ │ +001119f0: 7475 726e 2076 616c 7565 206f 6620 7a65 turn value of ze
│ │ │ │ +00111a00: 726f 2069 6e64 6963 6174 6573 2061 6e20 ro indicates an
│ │ │ │ +00111a10: 6572 726f 7220 616e 6420 3c63 6f64 653e error and
│ │ │ │ +00111a20: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::erro
│ │ │ │ +00111ad0: 723c 2f61 3e3c 2f63 6f64 653e 2073 686f r
sho
│ │ │ │ +00111ae0: 756c 6420 6265 2073 6574 2e20 5468 6520 uld be set. The
│ │ │ │ +00111af0: 3c63 6f64 653e 5f5f 7369 7a65 3c2f 636f __size member varia
│ │ │ │ +00111b10: 626c 6520 6f66 2074 6865 2061 7474 6163 ble of the attac
│ │ │ │ +00111b20: 686d 656e 7420 7374 7275 6374 2f63 6c61 hment struct/cla
│ │ │ │ +00111b30: 7373 2077 6974 6820 6461 7461 2028 652e ss with data (e.
│ │ │ │ +00111b40: 672e 203c 636f 6465 3e3c 6120 636c 6173 g.
xsd__base
│ │ │ │ +00111bc0: 3634 4269 6e61 7279 3c2f 613e 3c2f 636f 64Binary or
_xop__Include
│ │ │ │ +00111c50: 3c2f 613e 3c2f 636f 6465 3e20 7769 7468
with
│ │ │ │ +00111c60: 203c 636f 6465 3e5f 5f70 7472 3c2f 636f __ptr,
__siz
│ │ │ │ +00111c80: 653c 2f63 6f64 653e 2c20 3c63 6f64 653e e
,
│ │ │ │ +00111c90: 6964 3c2f 636f 6465 3e2c 203c 636f 6465 id
, type
and
│ │ │ │ +00111cb0: 203c 636f 6465 3e6f 7074 696f 6e73 3c2f options
│ │ │ │ +00111cc0: 636f 6465 3e20 6d65 6d62 6572 7329 2073 code> members) s
│ │ │ │ +00111cd0: 686f 756c 6420 6265 2073 6574 2062 7920 hould be set by
│ │ │ │ +00111ce0: 7468 6520 6170 706c 6963 6174 696f 6e20 the application
│ │ │ │ +00111cf0: 7072 696f 7220 746f 2074 6865 2073 6572 prior to the ser
│ │ │ │ +00111d00: 6961 6c69 7a61 7469 6f6e 206f 6620 7468 ialization of th
│ │ │ │ +00111d10: 6520 6d65 7373 6167 6520 7769 7468 2061 e message with a
│ │ │ │ +00111d20: 7474 6163 686d 656e 7473 2e20 5468 6520 ttachments. The
│ │ │ │ +00111d30: 7661 6c75 6520 6f66 203c 636f 6465 3e5f value of
_
│ │ │ │ +00111d40: 5f73 697a 653c 2f63 6f64 653e 2069 6e64 _size
ind
│ │ │ │ +00111d50: 6963 6174 6573 2074 6865 2074 6f74 616c icates the total
│ │ │ │ +00111d60: 2073 697a 6520 6f66 2074 6865 2061 7474 size of the att
│ │ │ │ +00111d70: 6163 686d 656e 7420 6461 7461 2074 6f20 achment data to
│ │ │ │ +00111d80: 6265 2074 7261 6e73 6d69 7474 6564 2e20 be transmitted.
│ │ │ │ +00111d90: 4966 2074 6865 203c 636f 6465 3e5f 5f73 If the __s
│ │ │ │ +00111da0: 697a 653c 2f63 6f64 653e 206d 656d 6265 ize
membe
│ │ │ │ +00111db0: 7220 7661 7269 6162 6c65 2069 7320 7a65 r variable is ze
│ │ │ │ +00111dc0: 726f 2061 6e64 2048 5454 5020 6368 756e ro and HTTP chun
│ │ │ │ +00111dd0: 6b69 6e67 2069 7320 656e 6162 6c65 6420 king is enabled
│ │ │ │ +00111de0: 2877 6974 6820 3c63 6f64 653e 2353 4f41 (with #SOA
│ │ │ │ +00111df0: 505f 494f 5f43 4855 4e4b 3c2f 636f 6465 P_IO_CHUNK
), then DIME ch
│ │ │ │ +00111e10: 756e 6b65 6420 7472 616e 7366 6572 7320 unked transfers
│ │ │ │ +00111e20: 6172 6520 6163 7469 7661 7465 6420 6279 are activated by
│ │ │ │ +00111e30: 2074 6865 2065 6e67 696e 652c 2077 6869 the engine, whi
│ │ │ │ +00111e40: 6368 2069 7320 6d6f 7265 2066 6c65 7869 ch is more flexi
│ │ │ │ +00111e50: 626c 6520 7369 6e63 6520 7468 6520 6174 ble since the at
│ │ │ │ +00111e60: 7461 6368 6d65 6e74 2064 6174 6120 7369 tachment data si
│ │ │ │ +00111e70: 7a65 2064 6f65 7320 6e6f 7420 6e65 6564 ze does not need
│ │ │ │ +00111e80: 2074 6f20 6265 2064 6574 6572 6d69 6e65 to be determine
│ │ │ │ +00111e90: 6420 696e 2061 6476 616e 6365 2e20 546f d in advance. To
│ │ │ │ +00111ea0: 2075 7365 2044 494d 4520 6368 756e 6b65 use DIME chunke
│ │ │ │ +00111eb0: 6420 7472 616e 7366 6572 732c 2065 6e61 d transfers, ena
│ │ │ │ +00111ec0: 626c 6520 4854 5450 2063 6875 6e6b 696e ble HTTP chunkin
│ │ │ │ +00111ed0: 6720 7769 7468 203c 636f 6465 3e23 534f g with #SO
│ │ │ │ +00111ee0: 4150 5f49 4f5f 4348 554e 4b3c 2f63 6f64 AP_IO_CHUNK (also
#
│ │ │ │ +00111f00: 534f 4150 5f49 4f5f 5354 4f52 453c 2f63 SOAP_IO_STORE
__size member vari
│ │ │ │ +00111f90: 6162 6c65 206f 6620 7468 6520 6174 7461 able of the atta
│ │ │ │ +00111fa0: 6368 6d65 6e74 2073 7472 7563 742f 636c chment struct/cl
│ │ │ │ +00111fb0: 6173 7320 746f 207a 6572 6f2e 2057 6865 ass to zero. Whe
│ │ │ │ +00111fc0: 6e20 4449 4d45 2061 7474 6163 686d 656e n DIME attachmen
│ │ │ │ +00111fd0: 7420 6368 756e 6b69 6e67 2069 7320 656e t chunking is en
│ │ │ │ +00111fe0: 6162 6c65 642c 2074 6869 7320 6361 6c6c abled, this call
│ │ │ │ +00111ff0: 6261 636b 2073 686f 756c 6420 636f 6d70 back should comp
│ │ │ │ +00112000: 6c65 7465 6c79 2066 696c 6c20 7468 6520 letely fill the
│ │ │ │ +00112010: 3c63 6f64 653e 6275 663c 2f63 6f64 653e
by
│ │ │ │ +00112040: 7465 7320 756e 6c65 7373 2074 6865 206c tes unless the l
│ │ │ │ +00112050: 6173 7420 6461 7461 2063 6875 6e6b 2069 ast data chunk i
│ │ │ │ +00112060: 7320 7265 6163 6865 6420 616e 6420 6665 s reached and fe
│ │ │ │ +00112070: 7765 7220 6279 7465 7320 6172 6520 7265 wer bytes are re
│ │ │ │ +00112080: 7475 726e 6564 2e3c 2f6c 693e 0a3c 6c69 turned.buf
│ │ │ │ +00112020: 2062 7566 6665 7220 7769 7468 203c 636f buffer with void (*so
│ │ │ │ +001120a0: 6170 2e66 6469 6d65 7265 6164 636c 6f73 ap.fdimereadclos
│ │ │ │ +001120b0: 6529 2873 7472 7563 7420 736f 6170 202a e)(struct soap *
│ │ │ │ +001120c0: 736f 6170 2c20 766f 6964 202a 6861 6e64 soap, void *hand
│ │ │ │ +001120d0: 6c65 293c 2f63 6f64 653e 2054 6869 7320 le)
This
│ │ │ │ +001120e0: 6361 6c6c 6261 636b 2069 7320 6361 6c6c callback is call
│ │ │ │ +001120f0: 6564 2062 7920 7468 6520 656e 6769 6e65 ed by the engine
│ │ │ │ +00112100: 2074 6f20 636c 6f73 6520 7468 6520 4449 to close the DI
│ │ │ │ +00112110: 4d45 2061 7474 6163 686d 656e 7420 7374 ME attachment st
│ │ │ │ +00112120: 7265 616d 2061 6674 6572 2072 6561 6469 ream after readi
│ │ │ │ +00112130: 6e67 2e20 5468 6520 3c63 6f64 653e 6861 ng. The ha
│ │ │ │ +00112140: 6e64 6c65 3c2f 636f 6465 3e20 7061 7261 ndle
para
│ │ │ │ +00112150: 6d65 7465 7220 636f 6e74 6169 6e73 2074 meter contains t
│ │ │ │ +00112160: 6865 2068 616e 646c 6520 7265 7475 726e he handle return
│ │ │ │ +00112170: 6564 2062 7920 7468 6520 3c63 6f64 653e ed by the
│ │ │ │ +00112180: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::fdi
│ │ │ │ +00112220: 6d65 7265 6164 6f70 656e 3c2f 613e 3c2f mereadopen
│ │ │ │ +00112230: 636f 6465 3e20 6361 6c6c 6261 636b 2e3c code> callback.<
│ │ │ │ +00112240: 2f6c 693e 0a3c 6c69 3e3c 636f 6465 3e76 /li>.
v
│ │ │ │ +00112250: 6f69 6420 2a28 2a73 6f61 702e 6664 696d oid *(*soap.fdim
│ │ │ │ +00112260: 6577 7269 7465 6f70 656e 2928 7374 7275 ewriteopen)(stru
│ │ │ │ +00112270: 6374 2073 6f61 7020 2a73 6f61 702c 2063 ct soap *soap, c
│ │ │ │ +00112280: 6f6e 7374 2063 6861 7220 2a69 642c 2063 onst char *id, c
│ │ │ │ +00112290: 6f6e 7374 2063 6861 7220 2a74 7970 652c onst char *type,
│ │ │ │ +001122a0: 2063 6f6e 7374 2063 6861 7220 2a6f 7074 const char *opt
│ │ │ │ +001122b0: 696f 6e73 293c 2f63 6f64 653e 2043 616c ions)
Cal
│ │ │ │ +001122c0: 6c65 6420 6279 2074 6865 2074 6f20 7374 led by the to st
│ │ │ │ +001122d0: 6172 7420 7265 6365 6976 696e 6720 6120 art receiving a
│ │ │ │ +001122e0: 7374 7265 616d 696e 6720 4449 4d45 2061 streaming DIME a
│ │ │ │ +001122f0: 7474 6163 686d 656e 742e 2054 6869 7320 ttachment. This
│ │ │ │ +00112300: 6361 6c6c 6261 636b 206f 7065 6e73 2061 callback opens a
│ │ │ │ +00112310: 2073 7472 6561 6d20 746f 2073 7461 7274 stream to start
│ │ │ │ +00112320: 2077 7269 7469 6e67 2074 6865 2061 7474 writing the att
│ │ │ │ +00112330: 6163 686d 656e 7420 6461 7461 2072 6563 achment data rec
│ │ │ │ +00112340: 6569 7665 642e 2054 6865 2061 6374 7561 eived. The actua
│ │ │ │ +00112350: 6c20 6461 7461 2073 7472 6561 6d20 7769 l data stream wi
│ │ │ │ +00112360: 6c6c 2062 6520 7772 6974 7465 6e20 696e ll be written in
│ │ │ │ +00112370: 2063 6875 6e6b 7320 7573 696e 6720 7468 chunks using th
│ │ │ │ +00112380: 6520 3c63 6f64 653e 3c61 2063 6c61 7373 e soap::f
│ │ │ │ +00112420: 6469 6d65 7772 6974 653c 2f61 3e3c 2f63 dimewrite callback un
│ │ │ │ +00112440: 7469 6c20 6e6f 206d 6f72 6520 6461 7461 til no more data
│ │ │ │ +00112450: 2069 7320 6176 6169 6c61 626c 6520 616e is available an
│ │ │ │ +00112460: 6420 7468 6520 3c63 6f64 653e 3c61 2063 d the
soap::fdimewr
│ │ │ │ +00112510: 6974 6563 6c6f 7365 3c2f 613e 3c2f 636f iteclose callback is
│ │ │ │ +00112530: 6361 6c6c 6564 2074 6f20 636c 6f73 6520 called to close
│ │ │ │ +00112540: 7468 6520 7374 7265 616d 2e20 5468 6520 the stream. The
│ │ │ │ +00112550: 3c63 6f64 653e 6964 3c2f 636f 6465 3e2c
│ │ │ │ +00112730: 2c20 3c63 6f64 653e 5f5f 7369 7a65 3c2f , id
,
│ │ │ │ +00112560: 203c 636f 6465 3e74 7970 653c 2f63 6f64 type and
,
│ │ │ │ +001125b0: 3c63 6f64 653e 7479 7065 3c2f 636f 6465 opt
│ │ │ │ +00112580: 696f 6e73 3c2f 636f 6465 3e20 7061 7261 ions
para
│ │ │ │ +00112590: 6d65 7465 7273 2061 7265 2074 6865 203c meters are the <
│ │ │ │ +001125a0: 636f 6465 3e69 643c 2f63 6f64 653e 2c20 code>idtype
and opti
│ │ │ │ +001125d0: 6f6e 733c 2f63 6f64 653e 206f 6620 7468 ons
of th
│ │ │ │ +001125e0: 6520 6174 7461 6368 6d65 6e74 2073 7472 e attachment str
│ │ │ │ +001125f0: 7563 742f 636c 6173 7320 2865 2e67 2e20 uct/class (e.g.
│ │ │ │ +00112600: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 xsd__base64B
│ │ │ │ +00112680: 696e 6172 793c 2f61 3e3c 2f63 6f64 653e inary
│ │ │ │ +00112690: 206f 7220 3c63 6f64 653e 3c61 2063 6c61 or
│ │ │ │ +00112700: 5f78 6f70 5f5f 496e 636c 7564 653c 2f61 _xop__Include
with __size
│ │ │ │ +00112740: 636f 6465 3e2c 203c 636f 6465 3e69 643c code>,
callba
│ │ │ │ +00112f50: 636b 2e3c 2f6c 693e 0a3c 2f75 6c3e 0a3c ck.id<
│ │ │ │ +00112750: 2f63 6f64 653e 2c20 3c63 6f64 653e 7479 /code>,
call
│ │ │ │ +00112950: 6261 636b 732e 2054 6865 203c 636f 6465 backs. The ty
│ │ │ │ +00112760: 7065 3c2f 636f 6465 3e20 616e 6420 3c63 pe
and so
│ │ │ │ +00112870: 6170 3a3a 6664 696d 6577 7269 7465 3c2f ap::fdimewrite
│ │ │ │ +00112880: 613e 3c2f 636f 6465 3e20 616e 6420 3c63 a>
and __ptr
me
│ │ │ │ +00112970: 6d62 6572 2076 6172 6961 626c 6520 6f66 mber variable of
│ │ │ │ +00112980: 2074 6865 2061 7474 6163 686d 656e 7420 the attachment
│ │ │ │ +00112990: 7374 7275 6374 2f63 6c61 7373 2069 7320 struct/class is
│ │ │ │ +001129a0: 7365 7420 6279 2074 6865 2065 6e67 696e set by the engin
│ │ │ │ +001129b0: 6520 746f 2074 6865 2076 616c 7565 206f e to the value o
│ │ │ │ +001129c0: 6620 7468 6973 2068 616e 646c 652e 2054 f this handle. T
│ │ │ │ +001129d0: 6865 203c 636f 6465 3e5f 5f73 697a 653c he __size<
│ │ │ │ +001129e0: 2f63 6f64 653e 206d 656d 6265 7220 7661 /code> member va
│ │ │ │ +001129f0: 7269 6162 6c65 2069 7320 7365 7420 746f riable is set to
│ │ │ │ +00112a00: 2074 6865 2073 697a 6520 6f66 2074 6865 the size of the
│ │ │ │ +00112a10: 2061 7474 6163 686d 656e 7420 7265 6365 attachment rece
│ │ │ │ +00112a20: 6976 6564 2e20 5468 6520 6d61 7869 6d75 ived. The maximu
│ │ │ │ +00112a30: 6d20 4449 4d45 2061 7474 6163 686d 656e m DIME attachmen
│ │ │ │ +00112a40: 7420 7369 7a65 2072 6563 6569 7665 6420 t size received
│ │ │ │ +00112a50: 6973 206c 696d 6974 6564 2062 7920 3c63 is limited by
..int
│ │ │ │ +00112a90: 2028 2a73 6f61 702e 6664 696d 6577 7269 (*soap.fdimewri
│ │ │ │ +00112aa0: 7465 2928 7374 7275 6374 2073 6f61 7020 te)(struct soap
│ │ │ │ +00112ab0: 2a73 6f61 702c 2076 6f69 6420 2a68 616e *soap, void *han
│ │ │ │ +00112ac0: 646c 652c 2063 6f6e 7374 2063 6861 7220 dle, const char
│ │ │ │ +00112ad0: 2a62 7566 2c20 7369 7a65 5f74 206c 656e *buf, size_t len
│ │ │ │ +00112ae0: 293c 2f63 6f64 653e 2054 6869 7320 6361 )
This ca
│ │ │ │ +00112af0: 6c6c 6261 636b 2069 7320 6361 6c6c 6564 llback is called
│ │ │ │ +00112b00: 2062 7920 7468 6520 656e 6769 6e65 2074 by the engine t
│ │ │ │ +00112b10: 6f20 7772 6974 6520 6120 6368 756e 6b20 o write a chunk
│ │ │ │ +00112b20: 6f66 2061 7474 6163 686d 656e 7420 6461 of attachment da
│ │ │ │ +00112b30: 7461 2072 6563 6569 7665 642e 2054 6865 ta received. The
│ │ │ │ +00112b40: 203c 636f 6465 3e68 616e 646c 653c 2f63 handle parameter c
│ │ │ │ +00112b60: 6f6e 7461 696e 7320 7468 6520 6861 6e64 ontains the hand
│ │ │ │ +00112b70: 6c65 2072 6574 7572 6e65 6420 6279 2074 le returned by t
│ │ │ │ +00112b80: 6865 203c 636f 6465 3e3c 6120 636c 6173 he
p
│ │ │ │ +00112c60: 6172 616d 6574 6572 2063 6f6e 7461 696e arameter contain
│ │ │ │ +00112c70: 7320 7468 6520 6461 7461 206f 6620 6c65 s the data of le
│ │ │ │ +00112c80: 6e67 7468 203c 636f 6465 3e6c 656e 3c2f ngth
│ │ │ │ +00112c20: 736f 6170 3a3a 6664 696d 6577 7269 7465 soap::fdimewrite
│ │ │ │ +00112c30: 6f70 656e 3c2f 613e 3c2f 636f 6465 3e20 open
│ │ │ │ +00112c40: 6361 6c6c 6261 636b 2e20 5468 6520 3c63 callback. The len
│ │ │ │ +00112c90: 636f 6465 3e2e 2052 6574 7572 6e73 203c code>. Returns <
│ │ │ │ +00112ca0: 636f 6465 3e23 534f 4150 5f4f 4b3c 2f63 code>#SOAP_OK or a
│ │ │ │ +00112cc0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap_status
│ │ │ │ +00112d80: 3c2f 636f 6465 3e20 2869 6e74 2920 6572
(int) er
│ │ │ │ +00112d90: 726f 7220 636f 6465 2e3c 2f6c 693e 0a3c ror code.void (*
│ │ │ │ +00112db0: 736f 6170 2e66 6469 6d65 7772 6974 6563 soap.fdimewritec
│ │ │ │ +00112dc0: 6c6f 7365 2928 7374 7275 6374 2073 6f61 lose)(struct soa
│ │ │ │ +00112dd0: 7020 2a73 6f61 702c 2076 6f69 6420 2a68 p *soap, void *h
│ │ │ │ +00112de0: 616e 646c 6529 3c2f 636f 6465 3e20 5468 andle)
Th
│ │ │ │ +00112df0: 6973 2063 616c 6c62 6163 6b20 6973 2063 is callback is c
│ │ │ │ +00112e00: 616c 6c65 6420 6279 2074 6865 2065 6e67 alled by the eng
│ │ │ │ +00112e10: 696e 6520 746f 2063 6c6f 7365 2074 6865 ine to close the
│ │ │ │ +00112e20: 2044 494d 4520 6174 7461 6368 6d65 6e74 DIME attachment
│ │ │ │ +00112e30: 2073 7472 6561 6d20 6166 7465 7220 7772 stream after wr
│ │ │ │ +00112e40: 6974 696e 672e 2054 6865 203c 636f 6465 iting. The handle
p
│ │ │ │ +00112e60: 6172 616d 6574 6572 2063 6f6e 7461 696e arameter contain
│ │ │ │ +00112e70: 7320 7468 6520 6861 6e64 6c65 2072 6574 s the handle ret
│ │ │ │ +00112e80: 7572 6e65 6420 6279 2074 6865 203c 636f urned by the void* soap::user<
│ │ │ │ +00113040: 2f61 3e3c 2f63 6f64 653e 206d 656d 6265 /a>
membe
│ │ │ │ +00113050: 7220 6973 2061 7661 696c 6162 6c65 2074 r is available t
│ │ │ │ +00113060: 6f20 7061 7373 2075 7365 722d 6465 6669 o pass user-defi
│ │ │ │ +00113070: 6e65 6420 6461 7461 2074 6f20 7468 6520 ned data to the
│ │ │ │ +00113080: 6361 6c6c 6261 636b 732e 2054 6869 7320 callbacks. This
│ │ │ │ +00113090: 7761 792c 2079 6f75 2063 616e 2073 6574 way, you can set
│ │ │ │ +001130a0: 203c 636f 6465 3e76 6f69 642a 203c 6120 void* soap::user<
│ │ │ │ +00113170: 2f61 3e3c 2f63 6f64 653e 2074 6f20 706f /a>
to po
│ │ │ │ +00113180: 696e 7420 746f 2061 7070 6c69 6361 7469 int to applicati
│ │ │ │ +00113190: 6f6e 2064 6174 6120 7468 6174 2074 6865 on data that the
│ │ │ │ +001131a0: 2063 616c 6c62 6163 6b73 206e 6565 6420 callbacks need
│ │ │ │ +001131b0: 7375 6368 2061 7320 6120 6669 6c65 206e such as a file n
│ │ │ │ +001131c0: 616d 6520 666f 7220 6578 616d 706c 652e ame for example.
│ │ │ │ +001131d0: 3c2f 703e 0a3c 703e 5468 6520 666f 6c6c .if ((c = fgetc(fd
│ │ │ │ +00113d40: 2929 203d 3d20 454f 4629 203c 2f64 6976 )) == EOF) void *dime_read_o
│ │ │ │ -001141c0: 7065 6e28 3c73 7061 6e20 636c 6173 733d pen(struct
│ │ │ │ -001141e0: 3c2f 7370 616e 3e20 3c61 2063 6c61 7373 s
│ │ │ │ -00114210: 6f61 703c 2f61 3e20 2a3c 6120 636c 6173 oap *
│ │ │ │ -00114240: 736f 6170 3c2f 613e 2c20 3c73 7061 6e20 soap, void
│ │ │ │ -00114270: 2a68 616e 646c 652c 203c 7370 616e 2063 *handle, c
│ │ │ │ -00114290: 6f6e 7374 3c2f 7370 616e 3e20 3c73 7061 onst const
│ │ │ │ +001142f0: 203c 7370 616e 2063 6c61 7373 3d22 6b65 char<
│ │ │ │ +00114310: 2f73 7061 6e3e 202a 7479 7065 2c20 3c73 /span> *type, const
│ │ │ │ +00114340: 203c 7370 616e 2063 6c61 7373 3d22 6b65 char<
│ │ │ │ +00114360: 2f73 7061 6e3e 202a 6f70 7469 6f6e 7329 /span> *options)
│ │ │ │ +00114370: 203c 2f64 6976 3e0a 3c64 6976 2063 6c61 void dime_read_cl
│ │ │ │ -00114470: 6f73 6528 3c73 7061 6e20 636c 6173 733d ose(struct
│ │ │ │ -00114490: 3c2f 7370 616e 3e20 3c61 2063 6c61 7373 s
│ │ │ │ -001144c0: 6f61 703c 2f61 3e20 2a3c 6120 636c 6173 oap *
│ │ │ │ -001144f0: 736f 6170 3c2f 613e 2c20 3c73 7061 6e20 soap, void
│ │ │ │ -00114520: 2a68 616e 646c 6529 203c 2f64 6976 3e0a *handle) return
│ │ │ │ +00114740: 7370 616e 3e20 6672 6561 6428 6275 662c span> fread(buf,
│ │ │ │ +00114750: 2031 2c20 6c65 6e2c 2028 4649 4c45 2a29 1, len, (FILE*)
│ │ │ │ +00114760: 6861 6e64 6c65 293b 203c 2f64 6976 3e0a handle); const
│ │ │ │ -001155a0: 203c 7370 616e 2063 6c61 7373 3d22 6b65 char<
│ │ │ │ -001155c0: 2f73 7061 6e3e 202a 3c73 7061 6e20 636c /span> *id, struct soap *soap
│ │ │ │ +00115560: 613e 2c20 3c73 7061 6e20 636c 6173 733d a>, const<
│ │ │ │ +00115580: 2f73 7061 6e3e 203c 7370 616e 2063 6c61 /span> char *id, const
│ │ │ │ +001155f0: 7370 616e 3e20 3c73 7061 6e20 636c 6173 span>
│ │ │ │ +00115610: 6368 6172 3c2f 7370 616e 3e20 2a74 7970 char *typ
│ │ │ │ +00115620: 652c 203c 7370 616e 2063 6c61 7373 3d22 e, const
│ │ │ │ +00115640: 7370 616e 3e20 3c73 7061 6e20 636c 6173 span>
│ │ │ │ +00115660: 6368 6172 3c2f 7370 616e 3e20 2a6f 7074 char *opt
│ │ │ │ +00115670: 696f 6e73 2920 3c2f 6469 763e 0a3c 6469 ions) "
│ │ │ │ -00115790: 7762 2671 756f 743b 3c2f 7370 616e 3e29 wb")
│ │ │ │ -001157a0: 3b20 3c2f 6469 763e 0a3c 6469 7620 636c ; return
│ │ │ │ -00116140: 7370 616e 3e20 3c61 2063 6c61 7373 3d22 span> SOAP_E
│ │ │ │ -001161a0: 4f46 3c2f 613e 3b20 3c2f 6469 763e 0a3c OF; #SOAP_ENC
│ │ │ │ -00116e00: 5f5a 4c49 423c 2f63 6f64 653e 2063 616e _ZLIB
can
│ │ │ │ -00116e10: 2062 6520 7573 6564 2077 6974 6820 4449 be used with DI
│ │ │ │ -00116e20: 4d45 2074 6f20 636f 6d70 7265 7373 2074 ME to compress t
│ │ │ │ -00116e30: 6865 2065 6e74 6972 6520 6d65 7373 6167 he entire messag
│ │ │ │ -00116e40: 652e 2048 6f77 6576 6572 2c20 636f 6d70 e. However, comp
│ │ │ │ -00116e50: 7265 7373 696f 6e20 7265 7175 6972 6573 ression requires
│ │ │ │ -00116e60: 2062 7566 6665 7269 6e67 2074 6f20 6465 buffering to de
│ │ │ │ -00116e70: 7465 726d 696e 6520 7468 6520 4854 5450 termine the HTTP
│ │ │ │ -00116e80: 2063 6f6e 7465 6e74 206c 656e 6774 6820 content length
│ │ │ │ -00116e90: 6865 6164 6572 2c20 7768 6963 6820 6361 header, which ca
│ │ │ │ -00116ea0: 6e63 656c 7320 7468 6520 6265 6e65 6669 ncels the benefi
│ │ │ │ -00116eb0: 7473 206f 6620 7374 7265 616d 696e 6720 ts of streaming
│ │ │ │ -00116ec0: 4449 4d45 2e20 546f 2061 766f 6964 2074 DIME. To avoid t
│ │ │ │ -00116ed0: 6869 732c 2079 6f75 2073 686f 756c 6420 his, you should
│ │ │ │ -00116ee0: 7573 6520 6368 756e 6b65 6420 4854 5450 use chunked HTTP
│ │ │ │ -00116ef0: 2028 7769 7468 2074 6865 206f 7574 7075 (with the outpu
│ │ │ │ -00116f00: 742d 6d6f 6465 203c 636f 6465 3e23 534f t-mode #SO
│ │ │ │ -00116f10: 4150 5f49 4f5f 4348 554e 4b3c 2f63 6f64 AP_IO_CHUNK flag) with co
│ │ │ │ -00116f30: 6d70 7265 7373 696f 6e20 616e 6420 7374 mpression and st
│ │ │ │ -00116f40: 7265 616d 696e 6720 4449 4d45 2e20 4174 reaming DIME. At
│ │ │ │ -00116f50: 2074 6865 2073 6572 7665 7220 7369 6465 the server side
│ │ │ │ -00116f60: 2c20 7768 656e 2079 6f75 2073 6574 203c , when you set <
│ │ │ │ -00116f70: 636f 6465 3e23 534f 4150 5f49 4f5f 4348 code>#SOAP_IO_CH
│ │ │ │ -00116f80: 554e 4b3c 2f63 6f64 653e 2062 6566 6f72 UNK
befor
│ │ │ │ -00116f90: 6520 6361 6c6c 696e 6720 3c63 6f64 653e e calling
│ │ │ │ -00116fa0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 s
│ │ │ │ -00117010: 6f61 705f 7365 7276 653c 2f61 3e3c 2f63 oap_serve, the engine
│ │ │ │ -00117030: 2077 696c 6c20 6175 746f 6d61 7469 6361 will automatica
│ │ │ │ -00117040: 6c6c 7920 7265 7665 7274 2074 6f20 6275 lly revert to bu
│ │ │ │ -00117050: 6666 6572 696e 6720 283c 636f 6465 3e23 ffering (
#
│ │ │ │ -00117060: 534f 4150 5f49 4f5f 5354 4f52 453c 2f63 SOAP_IO_STORE flag is set
│ │ │ │ -00117080: 292e 2059 6f75 2063 616e 2063 6865 636b ). You can check
│ │ │ │ -00117090: 2074 6869 7320 666c 6167 2077 6974 6820 this flag with
│ │ │ │ -001170a0: 3c63 6f64 653e 2873 6f61 702d 2667 743b
(soap->
│ │ │ │ -001170b0: 6f6d 6f64 6520 2661 6d70 3b20 534f 4150 omode & SOAP
│ │ │ │ -001170c0: 5f49 4f29 203d 3d20 534f 4150 5f49 4f5f _IO) == SOAP_IO_
│ │ │ │ -001170d0: 4348 554e 4b3c 2f63 6f64 653e 2074 6f20 CHUNK
to
│ │ │ │ -001170e0: 7365 6520 6966 2074 6865 2063 6c69 656e see if the clien
│ │ │ │ -001170f0: 7420 6163 6365 7074 7320 6368 756e 6b69 t accepts chunki
│ │ │ │ -00117100: 6e67 2e20 4d6f 7265 2069 6e66 6f72 6d61 ng. More informa
│ │ │ │ -00117110: 7469 6f6e 2061 626f 7574 2073 7472 6561 tion about strea
│ │ │ │ -00117120: 6d69 6e67 2063 6875 6e6b 6564 2044 494d ming chunked DIM
│ │ │ │ -00117130: 4520 6361 6e20 6265 2066 6f75 6e64 2069 E can be found i
│ │ │ │ -00117140: 6e20 5365 6374 696f 6e20 3c61 2063 6c61 n Section Streaming
│ │ │ │ -00117180: 2063 6875 6e6b 6564 2044 494d 453c 2f61 chunked DIME .
..Str
│ │ │ │ -00117350: 6561 6d69 6e67 2063 6875 6e6b 6564 2044 eaming chunked D
│ │ │ │ -00117360: 494d 453c 2f68 323e 0a3c 703e 546f 2073 IME
.#SOAP_IO_CHUNK<
│ │ │ │ -00117470: 2f63 6f64 653e 2066 6c61 672e 2054 6865 /code> flag. The
│ │ │ │ -00117480: 6e2c 2074 6f20 7374 7265 616d 2063 6875 n, to stream chu
│ │ │ │ -00117490: 6e6b 6564 2044 494d 452c 2073 6574 2074 nked DIME, set t
│ │ │ │ -001174a0: 6865 203c 636f 6465 3e5f 5f73 697a 653c he
__size<
│ │ │ │ -001174b0: 2f63 6f64 653e 206d 656d 6265 7220 6f66 /code> member of
│ │ │ │ -001174c0: 2061 6e20 6174 7461 6368 6d65 6e74 2074 an attachment t
│ │ │ │ -001174d0: 6f20 7a65 726f 2061 6e64 2065 6e61 626c o zero and enabl
│ │ │ │ -001174e0: 6520 4449 4d45 2063 6875 6e6b 696e 672e e DIME chunking.
│ │ │ │ -001174f0: 2054 6865 2044 494d 4520 3c63 6f64 653e The DIME
│ │ │ │ -00117500: 3c61 2063 6c61 7373 3d22 656c 2220 6872
│ │ │ │ -00117590: 736f 6170 3a3a 6664 696d 6572 6561 643c soap::fdimeread<
│ │ │ │ -001175a0: 2f61 3e3c 2f63 6f64 653e 2063 616c 6c62 /a>
callb
│ │ │ │ -001175b0: 6163 6b20 7468 656e 2066 6574 6368 6573 ack then fetches
│ │ │ │ -001175c0: 2064 6174 6120 696e 2063 6875 6e6b 7320 data in chunks
│ │ │ │ -001175d0: 616e 6420 6974 2069 7320 696d 706f 7274 and it is import
│ │ │ │ -001175e0: 616e 7420 746f 2066 696c 6c20 7468 6520 ant to fill the
│ │ │ │ -001175f0: 656e 7469 7265 2062 7566 6665 7220 756e entire buffer un
│ │ │ │ -00117600: 6c65 7373 2074 6865 2065 6e64 206f 6620 less the end of
│ │ │ │ -00117610: 7468 6520 6461 7461 2068 6173 2062 6565 the data has bee
│ │ │ │ -00117620: 6e20 7265 6163 6865 6420 616e 6420 7468 n reached and th
│ │ │ │ -00117630: 6520 6c61 7374 2063 6875 6e6b 2069 7320 e last chunk is
│ │ │ │ -00117640: 746f 2062 6520 7365 6e64 2e20 5468 6174 to be send. That
│ │ │ │ -00117650: 2069 732c 203c 636f 6465 3e3c 6120 636c is, soap:
│ │ │ │ -001176f0: 3a66 6469 6d65 7265 6164 3c2f 613e 3c2f :fdimeread
│ │ │ │ -00117700: 636f 6465 3e20 7368 6f75 6c64 2072 6574 code> should ret
│ │ │ │ -00117710: 7572 6e20 7468 6520 7661 6c75 6520 6f66 urn the value of
│ │ │ │ -00117720: 2074 6865 206c 6173 7420 3c63 6f64 653e the last
│ │ │ │ -00117730: 6c65 6e3c 2f63 6f64 653e 2070 6172 616d len
param
│ │ │ │ -00117740: 6574 6572 2061 6e64 2066 696c 6c20 7468 eter and fill th
│ │ │ │ -00117750: 6520 656e 7469 7265 2062 7566 6665 7220 e entire buffer
│ │ │ │ -00117760: 3c63 6f64 653e 6275 663c 2f63 6f64 653e buf
│ │ │ │ -00117770: 2066 6f72 2061 6c6c 2063 6875 6e6b 7320 for all chunks
│ │ │ │ -00117780: 6578 6365 7074 2074 6865 206c 6173 742e except the last.
│ │ │ │ -00117790: 2046 6f72 2074 6865 206c 6173 7420 6974 For the last it
│ │ │ │ -001177a0: 2072 6574 7572 6e73 2030 2e3c 2f70 3e0a returns 0.#S
│ │ │ │ -001177d0: 4f41 505f 494f 5f53 544f 5245 3c2f 636f OAP_IO_STORE flag, but th
│ │ │ │ -001177f0: 6174 2063 616e 6365 6c73 2074 6865 2062 at cancels the b
│ │ │ │ -00117800: 656e 6566 6974 7320 6f66 2073 7472 6561 enefits of strea
│ │ │ │ -00117810: 6d69 6e67 2044 494d 452e 3c2f 703e 0a3c ming DIME.
.WS
│ │ │ │ -00117880: 444c 2062 696e 6469 6e67 7320 666f 7220 DL bindings for
│ │ │ │ -00117890: 4449 4d45 2061 7474 6163 686d 656e 7473 DIME attachments
│ │ │ │ -001178a0: 3c2f 6832 3e0a 3c70 3e54 6865 2077 7364
.xsd_
│ │ │ │ -00117a80: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
struct
│ │ │ │ -00117aa0: 6f72 2063 6c61 7373 2066 6f72 2064 6f63 or class for doc
│ │ │ │ -00117ab0: 756d 656e 742f 6c69 7465 7261 6c20 6d65 ument/literal me
│ │ │ │ -00117ac0: 7373 6167 696e 672e 3c2f 703e 0a3c 703e ssaging..MTOM atta
│ │ │ │ -00117bd0: 6368 6d65 6e74 733c 2f68 313e 0a3c 703e chments
.<
│ │ │ │ -00117fa0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -00117fb0: 663d 2273 7472 7563 745f 5f78 6f70 5f5f f="struct__xop__
│ │ │ │ -00117fc0: 5f5f 5f69 6e63 6c75 6465 2e68 746d 6c22 ___include.html"
│ │ │ │ -00117fd0: 2074 6974 6c65 3d22 584f 5020 696e 636c title="XOP incl
│ │ │ │ -00117fe0: 7564 6520 7374 7275 6374 7572 6520 7769 ude structure wi
│ │ │ │ -00117ff0: 7468 2061 7474 6163 686d 656e 7420 6461 th attachment da
│ │ │ │ -00118000: 7461 2e22 3e5f 786f 705f 5f49 6e63 6c75 ta.">_xop__Inclu
│ │ │ │ -00118010: 6465 3c2f 613e 3c2f 636f 6465 3e20 7374 de
st
│ │ │ │ -00118020: 7275 6374 206f 7220 636c 6173 732c 2074 ruct or class, t
│ │ │ │ -00118030: 6861 7420 6973 2075 7365 6420 746f 2072 hat is used to r
│ │ │ │ -00118040: 6566 6572 656e 6365 2061 7474 6163 686d eference attachm
│ │ │ │ -00118050: 656e 7428 7329 2066 726f 6d20 7468 6520 ent(s) from the
│ │ │ │ -00118060: 534f 4150 206d 6573 7361 6765 2062 6f64 SOAP message bod
│ │ │ │ -00118070: 792e 3c2f 703e 0a3c 703e 4265 6361 7573 y.import/xop
│ │ │ │ -001181a0: 2e68 3c2f 636f 6465 3e3c 2f65 6d3e 2066 .h
f
│ │ │ │ -001181b0: 696c 653a 3c2f 703e 0a3c 6469 7620 636c ile:id
│ │ │ │ -00118fe0: 636f 6465 3e2c 203c 636f 6465 3e74 7970 code>,
members enable
│ │ │ │ -00119020: 204d 544f 4d20 6174 7461 6368 6d65 6e74 MTOM attachment
│ │ │ │ -00119030: 7320 666f 7220 7468 6520 6461 7461 2070 s for the data p
│ │ │ │ -00119040: 6f69 6e74 6564 2074 6f20 6279 203c 636f ointed to by typ
│ │ │ │ -00118ff0: 653c 2f63 6f64 653e 2c20 616e 6420 3c63 e
, and __
│ │ │ │ -00119070: 7369 7a65 3c2f 636f 6465 3e2e 2054 6865 size
. The
│ │ │ │ -00119080: 2070 726f 6365 7373 2066 6f72 2073 656e process for sen
│ │ │ │ -00119090: 6469 6e67 2061 6e64 2072 6563 6569 7669 ding and receivi
│ │ │ │ -001190a0: 6e67 204d 544f 4d20 584f 5020 6174 7461 ng MTOM XOP atta
│ │ │ │ -001190b0: 6368 6d65 6e74 7320 6973 2066 756c 6c79 chments is fully
│ │ │ │ -001190c0: 2061 7574 6f6d 6174 6564 2e20 5468 6520 automated. The
│ │ │ │ -001190d0: 3c63 6f64 653e 6964 3c2f 636f 6465 3e20 id
│ │ │ │ -001190e0: 6d65 6d62 6572 2072 6566 6572 656e 6365 member reference
│ │ │ │ -001190f0: 7320 7468 6520 6174 7461 6368 6d65 6e74 s the attachment
│ │ │ │ -00119100: 2c20 7479 7069 6361 6c6c 7920 6120 636f , typically a co
│ │ │ │ -00119110: 6e74 656e 7420 6964 2043 4944 206f 7220 ntent id CID or
│ │ │ │ -00119120: 5555 4944 2077 6869 6368 2063 616e 2062 UUID which can b
│ │ │ │ -00119130: 6520 6f62 7461 696e 6564 2077 6974 6820 e obtained with
│ │ │ │ -00119140: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap_rand
│ │ │ │ -001191d0: 5f75 7569 643c 2f61 3e3c 2f63 6f64 653e _uuid
│ │ │ │ -001191e0: 2e20 5768 656e 2073 6574 2074 6f20 4e55 . When set to NU
│ │ │ │ -001191f0: 4c4c 2c20 6120 756e 6971 7565 2043 4944 LL, a unique CID
│ │ │ │ -00119200: 2069 7320 6175 746f 6d61 7469 6361 6c6c is automaticall
│ │ │ │ -00119210: 7920 7573 6564 2e20 5468 6520 3c63 6f64 y used. The
│ │ │ │ -00119280: 6f70 7469 6f6e 733c 2f63 6f64 653e 206d options
m
│ │ │ │ -00119290: 656d 6265 7220 6361 6e20 6265 2075 7365 ember can be use
│ │ │ │ -001192a0: 6420 746f 2070 6967 6779 2d62 6163 6b20 d to piggy-back
│ │ │ │ -001192b0: 6465 7363 7269 7074 6976 6520 7465 7874 descriptive text
│ │ │ │ -001192c0: 2077 6974 6820 616e 2061 7474 6163 686d with an attachm
│ │ │ │ -001192d0: 656e 742e 2054 6865 206f 7264 6572 206f ent. The order o
│ │ │ │ -001192e0: 6620 7468 6520 6465 636c 6172 6174 696f f the declaratio
│ │ │ │ -001192f0: 6e20 6f66 2074 6865 206d 656d 6265 7273 n of the members
│ │ │ │ -00119300: 2069 7320 7369 676e 6966 6963 616e 742e is significant.
│ │ │ │ -00119310: 3c2f 703e 0a3c 703e 596f 7520 6361 6e20 xop.h
in your inter
│ │ │ │ -00119350: 6661 6365 2068 6561 6465 7220 6669 6c65 face header file
│ │ │ │ -00119360: 2074 6f20 7573 6520 7468 6520 4d54 4f4d to use the MTOM
│ │ │ │ -00119370: 2061 7474 6163 686d 656e 7473 2c20 666f attachments, fo
│ │ │ │ -00119380: 7220 6578 616d 706c 653a 3c2f 703e 0a3c r example:size_t
│ │ │ │ +00115e30: 7370 616e 3e20 6c65 6e29 203c 2f64 6976 span> len) return
│ │ │ │ +001162b0: 7370 616e 3e20 3c61 2063 6c61 7373 3d22 span> SOAP_O
│ │ │ │ +00116310: 4b3c 2f61 3e3b 203c 2f64 6976 3e0a 3c64 K; #SO
│ │ │ │ +00116de0: 4150 5f45 4e43 5f5a 4c49 423c 2f63 6f64 AP_ENC_ZLIB can be used w
│ │ │ │ +00116e00: 6974 6820 4449 4d45 2074 6f20 636f 6d70 ith DIME to comp
│ │ │ │ +00116e10: 7265 7373 2074 6865 2065 6e74 6972 6520 ress the entire
│ │ │ │ +00116e20: 6d65 7373 6167 652e 2048 6f77 6576 6572 message. However
│ │ │ │ +00116e30: 2c20 636f 6d70 7265 7373 696f 6e20 7265 , compression re
│ │ │ │ +00116e40: 7175 6972 6573 2062 7566 6665 7269 6e67 quires buffering
│ │ │ │ +00116e50: 2074 6f20 6465 7465 726d 696e 6520 7468 to determine th
│ │ │ │ +00116e60: 6520 4854 5450 2063 6f6e 7465 6e74 206c e HTTP content l
│ │ │ │ +00116e70: 656e 6774 6820 6865 6164 6572 2c20 7768 ength header, wh
│ │ │ │ +00116e80: 6963 6820 6361 6e63 656c 7320 7468 6520 ich cancels the
│ │ │ │ +00116e90: 6265 6e65 6669 7473 206f 6620 7374 7265 benefits of stre
│ │ │ │ +00116ea0: 616d 696e 6720 4449 4d45 2e20 546f 2061 aming DIME. To a
│ │ │ │ +00116eb0: 766f 6964 2074 6869 732c 2079 6f75 2073 void this, you s
│ │ │ │ +00116ec0: 686f 756c 6420 7573 6520 6368 756e 6b65 hould use chunke
│ │ │ │ +00116ed0: 6420 4854 5450 2028 7769 7468 2074 6865 d HTTP (with the
│ │ │ │ +00116ee0: 206f 7574 7075 742d 6d6f 6465 203c 636f output-mode
flag) w
│ │ │ │ +00116f10: 6974 6820 636f 6d70 7265 7373 696f 6e20 ith compression
│ │ │ │ +00116f20: 616e 6420 7374 7265 616d 696e 6720 4449 and streaming DI
│ │ │ │ +00116f30: 4d45 2e20 4174 2074 6865 2073 6572 7665 ME. At the serve
│ │ │ │ +00116f40: 7220 7369 6465 2c20 7768 656e 2079 6f75 r side, when you
│ │ │ │ +00116f50: 2073 6574 203c 636f 6465 3e23 534f 4150 set #SOAP
│ │ │ │ +00116f60: 5f49 4f5f 4348 554e 4b3c 2f63 6f64 653e _IO_CHUNK
│ │ │ │ +00116f70: 2062 6566 6f72 6520 6361 6c6c 696e 6720 before calling
│ │ │ │ +00116f80: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap_serve<
│ │ │ │ +00117000: 2f61 3e3c 2f63 6f64 653e 2c20 7468 6520 /a>
, the
│ │ │ │ +00117010: 656e 6769 6e65 2077 696c 6c20 6175 746f engine will auto
│ │ │ │ +00117020: 6d61 7469 6361 6c6c 7920 7265 7665 7274 matically revert
│ │ │ │ +00117030: 2074 6f20 6275 6666 6572 696e 6720 283c to buffering (<
│ │ │ │ +00117040: 636f 6465 3e23 534f 4150 5f49 4f5f 5354 code>#SOAP_IO_ST
│ │ │ │ +00117050: 4f52 453c 2f63 6f64 653e 2066 6c61 6720 ORE flag
│ │ │ │ +00117060: 6973 2073 6574 292e 2059 6f75 2063 616e is set). You can
│ │ │ │ +00117070: 2063 6865 636b 2074 6869 7320 666c 6167 check this flag
│ │ │ │ +00117080: 2077 6974 6820 3c63 6f64 653e 2873 6f61 with (soa
│ │ │ │ +00117090: 702d 2667 743b 6f6d 6f64 6520 2661 6d70 p->omode &
│ │ │ │ +001170a0: 3b20 534f 4150 5f49 4f29 203d 3d20 534f ; SOAP_IO) == SO
│ │ │ │ +001170b0: 4150 5f49 4f5f 4348 554e 4b3c 2f63 6f64 AP_IO_CHUNK to see if the
│ │ │ │ +001170d0: 2063 6c69 656e 7420 6163 6365 7074 7320 client accepts
│ │ │ │ +001170e0: 6368 756e 6b69 6e67 2e20 4d6f 7265 2069 chunking. More i
│ │ │ │ +001170f0: 6e66 6f72 6d61 7469 6f6e 2061 626f 7574 nformation about
│ │ │ │ +00117100: 2073 7472 6561 6d69 6e67 2063 6875 6e6b streaming chunk
│ │ │ │ +00117110: 6564 2044 494d 4520 6361 6e20 6265 2066 ed DIME can be f
│ │ │ │ +00117120: 6f75 6e64 2069 6e20 5365 6374 696f 6e20 ound in Section
│ │ │ │ +00117130: 3c61 2063 6c61 7373 3d22 656c 2220 6872 Str
│ │ │ │ +00117160: 6561 6d69 6e67 2063 6875 6e6b 6564 2044 eaming chunked D
│ │ │ │ +00117170: 494d 453c 2f61 3e20 2e3c 2f70 3e0a 3c64 IME .
options<
│ │ │ │ +001171c0: 2f63 6f64 653e 206d 656d 6265 7220 6973 /code> member is
│ │ │ │ +001171d0: 2061 2044 494d 452d 7370 6563 6966 6963 a DIME-specific
│ │ │ │ +001171e0: 2064 6174 6120 7374 7275 6374 7572 652c data structure,
│ │ │ │ +001171f0: 2063 6f6e 7369 7374 696e 6720 6f66 2061 consisting of a
│ │ │ │ +00117200: 2034 2062 7974 6520 6865 6164 6572 2063 4 byte header c
│ │ │ │ +00117210: 6f6e 7461 696e 696e 6720 7468 6520 6f70 ontaining the op
│ │ │ │ +00117220: 7469 6f6e 2074 7970 6520 696e 666f 2028 tion type info (
│ │ │ │ +00117230: 6869 2062 7974 652c 206c 6f20 6279 7465 hi byte, lo byte
│ │ │ │ +00117240: 292c 206f 7074 696f 6e20 7374 7269 6e67 ), option string
│ │ │ │ +00117250: 206c 656e 6774 6820 2868 6920 6279 7465 length (hi byte
│ │ │ │ +00117260: 2c20 6c6f 2062 7974 6529 2c20 666f 6c6c , lo byte), foll
│ │ │ │ +00117270: 6f77 6564 2062 7920 6120 6e6f 6e2d 275c owed by a non-'\
│ │ │ │ +00117280: 3027 2074 6572 6d69 6e61 7465 6420 7374 0' terminated st
│ │ │ │ +00117290: 7269 6e67 2e20 5468 6520 4449 4d45 2068 ring. The DIME h
│ │ │ │ +001172a0: 616e 646c 6572 2072 6563 6f67 6e69 7a65 andler recognize
│ │ │ │ +001172b0: 7320 6f6e 6520 6f70 7469 6f6e 2061 7420 s one option at
│ │ │ │ +001172c0: 6d6f 7374 2e3c 2f64 643e 3c2f 646c 3e0a most.
│ │ │ │ +00117330: 613e 0a53 7472 6561 6d69 6e67 2063 6875 a>.Streaming chu
│ │ │ │ +00117340: 6e6b 6564 2044 494d 453c 2f68 323e 0a3c nked DIME
.<
│ │ │ │ +00117350: 703e 546f 2073 656e 6420 4449 4d45 2061 p>To send DIME a
│ │ │ │ +00117360: 7474 6163 686d 656e 7473 2c20 7468 6520 ttachments, the
│ │ │ │ +00117370: 6174 7461 6368 6d65 6e74 2073 697a 6573 attachment sizes
│ │ │ │ +00117380: 206d 7573 7420 6265 2064 6574 6572 6d69 must be determi
│ │ │ │ +00117390: 6e65 6420 696e 2061 6476 616e 6365 2074 ned in advance t
│ │ │ │ +001173a0: 6f20 6361 6c63 756c 6174 6520 4854 5450 o calculate HTTP
│ │ │ │ +001173b0: 206d 6573 7361 6765 206c 656e 6774 6820 message length
│ │ │ │ +001173c0: 7265 7175 6972 6564 2074 6f20 7374 7265 required to stre
│ │ │ │ +001173d0: 616d 2044 494d 4520 6f76 6572 2048 5454 am DIME over HTT
│ │ │ │ +001173e0: 502e 2048 6f77 6576 6572 2c20 6368 756e P. However, chun
│ │ │ │ +001173f0: 6b65 6420 4449 4d45 2074 6f67 6574 6865 ked DIME togethe
│ │ │ │ +00117400: 7220 7769 7468 2063 6875 6e6b 6564 2048 r with chunked H
│ │ │ │ +00117410: 5454 5020 6361 6e20 6265 2075 7365 6420 TTP can be used
│ │ │ │ +00117420: 746f 206f 6d69 7420 7468 6973 2073 7465 to omit this ste
│ │ │ │ +00117430: 702e 2046 6972 7374 2073 6574 2074 6865 p. First set the
│ │ │ │ +00117440: 203c 636f 6465 3e23 534f 4150 5f49 4f5f #SOAP_IO_
│ │ │ │ +00117450: 4348 554e 4b3c 2f63 6f64 653e 2066 6c61 CHUNK
fla
│ │ │ │ +00117460: 672e 2054 6865 6e2c 2074 6f20 7374 7265 g. Then, to stre
│ │ │ │ +00117470: 616d 2063 6875 6e6b 6564 2044 494d 452c am chunked DIME,
│ │ │ │ +00117480: 2073 6574 2074 6865 203c 636f 6465 3e5f set the _
│ │ │ │ +00117490: 5f73 697a 653c 2f63 6f64 653e 206d 656d _size
mem
│ │ │ │ +001174a0: 6265 7220 6f66 2061 6e20 6174 7461 6368 ber of an attach
│ │ │ │ +001174b0: 6d65 6e74 2074 6f20 7a65 726f 2061 6e64 ment to zero and
│ │ │ │ +001174c0: 2065 6e61 626c 6520 4449 4d45 2063 6875 enable DIME chu
│ │ │ │ +001174d0: 6e6b 696e 672e 2054 6865 2044 494d 4520 nking. The DIME
│ │ │ │ +001174e0: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap::fdim
│ │ │ │ +00117580: 6572 6561 643c 2f61 3e3c 2f63 6f64 653e eread
│ │ │ │ +00117590: 2063 616c 6c62 6163 6b20 7468 656e 2066 callback then f
│ │ │ │ +001175a0: 6574 6368 6573 2064 6174 6120 696e 2063 etches data in c
│ │ │ │ +001175b0: 6875 6e6b 7320 616e 6420 6974 2069 7320 hunks and it is
│ │ │ │ +001175c0: 696d 706f 7274 616e 7420 746f 2066 696c important to fil
│ │ │ │ +001175d0: 6c20 7468 6520 656e 7469 7265 2062 7566 l the entire buf
│ │ │ │ +001175e0: 6665 7220 756e 6c65 7373 2074 6865 2065 fer unless the e
│ │ │ │ +001175f0: 6e64 206f 6620 7468 6520 6461 7461 2068 nd of the data h
│ │ │ │ +00117600: 6173 2062 6565 6e20 7265 6163 6865 6420 as been reached
│ │ │ │ +00117610: 616e 6420 7468 6520 6c61 7374 2063 6875 and the last chu
│ │ │ │ +00117620: 6e6b 2069 7320 746f 2062 6520 7365 6e64 nk is to be send
│ │ │ │ +00117630: 2e20 5468 6174 2069 732c 203c 636f 6465 . That is, soap::fdimeread
│ │ │ │ +001176e0: 3c2f 613e 3c2f 636f 6465 3e20 7368 6f75
shou
│ │ │ │ +001176f0: 6c64 2072 6574 7572 6e20 7468 6520 7661 ld return the va
│ │ │ │ +00117700: 6c75 6520 6f66 2074 6865 206c 6173 7420 lue of the last
│ │ │ │ +00117710: 3c63 6f64 653e 6c65 6e3c 2f63 6f64 653e len
│ │ │ │ +00117720: 2070 6172 616d 6574 6572 2061 6e64 2066 parameter and f
│ │ │ │ +00117730: 696c 6c20 7468 6520 656e 7469 7265 2062 ill the entire b
│ │ │ │ +00117740: 7566 6665 7220 3c63 6f64 653e 6275 663c uffer buf<
│ │ │ │ +00117750: 2f63 6f64 653e 2066 6f72 2061 6c6c 2063 /code> for all c
│ │ │ │ +00117760: 6875 6e6b 7320 6578 6365 7074 2074 6865 hunks except the
│ │ │ │ +00117770: 206c 6173 742e 2046 6f72 2074 6865 206c last. For the l
│ │ │ │ +00117780: 6173 7420 6974 2072 6574 7572 6e73 2030 ast it returns 0
│ │ │ │ +00117790: 2e3c 2f70 3e0a 3c70 3e59 6f75 2063 616e ..
flag,
│ │ │ │ +001177d0: 6275 7420 7468 6174 2063 616e 6365 6c73 but that cancels
│ │ │ │ +001177e0: 2074 6865 2062 656e 6566 6974 7320 6f66 the benefits of
│ │ │ │ +001177f0: 2073 7472 6561 6d69 6e67 2044 494d 452e streaming DIME.
│ │ │ │ +00117800: 3c2f 703e 0a3c 703e f09f 949d 203c 6120 ..<
│ │ │ │ +00117840: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ +00117850: 2069 643d 2244 494d 4557 5344 4c22 3e3c id="DIMEWSDL"><
│ │ │ │ +00117860: 2f61 3e0a 5753 444c 2062 696e 6469 6e67 /a>.WSDL binding
│ │ │ │ +00117870: 7320 666f 7220 4449 4d45 2061 7474 6163 s for DIME attac
│ │ │ │ +00117880: 686d 656e 7473 3c2f 6832 3e0a 3c70 3e54 hments
..MTO
│ │ │ │ +00117bb0: 4d20 6174 7461 6368 6d65 6e74 733c 2f68 M attachments.
xop:In
│ │ │ │ +00117f40: 636c 7564 653c 2f63 6f64 653e 3c2f 656d clude
is defined in
│ │ │ │ +00117f60: 7468 6520 696e 7465 7266 6163 6520 6865 the interface he
│ │ │ │ +00117f70: 6164 6572 2066 696c 6520 6173 2061 203c ader file as a <
│ │ │ │ +00117f80: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>_xop_
│ │ │ │ +00117ff0: 5f49 6e63 6c75 6465 3c2f 613e 3c2f 636f _Include struct or cl
│ │ │ │ +00118010: 6173 732c 2074 6861 7420 6973 2075 7365 ass, that is use
│ │ │ │ +00118020: 6420 746f 2072 6566 6572 656e 6365 2061 d to reference a
│ │ │ │ +00118030: 7474 6163 686d 656e 7428 7329 2066 726f ttachment(s) fro
│ │ │ │ +00118040: 6d20 7468 6520 534f 4150 206d 6573 7361 m the SOAP messa
│ │ │ │ +00118050: 6765 2062 6f64 792e 3c2f 703e 0a3c 703e ge body.impo
│ │ │ │ +00118180: 7274 2f78 6f70 2e68 3c2f 636f 6465 3e3c rt/xop.h
<
│ │ │ │ +00118190: 2f65 6d3e 2066 696c 653a 3c2f 703e 0a3c /em> file:option
│ │ │ │ +00118ff0: 3c2f 636f 6465 3e20 6d65 6d62 6572 7320
members
│ │ │ │ +00119000: 656e 6162 6c65 204d 544f 4d20 6174 7461 enable MTOM atta
│ │ │ │ +00119010: 6368 6d65 6e74 7320 666f 7220 7468 6520 chments for the
│ │ │ │ +00119020: 6461 7461 2070 6f69 6e74 6564 2074 6f20 data pointed to
│ │ │ │ +00119030: 6279 203c 636f 6465 3e5f 5f70 7472 3c2f by __ptr
│ │ │ │ +00119040: 636f 6465 3e20 6f66 2073 697a 6520 3c63 code> of size
. The process f
│ │ │ │ +00119070: 6f72 2073 656e 6469 6e67 2061 6e64 2072 or sending and r
│ │ │ │ +00119080: 6563 6569 7669 6e67 204d 544f 4d20 584f eceiving MTOM XO
│ │ │ │ +00119090: 5020 6174 7461 6368 6d65 6e74 7320 6973 P attachments is
│ │ │ │ +001190a0: 2066 756c 6c79 2061 7574 6f6d 6174 6564 fully automated
│ │ │ │ +001190b0: 2e20 5468 6520 3c63 6f64 653e 6964 3c2f . The id
│ │ │ │ +001190c0: 636f 6465 3e20 6d65 6d62 6572 2072 6566 code> member ref
│ │ │ │ +001190d0: 6572 656e 6365 7320 7468 6520 6174 7461 erences the atta
│ │ │ │ +001190e0: 6368 6d65 6e74 2c20 7479 7069 6361 6c6c chment, typicall
│ │ │ │ +001190f0: 7920 6120 636f 6e74 656e 7420 6964 2043 y a content id C
│ │ │ │ +00119100: 4944 206f 7220 5555 4944 2077 6869 6368 ID or UUID which
│ │ │ │ +00119110: 2063 616e 2062 6520 6f62 7461 696e 6564 can be obtained
│ │ │ │ +00119120: 2077 6974 6820 3c63 6f64 653e 3c61 2063 with
soa
│ │ │ │ +001191b0: 705f 7261 6e64 5f75 7569 643c 2f61 3e3c p_rand_uuid<
│ │ │ │ +001191c0: 2f63 6f64 653e 2e20 5768 656e 2073 6574 /code>. When set
│ │ │ │ +001191d0: 2074 6f20 4e55 4c4c 2c20 6120 756e 6971 to NULL, a uniq
│ │ │ │ +001191e0: 7565 2043 4944 2069 7320 6175 746f 6d61 ue CID is automa
│ │ │ │ +001191f0: 7469 6361 6c6c 7920 7573 6564 2e20 5468 tically used. Th
│ │ │ │ +00119200: 6520 3c63 6f64 653e 7479 7065 3c2f 636f e
type
options member can
│ │ │ │ +00119280: 6265 2075 7365 6420 746f 2070 6967 6779 be used to piggy
│ │ │ │ +00119290: 2d62 6163 6b20 6465 7363 7269 7074 6976 -back descriptiv
│ │ │ │ +001192a0: 6520 7465 7874 2077 6974 6820 616e 2061 e text with an a
│ │ │ │ +001192b0: 7474 6163 686d 656e 742e 2054 6865 206f ttachment. The o
│ │ │ │ +001192c0: 7264 6572 206f 6620 7468 6520 6465 636c rder of the decl
│ │ │ │ +001192d0: 6172 6174 696f 6e20 6f66 2074 6865 206d aration of the m
│ │ │ │ +001192e0: 656d 6265 7273 2069 7320 7369 676e 6966 embers is signif
│ │ │ │ +001192f0: 6963 616e 742e 3c2f 703e 0a3c 703e 596f icant.
xop.h
in your
│ │ │ │ +00119330: 2069 6e74 6572 6661 6365 2068 6561 6465 interface heade
│ │ │ │ +00119340: 7220 6669 6c65 2074 6f20 7573 6520 7468 r file to use th
│ │ │ │ +00119350: 6520 4d54 4f4d 2061 7474 6163 686d 656e e MTOM attachmen
│ │ │ │ +00119360: 7473 2c20 666f 7220 6578 616d 706c 653a ts, for example:
│ │ │ │ +00119370: 3c2f 703e 0a3c 6469 7620 636c 6173 733d //gsoap SOAP
│ │ │ │ +00119540: 2d45 4e56 2073 6368 656d 6120 6e61 6d65 -ENV schema name
│ │ │ │ +00119550: 7370 6163 653a 2068 7474 703a 2f2f 7777 space: http://ww
│ │ │ │ +00119560: 772e 7733 2e6f 7267 2f32 3030 332f 3035 w.w3.org/2003/05
│ │ │ │ +00119570: 2f73 6f61 702d 656e 7665 6c6f 7065 203c /soap-envelope <
│ │ │ │ +00119580: 2f73 7061 6e3e 3c2f 6469 763e 0a3c 6469 /span>type members are
│ │ │ │ -001199e0: 6e6f 6e2d 4e55 4c4c 2c20 7468 6520 6461 non-NULL, the da
│ │ │ │ -001199f0: 7461 2069 7320 7472 616e 736d 6974 7465 ta is transmitte
│ │ │ │ -00119a00: 6420 6173 204d 544f 4d20 4d49 4d45 2061 d as MTOM MIME a
│ │ │ │ -00119a10: 7474 6163 686d 656e 7420 6966 2074 6865 ttachment if the
│ │ │ │ -00119a20: 203c 636f 6465 3e23 534f 4150 5f45 4e43
#SOAP_ENC
│ │ │ │ -00119a30: 5f4d 544f 4d3c 2f63 6f64 653e 2066 6c61 _MTOM
fla
│ │ │ │ -00119a40: 6720 6973 2073 6574 2069 6e20 7468 6520 g is set in the
│ │ │ │ -00119a50: 6753 4f41 5027 7320 736f 6170 2073 7472 gSOAP's soap str
│ │ │ │ -00119a60: 7563 7420 636f 6e74 6578 743a 3c2f 703e uct context:soap_set_dime_
│ │ │ │ -00119f40: 6174 7461 6368 6d65 6e74 3c2f 613e 3c2f attachment
│ │ │ │ -00119f50: 636f 6465 3e20 6675 6e63 7469 6f6e 2920 code> function)
│ │ │ │ -00119f60: 6f72 2070 6c61 696e 2062 6173 6536 3420 or plain base64
│ │ │ │ -00119f70: 6269 6e61 7279 2058 4d4c 2064 6174 6120 binary XML data
│ │ │ │ -00119f80: 656c 656d 656e 7473 2c20 6974 2069 7320 elements, it is
│ │ │ │ -00119f90: 7665 7279 2065 6173 7920 746f 2061 646f very easy to ado
│ │ │ │ -00119fa0: 7074 204d 544f 4d20 6279 2072 656e 616d pt MTOM by renam
│ │ │ │ -00119fb0: 696e 6720 7468 6520 6269 6e61 7279 2074 ing the binary t
│ │ │ │ -00119fc0: 7970 6573 2074 6f20 3c63 6f64 653e 786f ypes to
xo
│ │ │ │ -00119fd0: 705f 5f49 6e63 6c75 6465 3c2f 636f 6465 p__Include
and using the
│ │ │ │ -00119ff0: 3c63 6f64 653e 2353 4f41 505f 454e 435f #SOAP_ENC_
│ │ │ │ -0011a000: 4d54 4f4d 3c2f 636f 6465 3e20 666c 6167 MTOM
flag
│ │ │ │ -0011a010: 2077 6974 6820 7468 6520 534f 4150 2031 with the SOAP 1
│ │ │ │ -0011a020: 2e32 206e 616d 6573 7061 6365 2e3c 2f70 .2 namespace..Generating
│ │ │ │ -0011a110: 204d 756c 7469 7061 7274 5265 6c61 7465 MultipartRelate
│ │ │ │ -0011a120: 6420 4d49 4d45 2061 7474 6163 686d 656e d MIME attachmen
│ │ │ │ -0011a130: 7420 6269 6e64 696e 6773 2069 6e20 5753 t bindings in WS
│ │ │ │ -0011a140: 444c 3c2f 6832 3e0a 3c70 3e54 6f20 6765 DL
.struct x__myData .x__myD
│ │ │ │ +00119960: 6174 6154 7970 653c 2f63 6f64 653e 2069 ataType
i
│ │ │ │ +00119970: 7320 7365 7269 616c 697a 6564 2061 6e64 s serialized and
│ │ │ │ +00119980: 2065 6974 6865 7220 6f72 2062 6f74 6820 either or both
│ │ │ │ +00119990: 7468 6520 3c63 6f64 653e 6964 3c2f 636f the id and
ty
│ │ │ │ +001199b0: 7065 3c2f 636f 6465 3e20 6d65 6d62 6572 pe
member
│ │ │ │ +001199c0: 7320 6172 6520 6e6f 6e2d 4e55 4c4c 2c20 s are non-NULL,
│ │ │ │ +001199d0: 7468 6520 6461 7461 2069 7320 7472 616e the data is tran
│ │ │ │ +001199e0: 736d 6974 7465 6420 6173 204d 544f 4d20 smitted as MTOM
│ │ │ │ +001199f0: 4d49 4d45 2061 7474 6163 686d 656e 7420 MIME attachment
│ │ │ │ +00119a00: 6966 2074 6865 203c 636f 6465 3e23 534f if the #SO
│ │ │ │ +00119a10: 4150 5f45 4e43 5f4d 544f 4d3c 2f63 6f64 AP_ENC_MTOM flag is set i
│ │ │ │ +00119a30: 6e20 7468 6520 6753 4f41 5027 7320 736f n the gSOAP's so
│ │ │ │ +00119a40: 6170 2073 7472 7563 7420 636f 6e74 6578 ap struct contex
│ │ │ │ +00119a50: 743a 3c2f 703e 0a3c 6469 7620 636c 6173 t:
soap_set
│ │ │ │ +00119f20: 5f64 696d 655f 6174 7461 6368 6d65 6e74 _dime_attachment
│ │ │ │ +00119f30: 3c2f 613e 3c2f 636f 6465 3e20 6675 6e63
func
│ │ │ │ +00119f40: 7469 6f6e 2920 6f72 2070 6c61 696e 2062 tion) or plain b
│ │ │ │ +00119f50: 6173 6536 3420 6269 6e61 7279 2058 4d4c ase64 binary XML
│ │ │ │ +00119f60: 2064 6174 6120 656c 656d 656e 7473 2c20 data elements,
│ │ │ │ +00119f70: 6974 2069 7320 7665 7279 2065 6173 7920 it is very easy
│ │ │ │ +00119f80: 746f 2061 646f 7074 204d 544f 4d20 6279 to adopt MTOM by
│ │ │ │ +00119f90: 2072 656e 616d 696e 6720 7468 6520 6269 renaming the bi
│ │ │ │ +00119fa0: 6e61 7279 2074 7970 6573 2074 6f20 3c63 nary types to #SOA
│ │ │ │ +00119fe0: 505f 454e 435f 4d54 4f4d 3c2f 636f 6465 P_ENC_MTOM
flag with the
│ │ │ │ +0011a000: 534f 4150 2031 2e32 206e 616d 6573 7061 SOAP 1.2 namespa
│ │ │ │ +0011a010: 6365 2e3c 2f70 3e0a 3c70 3e53 6565 2061 ce..Gene
│ │ │ │ +0011a0f0: 7261 7469 6e67 204d 756c 7469 7061 7274 rating Multipart
│ │ │ │ +0011a100: 5265 6c61 7465 6420 4d49 4d45 2061 7474 Related MIME att
│ │ │ │ +0011a110: 6163 686d 656e 7420 6269 6e64 696e 6773 achment bindings
│ │ │ │ +0011a120: 2069 6e20 5753 444c 3c2f 6832 3e0a 3c70 in WSDL
.text/xm
│ │ │ │ -0011a840: 6c3c 2f63 6f64 653e 3c2f 656d 3e20 4d49 l
MI
│ │ │ │ -0011a850: 4d45 2061 7474 6163 686d 656e 7473 2e20 ME attachments.
│ │ │ │ -0011a860: 5365 6520 7468 6520 534f 4150 2d77 6974 See the SOAP-wit
│ │ │ │ -0011a870: 682d 4174 7461 6368 6d65 6e74 2073 7065 h-Attachment spe
│ │ │ │ -0011a880: 6369 6669 6361 7469 6f6e 2066 6f72 2074 cification for t
│ │ │ │ -0011a890: 6865 204d 494d 4520 7479 7065 7320 746f he MIME types to
│ │ │ │ -0011a8a0: 2075 7365 2028 666f 7220 6578 616d 706c use (for exampl
│ │ │ │ -0011a8b0: 652c 203c 636f 6465 3e2a 2f2a 3c2f 636f e, */* is a wildcar
│ │ │ │ -0011a8d0: 6429 2e20 4966 2074 6865 206f 7065 7261 d). If the opera
│ │ │ │ -0011a8e0: 7469 6f6e 2068 6173 206d 6f72 6520 7468 tion has more th
│ │ │ │ -0011a8f0: 616e 206f 6e65 2061 7474 6163 686d 656e an one attachmen
│ │ │ │ -0011a900: 742c 206a 7573 7420 7265 7065 6174 2074 t, just repeat t
│ │ │ │ -0011a910: 6869 7320 6469 7265 6374 6976 6520 666f his directive fo
│ │ │ │ -0011a920: 7220 6561 6368 2061 7474 6163 686d 656e r each attachmen
│ │ │ │ -0011a930: 7420 796f 7520 7761 6e74 2074 6f20 6269 t you want to bi
│ │ │ │ -0011a940: 6e64 2074 6f20 7468 6520 6f70 6572 6174 nd to the operat
│ │ │ │ -0011a950: 696f 6e2e 3c2f 703e 0a3c 703e 546f 2062 ion.
.Sending and re
│ │ │ │ -0011aca0: 6365 6976 696e 6720 4d54 4f4d 2061 7474 ceiving MTOM att
│ │ │ │ -0011acb0: 6163 686d 656e 7473 3c2f 6832 3e0a 3c70 achments
.
│ │ │ │ -0011ad10: 2353 4f41 505f 454e 435f 4d54 4f4d 3c2f #SOAP_ENC_MTOM
│ │ │ │ -0011ad20: 636f 6465 3e20 666c 6167 206f 6620 7468 code> flag of th
│ │ │ │ -0011ad30: 6520 3c63 6f64 653e 3c61 2063 6c61 7373 e
soap context. Oth
│ │ │ │ -0011ada0: 6572 7769 7365 2c20 7468 6520 7265 6775 erwise, the regu
│ │ │ │ -0011adb0: 6c61 7220 4d49 4d45 2061 7474 6163 686d lar MIME attachm
│ │ │ │ -0011adc0: 656e 7420 6d65 6368 616e 6973 6d20 2853 ent mechanism (S
│ │ │ │ -0011add0: 7741 2920 7769 6c6c 2062 6520 7573 6564 wA) will be used
│ │ │ │ -0011ade0: 2074 6f20 7374 6f72 6520 6174 7461 6368 to store attach
│ │ │ │ -0011adf0: 6d65 6e74 732e 3c2f 703e 0a3c 703e 5768 ments.
t
│ │ │ │ -0011ae50: 7970 656d 6170 2e64 6174 3c2f 636f 6465 ypemap.dat
file incl
│ │ │ │ -0011ae70: 7564 6564 2069 6e20 7468 6520 6753 4f41 uded in the gSOA
│ │ │ │ -0011ae80: 5020 736f 7572 6365 2063 6f64 6520 7061 P source code pa
│ │ │ │ -0011ae90: 636b 6167 652e 2054 6865 203c 656d 3e3c ckage. The <
│ │ │ │ -0011aea0: 636f 6465 3e74 7970 656d 6170 2e64 6174 code>typemap.dat
│ │ │ │ -0011aeb0: 3c2f 636f 6465 3e3c 2f65 6d3e 2066 696c fil
│ │ │ │ -0011aec0: 6520 6465 6669 6e65 7320 7468 6520 584f e defines the XO
│ │ │ │ -0011aed0: 5020 6e61 6d65 7370 6163 6520 616e 6420 P namespace and
│ │ │ │ -0011aee0: 584d 4c20 4d49 4d45 206e 616d 6573 7061 XML MIME namespa
│ │ │ │ -0011aef0: 6365 7320 6173 2069 6d70 6f72 7465 6420 ces as imported
│ │ │ │ -0011af00: 6e61 6d65 7370 6163 6573 3a20 3c2f 703e namespaces: xop = &
│ │ │ │ -0011af30: 6c74 3b68 7474 703a 2f2f 7777 772e 7733 lt;http://www.w3
│ │ │ │ -0011af40: 2e6f 7267 2f32 3030 342f 3038 2f78 6f70 .org/2004/08/xop
│ │ │ │ -0011af50: 2f69 6e63 6c75 6465 2667 743b 200a 786d /include> .xm
│ │ │ │ -0011af60: 696d 6535 203d 2026 6c74 3b68 7474 703a ime5 = <http:
│ │ │ │ -0011af70: 2f2f 7777 772e 7733 2e6f 7267 2f32 3030 //www.w3.org/200
│ │ │ │ -0011af80: 352f 3035 2f78 6d6c 6d69 6d65 2667 743b 5/05/xmlmime>
│ │ │ │ -0011af90: 200a 786d 696d 6534 203d 2026 6c74 3b68 .xmime4 = <h
│ │ │ │ -0011afa0: 7474 703a 2f2f 7777 772e 7733 2e6f 7267 ttp://www.w3.org
│ │ │ │ -0011afb0: 2f32 3030 342f 3131 2f78 6d6c 6d69 6d65 /2004/11/xmlmime
│ │ │ │ -0011afc0: 2667 743b 0a3c 2f70 7265 3e3c 703e 2054 >.
_xop__Includ
│ │ │ │ -0011b1d0: 653c 2f61 3e3c 2f63 6f64 653e 2065 6c65 e
ele
│ │ │ │ -0011b1e0: 6d65 6e74 2069 7320 6465 6669 6e65 6420 ment is defined
│ │ │ │ -0011b1f0: 696e 203c 656d 3e3c 636f 6465 3e78 6f70 in xop
│ │ │ │ -0011b200: 2e68 3c2f 636f 6465 3e3c 2f65 6d3e 2e20 .h
.
│ │ │ │ -0011b210: 5468 6572 6566 6f72 652c 2074 6865 2062 Therefore, the b
│ │ │ │ -0011b220: 696e 6469 6e67 7320 7368 6f77 6e20 6162 indings shown ab
│ │ │ │ -0011b230: 6f76 6520 7769 6c6c 206e 6f74 2074 7261 ove will not tra
│ │ │ │ -0011b240: 6e73 6c61 7465 2074 6865 2058 4f50 2061 nslate the XOP a
│ │ │ │ -0011b250: 6e64 2058 4d4c 204d 494d 4520 7363 6865 nd XML MIME sche
│ │ │ │ -0011b260: 6d61 7320 746f 2063 6f64 652c 2062 7574 mas to code, but
│ │ │ │ -0011b270: 2067 656e 6572 6174 6573 203c 636f 6465 generates #import
│ │ │ │ -0011b290: 7374 6174 656d 656e 7473 2069 6e73 7465 statements inste
│ │ │ │ -0011b2a0: 6164 2069 6e20 7468 6520 6765 6e65 7261 ad in the genera
│ │ │ │ -0011b2b0: 7465 6420 696e 7465 7266 6163 6520 6865 ted interface he
│ │ │ │ -0011b2c0: 6164 6572 2066 696c 653a 3c2f 703e 0a3c ader file:#impor
│ │ │ │ -0011b470: 7420 2278 6f70 2e68 223c 2f63 6f64 653e t "xop.h"
│ │ │ │ -0011b480: 2066 726f 6d20 6120 5753 444c 2074 6861 from a WSDL tha
│ │ │ │ -0011b490: 7420 7265 6665 7265 6e63 6573 2058 4f50 t references XOP
│ │ │ │ -0011b4a0: 2c20 666f 7220 6578 616d 706c 653a 3c2f , for example:
│ │ │ │ -0011b4b0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.if (soap_call_ns_
│ │ │ │ -0011bda0: 5f65 6368 6f44 6174 6128 3c61 2063 6c61 _echoData(soap, endpo
│ │ │ │ -0011bde0: 696e 742c 2061 6374 696f 6e2c 2026 616d int, action, &am
│ │ │ │ -0011bdf0: 703b 6461 7461 2c20 2661 6d70 3b64 6174 p;data, &dat
│ │ │ │ -0011be00: 6129 293c 2f64 6976 3e0a 3c64 6976 2063 a))xop__I
│ │ │ │ -0011c1a0: 6e63 6c75 6465 2e74 7970 653c 2f63 6f64 nclude.type member must b
│ │ │ │ -0011c1c0: 6520 7365 7420 746f 2074 7261 6e73 6d69 e set to transmi
│ │ │ │ -0011c1d0: 7420 4d54 4f4d 2061 7474 6163 686d 656e t MTOM attachmen
│ │ │ │ -0011c1e0: 7473 2c20 6f74 6865 7277 6973 6520 696e ts, otherwise in
│ │ │ │ -0011c1f0: 6c69 6e65 2062 6173 6536 3420 584d 4c20 line base64 XML
│ │ │ │ -0011c200: 7769 6c6c 2062 6520 7365 6e74 2e3c 2f70 will be sent.
// and its c
│ │ │ │ +0011a640: 6f6e 7465 6e74 5479 7065 203c 2f73 7061 ontentType //gsoa
│ │ │ │ +0011a7c0: 7020 7820 7365 7276 6963 6520 6d65 7468 p x service meth
│ │ │ │ +0011a7d0: 6f64 2d6d 696d 652d 7479 7065 3a3c 2f63 od-mime-type: directive i
│ │ │ │ +0011a7f0: 6e64 6963 6174 6573 2074 6861 7420 7468 ndicates that th
│ │ │ │ +0011a800: 6973 206f 7065 7261 7469 6f6e 2061 6363 is operation acc
│ │ │ │ +0011a810: 6570 7473 203c 656d 3e3c 636f 6465 3e74 epts
t
│ │ │ │ +0011a820: 6578 742f 786d 6c3c 2f63 6f64 653e 3c2f ext/xml
│ │ │ │ +0011a830: 656d 3e20 4d49 4d45 2061 7474 6163 686d em> MIME attachm
│ │ │ │ +0011a840: 656e 7473 2e20 5365 6520 7468 6520 534f ents. See the SO
│ │ │ │ +0011a850: 4150 2d77 6974 682d 4174 7461 6368 6d65 AP-with-Attachme
│ │ │ │ +0011a860: 6e74 2073 7065 6369 6669 6361 7469 6f6e nt specification
│ │ │ │ +0011a870: 2066 6f72 2074 6865 204d 494d 4520 7479 for the MIME ty
│ │ │ │ +0011a880: 7065 7320 746f 2075 7365 2028 666f 7220 pes to use (for
│ │ │ │ +0011a890: 6578 616d 706c 652c 203c 636f 6465 3e2a example, *
│ │ │ │ +0011a8a0: 2f2a 3c2f 636f 6465 3e20 6973 2061 2077 /*
is a w
│ │ │ │ +0011a8b0: 696c 6463 6172 6429 2e20 4966 2074 6865 ildcard). If the
│ │ │ │ +0011a8c0: 206f 7065 7261 7469 6f6e 2068 6173 206d operation has m
│ │ │ │ +0011a8d0: 6f72 6520 7468 616e 206f 6e65 2061 7474 ore than one att
│ │ │ │ +0011a8e0: 6163 686d 656e 742c 206a 7573 7420 7265 achment, just re
│ │ │ │ +0011a8f0: 7065 6174 2074 6869 7320 6469 7265 6374 peat this direct
│ │ │ │ +0011a900: 6976 6520 666f 7220 6561 6368 2061 7474 ive for each att
│ │ │ │ +0011a910: 6163 686d 656e 7420 796f 7520 7761 6e74 achment you want
│ │ │ │ +0011a920: 2074 6f20 6269 6e64 2074 6f20 7468 6520 to bind to the
│ │ │ │ +0011a930: 6f70 6572 6174 696f 6e2e 3c2f 703e 0a3c operation..Sending
│ │ │ │ +0011ac80: 616e 6420 7265 6365 6976 696e 6720 4d54 and receiving MT
│ │ │ │ +0011ac90: 4f4d 2061 7474 6163 686d 656e 7473 3c2f OM attachments
│ │ │ │ +0011aca0: 6832 3e0a 3c70 3e41 2072 6563 6569 7665 h2>.
#SOAP_ENC_
│ │ │ │ +0011ad00: 4d54 4f4d 3c2f 636f 6465 3e20 666c 6167 MTOM
flag
│ │ │ │ +0011ad10: 206f 6620 7468 6520 3c63 6f64 653e 3c61 of the soap
│ │ │ │ +0011ad70: 613e 3c2f 636f 6465 3e20 636f 6e74 6578 a>
contex
│ │ │ │ +0011ad80: 742e 204f 7468 6572 7769 7365 2c20 7468 t. Otherwise, th
│ │ │ │ +0011ad90: 6520 7265 6775 6c61 7220 4d49 4d45 2061 e regular MIME a
│ │ │ │ +0011ada0: 7474 6163 686d 656e 7420 6d65 6368 616e ttachment mechan
│ │ │ │ +0011adb0: 6973 6d20 2853 7741 2920 7769 6c6c 2062 ism (SwA) will b
│ │ │ │ +0011adc0: 6520 7573 6564 2074 6f20 7374 6f72 6520 e used to store
│ │ │ │ +0011add0: 6174 7461 6368 6d65 6e74 732e 3c2f 703e attachments.typem
│ │ │ │ +0011ae90: 6170 2e64 6174 3c2f 636f 6465 3e3c 2f65 ap.dat
file defines
│ │ │ │ +0011aeb0: 7468 6520 584f 5020 6e61 6d65 7370 6163 the XOP namespac
│ │ │ │ +0011aec0: 6520 616e 6420 584d 4c20 4d49 4d45 206e e and XML MIME n
│ │ │ │ +0011aed0: 616d 6573 7061 6365 7320 6173 2069 6d70 amespaces as imp
│ │ │ │ +0011aee0: 6f72 7465 6420 6e61 6d65 7370 6163 6573 orted namespaces
│ │ │ │ +0011aef0: 3a20 3c2f 703e 3c70 7265 2063 6c61 7373 : xop
│ │ │ │ +0011af10: 2020 203d 2026 6c74 3b68 7474 703a 2f2f = <http://
│ │ │ │ +0011af20: 7777 772e 7733 2e6f 7267 2f32 3030 342f www.w3.org/2004/
│ │ │ │ +0011af30: 3038 2f78 6f70 2f69 6e63 6c75 6465 2667 08/xop/include&g
│ │ │ │ +0011af40: 743b 200a 786d 696d 6535 203d 2026 6c74 t; .xmime5 = <
│ │ │ │ +0011af50: 3b68 7474 703a 2f2f 7777 772e 7733 2e6f ;http://www.w3.o
│ │ │ │ +0011af60: 7267 2f32 3030 352f 3035 2f78 6d6c 6d69 rg/2005/05/xmlmi
│ │ │ │ +0011af70: 6d65 2667 743b 200a 786d 696d 6534 203d me> .xmime4 =
│ │ │ │ +0011af80: 2026 6c74 3b68 7474 703a 2f2f 7777 772e <http://www.
│ │ │ │ +0011af90: 7733 2e6f 7267 2f32 3030 342f 3131 2f78 w3.org/2004/11/x
│ │ │ │ +0011afa0: 6d6c 6d69 6d65 2667 743b 0a3c 2f70 7265 mlmime>.
typemap.
│ │ │ │ +0011afe0: 6461 743c 2f63 6f64 653e 3c2f 656d 3e20 dat
│ │ │ │ +0011aff0: 6669 6c65 2074 6f20 636f 6e76 6572 7420 file to convert
│ │ │ │ +0011b000: 5753 444c 2069 6e74 6f20 616e 2069 6e74 WSDL into an int
│ │ │ │ +0011b010: 6572 6661 6365 2068 6561 6465 7220 6669 erface header fi
│ │ │ │ +0011b020: 6c65 2e20 496e 2074 6869 7320 6361 7365 le. In this case
│ │ │ │ +0011b030: 2077 6520 646f 6e27 7420 7761 6e74 2074 we don't want t
│ │ │ │ +0011b040: 6865 2077 7364 6c32 6820 746f 6f6c 2074 he wsdl2h tool t
│ │ │ │ +0011b050: 6f20 7265 6164 2074 6865 2058 4f50 2073 o read the XOP s
│ │ │ │ +0011b060: 6368 656d 6120 616e 6420 7472 616e 736c chema and transl
│ │ │ │ +0011b070: 6174 6520 6974 2c20 7369 6e63 6520 7765 ate it, since we
│ │ │ │ +0011b080: 2068 6176 6520 6120 7072 652d 6465 6669 have a pre-defi
│ │ │ │ +0011b090: 6e65 6420 3c63 6f64 653e 3c61 2063 6c61 ned
│ │ │ │ +0011b100: 5f78 6f70 5f5f 496e 636c 7564 653c 2f61 _xop__Include
element
│ │ │ │ +0011b120: 2074 6f20 6861 6e64 6c65 2058 4f50 2066 to handle XOP f
│ │ │ │ +0011b130: 6f72 204d 544f 4d2e 2054 6869 7320 3c63 or MTOM. This #import
│ │ │ │ +0011b270: 636f 6465 3e20 7374 6174 656d 656e 7473 code> statements
│ │ │ │ +0011b280: 2069 6e73 7465 6164 2069 6e20 7468 6520 instead in the
│ │ │ │ +0011b290: 6765 6e65 7261 7465 6420 696e 7465 7266 generated interf
│ │ │ │ +0011b2a0: 6163 6520 6865 6164 6572 2066 696c 653a ace header file:
│ │ │ │ +0011b2b0: 3c2f 703e 0a3c 6469 7620 636c 6173 733d
#impo
│ │ │ │ +0011b3a0: 7274 3c2f 636f 6465 3e20 7374 6174 656d rt
statem
│ │ │ │ +0011b3b0: 656e 7473 2061 7265 206f 6e6c 7920 6164 ents are only ad
│ │ │ │ +0011b3c0: 6465 6420 666f 7220 7468 6f73 6520 6e61 ded for those na
│ │ │ │ +0011b3d0: 6d65 7370 6163 6573 2074 6861 7420 6172 mespaces that ar
│ │ │ │ +0011b3e0: 6520 6163 7475 616c 6c79 2075 7365 642e e actually used.
│ │ │ │ +0011b3f0: 3c2f 703e 0a3c 703e 4c65 7427 7320 7461
│ │ │ │ +0011b450: 2369 6d70 6f72 7420 2278 6f70 2e68 223c #import "xop.h"<
│ │ │ │ +0011b460: 2f63 6f64 653e 2066 726f 6d20 6120 5753 /code> from a WS
│ │ │ │ +0011b470: 444c 2074 6861 7420 7265 6665 7265 6e63 DL that referenc
│ │ │ │ +0011b480: 6573 2058 4f50 2c20 666f 7220 6578 616d es XOP, for exam
│ │ │ │ +0011b490: 706c 653a 3c2f 703e 0a3c 6469 7620 636c ple:
struct ns__Data // MIME type
│ │ │ │ +0011bc20: 203c 2f73 7061 6e3e 3c2f 6469 763e 0a3c else
│ │ │ │ +0011c180: 786f 705f 5f49 6e63 6c75 6465 2e74 7970 xop__Include.typ
│ │ │ │ +0011c190: 653c 2f63 6f64 653e 206d 656d 6265 7220 e
member
│ │ │ │ +0011c1a0: 6d75 7374 2062 6520 7365 7420 746f 2074 must be set to t
│ │ │ │ +0011c1b0: 7261 6e73 6d69 7420 4d54 4f4d 2061 7474 ransmit MTOM att
│ │ │ │ +0011c1c0: 6163 686d 656e 7473 2c20 6f74 6865 7277 achments, otherw
│ │ │ │ +0011c1d0: 6973 6520 696e 6c69 6e65 2062 6173 6536 ise inline base6
│ │ │ │ +0011c1e0: 3420 584d 4c20 7769 6c6c 2062 6520 7365 4 XML will be se
│ │ │ │ +0011c1f0: 6e74 2e3c 2f70 3e0a 3c70 3e41 7420 7468 nt.#SOAP_ENC_
│ │ │ │ -0011c510: 4d54 4f4d 3c2f 636f 6465 3e20 666c 6167 MTOM
flag
│ │ │ │ -0011c520: 2074 6f20 696e 6974 6961 6c69 7a65 2074 to initialize t
│ │ │ │ -0011c530: 6865 203c 636f 6465 3e3c 6120 636c 6173 he soap context to
│ │ │ │ -0011c5a0: 7265 6365 6976 6520 616e 6420 7365 6e64 receive and send
│ │ │ │ -0011c5b0: 204d 544f 4d20 6174 7461 6368 6d65 6e74 MTOM attachment
│ │ │ │ -0011c5c0: 732e 3c2f 703e 0a3c 703e f09f 949d 203c s.
.Strea
│ │ │ │ -0011c630: 6d69 6e67 204d 494d 452f 4d54 4f4d 3c2f ming MIME/MTOM
│ │ │ │ -0011c640: 6832 3e0a 3c70 3e53 7472 6561 6d69 6e67 h2>.
.
│ │ │ │ -0011ee30: 0a3c 703e 496e 2061 6464 6974 696f 6e2c .void *(*
│ │ │ │ -0011c740: 736f 6170 2e66 6d69 6d65 7265 6164 6f70 soap.fmimereadop
│ │ │ │ -0011c750: 656e 2928 7374 7275 6374 2073 6f61 7020 en)(struct soap
│ │ │ │ -0011c760: 2a73 6f61 702c 2076 6f69 6420 2a68 616e *soap, void *han
│ │ │ │ -0011c770: 646c 652c 2063 6f6e 7374 2063 6861 7220 dle, const char
│ │ │ │ -0011c780: 2a69 642c 2063 6f6e 7374 2063 6861 7220 *id, const char
│ │ │ │ -0011c790: 2a74 7970 652c 2063 6f6e 7374 2063 6861 *type, const cha
│ │ │ │ -0011c7a0: 7220 2a64 6573 6372 6970 7469 6f6e 293c r *description)<
│ │ │ │ -0011c7b0: 2f63 6f64 653e 2054 6869 7320 6361 6c6c /code> This call
│ │ │ │ -0011c7c0: 6261 636b 2069 7320 6361 6c6c 6564 2062 back is called b
│ │ │ │ -0011c7d0: 7920 7468 6520 656e 6769 6e65 2074 6f20 y the engine to
│ │ │ │ -0011c7e0: 7374 6172 7420 7365 6e64 696e 6720 6120 start sending a
│ │ │ │ -0011c7f0: 7374 7265 616d 696e 6720 4d49 4d45 2f4d streaming MIME/M
│ │ │ │ -0011c800: 544f 4d20 6174 7461 6368 6d65 6e74 2e20 TOM attachment.
│ │ │ │ -0011c810: 5468 6973 2063 616c 6c62 6163 6b20 6f70 This callback op
│ │ │ │ -0011c820: 656e 7320 6120 7374 7265 616d 2074 6f20 ens a stream to
│ │ │ │ -0011c830: 7374 6172 7420 7265 6164 696e 6720 7468 start reading th
│ │ │ │ -0011c840: 6520 6174 7461 6368 6d65 6e74 2064 6174 e attachment dat
│ │ │ │ -0011c850: 6120 746f 2073 656e 642e 2054 6865 2061 a to send. The a
│ │ │ │ -0011c860: 6374 7561 6c20 6461 7461 2073 7472 6561 ctual data strea
│ │ │ │ -0011c870: 6d20 7769 6c6c 2062 6520 7265 6164 2069 m will be read i
│ │ │ │ -0011c880: 6e20 6368 756e 6b73 2075 7369 6e67 2074 n chunks using t
│ │ │ │ -0011c890: 6865 203c 636f 6465 3e3c 6120 636c 6173 he
so
│ │ │ │ -0011c930: 6170 3a3a 666d 696d 6572 6561 643c 2f61 ap::fmimeread
callbac
│ │ │ │ -0011c950: 6b20 756e 7469 6c20 6e6f 206d 6f72 6520 k until no more
│ │ │ │ -0011c960: 6461 7461 2069 7320 6176 6169 6c61 626c data is availabl
│ │ │ │ -0011c970: 6520 616e 6420 7468 6520 3c63 6f64 653e e and the
│ │ │ │ -0011c980: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap
│ │ │ │ -0011ca20: 3a3a 666d 696d 6572 6561 6463 6c6f 7365 ::fmimereadclose
│ │ │ │ -0011ca30: 3c2f 613e 3c2f 636f 6465 3e20 6361 6c6c
call
│ │ │ │ -0011ca40: 6261 636b 2069 7320 6361 6c6c 6564 2074 back is called t
│ │ │ │ -0011ca50: 6f20 636c 6f73 6520 7468 6520 7374 7265 o close the stre
│ │ │ │ -0011ca60: 616d 2e20 5468 6520 3c63 6f64 653e 6861 am. The ha
│ │ │ │ -0011ca70: 6e64 6c65 3c2f 636f 6465 3e20 7061 7261 ndle
para
│ │ │ │ -0011ca80: 6d65 7465 7220 636f 6e74 6169 6e73 2074 meter contains t
│ │ │ │ -0011ca90: 6865 2076 616c 7565 206f 6620 7468 6520 he value of the
│ │ │ │ -0011caa0: 3c63 6f64 653e 5f5f 7074 723c 2f63 6f64 __ptr member variab
│ │ │ │ -0011cac0: 6c65 206f 6620 7468 6520 6174 7461 6368 le of the attach
│ │ │ │ -0011cad0: 6d65 6e74 2073 7472 7563 742f 636c 6173 ment struct/clas
│ │ │ │ -0011cae0: 7320 7769 7468 2064 6174 6120 2865 2e67 s with data (e.g
│ │ │ │ -0011caf0: 2e20 3c63 6f64 653e 3c61 2063 6c61 7373 .
xsd__base6
│ │ │ │ -0011cb70: 3442 696e 6172 793c 2f61 3e3c 2f63 6f64 4Binary or
_xop__Include<
│ │ │ │ -0011cc00: 2f61 3e3c 2f63 6f64 653e 2077 6974 6820 /a>
with
│ │ │ │ -0011cc10: 3c63 6f64 653e 5f5f 7074 723c 2f63 6f64 __ptr,
__size
│ │ │ │ -0011cc30: 3c2f 636f 6465 3e2c 203c 636f 6465 3e69
, i
│ │ │ │ -0011cc40: 643c 2f63 6f64 653e 2c20 3c63 6f64 653e d
,
│ │ │ │ -0011cc50: 7479 7065 3c2f 636f 6465 3e20 616e 6420 type
and
│ │ │ │ -0011cc60: 3c63 6f64 653e 6f70 7469 6f6e 733c 2f63 options members), w
│ │ │ │ -0011cc80: 6869 6368 2073 686f 756c 6420 6265 2061 hich should be a
│ │ │ │ -0011cc90: 2070 6f69 6e74 6572 2074 6f20 7370 6563 pointer to spec
│ │ │ │ -0011cca0: 6966 6963 2069 6e66 6f72 6d61 7469 6f6e ific information
│ │ │ │ -0011ccb0: 2073 7563 6820 6173 2061 2066 696c 6520 such as a file
│ │ │ │ -0011ccc0: 6465 7363 7269 7074 6f72 206f 7220 6120 descriptor or a
│ │ │ │ -0011ccd0: 706f 696e 7465 7220 746f 2061 2073 6f6d pointer to a som
│ │ │ │ -0011cce0: 6520 6170 706c 6963 6174 696f 6e2d 7370 e application-sp
│ │ │ │ -0011ccf0: 6563 6966 6963 2064 6174 6120 746f 2062 ecific data to b
│ │ │ │ -0011cd00: 6520 7061 7373 6564 2074 6f20 7468 6973 e passed to this
│ │ │ │ -0011cd10: 2063 616c 6c62 6163 6b2e 2042 6f74 6820 callback. Both
│ │ │ │ -0011cd20: 7468 6520 3c63 6f64 653e 5f5f 7074 723c the
__ptr<
│ │ │ │ -0011cd30: 2f63 6f64 653e 2061 6e64 203c 636f 6465 /code> and
│ │ │ │ -0011d870: 616e 6420 7468 6973 2061 6374 7561 6c20 and this actual
│ │ │ │ -0011d880: 616d 6f75 6e74 2073 686f 756c 6420 6265 amount should be
│ │ │ │ -0011d890: 2072 6574 7572 6e65 6420 6279 2074 6865 returned by the
│ │ │ │ -0011d8a0: 2063 616c 6c62 6163 6b2e 2041 2072 6574 callback. A ret
│ │ │ │ -0011d8b0: 7572 6e20 7661 6c75 6520 6f66 207a 6572 urn value of zer
│ │ │ │ -0011d8c0: 6f20 696e 6469 6361 7465 7320 616e 2065 o indicates an e
│ │ │ │ -0011d8d0: 7272 6f72 2061 6e64 203c 636f 6465 3e3c rror and __size
m
│ │ │ │ -0011cd50: 656d 6265 7273 206f 6620 7468 6520 6174 embers of the at
│ │ │ │ -0011cd60: 7461 6368 6d65 6e74 2073 7472 7563 742f tachment struct/
│ │ │ │ -0011cd70: 636c 6173 7320 7368 6f75 6c64 2068 6176 class should hav
│ │ │ │ -0011cd80: 6520 6265 656e 2073 6574 2062 7920 7468 e been set by th
│ │ │ │ -0011cd90: 6520 6170 706c 6963 6174 696f 6e20 7072 e application pr
│ │ │ │ -0011cda0: 696f 7220 746f 2074 6865 2073 6572 6961 ior to the seria
│ │ │ │ -0011cdb0: 6c69 7a61 7469 6f6e 206f 6620 7468 6520 lization of the
│ │ │ │ -0011cdc0: 6d65 7373 6167 6520 7769 7468 2061 7474 message with att
│ │ │ │ -0011cdd0: 6163 686d 656e 7473 2e20 4966 2074 6865 achments. If the
│ │ │ │ -0011cde0: 203c 636f 6465 3e5f 5f73 697a 653c 2f63 __size is zero and
│ │ │ │ -0011ce00: 2048 5454 5020 6368 756e 6b69 6e67 2069 HTTP chunking i
│ │ │ │ -0011ce10: 7320 656e 6162 6c65 6420 2877 6974 6820 s enabled (with
│ │ │ │ -0011ce20: 3c63 6f64 653e 2353 4f41 505f 494f 5f43
in
│ │ │ │ -0011d7e0: 746f 2077 6869 6368 2061 2063 6875 6e6b to which a chunk
│ │ │ │ -0011d7f0: 206f 6620 6461 7461 2073 686f 756c 6420 of data should
│ │ │ │ -0011d800: 6265 2077 7269 7474 656e 2062 7920 7468 be written by th
│ │ │ │ -0011d810: 6520 6361 6c6c 6261 636b 2e20 5468 6520 e callback. The
│ │ │ │ -0011d820: 6163 7475 616c 2061 6d6f 756e 7420 6f66 actual amount of
│ │ │ │ -0011d830: 2064 6174 6120 7772 6974 7465 6e20 696e data written in
│ │ │ │ -0011d840: 746f 2074 6865 2062 7566 6665 7220 6d61 to the buffer ma
│ │ │ │ -0011d850: 7920 6265 206c 6573 7320 7468 616e 203c y be less than <
│ │ │ │ -0011d860: 636f 6465 3e6c 656e 3c2f 636f 6465 3e20 code>len#SOAP_IO_C
│ │ │ │ -0011ce30: 4855 4e4b 3c2f 636f 6465 3e29 2c20 7468 HUNK
), th
│ │ │ │ -0011ce40: 656e 2063 6875 6e6b 6564 204d 494d 452f en chunked MIME/
│ │ │ │ -0011ce50: 4d54 4f4d 2061 7474 6163 686d 656e 7473 MTOM attachments
│ │ │ │ -0011ce60: 2061 7265 2073 656e 742c 2073 6565 203c are sent, see <
│ │ │ │ -0011ce70: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap::
│ │ │ │ -0011cf10: 666d 696d 6572 6561 643c 2f61 3e3c 2f63 fmimeread. The
│ │ │ │ -0011cf30: 6964 3c2f 636f 6465 3e2c 203c 636f 6465 id
, type
and
│ │ │ │ -0011cf50: 203c 636f 6465 3e6f 7074 696f 6e73 3c2f options
│ │ │ │ -0011cf60: 636f 6465 3e20 7061 7261 6d65 7465 7273 code> parameters
│ │ │ │ -0011cf70: 2061 7265 2074 6865 203c 636f 6465 3e69 are the
when this spec
│ │ │ │ -0011d570: 6966 6963 204d 494d 452f 4d54 4f4d 2061 ific MIME/MTOM a
│ │ │ │ -0011d580: 7474 6163 686d 656e 7420 7368 6f75 6c64 ttachment should
│ │ │ │ -0011d590: 206e 6f74 2074 6f20 6265 2073 7472 6561 not to be strea
│ │ │ │ -0011d5a0: 6d65 6420 616e 6420 7468 6520 656e 6769 med and the engi
│ │ │ │ -0011d5b0: 6e65 2077 696c 6c20 7369 6d70 6c79 2073 ne will simply s
│ │ │ │ -0011d5c0: 6b69 7020 6974 2e3c 2f6c 693e 0a3c 6c69 kip it..i
│ │ │ │ -0011cf80: 643c 2f63 6f64 653e 2028 616e 206f 7074 d
(an opt
│ │ │ │ -0011cf90: 696f 6e61 6c20 4944 292c 203c 636f 6465 ional ID), type
(a
│ │ │ │ -0011cfb0: 4d49 4d45 2074 7970 6529 2061 6e64 203c MIME type) and <
│ │ │ │ -0011cfc0: 636f 6465 3e6f 7074 696f 6e73 3c2f 636f code>options (a descripti
│ │ │ │ -0011cfe0: 7665 2073 7472 696e 6729 206f 6620 7468 ve string) of th
│ │ │ │ -0011cff0: 6520 6174 7461 6368 6d65 6e74 2073 7472 e attachment str
│ │ │ │ -0011d000: 7563 742f 636c 6173 732c 2072 6573 7065 uct/class, respe
│ │ │ │ -0011d010: 6374 6976 656c 792c 206f 6620 7768 6963 ctively, of whic
│ │ │ │ -0011d020: 6820 6174 206c 6561 7374 206f 6e65 206d h at least one m
│ │ │ │ -0011d030: 656d 6265 7220 7368 6f75 6c64 2062 6520 ember should be
│ │ │ │ -0011d040: 6e6f 6e2d 4e55 4c4c 2e20 5468 6520 6361 non-NULL. The ca
│ │ │ │ -0011d050: 6c6c 6261 636b 2073 686f 756c 6420 7265 llback should re
│ │ │ │ -0011d060: 7475 726e 2074 6865 203c 636f 6465 3e68 turn the h
│ │ │ │ -0011d070: 616e 646c 653c 2f63 6f64 653e 2070 6172 andle
par
│ │ │ │ -0011d080: 616d 6574 6572 2076 616c 7565 206f 7220 ameter value or
│ │ │ │ -0011d090: 616e 6f74 6865 7220 706f 696e 7465 7220 another pointer
│ │ │ │ -0011d0a0: 7661 6c75 652c 2077 6869 6368 2069 7320 value, which is
│ │ │ │ -0011d0b0: 7061 7373 6564 2061 7320 7468 6520 6e65 passed as the ne
│ │ │ │ -0011d0c0: 7720 3c63 6f64 653e 6861 6e64 6c65 3c2f w handle
│ │ │ │ -0011d0d0: 636f 6465 3e20 7061 7261 6d65 7465 7220 code> parameter
│ │ │ │ -0011d0e0: 746f 203c 636f 6465 3e3c 6120 636c 6173 to
c
│ │ │ │ -0011d260: 616c 6c62 6163 6b73 2e20 5768 656e 2061 allbacks. When a
│ │ │ │ -0011d270: 6e20 6572 726f 7220 6f63 6375 7272 6564 n error occurred
│ │ │ │ -0011d280: 2069 6e20 7468 6973 2063 616c 6c62 6163 in this callbac
│ │ │ │ -0011d290: 6b2c 2074 6865 2063 616c 6c62 6163 6b20 k, the callback
│ │ │ │ -0011d2a0: 7368 6f75 6c64 2072 6574 7572 6e20 4e55 should return NU
│ │ │ │ -0011d2b0: 4c4c 2061 6e64 2073 6574 203c 636f 6465 LL and set so
│ │ │ │ -0011d180: 6170 3a3a 666d 696d 6572 6561 643c 2f61 ap::fmimeread
and soap::err
│ │ │ │ -0011d370: 6f72 3c2f 613e 3c2f 636f 6465 3e20 746f or
to
│ │ │ │ -0011d380: 2061 6e20 6572 726f 7220 636f 6465 2c20 an error code,
│ │ │ │ -0011d390: 652e 672e 2075 7369 6e67 203c 636f 6465 e.g. using soap_receiver_f
│ │ │ │ -0011d450: 6175 6c74 3c2f 613e 3c2f 636f 6465 3e2e ault
.
│ │ │ │ -0011d460: 2054 6865 2063 616c 6c62 6163 6b20 6d61 The callback ma
│ │ │ │ -0011d470: 7920 7265 7475 726e 204e 554c 4c20 616e y return NULL an
│ │ │ │ -0011d480: 6420 7365 7420 3c63 6f64 653e 3c61 2063 d set soap::error
to size_t (*
│ │ │ │ -0011d5e0: 736f 6170 2e66 6d69 6d65 7265 6164 2928 soap.fmimeread)(
│ │ │ │ -0011d5f0: 7374 7275 6374 2073 6f61 7020 2a73 6f61 struct soap *soa
│ │ │ │ -0011d600: 702c 2076 6f69 6420 2a68 616e 646c 652c p, void *handle,
│ │ │ │ -0011d610: 2063 6861 7220 2a62 7566 2c20 7369 7a65 char *buf, size
│ │ │ │ -0011d620: 5f74 206c 656e 293c 2f63 6f64 653e 2054 _t len)
T
│ │ │ │ -0011d630: 6869 7320 6361 6c6c 6261 636b 2069 7320 his callback is
│ │ │ │ -0011d640: 6361 6c6c 6564 2062 7920 7468 6520 656e called by the en
│ │ │ │ -0011d650: 6769 6e65 2074 6f20 7265 6164 2061 2063 gine to read a c
│ │ │ │ -0011d660: 6875 6e6b 206f 6620 6174 7461 6368 6d65 hunk of attachme
│ │ │ │ -0011d670: 6e74 2064 6174 6120 746f 2074 7261 6e73 nt data to trans
│ │ │ │ -0011d680: 6d69 742e 2054 6865 203c 636f 6465 3e68 mit. The h
│ │ │ │ -0011d690: 616e 646c 653c 2f63 6f64 653e 2070 6172 andle
par
│ │ │ │ -0011d6a0: 616d 6574 6572 2063 6f6e 7461 696e 7320 ameter contains
│ │ │ │ -0011d6b0: 7468 6520 6861 6e64 6c65 2072 6574 7572 the handle retur
│ │ │ │ -0011d6c0: 6e65 6420 6279 2074 6865 203c 636f 6465 ned by the soa
│ │ │ │ -0011d770: 703a 3a66 6d69 6d65 7265 6164 6f70 656e p::fmimereadopen
│ │ │ │ -0011d780: 3c2f 613e 3c2f 636f 6465 3e20 6361 6c6c
call
│ │ │ │ -0011d790: 6261 636b 2e20 5468 6520 3c63 6f64 653e back. The
│ │ │ │ -0011d7a0: 6275 663c 2f63 6f64 653e 2070 6172 616d buf
param
│ │ │ │ -0011d7b0: 6574 6572 2069 7320 7468 6520 6275 6666 eter is the buff
│ │ │ │ -0011d7c0: 6572 206f 6620 6c65 6e67 7468 203c 636f er of length <
│ │ │ │ -0011d8e0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0011d8f0: 663d 2273 7472 7563 7473 6f61 702e 6874 f="structsoap.ht
│ │ │ │ -0011d900: 6d6c 2361 6238 3566 3564 3432 3730 3239 ml#ab85f5d427029
│ │ │ │ -0011d910: 3633 6431 3365 6135 3430 6264 3938 3736 63d13ea540bd9876
│ │ │ │ -0011d920: 6536 6432 2220 7469 746c 653d 2254 6865 e6d2" title="The
│ │ │ │ -0011d930: 2073 6f61 7020 636f 6e74 6578 7420 736f soap context so
│ │ │ │ -0011d940: 6170 5f73 7461 7475 7320 2869 6e74 2920 ap_status (int)
│ │ │ │ -0011d950: 6572 726f 7220 636f 6465 206f 6620 7468 error code of th
│ │ │ │ -0011d960: 6520 6c61 7374 206f 7065 7261 7469 6f6e e last operation
│ │ │ │ -0011d970: 206f 7220 2353 4f41 505f 4f4b 2028 7a65 or #SOAP_OK (ze
│ │ │ │ -0011d980: 726f 2922 3e73 6f61 703a 3a65 7272 6f72 ro)">soap::error
│ │ │ │ -0011d990: 3c2f 613e 3c2f 636f 6465 3e20 7368 6f75
shou
│ │ │ │ -0011d9a0: 6c64 2062 6520 7365 742e 2054 6865 203c ld be set. The <
│ │ │ │ -0011d9b0: 636f 6465 3e5f 5f73 697a 653c 2f63 6f64 code>__size member variab
│ │ │ │ -0011d9d0: 6c65 206f 6620 7468 6520 6174 7461 6368 le of the attach
│ │ │ │ -0011d9e0: 6d65 6e74 2073 7472 7563 742f 636c 6173 ment struct/clas
│ │ │ │ -0011d9f0: 7320 7769 7468 2064 6174 6120 2865 2e67 s with data (e.g
│ │ │ │ -0011da00: 2e20 3c63 6f64 653e 3c61 2063 6c61 7373 . xsd__base6
│ │ │ │ -0011da80: 3442 696e 6172 793c 2f61 3e3c 2f63 6f64 4Binary or
ca
│ │ │ │ -0011e110: 6c6c 6261 636b 2e3c 2f6c 693e 0a3c 6c69 llback.._xop__Include<
│ │ │ │ -0011db10: 2f61 3e3c 2f63 6f64 653e 2077 6974 6820 /a>
with
│ │ │ │ -0011db20: 3c63 6f64 653e 5f5f 7074 723c 2f63 6f64 __ptr,
This ca
│ │ │ │ -0011dfb0: 6c6c 6261 636b 2069 7320 6361 6c6c 6564 llback is called
│ │ │ │ -0011dfc0: 2062 7920 7468 6520 656e 6769 6e65 2074 by the engine t
│ │ │ │ -0011dfd0: 6f20 636c 6f73 6520 7468 6520 4d49 4d45 o close the MIME
│ │ │ │ -0011dfe0: 2f4d 544f 4d20 6174 7461 6368 6d65 6e74 /MTOM attachment
│ │ │ │ -0011dff0: 2073 7472 6561 6d20 6166 7465 7220 7265 stream after re
│ │ │ │ -0011e000: 6164 696e 672e 2054 6865 203c 636f 6465 ading. The __size
│ │ │ │ -0011db40: 3c2f 636f 6465 3e2c 203c 636f 6465 3e69
, i
│ │ │ │ -0011db50: 643c 2f63 6f64 653e 2c20 3c63 6f64 653e d
,
│ │ │ │ -0011db60: 7479 7065 3c2f 636f 6465 3e20 616e 6420 type
and
│ │ │ │ -0011db70: 3c63 6f64 653e 6f70 7469 6f6e 733c 2f63 options members) sh
│ │ │ │ -0011db90: 6f75 6c64 2062 6520 7365 7420 6279 2074 ould be set by t
│ │ │ │ -0011dba0: 6865 2061 7070 6c69 6361 7469 6f6e 2070 he application p
│ │ │ │ -0011dbb0: 7269 6f72 2074 6f20 7468 6520 7365 7269 rior to the seri
│ │ │ │ -0011dbc0: 616c 697a 6174 696f 6e20 6f66 2074 6865 alization of the
│ │ │ │ -0011dbd0: 206d 6573 7361 6765 2077 6974 6820 6174 message with at
│ │ │ │ -0011dbe0: 7461 6368 6d65 6e74 732e 2054 6865 2076 tachments. The v
│ │ │ │ -0011dbf0: 616c 7565 206f 6620 3c63 6f64 653e 5f5f alue of
b
│ │ │ │ -0011def0: 7566 6665 7220 7769 7468 203c 636f 6465 uffer with __
│ │ │ │ -0011dc00: 7369 7a65 3c2f 636f 6465 3e20 696e 6469 size
indi
│ │ │ │ -0011dc10: 6361 7465 7320 7468 6520 746f 7461 6c20 cates the total
│ │ │ │ -0011dc20: 7369 7a65 206f 6620 7468 6520 6174 7461 size of the atta
│ │ │ │ -0011dc30: 6368 6d65 6e74 2064 6174 6120 746f 2062 chment data to b
│ │ │ │ -0011dc40: 6520 7472 616e 736d 6974 7465 642e 2049 e transmitted. I
│ │ │ │ -0011dc50: 6620 7468 6520 3c63 6f64 653e 5f5f 7369 f the __si
│ │ │ │ -0011dc60: 7a65 3c2f 636f 6465 3e20 6d65 6d62 6572 ze
member
│ │ │ │ -0011dc70: 2076 6172 6961 626c 6520 6973 207a 6572 variable is zer
│ │ │ │ -0011dc80: 6f20 616e 6420 4854 5450 2063 6875 6e6b o and HTTP chunk
│ │ │ │ -0011dc90: 696e 6720 6973 2065 6e61 626c 6564 2028 ing is enabled (
│ │ │ │ -0011dca0: 7769 7468 203c 636f 6465 3e23 534f 4150 with #SOAP
│ │ │ │ -0011dcb0: 5f49 4f5f 4348 554e 4b3c 2f63 6f64 653e _IO_CHUNK
│ │ │ │ -0011dcc0: 292c 2074 6865 6e20 4d49 4d45 2f4d 544f ), then MIME/MTO
│ │ │ │ -0011dcd0: 4d20 6368 756e 6b65 6420 7472 616e 7366 M chunked transf
│ │ │ │ -0011dce0: 6572 7320 6172 6520 6163 7469 7661 7465 ers are activate
│ │ │ │ -0011dcf0: 6420 6279 2074 6865 2065 6e67 696e 652c d by the engine,
│ │ │ │ -0011dd00: 2077 6869 6368 2069 7320 6d6f 7265 2066 which is more f
│ │ │ │ -0011dd10: 6c65 7869 626c 6520 7369 6e63 6520 7468 lexible since th
│ │ │ │ -0011dd20: 6520 6174 7461 6368 6d65 6e74 2064 6174 e attachment dat
│ │ │ │ -0011dd30: 6120 7369 7a65 2064 6f65 7320 6e6f 7420 a size does not
│ │ │ │ -0011dd40: 6e65 6564 2074 6f20 6265 2064 6574 6572 need to be deter
│ │ │ │ -0011dd50: 6d69 6e65 6420 696e 2061 6476 616e 6365 mined in advance
│ │ │ │ -0011dd60: 2e20 546f 2075 7365 204d 494d 452f 4d54 . To use MIME/MT
│ │ │ │ -0011dd70: 4f4d 2063 6875 6e6b 6564 2074 7261 6e73 OM chunked trans
│ │ │ │ -0011dd80: 6665 7273 2c20 656e 6162 6c65 2048 5454 fers, enable HTT
│ │ │ │ -0011dd90: 5020 6368 756e 6b69 6e67 2077 6974 6820 P chunking with
│ │ │ │ -0011dda0: 3c63 6f64 653e 2353 4f41 505f 494f 5f43 #SOAP_IO_C
│ │ │ │ -0011ddb0: 4855 4e4b 3c2f 636f 6465 3e20 2861 6c73 HUNK
(als
│ │ │ │ -0011ddc0: 6f20 3c63 6f64 653e 2353 4f41 505f 494f o #SOAP_IO
│ │ │ │ -0011ddd0: 5f53 544f 5245 3c2f 636f 6465 3e20 6361 _STORE
ca
│ │ │ │ -0011dde0: 6e20 6265 2075 7365 642c 2062 7574 2074 n be used, but t
│ │ │ │ -0011ddf0: 6869 7320 6275 6666 6572 7320 7468 6520 his buffers the
│ │ │ │ -0011de00: 656e 7469 7265 206d 6573 7361 6765 2069 entire message i
│ │ │ │ -0011de10: 6e20 6d65 6d6f 7279 2062 6566 6f72 6520 n memory before
│ │ │ │ -0011de20: 7472 616e 736d 6973 7369 6f6e 2920 616e transmission) an
│ │ │ │ -0011de30: 6420 7365 7420 7468 6520 3c63 6f64 653e d set the
│ │ │ │ -0011de40: 5f5f 7369 7a65 3c2f 636f 6465 3e20 6d65 __size
me
│ │ │ │ -0011de50: 6d62 6572 2076 6172 6961 626c 6520 6f66 mber variable of
│ │ │ │ -0011de60: 2074 6865 2061 7474 6163 686d 656e 7420 the attachment
│ │ │ │ -0011de70: 7374 7275 6374 2f63 6c61 7373 2074 6f20 struct/class to
│ │ │ │ -0011de80: 7a65 726f 2e20 5768 656e 204d 494d 452f zero. When MIME/
│ │ │ │ -0011de90: 4d54 4f4d 2061 7474 6163 686d 656e 7420 MTOM attachment
│ │ │ │ -0011dea0: 6368 756e 6b69 6e67 2069 7320 656e 6162 chunking is enab
│ │ │ │ -0011deb0: 6c65 642c 2074 6869 7320 6361 6c6c 6261 led, this callba
│ │ │ │ -0011dec0: 636b 2073 686f 756c 6420 636f 6d70 6c65 ck should comple
│ │ │ │ -0011ded0: 7465 6c79 2066 696c 6c20 7468 6520 3c63 tely fill the len
byte
│ │ │ │ -0011df10: 7320 756e 6c65 7373 2074 6865 206c 6173 s unless the las
│ │ │ │ -0011df20: 7420 6461 7461 2063 6875 6e6b 2069 7320 t data chunk is
│ │ │ │ -0011df30: 7265 6163 6865 6420 616e 6420 6665 7765 reached and fewe
│ │ │ │ -0011df40: 7220 6279 7465 7320 6172 6520 7265 7475 r bytes are retu
│ │ │ │ -0011df50: 726e 6564 2e3c 2f6c 693e 0a3c 6c69 3e3c rned..handle
p
│ │ │ │ -0011e020: 6172 616d 6574 6572 2063 6f6e 7461 696e arameter contain
│ │ │ │ -0011e030: 7320 7468 6520 6861 6e64 6c65 2072 6574 s the handle ret
│ │ │ │ -0011e040: 7572 6e65 6420 6279 2074 6865 203c 636f urned by the void *(*s
│ │ │ │ -0011e130: 6f61 702e 666d 696d 6577 7269 7465 6f70 oap.fmimewriteop
│ │ │ │ -0011e140: 656e 2928 7374 7275 6374 2073 6f61 7020 en)(struct soap
│ │ │ │ -0011e150: 2a73 6f61 702c 2076 6f69 6420 2a68 616e *soap, void *han
│ │ │ │ -0011e160: 646c 652c 2063 6f6e 7374 2063 6861 7220 dle, const char
│ │ │ │ -0011e170: 2a69 642c 2063 6f6e 7374 2063 6861 7220 *id, const char
│ │ │ │ -0011e180: 2a74 7970 652c 2063 6f6e 7374 2063 6861 *type, const cha
│ │ │ │ -0011e190: 7220 2a64 6573 6372 6970 7469 6f6e 2c20 r *description,
│ │ │ │ -0011e1a0: 656e 756d 2073 6f61 705f 6d69 6d65 5f65 enum soap_mime_e
│ │ │ │ -0011e1b0: 6e63 6f64 696e 6720 656e 636f 6469 6e67 ncoding encoding
│ │ │ │ -0011e1c0: 293c 2f63 6f64 653e 2043 616c 6c65 6420 )
Called
│ │ │ │ -0011e1d0: 6279 2074 6865 2074 6f20 7374 6172 7420 by the to start
│ │ │ │ -0011e1e0: 7265 6365 6976 696e 6720 6120 7374 7265 receiving a stre
│ │ │ │ -0011e1f0: 616d 696e 6720 4d49 4d45 2f4d 544f 4d20 aming MIME/MTOM
│ │ │ │ -0011e200: 6174 7461 6368 6d65 6e74 2e20 5468 6973 attachment. This
│ │ │ │ -0011e210: 2063 616c 6c62 6163 6b20 6f70 656e 7320 callback opens
│ │ │ │ -0011e220: 6120 7374 7265 616d 2074 6f20 7374 6172 a stream to star
│ │ │ │ -0011e230: 7420 7772 6974 696e 6720 7468 6520 6174 t writing the at
│ │ │ │ -0011e240: 7461 6368 6d65 6e74 2064 6174 6120 7265 tachment data re
│ │ │ │ -0011e250: 6365 6976 6564 2e20 5468 6520 6163 7475 ceived. The actu
│ │ │ │ -0011e260: 616c 2064 6174 6120 7374 7265 616d 2077 al data stream w
│ │ │ │ -0011e270: 696c 6c20 6265 2077 7269 7474 656e 2069 ill be written i
│ │ │ │ -0011e280: 6e20 6368 756e 6b73 2075 7369 6e67 2074 n chunks using t
│ │ │ │ -0011e290: 6865 203c 636f 6465 3e3c 6120 636c 6173 he soap::
│ │ │ │ -0011e330: 666d 696d 6577 7269 7465 3c2f 613e 3c2f fmimewrite
│ │ │ │ -0011e340: 636f 6465 3e20 6361 6c6c 6261 636b 2075 code> callback u
│ │ │ │ -0011e350: 6e74 696c 206e 6f20 6d6f 7265 2064 6174 ntil no more dat
│ │ │ │ -0011e360: 6120 6973 2061 7661 696c 6162 6c65 2061 a is available a
│ │ │ │ -0011e370: 6e64 2074 6865 203c 636f 6465 3e3c 6120 nd the
│ │ │ │ -0011e7a0: 616e 6420 3c63 6f64 653e 3c61 2063 6c61 and soap::f
│ │ │ │ -0011e420: 6d69 6d65 7772 6974 6563 6c6f 7365 3c2f mimewriteclose
│ │ │ │ -0011e430: 613e 3c2f 636f 6465 3e20 6361 6c6c 6261 a>
callba
│ │ │ │ -0011e440: 636b 2069 7320 6361 6c6c 6564 2074 6f20 ck is called to
│ │ │ │ -0011e450: 636c 6f73 6520 7468 6520 7374 7265 616d close the stream
│ │ │ │ -0011e460: 2e20 5468 6520 3c63 6f64 653e 6964 3c2f . The id
│ │ │ │ -0011e470: 636f 6465 3e2c 203c 636f 6465 3e74 7970 code>,
parameters are
│ │ │ │ -0011e4b0: 2074 6865 203c 636f 6465 3e69 643c 2f63 the typ
│ │ │ │ -0011e480: 653c 2f63 6f64 653e 2061 6e64 203c 636f e
and id,
│ │ │ │ -0011e4f0: 206f 6620 7468 6520 6174 7461 6368 6d65 of the attachme
│ │ │ │ -0011e500: 6e74 2073 7472 7563 742f 636c 6173 7320 nt struct/class
│ │ │ │ -0011e510: 2865 2e67 2e20 3c63 6f64 653e 3c61 2063 (e.g. type
│ │ │ │ -0011e4d0: 3c2f 636f 6465 3e20 616e 6420 3c63 6f64
and xsd__b
│ │ │ │ -0011e590: 6173 6536 3442 696e 6172 793c 2f61 3e3c ase64Binary<
│ │ │ │ -0011e5a0: 2f63 6f64 653e 206f 7220 3c63 6f64 653e /code> or
│ │ │ │ -0011e680: 616e 6420 3c63 6f64 653e 6f70 7469 6f6e and
│ │ │ │ -0011e5b0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 _xop__Incl
│ │ │ │ -0011e620: 7564 653c 2f61 3e3c 2f63 6f64 653e 2077 ude
w
│ │ │ │ -0011e630: 6974 6820 3c63 6f64 653e 5f5f 7074 723c ith __ptr<
│ │ │ │ -0011e640: 2f63 6f64 653e 2c20 3c63 6f64 653e 5f5f /code>,
, __
│ │ │ │ -0011e650: 7369 7a65 3c2f 636f 6465 3e2c 203c 636f size
, option
│ │ │ │ -0011e690: 733c 2f63 6f64 653e 206d 656d 6265 7273 s
members
│ │ │ │ -0011e6a0: 292c 2072 6573 7065 6374 6976 656c 792e ), respectively.
│ │ │ │ -0011e6b0: 2054 6865 2063 616c 6c62 6163 6b20 7368 The callback sh
│ │ │ │ -0011e6c0: 6f75 6c64 2072 6574 7572 6e20 6120 6861 ould return a ha
│ │ │ │ -0011e6d0: 6e64 6c65 2c20 7768 6963 6820 6973 2070 ndle, which is p
│ │ │ │ -0011e6e0: 6173 7365 6420 746f 2074 6865 203c 636f assed to the soap::fmim
│ │ │ │ -0011e850: 6577 7269 7465 636c 6f73 653c 2f61 3e3c ewriteclose<
│ │ │ │ -0011e860: 2f63 6f64 653e 2063 616c 6c62 6163 6b73 /code> callbacks
│ │ │ │ -0011e870: 2e20 5468 6520 3c63 6f64 653e 5f5f 7074 . The
member variabl
│ │ │ │ -0011e910: 6520 6973 2073 6574 2074 6f20 7468 6520 e is set to the
│ │ │ │ -0011e920: 7369 7a65 206f 6620 7468 6520 6174 7461 size of the atta
│ │ │ │ -0011e930: 6368 6d65 6e74 2072 6563 6569 7665 642e chment received.
│ │ │ │ -0011e940: 3c2f 6c69 3e0a 3c6c 693e 3c63 6f64 653e __pt
│ │ │ │ -0011e880: 723c 2f63 6f64 653e 206d 656d 6265 7220 r
member
│ │ │ │ -0011e890: 7661 7269 6162 6c65 206f 6620 7468 6520 variable of the
│ │ │ │ -0011e8a0: 6174 7461 6368 6d65 6e74 2073 7472 7563 attachment struc
│ │ │ │ -0011e8b0: 742f 636c 6173 7320 6973 2073 6574 2062 t/class is set b
│ │ │ │ -0011e8c0: 7920 7468 6520 656e 6769 6e65 2074 6f20 y the engine to
│ │ │ │ -0011e8d0: 7468 6520 7661 6c75 6520 6f66 2074 6869 the value of thi
│ │ │ │ -0011e8e0: 7320 6861 6e64 6c65 2e20 5468 6520 3c63 s handle. The
│ │ │ │ -0011e950: 696e 7420 282a 736f 6170 2e66 6d69 6d65 int (*soap.fmime
│ │ │ │ -0011e960: 7772 6974 6529 2873 7472 7563 7420 736f write)(struct so
│ │ │ │ -0011e970: 6170 202a 736f 6170 2c20 766f 6964 202a ap *soap, void *
│ │ │ │ -0011e980: 6861 6e64 6c65 2c20 636f 6e73 7420 6368 handle, const ch
│ │ │ │ -0011e990: 6172 202a 6275 662c 2073 697a 655f 7420 ar *buf, size_t
│ │ │ │ -0011e9a0: 6c65 6e29 3c2f 636f 6465 3e20 5468 6973 len)
This
│ │ │ │ -0011e9b0: 2063 616c 6c62 6163 6b20 6973 2063 616c callback is cal
│ │ │ │ -0011e9c0: 6c65 6420 6279 2074 6865 2065 6e67 696e led by the engin
│ │ │ │ -0011e9d0: 6520 746f 2077 7269 7465 2061 2063 6875 e to write a chu
│ │ │ │ -0011e9e0: 6e6b 206f 6620 6174 7461 6368 6d65 6e74 nk of attachment
│ │ │ │ -0011e9f0: 2064 6174 6120 7265 6365 6976 6564 2e20 data received.
│ │ │ │ -0011ea00: 5468 6520 3c63 6f64 653e 6861 6e64 6c65 The handle
│ │ │ │ -0011ea10: 3c2f 636f 6465 3e20 7061 7261 6d65 7465
paramete
│ │ │ │ -0011ea20: 7220 636f 6e74 6169 6e73 2074 6865 2068 r contains the h
│ │ │ │ -0011ea30: 616e 646c 6520 7265 7475 726e 6564 2062 andle returned b
│ │ │ │ -0011ea40: 7920 7468 6520 3c63 6f64 653e 3c61 2063 y the soap::fm
│ │ │ │ -0011eaf0: 696d 6577 7269 7465 6f70 656e 3c2f 613e imewriteopen
│ │ │ │ -0011eb00: 3c2f 636f 6465 3e20 6361 6c6c 6261 636b
callback
│ │ │ │ -0011eb10: 2e20 5468 6520 3c63 6f64 653e 6275 663c . The buf<
│ │ │ │ -0011eb20: 2f63 6f64 653e 2070 6172 616d 6574 6572 /code> parameter
│ │ │ │ -0011eb30: 2063 6f6e 7461 696e 7320 7468 6520 6461 contains the da
│ │ │ │ -0011eb40: 7461 206f 6620 6c65 6e67 7468 203c 636f ta of length
. R
│ │ │ │ -0011eb60: 6574 7572 6e73 203c 636f 6465 3e23 534f eturns #SO
│ │ │ │ -0011eb70: 4150 5f4f 4b3c 2f63 6f64 653e 206f 7220 AP_OK
or
│ │ │ │ -0011eb80: 6120 3c63 6f64 653e 3c61 2063 6c61 7373 a soap_st
│ │ │ │ -0011ec40: 6174 7573 3c2f 613e 3c2f 636f 6465 3e20 atus
│ │ │ │ -0011ec50: 2869 6e74 2920 6572 726f 7220 636f 6465 (int) error code
│ │ │ │ -0011ec60: 2e3c 2f6c 693e 0a3c 6c69 3e3c 636f 6465 .void (*soap.fmi
│ │ │ │ -0011ec80: 6d65 7772 6974 6563 6c6f 7365 2928 7374 mewriteclose)(st
│ │ │ │ -0011ec90: 7275 6374 2073 6f61 7020 2a73 6f61 702c ruct soap *soap,
│ │ │ │ -0011eca0: 2076 6f69 6420 2a68 616e 646c 6529 3c2f void *handle)
│ │ │ │ -0011ecb0: 636f 6465 3e20 5468 6973 2063 616c 6c62 code> This callb
│ │ │ │ -0011ecc0: 6163 6b20 6973 2063 616c 6c65 6420 6279 ack is called by
│ │ │ │ -0011ecd0: 2074 6865 2065 6e67 696e 6520 746f 2063 the engine to c
│ │ │ │ -0011ece0: 6c6f 7365 2074 6865 204d 494d 452f 4d54 lose the MIME/MT
│ │ │ │ -0011ecf0: 4f4d 2061 7474 6163 686d 656e 7420 7374 OM attachment st
│ │ │ │ -0011ed00: 7265 616d 2061 6674 6572 2077 7269 7469 ream after writi
│ │ │ │ -0011ed10: 6e67 2e20 5468 6520 3c63 6f64 653e 6861 ng. The
ha
│ │ │ │ -0011ed20: 6e64 6c65 3c2f 636f 6465 3e20 7061 7261 ndle
para
│ │ │ │ -0011ed30: 6d65 7465 7220 636f 6e74 6169 6e73 2074 meter contains t
│ │ │ │ -0011ed40: 6865 2068 616e 646c 6520 7265 7475 726e he handle return
│ │ │ │ -0011ed50: 6564 2062 7920 7468 6520 3c63 6f64 653e ed by the
│ │ │ │ -0011ed60: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap
│ │ │ │ -0011ee00: 3a3a 666d 696d 6577 7269 7465 6f70 656e ::fmimewriteopen
│ │ │ │ -0011ee10: 3c2f 613e 3c2f 636f 6465 3e20 6361 6c6c
call
│ │ │ │ -0011ee20: 6261 636b 2e3c 2f6c 693e 0a3c 2f75 6c3e back.void* <
│ │ │ │ -0011ee50: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0011ee60: 663d 2273 7472 7563 7473 6f61 702e 6874 f="structsoap.ht
│ │ │ │ -0011ee70: 6d6c 2361 3865 6233 3563 3034 3335 3961 ml#a8eb35c04359a
│ │ │ │ -0011ee80: 3536 3763 3062 3565 3236 3634 6633 6639 567c0b5e2664f3f9
│ │ │ │ -0011ee90: 3464 3562 2220 7469 746c 653d 2255 7365 4d5b" title="Use
│ │ │ │ -0011eea0: 722d 6465 6669 6e61 626c 6520 7661 7269 r-definable vari
│ │ │ │ -0011eeb0: 6162 6c65 2074 6861 7420 6d61 7920 706f able that may po
│ │ │ │ -0011eec0: 696e 7420 746f 2075 7365 722d 7370 6563 int to user-spec
│ │ │ │ -0011eed0: 6966 6965 6420 6461 7461 206f 6620 616e ified data of an
│ │ │ │ -0011eee0: 7920 7479 7065 2074 6f20 7061 7373 2074 y type to pass t
│ │ │ │ -0011eef0: 6865 2064 6174 6120 7468 726f 7567 6820 he data through
│ │ │ │ -0011ef00: 746f 2e2e 2e22 3e73 6f61 703a 3a75 7365 to...">soap::use
│ │ │ │ -0011ef10: 723c 2f61 3e3c 2f63 6f64 653e 206d 656d r
mem
│ │ │ │ -0011ef20: 6265 7220 6973 2061 7661 696c 6162 6c65 ber is available
│ │ │ │ -0011ef30: 2074 6f20 7061 7373 2075 7365 722d 6465 to pass user-de
│ │ │ │ -0011ef40: 6669 6e65 6420 6461 7461 2074 6f20 7468 fined data to th
│ │ │ │ -0011ef50: 6520 6361 6c6c 6261 636b 732e 2054 6869 e callbacks. Thi
│ │ │ │ -0011ef60: 7320 7761 792c 2079 6f75 2063 616e 2073 s way, you can s
│ │ │ │ -0011ef70: 6574 203c 636f 6465 3e76 6f69 642a 203c et void* <
│ │ │ │ -0011ef80: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0011ef90: 663d 2273 7472 7563 7473 6f61 702e 6874 f="structsoap.ht
│ │ │ │ -0011efa0: 6d6c 2361 3865 6233 3563 3034 3335 3961 ml#a8eb35c04359a
│ │ │ │ -0011efb0: 3536 3763 3062 3565 3236 3634 6633 6639 567c0b5e2664f3f9
│ │ │ │ -0011efc0: 3464 3562 2220 7469 746c 653d 2255 7365 4d5b" title="Use
│ │ │ │ -0011efd0: 722d 6465 6669 6e61 626c 6520 7661 7269 r-definable vari
│ │ │ │ -0011efe0: 6162 6c65 2074 6861 7420 6d61 7920 706f able that may po
│ │ │ │ -0011eff0: 696e 7420 746f 2075 7365 722d 7370 6563 int to user-spec
│ │ │ │ -0011f000: 6966 6965 6420 6461 7461 206f 6620 616e ified data of an
│ │ │ │ -0011f010: 7920 7479 7065 2074 6f20 7061 7373 2074 y type to pass t
│ │ │ │ -0011f020: 6865 2064 6174 6120 7468 726f 7567 6820 he data through
│ │ │ │ -0011f030: 746f 2e2e 2e22 3e73 6f61 703a 3a75 7365 to...">soap::use
│ │ │ │ -0011f040: 723c 2f61 3e3c 2f63 6f64 653e 2074 6f20 r
to
│ │ │ │ -0011f050: 706f 696e 7420 746f 2061 7070 6c69 6361 point to applica
│ │ │ │ -0011f060: 7469 6f6e 2064 6174 6120 7468 6174 2074 tion data that t
│ │ │ │ -0011f070: 6865 2063 616c 6c62 6163 6b73 206e 6565 he callbacks nee
│ │ │ │ -0011f080: 6420 7375 6368 2061 7320 6120 6669 6c65 d such as a file
│ │ │ │ -0011f090: 206e 616d 6520 666f 7220 6578 616d 706c name for exampl
│ │ │ │ -0011f0a0: 652e 3c2f 703e 0a3c 703e 5468 6520 666f e.#SOA
│ │ │ │ +0011c4f0: 505f 454e 435f 4d54 4f4d 3c2f 636f 6465 P_ENC_MTOM
flag to initia
│ │ │ │ +0011c510: 6c69 7a65 2074 6865 203c 636f 6465 3e3c lize the <
│ │ │ │ +0011c520: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +0011c530: 663d 2273 7472 7563 7473 6f61 702e 6874 f="structsoap.ht
│ │ │ │ +0011c540: 6d6c 2220 7469 746c 653d 2243 6f6e 7465 ml" title="Conte
│ │ │ │ +0011c550: 7874 2077 6974 6820 7468 6520 656e 6769 xt with the engi
│ │ │ │ +0011c560: 6e65 2073 7461 7465 2e22 3e73 6f61 703c ne state.">soap<
│ │ │ │ +0011c570: 2f61 3e3c 2f63 6f64 653e 2063 6f6e 7465 /a>
conte
│ │ │ │ +0011c580: 7874 2074 6f20 7265 6365 6976 6520 616e xt to receive an
│ │ │ │ +0011c590: 6420 7365 6e64 204d 544f 4d20 6174 7461 d send MTOM atta
│ │ │ │ +0011c5a0: 6368 6d65 6e74 732e 3c2f 703e 0a3c 703e chments.
│ │ │ │ +0011c610: 0a53 7472 6561 6d69 6e67 204d 494d 452f .Streaming MIME/
│ │ │ │ +0011c620: 4d54 4f4d 3c2f 6832 3e0a 3c70 3e53 7472 MTOM
.vo
│ │ │ │ +0011c720: 6964 202a 282a 736f 6170 2e66 6d69 6d65 id *(*soap.fmime
│ │ │ │ +0011c730: 7265 6164 6f70 656e 2928 7374 7275 6374 readopen)(struct
│ │ │ │ +0011c740: 2073 6f61 7020 2a73 6f61 702c 2076 6f69 soap *soap, voi
│ │ │ │ +0011c750: 6420 2a68 616e 646c 652c 2063 6f6e 7374 d *handle, const
│ │ │ │ +0011c760: 2063 6861 7220 2a69 642c 2063 6f6e 7374 char *id, const
│ │ │ │ +0011c770: 2063 6861 7220 2a74 7970 652c 2063 6f6e char *type, con
│ │ │ │ +0011c780: 7374 2063 6861 7220 2a64 6573 6372 6970 st char *descrip
│ │ │ │ +0011c790: 7469 6f6e 293c 2f63 6f64 653e 2054 6869 tion)
Thi
│ │ │ │ +0011c7a0: 7320 6361 6c6c 6261 636b 2069 7320 6361 s callback is ca
│ │ │ │ +0011c7b0: 6c6c 6564 2062 7920 7468 6520 656e 6769 lled by the engi
│ │ │ │ +0011c7c0: 6e65 2074 6f20 7374 6172 7420 7365 6e64 ne to start send
│ │ │ │ +0011c7d0: 696e 6720 6120 7374 7265 616d 696e 6720 ing a streaming
│ │ │ │ +0011c7e0: 4d49 4d45 2f4d 544f 4d20 6174 7461 6368 MIME/MTOM attach
│ │ │ │ +0011c7f0: 6d65 6e74 2e20 5468 6973 2063 616c 6c62 ment. This callb
│ │ │ │ +0011c800: 6163 6b20 6f70 656e 7320 6120 7374 7265 ack opens a stre
│ │ │ │ +0011c810: 616d 2074 6f20 7374 6172 7420 7265 6164 am to start read
│ │ │ │ +0011c820: 696e 6720 7468 6520 6174 7461 6368 6d65 ing the attachme
│ │ │ │ +0011c830: 6e74 2064 6174 6120 746f 2073 656e 642e nt data to send.
│ │ │ │ +0011c840: 2054 6865 2061 6374 7561 6c20 6461 7461 The actual data
│ │ │ │ +0011c850: 2073 7472 6561 6d20 7769 6c6c 2062 6520 stream will be
│ │ │ │ +0011c860: 7265 6164 2069 6e20 6368 756e 6b73 2075 read in chunks u
│ │ │ │ +0011c870: 7369 6e67 2074 6865 203c 636f 6465 3e3c sing the <
│ │ │ │ +0011c880: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +0011c890: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +0011c8a0: 5f63 616c 6c62 6163 6b73 2e68 746d 6c23 _callbacks.html#
│ │ │ │ +0011c8b0: 6761 6666 3430 6131 6361 3666 6266 3037 gaff40a1ca6fbf07
│ │ │ │ +0011c8c0: 3562 3534 6363 6266 3437 3930 3039 6365 5b54ccbf479009ce
│ │ │ │ +0011c8d0: 3734 2220 7469 746c 653d 2243 616c 6c62 74" title="Callb
│ │ │ │ +0011c8e0: 6163 6b20 746f 2072 6561 6420 6461 7461 ack to read data
│ │ │ │ +0011c8f0: 2069 6e20 6120 4d49 4d45 2f4d 544f 4d20 in a MIME/MTOM
│ │ │ │ +0011c900: 6174 7461 6368 6d65 6e74 2073 7472 6561 attachment strea
│ │ │ │ +0011c910: 6d2e 223e 736f 6170 3a3a 666d 696d 6572 m.">soap::fmimer
│ │ │ │ +0011c920: 6561 643c 2f61 3e3c 2f63 6f64 653e 2063 ead
c
│ │ │ │ +0011c930: 616c 6c62 6163 6b20 756e 7469 6c20 6e6f allback until no
│ │ │ │ +0011c940: 206d 6f72 6520 6461 7461 2069 7320 6176 more data is av
│ │ │ │ +0011c950: 6169 6c61 626c 6520 616e 6420 7468 6520 ailable and the
│ │ │ │ +0011c960: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 soap::fmimerea
│ │ │ │ +0011ca10: 6463 6c6f 7365 3c2f 613e 3c2f 636f 6465 dclose
callback is ca
│ │ │ │ +0011ca30: 6c6c 6564 2074 6f20 636c 6f73 6520 7468 lled to close th
│ │ │ │ +0011ca40: 6520 7374 7265 616d 2e20 5468 6520 3c63 e stream. The __pt
│ │ │ │ +0011ca90: 723c 2f63 6f64 653e 206d 656d 6265 7220 r
member
│ │ │ │ +0011caa0: 7661 7269 6162 6c65 206f 6620 7468 6520 variable of the
│ │ │ │ +0011cab0: 6174 7461 6368 6d65 6e74 2073 7472 7563 attachment struc
│ │ │ │ +0011cac0: 742f 636c 6173 7320 7769 7468 2064 6174 t/class with dat
│ │ │ │ +0011cad0: 6120 2865 2e67 2e20 3c63 6f64 653e 3c61 a (e.g. xsd_
│ │ │ │ +0011cb50: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
or __pt
│ │ │ │ +0011cc00: 723c 2f63 6f64 653e 2c20 3c63 6f64 653e r
,
│ │ │ │ +0011cc10: 5f5f 7369 7a65 3c2f 636f 6465 3e2c 203c __size
, <
│ │ │ │ +0011cc20: 636f 6465 3e69 643c 2f63 6f64 653e 2c20 code>id,
│ │ │ │ +0011cc30: 3c63 6f64 653e 7479 7065 3c2f 636f 6465 type
and opti
│ │ │ │ +0011cc50: 6f6e 733c 2f63 6f64 653e 206d 656d 6265 ons
membe
│ │ │ │ +0011cc60: 7273 292c 2077 6869 6368 2073 686f 756c rs), which shoul
│ │ │ │ +0011cc70: 6420 6265 2061 2070 6f69 6e74 6572 2074 d be a pointer t
│ │ │ │ +0011cc80: 6f20 7370 6563 6966 6963 2069 6e66 6f72 o specific infor
│ │ │ │ +0011cc90: 6d61 7469 6f6e 2073 7563 6820 6173 2061 mation such as a
│ │ │ │ +0011cca0: 2066 696c 6520 6465 7363 7269 7074 6f72 file descriptor
│ │ │ │ +0011ccb0: 206f 7220 6120 706f 696e 7465 7220 746f or a pointer to
│ │ │ │ +0011ccc0: 2061 2073 6f6d 6520 6170 706c 6963 6174 a some applicat
│ │ │ │ +0011ccd0: 696f 6e2d 7370 6563 6966 6963 2064 6174 ion-specific dat
│ │ │ │ +0011cce0: 6120 746f 2062 6520 7061 7373 6564 2074 a to be passed t
│ │ │ │ +0011ccf0: 6f20 7468 6973 2063 616c 6c62 6163 6b2e o this callback.
│ │ │ │ +0011cd00: 2042 6f74 6820 7468 6520 3c63 6f64 653e Both the
│ │ │ │ +0011cd10: 5f5f 7074 723c 2f63 6f64 653e 2061 6e64 __ptr
and
│ │ │ │ +0011cd20: 203c 636f 6465 3e5f 5f73 697a 653c 2f63 __size
__s
│ │ │ │ +0011cdd0: 697a 653c 2f63 6f64 653e 2069 7320 7a65 ize
is ze
│ │ │ │ +0011cde0: 726f 2061 6e64 2048 5454 5020 6368 756e ro and HTTP chun
│ │ │ │ +0011cdf0: 6b69 6e67 2069 7320 656e 6162 6c65 6420 king is enabled
│ │ │ │ +0011ce00: 2877 6974 6820 3c63 6f64 653e 2353 4f41 (with #SOA
│ │ │ │ +0011ce10: 505f 494f 5f43 4855 4e4b 3c2f 636f 6465 P_IO_CHUNK
), then chunked
│ │ │ │ +0011ce30: 204d 494d 452f 4d54 4f4d 2061 7474 6163 MIME/MTOM attac
│ │ │ │ +0011ce40: 686d 656e 7473 2061 7265 2073 656e 742c hments are sent,
│ │ │ │ +0011ce50: 2073 6565 203c 636f 6465 3e3c 6120 636c see
│ │ │ │ +0011cef0: 736f 6170 3a3a 666d 696d 6572 6561 643c soap::fmimeread<
│ │ │ │ +0011cf00: 2f61 3e3c 2f63 6f64 653e 2e20 5468 6520 /a>
. The
│ │ │ │ +0011cf10: 3c63 6f64 653e 6964 3c2f 636f 6465 3e2c id
,
│ │ │ │ +0011cf20: 203c 636f 6465 3e74 7970 653c 2f63 6f64 type and
(
│ │ │ │ +0011cf70: 616e 206f 7074 696f 6e61 6c20 4944 292c an optional ID),
│ │ │ │ +0011cf80: 203c 636f 6465 3e74 7970 653c 2f63 6f64 opt
│ │ │ │ +0011cf40: 696f 6e73 3c2f 636f 6465 3e20 7061 7261 ions
para
│ │ │ │ +0011cf50: 6d65 7465 7273 2061 7265 2074 6865 203c meters are the <
│ │ │ │ +0011cf60: 636f 6465 3e69 643c 2f63 6f64 653e 2028 code>idtype (a MIME type)
│ │ │ │ +0011cfa0: 2061 6e64 203c 636f 6465 3e6f 7074 696f and
optio
│ │ │ │ +0011cfb0: 6e73 3c2f 636f 6465 3e20 2861 2064 6573 ns
(a des
│ │ │ │ +0011cfc0: 6372 6970 7469 7665 2073 7472 696e 6729 criptive string)
│ │ │ │ +0011cfd0: 206f 6620 7468 6520 6174 7461 6368 6d65 of the attachme
│ │ │ │ +0011cfe0: 6e74 2073 7472 7563 742f 636c 6173 732c nt struct/class,
│ │ │ │ +0011cff0: 2072 6573 7065 6374 6976 656c 792c 206f respectively, o
│ │ │ │ +0011d000: 6620 7768 6963 6820 6174 206c 6561 7374 f which at least
│ │ │ │ +0011d010: 206f 6e65 206d 656d 6265 7220 7368 6f75 one member shou
│ │ │ │ +0011d020: 6c64 2062 6520 6e6f 6e2d 4e55 4c4c 2e20 ld be non-NULL.
│ │ │ │ +0011d030: 5468 6520 6361 6c6c 6261 636b 2073 686f The callback sho
│ │ │ │ +0011d040: 756c 6420 7265 7475 726e 2074 6865 203c uld return the <
│ │ │ │ +0011d050: 636f 6465 3e68 616e 646c 653c 2f63 6f64 code>handle parameter val
│ │ │ │ +0011d070: 7565 206f 7220 616e 6f74 6865 7220 706f ue or another po
│ │ │ │ +0011d080: 696e 7465 7220 7661 6c75 652c 2077 6869 inter value, whi
│ │ │ │ +0011d090: 6368 2069 7320 7061 7373 6564 2061 7320 ch is passed as
│ │ │ │ +0011d0a0: 7468 6520 6e65 7720 3c63 6f64 653e 6861 the new ha
│ │ │ │ +0011d0b0: 6e64 6c65 3c2f 636f 6465 3e20 7061 7261 ndle
para
│ │ │ │ +0011d0c0: 6d65 7465 7220 746f 203c 636f 6465 3e3c meter to <
│ │ │ │ +0011d0d0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +0011d0e0: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +0011d0f0: 5f63 616c 6c62 6163 6b73 2e68 746d 6c23 _callbacks.html#
│ │ │ │ +0011d100: 6761 6666 3430 6131 6361 3666 6266 3037 gaff40a1ca6fbf07
│ │ │ │ +0011d110: 3562 3534 6363 6266 3437 3930 3039 6365 5b54ccbf479009ce
│ │ │ │ +0011d120: 3734 2220 7469 746c 653d 2243 616c 6c62 74" title="Callb
│ │ │ │ +0011d130: 6163 6b20 746f 2072 6561 6420 6461 7461 ack to read data
│ │ │ │ +0011d140: 2069 6e20 6120 4d49 4d45 2f4d 544f 4d20 in a MIME/MTOM
│ │ │ │ +0011d150: 6174 7461 6368 6d65 6e74 2073 7472 6561 attachment strea
│ │ │ │ +0011d160: 6d2e 223e 736f 6170 3a3a 666d 696d 6572 m.">soap::fmimer
│ │ │ │ +0011d170: 6561 643c 2f61 3e3c 2f63 6f64 653e 2061 ead
a
│ │ │ │ +0011d180: 6e64 203c 636f 6465 3e3c 6120 636c 6173 nd soap::fmime
│ │ │ │ +0011d230: 7265 6164 636c 6f73 653c 2f61 3e3c 2f63 readclose callbacks.
│ │ │ │ +0011d250: 5768 656e 2061 6e20 6572 726f 7220 6f63 When an error oc
│ │ │ │ +0011d260: 6375 7272 6564 2069 6e20 7468 6973 2063 curred in this c
│ │ │ │ +0011d270: 616c 6c62 6163 6b2c 2074 6865 2063 616c allback, the cal
│ │ │ │ +0011d280: 6c62 6163 6b20 7368 6f75 6c64 2072 6574 lback should ret
│ │ │ │ +0011d290: 7572 6e20 4e55 4c4c 2061 6e64 2073 6574 urn NULL and set
│ │ │ │ +0011d2a0: 203c 636f 6465 3e3c 6120 636c 6173 733d
│ │ │ │ +0011dc50: 6d65 6d62 6572 2076 6172 6961 626c 6520 member variable
│ │ │ │ +0011dc60: 6973 207a 6572 6f20 616e 6420 4854 5450 is zero and HTTP
│ │ │ │ +0011dc70: 2063 6875 6e6b 696e 6720 6973 2065 6e61 chunking is ena
│ │ │ │ +0011dc80: 626c 6564 2028 7769 7468 203c 636f 6465 bled (with soa
│ │ │ │ +0011d350: 703a 3a65 7272 6f72 3c2f 613e 3c2f 636f p::error to an error
│ │ │ │ +0011d370: 636f 6465 2c20 652e 672e 2075 7369 6e67 code, e.g. using
│ │ │ │ +0011d380: 203c 636f 6465 3e3c 6120 636c 6173 733d
indicates the
│ │ │ │ +0011dc00: 746f 7461 6c20 7369 7a65 206f 6620 7468 total size of th
│ │ │ │ +0011dc10: 6520 6174 7461 6368 6d65 6e74 2064 6174 e attachment dat
│ │ │ │ +0011dc20: 6120 746f 2062 6520 7472 616e 736d 6974 a to be transmit
│ │ │ │ +0011dc30: 7465 642e 2049 6620 7468 6520 3c63 6f64 ted. If the soap_rece
│ │ │ │ +0011d430: 6976 6572 5f66 6175 6c74 3c2f 613e 3c2f iver_fault
│ │ │ │ +0011d440: 636f 6465 3e2e 2054 6865 2063 616c 6c62 code>. The callb
│ │ │ │ +0011d450: 6163 6b20 6d61 7920 7265 7475 726e 204e ack may return N
│ │ │ │ +0011d460: 554c 4c20 616e 6420 7365 7420 3c63 6f64 ULL and set
t
│ │ │ │ +0011d530: 6f20 3c63 6f64 653e 2353 4f41 505f 4f4b o #SOAP_OK
│ │ │ │ +0011d540: 3c2f 636f 6465 3e20 7768 656e 2074 6869
when thi
│ │ │ │ +0011d550: 7320 7370 6563 6966 6963 204d 494d 452f s specific MIME/
│ │ │ │ +0011d560: 4d54 4f4d 2061 7474 6163 686d 656e 7420 MTOM attachment
│ │ │ │ +0011d570: 7368 6f75 6c64 206e 6f74 2074 6f20 6265 should not to be
│ │ │ │ +0011d580: 2073 7472 6561 6d65 6420 616e 6420 7468 streamed and th
│ │ │ │ +0011d590: 6520 656e 6769 6e65 2077 696c 6c20 7369 e engine will si
│ │ │ │ +0011d5a0: 6d70 6c79 2073 6b69 7020 6974 2e3c 2f6c mply skip it..siz
│ │ │ │ +0011d5c0: 655f 7420 282a 736f 6170 2e66 6d69 6d65 e_t (*soap.fmime
│ │ │ │ +0011d5d0: 7265 6164 2928 7374 7275 6374 2073 6f61 read)(struct soa
│ │ │ │ +0011d5e0: 7020 2a73 6f61 702c 2076 6f69 6420 2a68 p *soap, void *h
│ │ │ │ +0011d5f0: 616e 646c 652c 2063 6861 7220 2a62 7566 andle, char *buf
│ │ │ │ +0011d600: 2c20 7369 7a65 5f74 206c 656e 293c 2f63 , size_t len) This callba
│ │ │ │ +0011d620: 636b 2069 7320 6361 6c6c 6564 2062 7920 ck is called by
│ │ │ │ +0011d630: 7468 6520 656e 6769 6e65 2074 6f20 7265 the engine to re
│ │ │ │ +0011d640: 6164 2061 2063 6875 6e6b 206f 6620 6174 ad a chunk of at
│ │ │ │ +0011d650: 7461 6368 6d65 6e74 2064 6174 6120 746f tachment data to
│ │ │ │ +0011d660: 2074 7261 6e73 6d69 742e 2054 6865 203c transmit. The <
│ │ │ │ +0011d670: 636f 6465 3e68 616e 646c 653c 2f63 6f64 code>handle parameter con
│ │ │ │ +0011d690: 7461 696e 7320 7468 6520 6861 6e64 6c65 tains the handle
│ │ │ │ +0011d6a0: 2072 6574 7572 6e65 6420 6279 2074 6865 returned by the
│ │ │ │ +0011d6b0: 203c 636f 6465 3e3c 6120 636c 6173 733d
,
│ │ │ │ +0011db40: 3c63 6f64 653e 7479 7065 3c2f 636f 6465 soap::fmimere
│ │ │ │ +0011d760: 6164 6f70 656e 3c2f 613e 3c2f 636f 6465 adopen
callback. The
│ │ │ │ +0011d780: 3c63 6f64 653e 6275 663c 2f63 6f64 653e buf
│ │ │ │ +0011d790: 2070 6172 616d 6574 6572 2069 7320 7468 parameter is th
│ │ │ │ +0011d7a0: 6520 6275 6666 6572 206f 6620 6c65 6e67 e buffer of leng
│ │ │ │ +0011d7b0: 7468 203c 636f 6465 3e6c 656e 3c2f 636f th len into which a
│ │ │ │ +0011d7d0: 2063 6875 6e6b 206f 6620 6461 7461 2073 chunk of data s
│ │ │ │ +0011d7e0: 686f 756c 6420 6265 2077 7269 7474 656e hould be written
│ │ │ │ +0011d7f0: 2062 7920 7468 6520 6361 6c6c 6261 636b by the callback
│ │ │ │ +0011d800: 2e20 5468 6520 6163 7475 616c 2061 6d6f . The actual amo
│ │ │ │ +0011d810: 756e 7420 6f66 2064 6174 6120 7772 6974 unt of data writ
│ │ │ │ +0011d820: 7465 6e20 696e 746f 2074 6865 2062 7566 ten into the buf
│ │ │ │ +0011d830: 6665 7220 6d61 7920 6265 206c 6573 7320 fer may be less
│ │ │ │ +0011d840: 7468 616e 203c 636f 6465 3e6c 656e 3c2f than
│ │ │ │ +0011db00: 2077 6974 6820 3c63 6f64 653e 5f5f 7074 with len
│ │ │ │ +0011d850: 636f 6465 3e20 616e 6420 7468 6973 2061 code> and this a
│ │ │ │ +0011d860: 6374 7561 6c20 616d 6f75 6e74 2073 686f ctual amount sho
│ │ │ │ +0011d870: 756c 6420 6265 2072 6574 7572 6e65 6420 uld be returned
│ │ │ │ +0011d880: 6279 2074 6865 2063 616c 6c62 6163 6b2e by the callback.
│ │ │ │ +0011d890: 2041 2072 6574 7572 6e20 7661 6c75 6520 A return value
│ │ │ │ +0011d8a0: 6f66 207a 6572 6f20 696e 6469 6361 7465 of zero indicate
│ │ │ │ +0011d8b0: 7320 616e 2065 7272 6f72 2061 6e64 203c s an error and <
│ │ │ │ +0011d8c0: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap:
│ │ │ │ +0011d970: 3a65 7272 6f72 3c2f 613e 3c2f 636f 6465 :error
should be set.
│ │ │ │ +0011d990: 2054 6865 203c 636f 6465 3e5f 5f73 697a The __siz
│ │ │ │ +0011d9a0: 653c 2f63 6f64 653e 206d 656d 6265 7220 e
member
│ │ │ │ +0011d9b0: 7661 7269 6162 6c65 206f 6620 7468 6520 variable of the
│ │ │ │ +0011d9c0: 6174 7461 6368 6d65 6e74 2073 7472 7563 attachment struc
│ │ │ │ +0011d9d0: 742f 636c 6173 7320 7769 7468 2064 6174 t/class with dat
│ │ │ │ +0011d9e0: 6120 2865 2e67 2e20 3c63 6f64 653e 3c61 a (e.g. xsd_
│ │ │ │ +0011da60: 5f62 6173 6536 3442 696e 6172 793c 2f61 _base64Binary
or __pt
│ │ │ │ +0011db10: 723c 2f63 6f64 653e 2c20 3c63 6f64 653e r
,
│ │ │ │ +0011db20: 5f5f 7369 7a65 3c2f 636f 6465 3e2c 203c __size
, <
│ │ │ │ +0011db30: 636f 6465 3e69 643c 2f63 6f64 653e 2c20 code>idtype
and opti
│ │ │ │ +0011db60: 6f6e 733c 2f63 6f64 653e 206d 656d 6265 ons
membe
│ │ │ │ +0011db70: 7273 2920 7368 6f75 6c64 2062 6520 7365 rs) should be se
│ │ │ │ +0011db80: 7420 6279 2074 6865 2061 7070 6c69 6361 t by the applica
│ │ │ │ +0011db90: 7469 6f6e 2070 7269 6f72 2074 6f20 7468 tion prior to th
│ │ │ │ +0011dba0: 6520 7365 7269 616c 697a 6174 696f 6e20 e serialization
│ │ │ │ +0011dbb0: 6f66 2074 6865 206d 6573 7361 6765 2077 of the message w
│ │ │ │ +0011dbc0: 6974 6820 6174 7461 6368 6d65 6e74 732e ith attachments.
│ │ │ │ +0011dbd0: 2054 6865 2076 616c 7565 206f 6620 3c63 The value of #SOAP_IO_CHUNK<
│ │ │ │ +0011dca0: 2f63 6f64 653e 292c 2074 6865 6e20 4d49 /code>), then MI
│ │ │ │ +0011dcb0: 4d45 2f4d 544f 4d20 6368 756e 6b65 6420 ME/MTOM chunked
│ │ │ │ +0011dcc0: 7472 616e 7366 6572 7320 6172 6520 6163 transfers are ac
│ │ │ │ +0011dcd0: 7469 7661 7465 6420 6279 2074 6865 2065 tivated by the e
│ │ │ │ +0011dce0: 6e67 696e 652c 2077 6869 6368 2069 7320 ngine, which is
│ │ │ │ +0011dcf0: 6d6f 7265 2066 6c65 7869 626c 6520 7369 more flexible si
│ │ │ │ +0011dd00: 6e63 6520 7468 6520 6174 7461 6368 6d65 nce the attachme
│ │ │ │ +0011dd10: 6e74 2064 6174 6120 7369 7a65 2064 6f65 nt data size doe
│ │ │ │ +0011dd20: 7320 6e6f 7420 6e65 6564 2074 6f20 6265 s not need to be
│ │ │ │ +0011dd30: 2064 6574 6572 6d69 6e65 6420 696e 2061 determined in a
│ │ │ │ +0011dd40: 6476 616e 6365 2e20 546f 2075 7365 204d dvance. To use M
│ │ │ │ +0011dd50: 494d 452f 4d54 4f4d 2063 6875 6e6b 6564 IME/MTOM chunked
│ │ │ │ +0011dd60: 2074 7261 6e73 6665 7273 2c20 656e 6162 transfers, enab
│ │ │ │ +0011dd70: 6c65 2048 5454 5020 6368 756e 6b69 6e67 le HTTP chunking
│ │ │ │ +0011dd80: 2077 6974 6820 3c63 6f64 653e 2353 4f41 with
#SOA
│ │ │ │ +0011dd90: 505f 494f 5f43 4855 4e4b 3c2f 636f 6465 P_IO_CHUNK
(also #S
│ │ │ │ +0011ddb0: 4f41 505f 494f 5f53 544f 5245 3c2f 636f OAP_IO_STORE can be used,
│ │ │ │ +0011ddd0: 2062 7574 2074 6869 7320 6275 6666 6572 but this buffer
│ │ │ │ +0011dde0: 7320 7468 6520 656e 7469 7265 206d 6573 s the entire mes
│ │ │ │ +0011ddf0: 7361 6765 2069 6e20 6d65 6d6f 7279 2062 sage in memory b
│ │ │ │ +0011de00: 6566 6f72 6520 7472 616e 736d 6973 7369 efore transmissi
│ │ │ │ +0011de10: 6f6e 2920 616e 6420 7365 7420 7468 6520 on) and set the
│ │ │ │ +0011de20: 3c63 6f64 653e 5f5f 7369 7a65 3c2f 636f
__size member varia
│ │ │ │ +0011de40: 626c 6520 6f66 2074 6865 2061 7474 6163 ble of the attac
│ │ │ │ +0011de50: 686d 656e 7420 7374 7275 6374 2f63 6c61 hment struct/cla
│ │ │ │ +0011de60: 7373 2074 6f20 7a65 726f 2e20 5768 656e ss to zero. When
│ │ │ │ +0011de70: 204d 494d 452f 4d54 4f4d 2061 7474 6163 MIME/MTOM attac
│ │ │ │ +0011de80: 686d 656e 7420 6368 756e 6b69 6e67 2069 hment chunking i
│ │ │ │ +0011de90: 7320 656e 6162 6c65 642c 2074 6869 7320 s enabled, this
│ │ │ │ +0011dea0: 6361 6c6c 6261 636b 2073 686f 756c 6420 callback should
│ │ │ │ +0011deb0: 636f 6d70 6c65 7465 6c79 2066 696c 6c20 completely fill
│ │ │ │ +0011dec0: 7468 6520 3c63 6f64 653e 6275 663c 2f63 the
buf buffer with
│ │ │ │ +0011dee0: 203c 636f 6465 3e6c 656e 3c2f 636f 6465
len
bytes unless t
│ │ │ │ +0011df00: 6865 206c 6173 7420 6461 7461 2063 6875 he last data chu
│ │ │ │ +0011df10: 6e6b 2069 7320 7265 6163 6865 6420 616e nk is reached an
│ │ │ │ +0011df20: 6420 6665 7765 7220 6279 7465 7320 6172 d fewer bytes ar
│ │ │ │ +0011df30: 6520 7265 7475 726e 6564 2e3c 2f6c 693e e returned.void
│ │ │ │ +0011df50: 282a 736f 6170 2e66 6d69 6d65 7265 6164 (*soap.fmimeread
│ │ │ │ +0011df60: 636c 6f73 6529 2873 7472 7563 7420 736f close)(struct so
│ │ │ │ +0011df70: 6170 202a 736f 6170 2c20 766f 6964 202a ap *soap, void *
│ │ │ │ +0011df80: 6861 6e64 6c65 293c 2f63 6f64 653e 2054 handle)
T
│ │ │ │ +0011df90: 6869 7320 6361 6c6c 6261 636b 2069 7320 his callback is
│ │ │ │ +0011dfa0: 6361 6c6c 6564 2062 7920 7468 6520 656e called by the en
│ │ │ │ +0011dfb0: 6769 6e65 2074 6f20 636c 6f73 6520 7468 gine to close th
│ │ │ │ +0011dfc0: 6520 4d49 4d45 2f4d 544f 4d20 6174 7461 e MIME/MTOM atta
│ │ │ │ +0011dfd0: 6368 6d65 6e74 2073 7472 6561 6d20 6166 chment stream af
│ │ │ │ +0011dfe0: 7465 7220 7265 6164 696e 672e 2054 6865 ter reading. The
│ │ │ │ +0011dff0: 203c 636f 6465 3e68 616e 646c 653c 2f63 handle parameter c
│ │ │ │ +0011e010: 6f6e 7461 696e 7320 7468 6520 6861 6e64 ontains the hand
│ │ │ │ +0011e020: 6c65 2072 6574 7572 6e65 6420 6279 2074 le returned by t
│ │ │ │ +0011e030: 6865 203c 636f 6465 3e3c 6120 636c 6173 he
, soap::fmime
│ │ │ │ +0011e0e0: 7265 6164 6f70 656e 3c2f 613e 3c2f 636f readopen callback..
│ │ │ │ +0011e420: 6361 6c6c 6261 636b 2069 7320 6361 6c6c callback is call
│ │ │ │ +0011e430: 6564 2074 6f20 636c 6f73 6520 7468 6520 ed to close the
│ │ │ │ +0011e440: 7374 7265 616d 2e20 5468 6520 3c63 6f64 stream. The voi
│ │ │ │ +0011e110: 6420 2a28 2a73 6f61 702e 666d 696d 6577 d *(*soap.fmimew
│ │ │ │ +0011e120: 7269 7465 6f70 656e 2928 7374 7275 6374 riteopen)(struct
│ │ │ │ +0011e130: 2073 6f61 7020 2a73 6f61 702c 2076 6f69 soap *soap, voi
│ │ │ │ +0011e140: 6420 2a68 616e 646c 652c 2063 6f6e 7374 d *handle, const
│ │ │ │ +0011e150: 2063 6861 7220 2a69 642c 2063 6f6e 7374 char *id, const
│ │ │ │ +0011e160: 2063 6861 7220 2a74 7970 652c 2063 6f6e char *type, con
│ │ │ │ +0011e170: 7374 2063 6861 7220 2a64 6573 6372 6970 st char *descrip
│ │ │ │ +0011e180: 7469 6f6e 2c20 656e 756d 2073 6f61 705f tion, enum soap_
│ │ │ │ +0011e190: 6d69 6d65 5f65 6e63 6f64 696e 6720 656e mime_encoding en
│ │ │ │ +0011e1a0: 636f 6469 6e67 293c 2f63 6f64 653e 2043 coding)
C
│ │ │ │ +0011e1b0: 616c 6c65 6420 6279 2074 6865 2074 6f20 alled by the to
│ │ │ │ +0011e1c0: 7374 6172 7420 7265 6365 6976 696e 6720 start receiving
│ │ │ │ +0011e1d0: 6120 7374 7265 616d 696e 6720 4d49 4d45 a streaming MIME
│ │ │ │ +0011e1e0: 2f4d 544f 4d20 6174 7461 6368 6d65 6e74 /MTOM attachment
│ │ │ │ +0011e1f0: 2e20 5468 6973 2063 616c 6c62 6163 6b20 . This callback
│ │ │ │ +0011e200: 6f70 656e 7320 6120 7374 7265 616d 2074 opens a stream t
│ │ │ │ +0011e210: 6f20 7374 6172 7420 7772 6974 696e 6720 o start writing
│ │ │ │ +0011e220: 7468 6520 6174 7461 6368 6d65 6e74 2064 the attachment d
│ │ │ │ +0011e230: 6174 6120 7265 6365 6976 6564 2e20 5468 ata received. Th
│ │ │ │ +0011e240: 6520 6163 7475 616c 2064 6174 6120 7374 e actual data st
│ │ │ │ +0011e250: 7265 616d 2077 696c 6c20 6265 2077 7269 ream will be wri
│ │ │ │ +0011e260: 7474 656e 2069 6e20 6368 756e 6b73 2075 tten in chunks u
│ │ │ │ +0011e270: 7369 6e67 2074 6865 203c 636f 6465 3e3c sing the <
│ │ │ │ +0011e280: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +0011e290: 663d 2267 726f 7570 5f5f 6772 6f75 705f f="group__group_
│ │ │ │ +0011e2a0: 5f63 616c 6c62 6163 6b73 2e68 746d 6c23 _callbacks.html#
│ │ │ │ +0011e2b0: 6761 3930 3834 6630 3339 3265 3461 3534 ga9084f0392e4a54
│ │ │ │ +0011e2c0: 3238 3733 3636 3132 3164 3330 6263 3438 287366121d30bc48
│ │ │ │ +0011e2d0: 3330 2220 7469 746c 653d 2243 616c 6c62 30" title="Callb
│ │ │ │ +0011e2e0: 6163 6b20 746f 2077 7269 7465 2064 6174 ack to write dat
│ │ │ │ +0011e2f0: 6120 696e 2061 204d 494d 4520 6174 7461 a in a MIME atta
│ │ │ │ +0011e300: 6368 6d65 6e74 2073 7472 6561 6d2e 223e chment stream.">
│ │ │ │ +0011e310: 736f 6170 3a3a 666d 696d 6577 7269 7465 soap::fmimewrite
│ │ │ │ +0011e320: 3c2f 613e 3c2f 636f 6465 3e20 6361 6c6c
call
│ │ │ │ +0011e330: 6261 636b 2075 6e74 696c 206e 6f20 6d6f back until no mo
│ │ │ │ +0011e340: 7265 2064 6174 6120 6973 2061 7661 696c re data is avail
│ │ │ │ +0011e350: 6162 6c65 2061 6e64 2074 6865 203c 636f able and the options
│ │ │ │ +0011e480: 3c2f 636f 6465 3e20 7061 7261 6d65 7465
paramete
│ │ │ │ +0011e490: 7273 2061 7265 2074 6865 203c 636f 6465 rs are the id
, options<
│ │ │ │ +0011e4d0: 2f63 6f64 653e 206f 6620 7468 6520 6174 /code> of the at
│ │ │ │ +0011e4e0: 7461 6368 6d65 6e74 2073 7472 7563 742f tachment struct/
│ │ │ │ +0011e4f0: 636c 6173 7320 2865 2e67 2e20 3c63 6f64 class (e.g.
or
│ │ │ │ +0011e590: 3c63 6f64 653e 3c61 2063 6c61 7373 3d22 _xop
│ │ │ │ +0011e600: 5f5f 496e 636c 7564 653c 2f61 3e3c 2f63 __Include with
,
│ │ │ │ +0011e620: 5f5f 7074 723c 2f63 6f64 653e 2c20 3c63 __ptr
, id
type
│ │ │ │ +0011e660: 636f 6465 3e20 616e 6420 3c63 6f64 653e code> and
│ │ │ │ +0011e670: 6f70 7469 6f6e 733c 2f63 6f64 653e 206d options
m
│ │ │ │ +0011e680: 656d 6265 7273 292c 2072 6573 7065 6374 embers), respect
│ │ │ │ +0011e690: 6976 656c 792e 2054 6865 2063 616c 6c62 ively. The callb
│ │ │ │ +0011e6a0: 6163 6b20 7368 6f75 6c64 2072 6574 7572 ack should retur
│ │ │ │ +0011e6b0: 6e20 6120 6861 6e64 6c65 2c20 7768 6963 n a handle, whic
│ │ │ │ +0011e6c0: 6820 6973 2070 6173 7365 6420 746f 2074 h is passed to t
│ │ │ │ +0011e6d0: 6865 203c 636f 6465 3e3c 6120 636c 6173 he soap::
│ │ │ │ +0011e770: 666d 696d 6577 7269 7465 3c2f 613e 3c2f fmimewrite
│ │ │ │ +0011e780: 636f 6465 3e20 616e 6420 3c63 6f64 653e code> and
m
│ │ │ │ +0011e870: 656d 6265 7220 7661 7269 6162 6c65 206f ember variable o
│ │ │ │ +0011e880: 6620 7468 6520 6174 7461 6368 6d65 6e74 f the attachment
│ │ │ │ +0011e890: 2073 7472 7563 742f 636c 6173 7320 6973 struct/class is
│ │ │ │ +0011e8a0: 2073 6574 2062 7920 7468 6520 656e 6769 set by the engi
│ │ │ │ +0011e8b0: 6e65 2074 6f20 7468 6520 7661 6c75 6520 ne to the value
│ │ │ │ +0011e8c0: 6f66 2074 6869 7320 6861 6e64 6c65 2e20 of this handle.
│ │ │ │ +0011e8d0: 5468 6520 3c63 6f64 653e 5f5f 7369 7a65 The
│ │ │ │ +0011e790: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap
│ │ │ │ +0011e830: 3a3a 666d 696d 6577 7269 7465 636c 6f73 ::fmimewriteclos
│ │ │ │ +0011e840: 653c 2f61 3e3c 2f63 6f64 653e 2063 616c e
cal
│ │ │ │ +0011e850: 6c62 6163 6b73 2e20 5468 6520 3c63 6f64 lbacks. The __size
│ │ │ │ +0011e8e0: 3c2f 636f 6465 3e20 6d65 6d62 6572 2076
member v
│ │ │ │ +0011e8f0: 6172 6961 626c 6520 6973 2073 6574 2074 ariable is set t
│ │ │ │ +0011e900: 6f20 7468 6520 7369 7a65 206f 6620 7468 o the size of th
│ │ │ │ +0011e910: 6520 6174 7461 6368 6d65 6e74 2072 6563 e attachment rec
│ │ │ │ +0011e920: 6569 7665 642e 3c2f 6c69 3e0a 3c6c 693e eived.int (*soap
│ │ │ │ +0011e940: 2e66 6d69 6d65 7772 6974 6529 2873 7472 .fmimewrite)(str
│ │ │ │ +0011e950: 7563 7420 736f 6170 202a 736f 6170 2c20 uct soap *soap,
│ │ │ │ +0011e960: 766f 6964 202a 6861 6e64 6c65 2c20 636f void *handle, co
│ │ │ │ +0011e970: 6e73 7420 6368 6172 202a 6275 662c 2073 nst char *buf, s
│ │ │ │ +0011e980: 697a 655f 7420 6c65 6e29 3c2f 636f 6465 ize_t len)
This callback
│ │ │ │ +0011e9a0: 6973 2063 616c 6c65 6420 6279 2074 6865 is called by the
│ │ │ │ +0011e9b0: 2065 6e67 696e 6520 746f 2077 7269 7465 engine to write
│ │ │ │ +0011e9c0: 2061 2063 6875 6e6b 206f 6620 6174 7461 a chunk of atta
│ │ │ │ +0011e9d0: 6368 6d65 6e74 2064 6174 6120 7265 6365 chment data rece
│ │ │ │ +0011e9e0: 6976 6564 2e20 5468 6520 3c63 6f64 653e ived. The
│ │ │ │ +0011e9f0: 6861 6e64 6c65 3c2f 636f 6465 3e20 7061 handle
pa
│ │ │ │ +0011ea00: 7261 6d65 7465 7220 636f 6e74 6169 6e73 rameter contains
│ │ │ │ +0011ea10: 2074 6865 2068 616e 646c 6520 7265 7475 the handle retu
│ │ │ │ +0011ea20: 726e 6564 2062 7920 7468 6520 3c63 6f64 rned by the len. Returns
s
│ │ │ │ +0011ec20: 6f61 705f 7374 6174 7573 3c2f 613e 3c2f oap_status
│ │ │ │ +0011ec30: 636f 6465 3e20 2869 6e74 2920 6572 726f code> (int) erro
│ │ │ │ +0011ec40: 7220 636f 6465 2e3c 2f6c 693e 0a3c 6c69 r code.
void (*so
│ │ │ │ +0011ec60: 6170 2e66 6d69 6d65 7772 6974 6563 6c6f ap.fmimewriteclo
│ │ │ │ +0011ec70: 7365 2928 7374 7275 6374 2073 6f61 7020 se)(struct soap
│ │ │ │ +0011ec80: 2a73 6f61 702c 2076 6f69 6420 2a68 616e *soap, void *han
│ │ │ │ +0011ec90: 646c 6529 3c2f 636f 6465 3e20 5468 6973 dle)
This
│ │ │ │ +0011eca0: 2063 616c 6c62 6163 6b20 6973 2063 616c callback is cal
│ │ │ │ +0011ecb0: 6c65 6420 6279 2074 6865 2065 6e67 696e led by the engin
│ │ │ │ +0011ecc0: 6520 746f 2063 6c6f 7365 2074 6865 204d e to close the M
│ │ │ │ +0011ecd0: 494d 452f 4d54 4f4d 2061 7474 6163 686d IME/MTOM attachm
│ │ │ │ +0011ece0: 656e 7420 7374 7265 616d 2061 6674 6572 ent stream after
│ │ │ │ +0011ecf0: 2077 7269 7469 6e67 2e20 5468 6520 3c63 writing. The soap::fmimewri
│ │ │ │ +0011edf0: 7465 6f70 656e 3c2f 613e 3c2f 636f 6465 teopen
callback.v
│ │ │ │ +0011ee30: 6f69 642a 203c 6120 636c 6173 733d 2265 oid* soa
│ │ │ │ +0011eef0: 703a 3a75 7365 723c 2f61 3e3c 2f63 6f64 p::user member is ava
│ │ │ │ +0011ef10: 696c 6162 6c65 2074 6f20 7061 7373 2075 ilable to pass u
│ │ │ │ +0011ef20: 7365 722d 6465 6669 6e65 6420 6461 7461 ser-defined data
│ │ │ │ +0011ef30: 2074 6f20 7468 6520 6361 6c6c 6261 636b to the callback
│ │ │ │ +0011ef40: 732e 2054 6869 7320 7761 792c 2079 6f75 s. This way, you
│ │ │ │ +0011ef50: 2063 616e 2073 6574 203c 636f 6465 3e76 can set
v
│ │ │ │ +0011ef60: 6f69 642a 203c 6120 636c 6173 733d 2265 oid* soa
│ │ │ │ +0011f020: 703a 3a75 7365 723c 2f61 3e3c 2f63 6f64 p::user to point to a
│ │ │ │ +0011f040: 7070 6c69 6361 7469 6f6e 2064 6174 6120 pplication data
│ │ │ │ +0011f050: 7468 6174 2074 6865 2063 616c 6c62 6163 that the callbac
│ │ │ │ +0011f060: 6b73 206e 6565 6420 7375 6368 2061 7320 ks need such as
│ │ │ │ +0011f070: 6120 6669 6c65 206e 616d 6520 666f 7220 a file name for
│ │ │ │ +0011f080: 6578 616d 706c 652e 3c2f 703e 0a3c 703e example.
// must set
│ │ │ │ -0011f950: 746f 206e 6f6e 2d4e 554c 4c20 2874 6869 to non-NULL (thi
│ │ │ │ -0011f960: 7320 6973 206f 7572 2066 6420 6861 6e64 s is our fd hand
│ │ │ │ -0011f970: 6c65 2077 6869 6368 2077 6520 6e65 6564 le which we need
│ │ │ │ -0011f980: 2069 6e20 7468 6520 6361 6c6c 6261 636b in the callback
│ │ │ │ -0011f990: 7329 203c 2f73 7061 6e3e 3c2f 6469 763e s) else char *type, const char *description
│ │ │ │ -00120360: 2920 3c2f 6469 763e 0a3c 6469 7620 636c ) if (soap_call_ns_
│ │ │ │ -001211c0: 5f77 6562 6d65 7468 6f64 2826 616d 703b _webmethod(&
│ │ │ │ -001211d0: 3c61 2063 6c61 7373 3d22 636f 6465 2220 soap,
│ │ │ │ -00121200: 202e 2e2e 2929 3c2f 6469 763e 0a3c 6469 ...))const
│ │ │ │ -00121470: 203c 7370 616e 2063 6c61 7373 3d22 6b65 char<
│ │ │ │ -00121490: 2f73 7061 6e3e 202a 7479 7065 2c20 3c73 /span> *type, const
│ │ │ │ -001214c0: 203c 7370 616e 2063 6c61 7373 3d22 6b65 char<
│ │ │ │ -001214e0: 2f73 7061 6e3e 202a 6465 7363 7269 7074 /span> *descript
│ │ │ │ -001214f0: 696f 6e2c 203c 7370 616e 2063 6c61 7373 ion, enum<
│ │ │ │ -00121510: 2f73 7061 6e3e 203c 6120 636c 6173 733d /span> soap_mi
│ │ │ │ -00121570: 6d65 5f65 6e63 6f64 696e 673c 2f61 3e20 me_encoding
│ │ │ │ -00121580: 656e 636f 6469 6e67 2920 3c2f 6469 763e encoding) "
│ │ │ │ +00121670: 7762 2671 756f 743b 3c2f 7370 616e 3e29 wb")
│ │ │ │ +00121680: 3b20 3c2f 6469 763e 0a3c 6469 7620 636c ; char *bu
│ │ │ │ +00121d80: 663c 2f61 3e2c 203c 7370 616e 2063 6c61 f, size_t l
│ │ │ │ +00121db0: 656e 2920 3c2f 6469 763e 0a3c 6469 7620 en) #SOA
│ │ │ │ -00122a20: 505f 454e 435f 5a4c 4942 3c2f 636f 6465 P_ENC_ZLIB
can be used wi
│ │ │ │ -00122a40: 7468 204d 494d 4520 746f 2063 6f6d 7072 th MIME to compr
│ │ │ │ -00122a50: 6573 7320 7468 6520 656e 7469 7265 206d ess the entire m
│ │ │ │ -00122a60: 6573 7361 6765 2e20 486f 7765 7665 722c essage. However,
│ │ │ │ -00122a70: 2063 6f6d 7072 6573 7369 6f6e 2072 6571 compression req
│ │ │ │ -00122a80: 7569 7265 7320 6275 6666 6572 696e 6720 uires buffering
│ │ │ │ -00122a90: 746f 2064 6574 6572 6d69 6e65 2074 6865 to determine the
│ │ │ │ -00122aa0: 2048 5454 5020 636f 6e74 656e 7420 6c65 HTTP content le
│ │ │ │ -00122ab0: 6e67 7468 2068 6561 6465 722c 2077 6869 ngth header, whi
│ │ │ │ -00122ac0: 6368 2063 616e 6365 6c73 2074 6865 2062 ch cancels the b
│ │ │ │ -00122ad0: 656e 6566 6974 7320 6f66 2073 7472 6561 enefits of strea
│ │ │ │ -00122ae0: 6d69 6e67 204d 494d 452e 2054 6f20 6176 ming MIME. To av
│ │ │ │ -00122af0: 6f69 6420 7468 6973 2c20 796f 7520 7368 oid this, you sh
│ │ │ │ -00122b00: 6f75 6c64 2075 7365 2063 6875 6e6b 6564 ould use chunked
│ │ │ │ -00122b10: 2048 5454 5020 2877 6974 6820 7468 6520 HTTP (with the
│ │ │ │ -00122b20: 6f75 7470 7574 2d6d 6f64 6520 3c63 6f64 output-mode #SOAP_
│ │ │ │ -00122ba0: 494f 5f43 4855 4e4b 3c2f 636f 6465 3e20 IO_CHUNK
│ │ │ │ -00122bb0: 6265 666f 7265 2063 616c 6c69 6e67 203c before calling <
│ │ │ │ -00122bc0: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>soap_serve
│ │ │ │ -00122c40: 613e 3c2f 636f 6465 3e2c 2074 6865 2065 a>, the e
│ │ │ │ -00122c50: 6e67 696e 6520 7769 6c6c 2061 7574 6f6d ngine will autom
│ │ │ │ -00122c60: 6174 6963 616c 6c79 2072 6576 6572 7420 atically revert
│ │ │ │ -00122c70: 746f 2062 7566 6665 7269 6e67 2028 3c63 to buffering ((soap
│ │ │ │ -00122cd0: 2d26 6774 3b6f 6d6f 6465 2026 616d 703b ->omode &
│ │ │ │ -00122ce0: 2053 4f41 505f 494f 2920 3d3d 2053 4f41 SOAP_IO) == SOA
│ │ │ │ -00122cf0: 505f 494f 5f43 4855 4e4b 3c2f 636f 6465 P_IO_CHUNK
to see if the
│ │ │ │ -00122d10: 636c 6965 6e74 2061 6363 6570 7473 2063 client accepts c
│ │ │ │ -00122d20: 6875 6e6b 696e 672e 204d 6f72 6520 696e hunking. More in
│ │ │ │ -00122d30: 666f 726d 6174 696f 6e20 6162 6f75 7420 formation about
│ │ │ │ -00122d40: 7374 7265 616d 696e 6720 6368 756e 6b65 streaming chunke
│ │ │ │ -00122d50: 6420 4d49 4d45 2063 616e 2062 6520 666f d MIME can be fo
│ │ │ │ -00122d60: 756e 6420 696e 2053 6563 7469 6f6e 203c und in Section <
│ │ │ │ -00122d70: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -00122d80: 663d 2269 6e64 6578 2e68 746d 6c23 6d69 f="index.html#mi
│ │ │ │ -00122d90: 6d65 6368 756e 6b69 6e67 223e 5374 7265 mechunking">Stre
│ │ │ │ -00122da0: 616d 696e 6720 6368 756e 6b65 6420 4d49 aming chunked MI
│ │ │ │ -00122db0: 4d45 2f4d 544f 4d3c 2f61 3e20 2e2e 3c2f ME/MTOMmime
│ │ │ │ -00122df0: 5f72 6561 643c 2f63 6f64 653e 2075 7365 _read
use
│ │ │ │ -00122e00: 7320 6120 6861 6e64 6c65 2074 6861 7420 s a handle that
│ │ │ │ -00122e10: 706f 696e 7473 2074 6f20 7468 6520 6f70 points to the op
│ │ │ │ -00122e20: 656e 2066 696c 6520 3c63 6f64 653e 4649 en file FI
│ │ │ │ -00122e30: 4c45 2a3c 2f63 6f64 653e 2e20 5468 6520 LE*
. The
│ │ │ │ -00122e40: 7369 6d70 6c65 2065 7861 6d70 6c65 2061 simple example a
│ │ │ │ -00122e50: 626f 7665 2069 7320 6e6f 7420 7265 636f bove is not reco
│ │ │ │ -00122e60: 6d6d 656e 6465 6420 7768 656e 2074 6865 mmended when the
│ │ │ │ -00122e70: 2070 6c61 7466 6f72 6d20 696d 706f 7365 platform impose
│ │ │ │ -00122e80: 7320 6120 6c69 6d69 7420 6f6e 2074 6865 s a limit on the
│ │ │ │ -00122e90: 206e 756d 6265 7220 6f66 206f 7065 6e20 number of open
│ │ │ │ -00122ea0: 6669 6c65 2064 6573 6372 6970 746f 7273 file descriptors
│ │ │ │ -00122eb0: 2e20 596f 7520 6361 6e20 7573 6520 7468 . You can use th
│ │ │ │ -00122ec0: 6520 6861 6e64 6c65 2074 6f20 7061 7373 e handle to pass
│ │ │ │ -00122ed0: 2061 6c6f 6e67 206d 6f72 6520 696e 666f along more info
│ │ │ │ -00122ee0: 726d 6174 696f 6e20 7468 616e 206a 7573 rmation than jus
│ │ │ │ -00122ef0: 7420 7468 6520 6669 6c65 2064 6573 6372 t the file descr
│ │ │ │ -00122f00: 6970 746f 722e 2053 6f20 666f 7220 6578 iptor. So for ex
│ │ │ │ -00122f10: 616d 706c 652c 2077 6865 6e20 7468 6520 ample, when the
│ │ │ │ -00122f20: 6e75 6d62 6572 206f 6620 6f70 656e 2066 number of open f
│ │ │ │ -00122f30: 696c 6520 6465 7363 7269 7074 6f72 7320 ile descriptors
│ │ │ │ -00122f40: 6973 206c 696d 6974 6564 206f 6e20 796f is limited on yo
│ │ │ │ -00122f50: 7572 2070 6c61 7466 6f72 6d2c 2079 6f75 ur platform, you
│ │ │ │ -00122f60: 2073 686f 756c 6420 6c65 7420 7468 6520 should let the
│ │ │ │ -00122f70: 6861 6e64 6c65 2070 6f69 6e74 2074 6f20 handle point to
│ │ │ │ -00122f80: 6120 7374 7275 6374 7572 6520 7769 7468 a structure with
│ │ │ │ -00122f90: 2066 696c 652d 7265 6c61 7465 6420 696e file-related in
│ │ │ │ -00122fa0: 666f 726d 6174 696f 6e2e 2054 6865 2043 formation. The C
│ │ │ │ -00122fb0: 2b2b 2065 7861 6d70 6c65 2062 656c 6f77 ++ example below
│ │ │ │ -00122fc0: 2069 6c6c 7573 7472 6174 6573 2074 6869 illustrates thi
│ │ │ │ -00122fd0: 733a 3c2f 703e 0a3c 6469 7620 636c 6173 s:#SOAP_IO
│ │ │ │ +00122b20: 5f43 4855 4e4b 3c2f 636f 6465 3e20 666c _CHUNK
fl
│ │ │ │ +00122b30: 6167 2920 7769 7468 2063 6f6d 7072 6573 ag) with compres
│ │ │ │ +00122b40: 7369 6f6e 2061 6e64 2073 7472 6561 6d69 sion and streami
│ │ │ │ +00122b50: 6e67 204d 494d 452e 2041 7420 7468 6520 ng MIME. At the
│ │ │ │ +00122b60: 7365 7276 6572 2073 6964 652c 2077 6865 server side, whe
│ │ │ │ +00122b70: 6e20 796f 7520 7365 7420 3c63 6f64 653e n you set
│ │ │ │ +00122b80: 2353 4f41 505f 494f 5f43 4855 4e4b 3c2f #SOAP_IO_CHUNK
│ │ │ │ +00122b90: 636f 6465 3e20 6265 666f 7265 2063 616c code> before cal
│ │ │ │ +00122ba0: 6c69 6e67 203c 636f 6465 3e3c 6120 636c ling
soap_s
│ │ │ │ +00122c20: 6572 7665 3c2f 613e 3c2f 636f 6465 3e2c erve
,
│ │ │ │ +00122c30: 2074 6865 2065 6e67 696e 6520 7769 6c6c the engine will
│ │ │ │ +00122c40: 2061 7574 6f6d 6174 6963 616c 6c79 2072 automatically r
│ │ │ │ +00122c50: 6576 6572 7420 746f 2062 7566 6665 7269 evert to bufferi
│ │ │ │ +00122c60: 6e67 2028 3c63 6f64 653e 2353 4f41 505f ng (#SOAP_
│ │ │ │ +00122c70: 494f 5f53 544f 5245 3c2f 636f 6465 3e20 IO_STORE
│ │ │ │ +00122c80: 666c 6167 2069 7320 7365 7429 2e20 596f flag is set). Yo
│ │ │ │ +00122c90: 7520 6361 6e20 6368 6563 6b20 7468 6973 u can check this
│ │ │ │ +00122ca0: 2066 6c61 6720 7769 7468 203c 636f 6465 flag with (soap->omode
│ │ │ │ +00122cc0: 2026 616d 703b 2053 4f41 505f 494f 2920 & SOAP_IO)
│ │ │ │ +00122cd0: 3d3d 2053 4f41 505f 494f 5f43 4855 4e4b == SOAP_IO_CHUNK
│ │ │ │ +00122ce0: 3c2f 636f 6465 3e20 746f 2073 6565 2069
to see i
│ │ │ │ +00122cf0: 6620 7468 6520 636c 6965 6e74 2061 6363 f the client acc
│ │ │ │ +00122d00: 6570 7473 2063 6875 6e6b 696e 672e 204d epts chunking. M
│ │ │ │ +00122d10: 6f72 6520 696e 666f 726d 6174 696f 6e20 ore information
│ │ │ │ +00122d20: 6162 6f75 7420 7374 7265 616d 696e 6720 about streaming
│ │ │ │ +00122d30: 6368 756e 6b65 6420 4d49 4d45 2063 616e chunked MIME can
│ │ │ │ +00122d40: 2062 6520 666f 756e 6420 696e 2053 6563 be found in Sec
│ │ │ │ +00122d50: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Streaming chun
│ │ │ │ +00122d90: 6b65 6420 4d49 4d45 2f4d 544f 4d3c 2f61 ked MIME/MTOM ..new F
│ │ │ │ +00123250: 696c 6553 7472 6561 6d49 6e28 6572 726f ileStreamIn(erro
│ │ │ │ +00123260: 7268 616e 646c 6572 293b 203c 2f64 6976 rhandler); unsigned
│ │ │ │ -001233f0: 3c2f 7370 616e 3e20 3c73 7061 6e20 636c char*)i
│ │ │ │ -00123420: 6e73 3b3c 2f64 6976 3e0a 3c64 6976 2063 ns;char*)ins;return
│ │ │ │ -00123ab0: 7370 616e 3e20 4e55 4c4c 3b20 3c2f 6469 span> NULL; .struct soap *soap
│ │ │ │ -00123c10: 613e 2c20 3c73 7061 6e20 636c 6173 733d a>, vo
│ │ │ │ -00123c30: 6964 3c2f 7370 616e 3e20 2a68 616e 646c id *handl
│ │ │ │ -00123c40: 6529 203c 2f64 6976 3e0a 3c64 6976 2063 e) return
│ │ │ │ +00123890: 7370 616e 3e20 4e55 4c4c 3b20 3c2f 6469 span> NULL; .void mime_read_cl
│ │ │ │ +00123b70: 6f73 6528 3c73 7061 6e20 636c 6173 733d ose(struct
│ │ │ │ +00123b90: 3c2f 7370 616e 3e20 3c61 2063 6c61 7373 s
│ │ │ │ +00123bc0: 6f61 703c 2f61 3e20 2a3c 6120 636c 6173 oap *
│ │ │ │ +00123bf0: 736f 6170 3c2f 613e 2c20 3c73 7061 6e20 soap, void
│ │ │ │ +00123c20: 2a68 616e 646c 6529 203c 2f64 6976 3e0a *handle) if (!handle) .
│ │ │ │ -001244d0: 3c2f 613e 0a52 6564 6972 6563 7469 6e67 .Redirecting
│ │ │ │ -001244e0: 2069 6e62 6f75 6e64 204d 494d 452f 4d54 inbound MIME/MT
│ │ │ │ -001244f0: 4f4d 2073 7472 6561 6d73 2062 6173 6564 OM streams based
│ │ │ │ -00124500: 206f 6e20 534f 4150 2062 6f64 7920 636f on SOAP body co
│ │ │ │ -00124510: 6e74 656e 743c 2f68 323e 0a3c 703e 5768 ntent
.
│ │ │ │ -001248a0: 0a3c 6c69 3e3c 636f 6465 3e76 6f69 6420 .
.void
│ │ │ │ -001248b0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap_po
│ │ │ │ -00124940: 7374 5f63 6865 636b 5f6d 696d 655f 6174 st_check_mime_at
│ │ │ │ -00124950: 7461 6368 6d65 6e74 7328 7374 7275 6374 tachments(struct
│ │ │ │ -00124960: 2073 6f61 7020 2a73 6f61 7029 3c2f 613e soap *soap)
│ │ │ │ -00124970: 3c2f 636f 6465 3e20 5468 6973 2066 756e
This fun
│ │ │ │ -00124980: 6374 696f 6e20 656e 6162 6c65 7320 706f ction enables po
│ │ │ │ -00124990: 7374 2d70 726f 6365 7373 696e 6720 6f66 st-processing of
│ │ │ │ -001249a0: 204d 494d 452f 4d54 4f4d 2061 7474 6163 MIME/MTOM attac
│ │ │ │ -001249b0: 686d 656e 7473 2072 6563 6569 7665 642e hments received.
│ │ │ │ -001249c0: 2054 6869 7320 6d65 616e 7320 7468 6174 This means that
│ │ │ │ -001249d0: 2074 6865 2070 7265 7365 6e63 6520 6f66 the presence of
│ │ │ │ -001249e0: 204d 494d 452f 4d54 4f4d 2061 7474 6163 MIME/MTOM attac
│ │ │ │ -001249f0: 686d 656e 7473 206d 7573 7420 6265 2065 hments must be e
│ │ │ │ -00124a00: 7870 6c69 6369 746c 7920 6368 6563 6b65 xplicitly checke
│ │ │ │ -00124a10: 6420 6279 2063 616c 6c69 6e67 203c 636f d by calling soap_r
│ │ │ │ -00124bc0: 6563 765f 6d69 6d65 5f61 7474 6163 686d ecv_mime_attachm
│ │ │ │ -00124bd0: 656e 743c 2f61 3e3c 2f63 6f64 653e 2072 ent
r
│ │ │ │ -00124be0: 6570 6561 7465 646c 7920 746f 2072 6574 epeatedly to ret
│ │ │ │ -00124bf0: 7269 6576 6520 6561 6368 2061 7474 6163 rieve each attac
│ │ │ │ -00124c00: 686d 656e 7420 756e 7469 6c20 7468 6973 hment until this
│ │ │ │ -00124c10: 2066 756e 6374 696f 6e20 7265 7475 726e function return
│ │ │ │ -00124c20: 7320 4e55 4c4c 2e20 5468 6973 2066 756e s NULL. This fun
│ │ │ │ -00124c30: 6374 696f 6e20 7265 7475 726e 7320 6120 ction returns a
│ │ │ │ -00124c40: 706f 696e 7465 7220 746f 2061 203c 636f pointer to a in
│ │ │ │ -00124d00: 7420 3c61 2063 6c61 7373 3d22 656c 2220 t soap
│ │ │ │ -00124d80: 5f63 6865 636b 5f6d 696d 655f 6174 7461 _check_mime_atta
│ │ │ │ -00124d90: 6368 6d65 6e74 7328 7374 7275 6374 2073 chments(struct s
│ │ │ │ -00124da0: 6f61 7020 2a73 6f61 7029 3c2f 613e 3c2f oap *soap)
│ │ │ │ -00124db0: 636f 6465 3e20 5468 6973 2066 756e 6374 code> This funct
│ │ │ │ -00124dc0: 696f 6e20 6368 6563 6b73 2074 6865 2070 ion checks the p
│ │ │ │ -00124dd0: 7265 7365 6e63 6520 6f66 2061 204d 494d resence of a MIM
│ │ │ │ -00124de0: 452f 4d54 4f4d 2061 7474 6163 686d 656e E/MTOM attachmen
│ │ │ │ -00124df0: 7420 6166 7465 7220 6361 6c6c 696e 6720 t after calling
│ │ │ │ -00124e00: 6120 7365 7276 6963 6520 6f70 6572 6174 a service operat
│ │ │ │ -00124e10: 696f 6e20 6279 2072 6574 7572 6e69 6e67 ion by returning
│ │ │ │ -00124e20: 206e 6f6e 7a65 726f 2077 6865 6e20 6174 nonzero when at
│ │ │ │ -00124e30: 7461 6368 6d65 6e74 7320 6172 6520 7072 tachments are pr
│ │ │ │ -00124e40: 6573 656e 742e 2052 6574 7572 6e73 206e esent. Returns n
│ │ │ │ -00124e50: 6f6e 7a65 726f 2069 6620 6174 7461 6368 onzero if attach
│ │ │ │ -00124e60: 6d65 6e74 7320 6172 6520 7072 6573 656e ments are presen
│ │ │ │ -00124e70: 742e 2052 6571 7569 7265 7320 3c63 6f64 t. Requires
struct soa
│ │ │ │ -00124fc0: 705f 6d75 6c74 6970 6172 743c 2f61 3e20 p_multipart
│ │ │ │ -00124fd0: 2a73 6f61 705f 7265 6376 5f6d 696d 655f *soap_recv_mime_
│ │ │ │ -00124fe0: 6174 7461 6368 6d65 6e74 2873 7472 7563 attachment(struc
│ │ │ │ -00124ff0: 7420 736f 6170 202a 736f 6170 2c20 766f t soap *soap, vo
│ │ │ │ -00125000: 6964 202a 6861 6e64 6c65 293c 2f63 6f64 id *handle) This function
│ │ │ │ -00125020: 2070 6172 7365 7320 616e 2061 7474 6163 parses an attac
│ │ │ │ -00125030: 686d 656e 7420 616e 6420 696e 766f 6b65 hment and invoke
│ │ │ │ -00125040: 7320 7468 6520 4d49 4d45 2063 616c 6c62 s the MIME callb
│ │ │ │ -00125050: 6163 6b73 2077 6865 6e20 7365 742e 2054 acks when set. T
│ │ │ │ -00125060: 6865 203c 636f 6465 3e68 616e 646c 653c he
handle<
│ │ │ │ -00125070: 2f63 6f64 653e 2070 6172 616d 6574 6572 /code> parameter
│ │ │ │ -00125080: 2069 7320 7061 7373 6564 2074 6f20 3c63 is passed to
. The h
│ │ │ │ -001250b0: 616e 646c 6520 6d61 7920 636f 6e74 6169 andle may contai
│ │ │ │ -001250c0: 6e20 616e 7920 6461 7461 2074 6861 7420 n any data that
│ │ │ │ -001250d0: 6973 2065 7874 7261 6374 6564 2066 726f is extracted fro
│ │ │ │ -001250e0: 6d20 7468 6520 534f 4150 206d 6573 7361 m the SOAP messa
│ │ │ │ -001250f0: 6765 2062 6f64 7920 746f 2067 7569 6465 ge body to guide
│ │ │ │ -00125100: 2074 6865 2072 6564 6972 6563 7469 6f6e the redirection
│ │ │ │ -00125110: 206f 6620 7468 6520 7374 7265 616d 2069 of the stream i
│ │ │ │ -00125120: 6e20 7468 6520 6361 6c6c 6261 636b 732e n the callbacks.
│ │ │ │ -00125130: 2052 6574 7572 6e73 2061 2073 7472 7563 Returns a struc
│ │ │ │ -00125140: 7420 7769 7468 2061 203c 636f 6465 3e63 t with a c
│ │ │ │ -00125150: 6861 7220 2a70 7472 3c2f 636f 6465 3e20 har *ptr
│ │ │ │ -00125160: 6d65 6d62 6572 2074 6861 7420 636f 6e74 member that cont
│ │ │ │ -00125170: 6169 6e73 2074 6865 2068 616e 646c 6520 ains the handle
│ │ │ │ -00125180: 7661 6c75 6520 7265 7475 726e 6564 2062 value returned b
│ │ │ │ -00125190: 7920 7468 6520 3c63 6f64 653e 666d 696d y the fmim
│ │ │ │ -001251a0: 6577 7269 7465 6f70 656e 3c2f 636f 6465 ewriteopen
callback, and
│ │ │ │ -001251c0: 3c63 6f64 653e 6368 6172 202a 6964 3c2f char *id
│ │ │ │ -001251d0: 636f 6465 3e2c 203c 636f 6465 3e63 6861 code>,
cha
│ │ │ │ -001251e0: 7220 2a74 7970 653c 2f63 6f64 653e 2c20 r *type
,
│ │ │ │ -001251f0: 616e 6420 3c63 6f64 653e 6368 6172 202a and char *
│ │ │ │ -00125200: 6465 7363 7269 7074 696f 6e3c 2f63 6f64 description member variab
│ │ │ │ -00125220: 6c65 7320 7769 7468 2074 6865 204d 494d les with the MIM
│ │ │ │ -00125230: 4520 6964 2c20 7479 7065 2c20 616e 6420 E id, type, and
│ │ │ │ -00125240: 6465 7363 7269 7074 696f 6e20 696e 666f description info
│ │ │ │ -00125250: 2077 6865 6e20 7072 6573 656e 7420 696e when present in
│ │ │ │ -00125260: 2074 6865 2061 7474 6163 686d 656e 742e the attachment.
│ │ │ │ -00125270: 3c2f 6c69 3e0a 3c2f 756c 3e0a 3c70 3e45
return
│ │ │ │ +00124290: 7370 616e 3e20 6e72 6561 643b 203c 2f64 span> nread; ..Redir
│ │ │ │ +001244c0: 6563 7469 6e67 2069 6e62 6f75 6e64 204d ecting inbound M
│ │ │ │ +001244d0: 494d 452f 4d54 4f4d 2073 7472 6561 6d73 IME/MTOM streams
│ │ │ │ +001244e0: 2062 6173 6564 206f 6e20 534f 4150 2062 based on SOAP b
│ │ │ │ +001244f0: 6f64 7920 636f 6e74 656e 743c 2f68 323e ody content
│ │ │ │ +00124500: 0a3c 703e 5768 656e 2069 7420 6973 2070 ..
.void s
│ │ │ │ +00124920: 6f61 705f 706f 7374 5f63 6865 636b 5f6d oap_post_check_m
│ │ │ │ +00124930: 696d 655f 6174 7461 6368 6d65 6e74 7328 ime_attachments(
│ │ │ │ +00124940: 7374 7275 6374 2073 6f61 7020 2a73 6f61 struct soap *soa
│ │ │ │ +00124950: 7029 3c2f 613e 3c2f 636f 6465 3e20 5468 p)
Th
│ │ │ │ +00124960: 6973 2066 756e 6374 696f 6e20 656e 6162 is function enab
│ │ │ │ +00124970: 6c65 7320 706f 7374 2d70 726f 6365 7373 les post-process
│ │ │ │ +00124980: 696e 6720 6f66 204d 494d 452f 4d54 4f4d ing of MIME/MTOM
│ │ │ │ +00124990: 2061 7474 6163 686d 656e 7473 2072 6563 attachments rec
│ │ │ │ +001249a0: 6569 7665 642e 2054 6869 7320 6d65 616e eived. This mean
│ │ │ │ +001249b0: 7320 7468 6174 2074 6865 2070 7265 7365 s that the prese
│ │ │ │ +001249c0: 6e63 6520 6f66 204d 494d 452f 4d54 4f4d nce of MIME/MTOM
│ │ │ │ +001249d0: 2061 7474 6163 686d 656e 7473 206d 7573 attachments mus
│ │ │ │ +001249e0: 7420 6265 2065 7870 6c69 6369 746c 7920 t be explicitly
│ │ │ │ +001249f0: 6368 6563 6b65 6420 6279 2063 616c 6c69 checked by calli
│ │ │ │ +00124a00: 6e67 203c 636f 6465 3e3c 6120 636c 6173 ng soap_check_mi
│ │ │ │ +00124a90: 6d65 5f61 7474 6163 686d 656e 7473 3c2f me_attachments
│ │ │ │ +00124aa0: 613e 3c2f 636f 6465 3e20 6166 7465 7220 a>
after
│ │ │ │ +00124ab0: 7468 6520 6d65 7373 6167 6520 7761 7320 the message was
│ │ │ │ +00124ac0: 7265 6365 6976 6564 2e20 5768 656e 2074 received. When t
│ │ │ │ +00124ad0: 6869 7320 6675 6e63 7469 6f6e 2072 6574 his function ret
│ │ │ │ +00124ae0: 7572 6e73 206e 6f6e 7a65 726f 2028 7472 urns nonzero (tr
│ │ │ │ +00124af0: 7565 292c 2074 6865 6e20 7468 6520 6174 ue), then the at
│ │ │ │ +00124b00: 7461 6368 6d65 6e74 7320 6361 6e20 6265 tachments can be
│ │ │ │ +00124b10: 2072 6574 7269 6576 6564 2062 7920 6361 retrieved by ca
│ │ │ │ +00124b20: 6c6c 696e 6720 3c63 6f64 653e 3c61 2063 lling
│ │ │ │ +00124ba0: 736f 6170 5f72 6563 765f 6d69 6d65 5f61 soap_recv_mime_a
│ │ │ │ +00124bb0: 7474 6163 686d 656e 743c 2f61 3e3c 2f63 ttachment repeatedly
│ │ │ │ +00124bd0: 746f 2072 6574 7269 6576 6520 6561 6368 to retrieve each
│ │ │ │ +00124be0: 2061 7474 6163 686d 656e 7420 756e 7469 attachment unti
│ │ │ │ +00124bf0: 6c20 7468 6973 2066 756e 6374 696f 6e20 l this function
│ │ │ │ +00124c00: 7265 7475 726e 7320 4e55 4c4c 2e20 5468 returns NULL. Th
│ │ │ │ +00124c10: 6973 2066 756e 6374 696f 6e20 7265 7475 is function retu
│ │ │ │ +00124c20: 726e 7320 6120 706f 696e 7465 7220 746f rns a pointer to
│ │ │ │ +00124c30: 2061 203c 636f 6465 3e73 7472 7563 7420 a
struct
│ │ │ │ +00124c40: 3c61 2063 6c61 7373 3d22 656c 2220 6872 s
│ │ │ │ +00124cb0: 6f61 705f 6d75 6c74 6970 6172 743c 2f61 oap_multipart
attachm
│ │ │ │ +00124cd0: 656e 742e 3c2f 6c69 3e0a 3c6c 693e 3c63 ent.soap_post_check
│ │ │ │ +00124f00: 5f6d 696d 655f 6174 7461 6368 6d65 6e74 _mime_attachment
│ │ │ │ +00124f10: 733c 2f61 3e3c 2f63 6f64 653e 2e3c 2f6c s
..str
│ │ │ │ +00124f30: 7563 7420 3c61 2063 6c61 7373 3d22 656c uct soap_multipar
│ │ │ │ +00124fb0: 743c 2f61 3e20 2a73 6f61 705f 7265 6376 t *soap_recv
│ │ │ │ +00124fc0: 5f6d 696d 655f 6174 7461 6368 6d65 6e74 _mime_attachment
│ │ │ │ +00124fd0: 2873 7472 7563 7420 736f 6170 202a 736f (struct soap *so
│ │ │ │ +00124fe0: 6170 2c20 766f 6964 202a 6861 6e64 6c65 ap, void *handle
│ │ │ │ +00124ff0: 293c 2f63 6f64 653e 2054 6869 7320 6675 )
This fu
│ │ │ │ +00125000: 6e63 7469 6f6e 2070 6172 7365 7320 616e nction parses an
│ │ │ │ +00125010: 2061 7474 6163 686d 656e 7420 616e 6420 attachment and
│ │ │ │ +00125020: 696e 766f 6b65 7320 7468 6520 4d49 4d45 invokes the MIME
│ │ │ │ +00125030: 2063 616c 6c62 6163 6b73 2077 6865 6e20 callbacks when
│ │ │ │ +00125040: 7365 742e 2054 6865 203c 636f 6465 3e68 set. The h
│ │ │ │ +00125050: 616e 646c 653c 2f63 6f64 653e 2070 6172 andle
par
│ │ │ │ +00125060: 616d 6574 6572 2069 7320 7061 7373 6564 ameter is passed
│ │ │ │ +00125070: 2074 6f20 3c63 6f64 653e 666d 696d 6577 to fmimew
│ │ │ │ +00125080: 7269 7465 6f70 656e 3c2f 636f 6465 3e2e riteopen
.
│ │ │ │ +00125090: 2054 6865 2068 616e 646c 6520 6d61 7920 The handle may
│ │ │ │ +001250a0: 636f 6e74 6169 6e20 616e 7920 6461 7461 contain any data
│ │ │ │ +001250b0: 2074 6861 7420 6973 2065 7874 7261 6374 that is extract
│ │ │ │ +001250c0: 6564 2066 726f 6d20 7468 6520 534f 4150 ed from the SOAP
│ │ │ │ +001250d0: 206d 6573 7361 6765 2062 6f64 7920 746f message body to
│ │ │ │ +001250e0: 2067 7569 6465 2074 6865 2072 6564 6972 guide the redir
│ │ │ │ +001250f0: 6563 7469 6f6e 206f 6620 7468 6520 7374 ection of the st
│ │ │ │ +00125100: 7265 616d 2069 6e20 7468 6520 6361 6c6c ream in the call
│ │ │ │ +00125110: 6261 636b 732e 2052 6574 7572 6e73 2061 backs. Returns a
│ │ │ │ +00125120: 2073 7472 7563 7420 7769 7468 2061 203c struct with a <
│ │ │ │ +00125130: 636f 6465 3e63 6861 7220 2a70 7472 3c2f code>char *ptr
│ │ │ │ +00125140: 636f 6465 3e20 6d65 6d62 6572 2074 6861 code> member tha
│ │ │ │ +00125150: 7420 636f 6e74 6169 6e73 2074 6865 2068 t contains the h
│ │ │ │ +00125160: 616e 646c 6520 7661 6c75 6520 7265 7475 andle value retu
│ │ │ │ +00125170: 726e 6564 2062 7920 7468 6520 3c63 6f64 rned by the char
│ │ │ │ +001251b0: 202a 6964 3c2f 636f 6465 3e2c 203c 636f *id
,
│ │ │ │ +001251e0: 6368 6172 202a 6465 7363 7269 7074 696f char *descriptio
│ │ │ │ +001251f0: 6e3c 2f63 6f64 653e 206d 656d 6265 7220 n
member
│ │ │ │ +00125200: 7661 7269 6162 6c65 7320 7769 7468 2074 variables with t
│ │ │ │ +00125210: 6865 204d 494d 4520 6964 2c20 7479 7065 he MIME id, type
│ │ │ │ +00125220: 2c20 616e 6420 6465 7363 7269 7074 696f , and descriptio
│ │ │ │ +00125230: 6e20 696e 666f 2077 6865 6e20 7072 6573 n info when pres
│ │ │ │ +00125240: 656e 7420 696e 2074 6865 2061 7474 6163 ent in the attac
│ │ │ │ +00125250: 686d 656e 742e 3c2f 6c69 3e0a 3c2f 756c hment.// attachmen
│ │ │ │ -00126c80: 7473 2061 7265 2070 7265 7365 6e74 2c20 ts are present,
│ │ │ │ -00126c90: 6368 616e 6e65 6c20 6973 2073 7469 6c6c channel is still
│ │ │ │ -00126ca0: 206f 7065 6e20 3c2f 7370 616e 3e3c 2f64 open .wsa.h
file to enabl
│ │ │ │ -00128ab0: 6520 7468 6520 6765 6e65 7261 7469 6f6e e the generation
│ │ │ │ -00128ac0: 206f 6620 5753 444c 2073 7065 6369 6669 of WSDL specifi
│ │ │ │ -00128ad0: 6361 7469 6f6e 7320 7468 6174 2069 6d70 cations that imp
│ │ │ │ -00128ae0: 6f72 7420 2869 6e73 7465 6164 206f 6620 ort (instead of
│ │ │ │ -00128af0: 696e 636c 7564 6573 2920 7468 6520 5753 includes) the WS
│ │ │ │ -00128b00: 2d41 6464 7265 7373 696e 6720 656c 656d -Addressing elem
│ │ │ │ -00128b10: 656e 7473 2e20 4e6f 7465 2074 6861 7420 ents. Note that
│ │ │ │ -00128b20: 7468 6520 3c63 6f64 653e 2f2f 6773 6f61 the //gsoa
│ │ │ │ -00128b30: 706f 7074 2077 3c2f 636f 6465 3e20 6469 popt w
di
│ │ │ │ -00128b40: 7265 6374 6976 6520 2877 6869 6368 2061 rective (which a
│ │ │ │ -00128b50: 6464 7320 6f70 7469 6f6e 203c 623e 3c63 dds option w
│ │ │ │ -00128c90: 7361 3a4d 6573 7361 6765 4944 3c2f 636f sa:MessageID
, wsa:Action
│ │ │ │ -00128ce0: 3c2f 636f 6465 3e3c 2f65 6d3e 2065 6c65
ele
│ │ │ │ -00128cf0: 6d65 6e74 7320 696e 2074 6865 2053 4f41 ments in the SOA
│ │ │ │ -00128d00: 5020 4865 6164 6572 206f 6620 7468 6520 P Header of the
│ │ │ │ -00128d10: 7265 7175 6573 7420 6d65 7373 6167 6520 request message
│ │ │ │ -00128d20: 6173 2066 6f6c 6c6f 7773 3a3c 2f70 3e0a as follows:int ns__sendStrin
│ │ │ │ -00128f00: 6728 3c73 7061 6e20 636c 6173 733d 226b g(char
│ │ │ │ -00128f20: 3c2f 7370 616e 3e20 2a73 7472 2c20 3c73 *str, void);wsa:Me
│ │ │ │ -00128fd0: 7373 6167 6549 443c 2f63 6f64 653e 3c2f ssageID
│ │ │ │ -00128fe0: 656d 3e2c 203c 656d 3e3c 636f 6465 3e77 em>, w
│ │ │ │ -00128ff0: 7361 3a54 6f3c 2f63 6f64 653e 3c2f 656d sa:To
, wsa
│ │ │ │ -00129010: 3a41 6374 696f 6e3c 2f63 6f64 653e 3c2f :Action
│ │ │ │ -00129020: 656d 3e2c 2061 6e64 203c 656d 3e3c 636f em>, and wsa:To
│ │ │ │ -001290c0: 3c2f 636f 6465 3e3c 2f65 6d3e 2c20 3c65
, wsa:Acti
│ │ │ │ -001290e0: 6f6e 3c2f 636f 6465 3e3c 2f65 6d3e 2c20 on
ws
│ │ │ │ -00129100: 613a 5265 6c61 7465 7354 6f3c 2f63 6f64 a:RelatesTo
elements
│ │ │ │ -00129120: 2069 6e20 7468 6520 534f 4150 2048 6561 in the SOAP Hea
│ │ │ │ -00129130: 6465 7220 6f66 2074 6865 2072 6573 706f der of the respo
│ │ │ │ -00129140: 6e73 6520 6d65 7373 6167 653a 3c2f 703e nse message:
│ │ │ │ -001295e0: 3c2f 613e 0a43 6c69 656e 742d 7369 6465 .Client-side
│ │ │ │ -001295f0: 206f 6e65 2d77 6179 2055 4450 2075 6e69 one-way UDP uni
│ │ │ │ -00129600: 6361 7374 3c2f 6833 3e0a 3c70 3e54 6869 cast
.ns__sendString<
│ │ │ │ -001296e0: 2f63 6f64 653e 2066 756e 6374 696f 6e20 /code> function
│ │ │ │ -001296f0: 6469 7363 7573 7365 6420 696e 2053 6563 discussed in Sec
│ │ │ │ -00129700: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Usin
│ │ │ │ -00129730: 6720 5753 2d41 6464 7265 7373 696e 6720 g WS-Addressing
│ │ │ │ -00129740: 7769 7468 2053 4f41 502d 6f76 6572 2d55 with SOAP-over-U
│ │ │ │ -00129750: 4450 3c2f 613e 2e3c 2f70 3e0a 3c64 6976 DP.
// server-si
│ │ │ │ +00127410: 6465 2070 726f 6365 7373 696e 6720 6c6f de processing lo
│ │ │ │ +00127420: 6769 6320 3c2f 7370 616e 3e3c 2f64 6976 gic .Stream
│ │ │ │ +00127570: 696e 6720 6368 756e 6b65 6420 4d49 4d45 ing chunked MIME
│ │ │ │ +00127580: 2f4d 544f 4d3c 2f68 323e 0a3c 703e 546f /MTOM
._
│ │ │ │ +001276e0: 5f73 697a 653c 2f63 6f64 653e 206d 656d _size
mem
│ │ │ │ +001276f0: 6265 7220 6f66 2061 6e20 6174 7461 6368 ber of an attach
│ │ │ │ +00127700: 6d65 6e74 2074 6f20 7a65 726f 2061 6e64 ment to zero and
│ │ │ │ +00127710: 2065 6e61 626c 6520 4d49 4d45 2f4d 544f enable MIME/MTO
│ │ │ │ +00127720: 4d20 6368 756e 6b69 6e67 2e20 5468 6520 M chunking. The
│ │ │ │ +00127730: 4d49 4d45 2f4d 544f 4d20 3c63 6f64 653e MIME/MTOM
│ │ │ │ +00127740: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::fmime
│ │ │ │ +001277e0: 7265 6164 3c2f 613e 3c2f 636f 6465 3e20 read
│ │ │ │ +001277f0: 6361 6c6c 6261 636b 2074 6865 6e20 6665 callback then fe
│ │ │ │ +00127800: 7463 6865 7320 6461 7461 2069 6e20 6368 tches data in ch
│ │ │ │ +00127810: 756e 6b73 2061 6e64 2069 7420 6973 2069 unks and it is i
│ │ │ │ +00127820: 6d70 6f72 7461 6e74 2074 6f20 6669 6c6c mportant to fill
│ │ │ │ +00127830: 2074 6865 2065 6e74 6972 6520 6275 6666 the entire buff
│ │ │ │ +00127840: 6572 2075 6e6c 6573 7320 7468 6520 656e er unless the en
│ │ │ │ +00127850: 6420 6f66 2074 6865 2064 6174 6120 6861 d of the data ha
│ │ │ │ +00127860: 7320 6265 656e 2072 6561 6368 6564 2061 s been reached a
│ │ │ │ +00127870: 6e64 2074 6865 206c 6173 7420 6368 756e nd the last chun
│ │ │ │ +00127880: 6b20 6973 2074 6f20 6265 2073 656e 642e k is to be send.
│ │ │ │ +00127890: 2054 6861 7420 6973 2c20 3c63 6f64 653e That is,
│ │ │ │ +001278a0: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap::fmime
│ │ │ │ +00127940: 7265 6164 3c2f 613e 3c2f 636f 6465 3e20 read
│ │ │ │ +00127950: 7368 6f75 6c64 2072 6574 7572 6e20 7468 should return th
│ │ │ │ +00127960: 6520 7661 6c75 6520 6f66 2074 6865 206c e value of the l
│ │ │ │ +00127970: 6173 7420 3c63 6f64 653e 6c65 6e3c 2f63 ast len parameter a
│ │ │ │ +00127990: 6e64 2066 696c 6c20 7468 6520 656e 7469 nd fill the enti
│ │ │ │ +001279a0: 7265 2062 7566 6665 7220 3c63 6f64 653e re buffer
│ │ │ │ +001279b0: 6275 663c 2f63 6f64 653e 2066 6f72 2061 buf
for a
│ │ │ │ +001279c0: 6c6c 2063 6875 6e6b 7320 6578 6365 7074 ll chunks except
│ │ │ │ +001279d0: 2074 6865 206c 6173 742e 2046 6f72 2074 the last. For t
│ │ │ │ +001279e0: 6865 206c 6173 7420 6974 2072 6574 7572 he last it retur
│ │ │ │ +001279f0: 6e73 2030 2e3c 2f70 3e0a 3c70 3ef0 9f94 ns 0.<
│ │ │ │ +00127a50: 2f61 3e0a 534f 4150 2f58 4d4c 206f 7665 /a>.SOAP/XML ove
│ │ │ │ +00127a60: 7220 5544 503c 2f68 313e 0a3c 703e 5544 r UDP
.soap.udp
│ │ │ │ +00127cc0: 3a2f 2f2e 2e2e 3c2f 636f 6465 3e29 2061 ://...
) a
│ │ │ │ +00127cd0: 7265 2061 7574 6f6d 6174 6963 616c 6c79 re automatically
│ │ │ │ +00127ce0: 2074 7261 6e73 6d69 7474 6564 2061 7320 transmitted as
│ │ │ │ +00127cf0: 6461 7461 6772 616d 732e 2053 6572 7665 datagrams. Serve
│ │ │ │ +00127d00: 722d 7369 6465 2061 7070 6c69 6361 7469 r-side applicati
│ │ │ │ +00127d10: 6f6e 7320 7368 6f75 6c64 2073 6574 2074 ons should set t
│ │ │ │ +00127d20: 6865 203c 636f 6465 3e23 534f 4150 5f49 he #SOAP_I
│ │ │ │ +00127d30: 4f5f 5544 503c 2f63 6f64 653e 206d 6f64 O_UDP
mod
│ │ │ │ +00127d40: 6520 666c 6167 2074 6f20 6163 6365 7074 e flag to accept
│ │ │ │ +00127d50: 2055 4450 2072 6571 7565 7374 732c 2065 UDP requests, e
│ │ │ │ +00127d60: 2e67 2e20 7573 696e 6720 3c63 6f64 653e .g. using
│ │ │ │ +00127d70: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soa
│ │ │ │ +00127e20: 705f 6e65 7731 3c2f 613e 3c2f 636f 6465 p_new1
, soap_init1<
│ │ │ │ +00127ef0: 2f61 3e3c 2f63 6f64 653e 2c20 6f72 203c /a>
, or <
│ │ │ │ +00127f00: 636f 6465 3e3c 6120 636c 6173 733d 2265 code>
│ │ │ │ +00127fa0: 736f 6170 5f73 6574 5f6d 6f64 653c 2f61 soap_set_mode.#SOAP_BU
│ │ │ │ +00128020: 464c 454e 3c2f 636f 6465 3e2c 2077 6869 FLEN
, whi
│ │ │ │ +00128030: 6368 2069 7320 3635 3533 3620 6279 2064 ch is 65536 by d
│ │ │ │ +00128040: 6566 6175 6c74 2c20 756e 6c65 7373 2063 efault, unless c
│ │ │ │ +00128050: 6f6d 7069 6c65 6420 7769 7468 203c 636f ompiled with #SOAP_BUFL
│ │ │ │ +001280c0: 454e 3c2f 636f 6465 3e20 6d75 7374 206e EN
must n
│ │ │ │ +001280d0: 6f74 2065 7863 6565 6420 7468 6520 6d61 ot exceed the ma
│ │ │ │ +001280e0: 7869 6d75 6d20 5544 5020 7061 636b 6574 ximum UDP packet
│ │ │ │ +001280f0: 2073 697a 6520 3635 3533 3620 2874 6865 size 65536 (the
│ │ │ │ +00128100: 2073 697a 6520 6f66 2064 6174 6167 7261 size of datagra
│ │ │ │ +00128110: 6d20 6d65 7373 6167 6573 2069 7320 636f m messages is co
│ │ │ │ +00128120: 6e73 7472 6169 6e65 6420 6279 2074 6865 nstrained by the
│ │ │ │ +00128130: 2055 4450 2070 6163 6b65 7420 7369 7a65 UDP packet size
│ │ │ │ +00128140: 2032 5e31 363d 3635 3533 3620 6173 2070 2^16=65536 as p
│ │ │ │ +00128150: 6572 2055 4450 2073 7461 6e64 6172 6429 er UDP standard)
│ │ │ │ +00128160: 2e20 596f 7520 6361 6e20 7573 6520 636f . You can use co
│ │ │ │ +00128170: 6d70 7265 7373 696f 6e20 7769 7468 203c mpression with <
│ │ │ │ +00128180: 636f 6465 3e23 534f 4150 5f45 4e43 5f5a code>#SOAP_ENC_Z
│ │ │ │ +00128190: 4c49 423c 2f63 6f64 653e 2074 6f20 7265 LIB to re
│ │ │ │ +001281a0: 6475 6365 2074 6865 206d 6573 7361 6765 duce the message
│ │ │ │ +001281b0: 2073 697a 652c 2062 7574 206e 6f74 6520 size, but note
│ │ │ │ +001281c0: 7468 6174 2063 6f6d 7072 6573 7365 6420 that compressed
│ │ │ │ +001281d0: 534f 4150 2d6f 7665 722d 5544 5020 6973 SOAP-over-UDP is
│ │ │ │ +001281e0: 2061 2067 534f 4150 2d73 7065 6369 6669 a gSOAP-specifi
│ │ │ │ +001281f0: 6320 6665 6174 7572 6520 6265 6361 7573 c feature becaus
│ │ │ │ +00128200: 6520 6974 2069 7320 6e6f 7420 7061 7274 e it is not part
│ │ │ │ +00128210: 206f 6620 7468 6520 534f 4150 2d6f 7665 of the SOAP-ove
│ │ │ │ +00128220: 722d 5544 5020 7370 6563 6966 6963 6174 r-UDP specificat
│ │ │ │ +00128230: 696f 6e2e 3c2f 703e 0a3c 703e 5468 6520 ion.import directory d
│ │ │ │ +001282c0: 6566 696e 6573 2074 6865 2057 532d 4164 efines the WS-Ad
│ │ │ │ +001282d0: 6472 6573 7369 6e67 2065 6c65 6d65 6e74 dressing element
│ │ │ │ +001282e0: 7320 666f 7220 636c 6965 6e74 2061 6e64 s for client and
│ │ │ │ +001282f0: 2073 6572 7665 7220 6170 706c 6963 6174 server applicat
│ │ │ │ +00128300: 696f 6e73 2e3c 2f70 3e0a 3c70 3e54 6865 ions.
.
..
.#WI
│ │ │ │ +001285f0: 5448 5f47 5a49 503c 2f63 6f64 653e 292e TH_GZIP
).
│ │ │ │ +00128600: 3c2f 6c69 3e0a 3c6c 693e 534f 4150 2077 .#WITH_I
│ │ │ │ +001286a0: 5056 363c 2f63 6f64 653e 293c 2f6c 693e PV6
)<
│ │ │ │ +00128710: 2f61 3e0a 5573 696e 6720 5753 2d41 6464 /a>.Using WS-Add
│ │ │ │ +00128720: 7265 7373 696e 6720 7769 7468 2053 4f41 ressing with SOA
│ │ │ │ +00128730: 502d 6f76 6572 2d55 4450 3c2f 6832 3e0a P-over-UDP
.
│ │ │ │ +00128740: 3c70 3e41 2053 4f41 502d 6f76 6572 2d55 wsa.h<
│ │ │ │ +001287d0: 2f63 6f64 653e 3c2f 656d 3e20 6669 6c65 /code>
file
│ │ │ │ +001287e0: 2069 6e20 7468 6520 3c63 6f64 653e 696d in the im
│ │ │ │ +001287f0: 706f 7274 3c2f 636f 6465 3e20 6469 7265 port
dire
│ │ │ │ +00128800: 6374 6f72 7920 6465 6669 6e65 7320 7468 ctory defines th
│ │ │ │ +00128810: 6520 5753 2d41 6464 7265 7373 696e 6720 e WS-Addressing
│ │ │ │ +00128820: 656c 656d 656e 7473 2e20 546f 2069 6e63 elements. To inc
│ │ │ │ +00128830: 6c75 6465 2074 6865 2057 532d 4164 6472 lude the WS-Addr
│ │ │ │ +00128840: 6573 7369 6e67 2065 6c65 6d65 6e74 7320 essing elements
│ │ │ │ +00128850: 696e 2074 6865 2053 4f41 5020 4865 6164 in the SOAP Head
│ │ │ │ +00128860: 6572 2066 6f72 206d 6573 7361 6769 6e67 er for messaging
│ │ │ │ +00128870: 2c20 6120 5753 2d41 6464 7265 7373 696e , a WS-Addressin
│ │ │ │ +00128880: 6720 6361 7061 626c 6520 3c63 6f64 653e g capable
│ │ │ │ +00128890: 3c61 2063 6c61 7373 3d22 656c 2220 6872 SOAP_
│ │ │ │ +001288f0: 454e 565f 5f48 6561 6465 723c 2f61 3e3c ENV__Header<
│ │ │ │ +00128900: 2f63 6f64 653e 2073 7472 7563 7420 7368 /code> struct sh
│ │ │ │ +00128910: 6f75 6c64 2062 6520 6465 6669 6e65 6420 ould be defined
│ │ │ │ +00128920: 696e 2079 6f75 7220 6865 6164 6572 2066 in your header f
│ │ │ │ +00128930: 696c 6520 6279 2069 6d70 6f72 7469 6e67 ile by importing
│ │ │ │ +00128940: 203c 656d 3e3c 636f 6465 3e67 736f 6170
gsoap
│ │ │ │ +00128950: 2f69 6d70 6f72 742f 7773 612e 683c 2f63 /import/wsa.h
or gsoap/imp
│ │ │ │ +00128980: 6f72 742f 7773 6135 2e68 3c2f 636f 6465 ort/wsa5.h
://gsoa
│ │ │ │ +00128a40: 7020 7773 6120 7363 6865 6d61 2069 6d70 p wsa schema imp
│ │ │ │ +00128a50: 6f72 743a 3c2f 636f 6465 3e20 6469 7265 ort:
dire
│ │ │ │ +00128a60: 6374 6976 6520 696e 2074 6865 203c 656d ctive in the wsa.h
file to
│ │ │ │ +00128a90: 2065 6e61 626c 6520 7468 6520 6765 6e65 enable the gene
│ │ │ │ +00128aa0: 7261 7469 6f6e 206f 6620 5753 444c 2073 ration of WSDL s
│ │ │ │ +00128ab0: 7065 6369 6669 6361 7469 6f6e 7320 7468 pecifications th
│ │ │ │ +00128ac0: 6174 2069 6d70 6f72 7420 2869 6e73 7465 at import (inste
│ │ │ │ +00128ad0: 6164 206f 6620 696e 636c 7564 6573 2920 ad of includes)
│ │ │ │ +00128ae0: 7468 6520 5753 2d41 6464 7265 7373 696e the WS-Addressin
│ │ │ │ +00128af0: 6720 656c 656d 656e 7473 2e20 4e6f 7465 g elements. Note
│ │ │ │ +00128b00: 2074 6861 7420 7468 6520 3c63 6f64 653e that the
│ │ │ │ +00128b10: 2f2f 6773 6f61 706f 7074 2077 3c2f 636f //gsoapopt w directive (w
│ │ │ │ +00128b30: 6869 6368 2061 6464 7320 6f70 7469 6f6e hich adds option
│ │ │ │ +00128b40: 203c 623e 3c63 6f64 653e 2d77 3c2f 636f
-w
to run <
│ │ │ │ +00128b60: 623e 3c63 6f64 653e 736f 6170 6370 7032 b>soapcpp2
│ │ │ │ +00128b70: 202d 773c 2f63 6f64 653e 3c2f 623e 2920 -w
)
│ │ │ │ +00128b80: 6d75 7374 206e 6f74 2062 6520 7072 6573 must not be pres
│ │ │ │ +00128b90: 656e 7420 696e 2079 6f75 7220 6865 6164 ent in your head
│ │ │ │ +00128ba0: 6572 2066 696c 6520 746f 2065 6e61 626c er file to enabl
│ │ │ │ +00128bb0: 6520 5753 444c 2067 656e 6572 6174 696f e WSDL generatio
│ │ │ │ +00128bc0: 6e2e 3c2f 703e 0a3c 703e 4f6e 652d 7761 n.wsa:To
│ │ │ │ +00128ca0: 3c2f 636f 6465 3e3c 2f65 6d3e 2c20 616e
, an
│ │ │ │ +00128cb0: 6420 3c65 6d3e 3c63 6f64 653e 7773 613a d wsa:
│ │ │ │ +00128cc0: 4163 7469 6f6e 3c2f 636f 6465 3e3c 2f65 Action
elements in t
│ │ │ │ +00128ce0: 6865 2053 4f41 5020 4865 6164 6572 206f he SOAP Header o
│ │ │ │ +00128cf0: 6620 7468 6520 7265 7175 6573 7420 6d65 f the request me
│ │ │ │ +00128d00: 7373 6167 6520 6173 2066 6f6c 6c6f 7773 ssage as follows
│ │ │ │ +00128d10: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 ://gsoap ns s
│ │ │ │ +00128d60: 6572 7669 6365 206d 6574 686f 642d 6865 ervice method-he
│ │ │ │ +00128d70: 6164 6572 2d70 6172 743a 2020 2020 2020 ader-part:
│ │ │ │ +00128d80: 2020 2020 7365 6e64 5374 7269 6e67 2077 sendString w
│ │ │ │ +00128d90: 7361 5f5f 4d65 7373 6167 6549 4420 3c2f sa__MessageID
│ │ │ │ +00128da0: 7370 616e 3e3c 2f64 6976 3e0a 3c64 6976 span>//gsoap ns s
│ │ │ │ +00128de0: 6572 7669 6365 206d 6574 686f 642d 6865 ervice method-he
│ │ │ │ +00128df0: 6164 6572 2d70 6172 743a 2020 2020 2020 ader-part:
│ │ │ │ +00128e00: 2020 2020 7365 6e64 5374 7269 6e67 2077 sendString w
│ │ │ │ +00128e10: 7361 5f5f 546f 203c 2f73 7061 6e3e 3c2f sa__To
│ │ │ │ +00128e20: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.
│ │ │ │ +00128fb0: 7773 613a 4d65 7373 6167 6549 443c 2f63 wsa:MessageID
, <
│ │ │ │ +00128fd0: 636f 6465 3e77 7361 3a54 6f3c 2f63 6f64 code>wsa:To, wsa:Rep
│ │ │ │ +00129020: 6c79 546f 3c2f 636f 6465 3e3c 2f65 6d3e lyTo
│ │ │ │ +00129030: 2065 6c65 6d65 6e74 7320 696e 2074 6865 elements in the
│ │ │ │ +00129040: 2053 4f41 5020 4865 6164 6572 206f 6620 SOAP Header of
│ │ │ │ +00129050: 7468 6520 7265 7175 6573 7420 6d65 7373 the request mess
│ │ │ │ +00129060: 6167 652c 2061 6e64 2074 6865 2074 6865 age, and the the
│ │ │ │ +00129070: 203c 656d 3e3c 636f 6465 3e77 7361 3a4d wsa:M
│ │ │ │ +00129080: 6573 7361 6765 4944 3c2f 636f 6465 3e3c essageID
<
│ │ │ │ +00129090: 2f65 6d3e 2c20 3c65 6d3e 3c63 6f64 653e /em>,
│ │ │ │ +001290a0: 7773 613a 546f 3c2f 636f 6465 3e3c 2f65 wsa:To
, ws
│ │ │ │ +001290c0: 613a 4163 7469 6f6e 3c2f 636f 6465 3e3c a:Action
<
│ │ │ │ +001290d0: 2f65 6d3e 2c20 616e 6420 3c65 6d3e 3c63 /em>, and .Clien
│ │ │ │ +001295d0: 742d 7369 6465 206f 6e65 2d77 6179 2055 t-side one-way U
│ │ │ │ +001295e0: 4450 2075 6e69 6361 7374 3c2f 6833 3e0a DP unicast
.
│ │ │ │ +001295f0: 3c70 3e54 6869 7320 6578 616d 706c 6520 ns__sendS
│ │ │ │ +001296c0: 7472 696e 673c 2f63 6f64 653e 2066 756e tring
fun
│ │ │ │ +001296d0: 6374 696f 6e20 6469 7363 7573 7365 6420 ction discussed
│ │ │ │ +001296e0: 696e 2053 6563 7469 6f6e 203c 6120 636c in Section Using WS-Addre
│ │ │ │ +00129720: 7373 696e 6720 7769 7468 2053 4f41 502d ssing with SOAP-
│ │ │ │ +00129730: 6f76 6572 2d55 4450 3c2f 613e 2e3c 2f70 over-UDP..C
│ │ │ │ -0012a2e0: 6c69 656e 742d 7369 6465 206f 6e65 2d77 lient-side one-w
│ │ │ │ -0012a2f0: 6179 2055 4450 206d 756c 7469 6361 7374 ay UDP multicast
│ │ │ │ -0012a300: 3c2f 6833 3e0a 3c70 3e54 6869 7320 6578
.SO_B
│ │ │ │ -0012a380: 524f 4144 4341 5354 3c2f 636f 6465 3e20 ROADCAST
│ │ │ │ -0012a390: 736f 636b 6574 206f 7074 696f 6e3a 3c2f socket option:
│ │ │ │ -0012a3a0: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.// required
│ │ │ │ -0012a890: 666f 7220 6272 6f61 6463 6173 7420 3c2f for broadcast
│ │ │ │ -0012a8a0: 7370 616e 3e3c 2f64 6976 3e0a 3c64 6976 span>"
│ │ │ │ -0012ad00: 534f 4150 2061 6374 696f 6e26 7175 6f74 SOAP action"
│ │ │ │ -0012ad10: 3b3c 2f73 7061 6e3e 293b 3c2f 6469 763e ;);if (soap_send_ns_
│ │ │ │ -0012add0: 5f65 6368 6f53 7472 696e 6728 2661 6d70 _echoString(&
│ │ │ │ -0012ade0: 3b3c 6120 636c 6173 733d 2263 6f64 6522 ;soap
│ │ │ │ -0012ae10: 2c20 3c73 7061 6e20 636c 6173 733d 2273 , &q
│ │ │ │ -0012ae30: 756f 743b 736f 6170 2e75 6470 3a2f 2f65 uot;soap.udp://e
│ │ │ │ -0012ae40: 6e64 706f 696e 7426 7175 6f74 3b3c 2f73 ndpoint", "SOAP act
│ │ │ │ -0012ae80: 696f 6e26 7175 6f74 3b3c 2f73 7061 6e3e ion"
│ │ │ │ -0012ae90: 2c20 3c73 7061 6e20 636c 6173 733d 2273 , &q
│ │ │ │ -0012aeb0: 756f 743b 6865 6c6c 6f20 776f 726c 6421 uot;hello world!
│ │ │ │ -0012aec0: 2671 756f 743b 3c2f 7370 616e 3e29 2920 "))
│ │ │ │ -0012aed0: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 IP_M
│ │ │ │ -0012b8c0: 554c 5449 4341 5354 5f49 463c 2f63 6f64 ULTICAST_IF to specify th
│ │ │ │ -0012b8e0: 6520 6465 6661 756c 7420 696e 7465 7266 e default interf
│ │ │ │ -0012b8f0: 6163 6520 666f 7220 6d75 6c74 6963 6173 ace for multicas
│ │ │ │ -0012b900: 7420 6461 7461 6772 616d 7320 746f 2062 t datagrams to b
│ │ │ │ -0012b910: 6520 7365 6e74 2066 726f 6d2e 2054 6869 e sent from. Thi
│ │ │ │ -0012b920: 7320 6973 2061 203c 636f 6465 3e73 7472 s is a
str
│ │ │ │ -0012b930: 7563 7420 696e 5f61 6464 723c 2f63 6f64 uct in_addr (
) inter
│ │ │ │ -0012b980: 6661 6365 2076 616c 7565 2e20 4f74 6865 face value. Othe
│ │ │ │ -0012b990: 7277 6973 652c 2074 6865 2064 6566 6175 rwise, the defau
│ │ │ │ -0012b9a0: 6c74 2069 6e74 6572 6661 6365 2073 6574 lt interface set
│ │ │ │ -0012b9b0: 2062 7920 7468 6520 7379 7374 656d 2061 by the system a
│ │ │ │ -0012b9c0: 646d 696e 6973 7472 6174 6f72 2077 696c dministrator wil
│ │ │ │ -0012b9d0: 6c20 6265 2075 7365 6420 2869 6620 616e l be used (if an
│ │ │ │ -0012b9e0: 7929 2e3c 2f70 3e0a 3c70 3e50 6c65 6173 y).in_add
│ │ │ │ -0012b950: 725f 743c 2f63 6f64 653e 2066 6f72 203c r_t
for <
│ │ │ │ -0012b960: 636f 6465 3e73 696e 365f 7363 6f70 655f code>sin6_scope_
│ │ │ │ -0012b970: 6964 3c2f 636f 6465 3e29 2069 6e74 6572 idIPPROTO_
│ │ │ │ -0012ba20: 4950 3c2f 636f 6465 3e20 3c63 6f64 653e IP
│ │ │ │ -0012ba30: 4950 5f4d 554c 5449 4341 5354 5f54 544c IP_MULTICAST_TTL
│ │ │ │ -0012ba40: 3c2f 636f 6465 3e20 746f 206c 696d 6974
to limit
│ │ │ │ -0012ba50: 2074 6865 206c 6966 6574 696d 6520 6f66 the lifetime of
│ │ │ │ -0012ba60: 2074 6865 2070 6163 6b65 742e 204d 756c the packet. Mul
│ │ │ │ -0012ba70: 7469 6361 7374 2064 6174 6167 7261 6d73 ticast datagrams
│ │ │ │ -0012ba80: 2061 7265 2073 656e 7420 7769 7468 2061 are sent with a
│ │ │ │ -0012ba90: 2064 6566 6175 6c74 2076 616c 7565 206f default value o
│ │ │ │ -0012baa0: 6620 312c 2074 6f20 7072 6576 656e 7420 f 1, to prevent
│ │ │ │ -0012bab0: 7468 656d 2074 6f20 6265 2066 6f72 7761 them to be forwa
│ │ │ │ -0012bac0: 7264 6564 2062 6579 6f6e 6420 7468 6520 rded beyond the
│ │ │ │ -0012bad0: 6c6f 6361 6c20 6e65 7477 6f72 6b2e 2054 local network. T
│ │ │ │ -0012bae0: 6869 7320 7061 7261 6d65 7465 7220 6361 his parameter ca
│ │ │ │ -0012baf0: 6e20 6265 2073 6574 2062 6574 7765 656e n be set between
│ │ │ │ -0012bb00: 2031 2074 6f20 3235 352e 3c2f 703e 0a3c 1 to 255..Clie
│ │ │ │ -0012bb80: 6e74 2d73 6964 6520 7265 7175 6573 742d nt-side request-
│ │ │ │ -0012bb90: 7265 7370 6f6e 7365 2055 4450 2075 6e69 response UDP uni
│ │ │ │ -0012bba0: 6361 7374 3c2f 6833 3e0a 3c70 3e54 6869 cast
.#import "
│ │ │ │ -0012bc40: 7773 612e 6822 3c2f 636f 6465 3e20 616e wsa.h"
an
│ │ │ │ -0012bc50: 6420 7468 6520 3c63 6f64 653e 6e73 5f5f d the ns__
│ │ │ │ -0012bc60: 6563 686f 5374 7269 6e67 3c2f 636f 6465 echoString
function discu
│ │ │ │ -0012bc80: 7373 6564 2069 6e20 5365 6374 696f 6e20 ssed in Section
│ │ │ │ -0012bc90: 3c61 2063 6c61 7373 3d22 656c 2220 6872 Using WS-
│ │ │ │ -0012bcc0: 4164 6472 6573 7369 6e67 2077 6974 6820 Addressing with
│ │ │ │ -0012bcd0: 534f 4150 2d6f 7665 722d 5544 503c 2f61 SOAP-over-UDP .// server re
│ │ │ │ -0012bf10: 7370 6f6e 7365 203c 2f73 7061 6e3e 3c2f sponse
│ │ │ │ -0012bf20: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.// Send and
│ │ │ │ -0012c4a0: 7265 6365 6976 6520 6d65 7373 6167 6573 receive messages
│ │ │ │ -0012c4b0: 206f 7665 7220 5544 503a 203c 2f73 7061 over UDP: .Client
│ │ │ │ -0012cb30: 2d73 6964 6520 7265 7175 6573 742d 7265 -side request-re
│ │ │ │ -0012cb40: 7370 6f6e 7365 206d 756c 7469 6361 7374 sponse multicast
│ │ │ │ -0012cb50: 3c2f 6833 3e0a 3c70 3e54 6869 7320 6578
.bcastStri
│ │ │ │ -0012ccc0: 6e67 3c2f 636f 6465 3e20 7265 7175 6573 ng
reques
│ │ │ │ -0012ccd0: 7420 616e 6420 6120 3c63 6f64 653e 6263 t and a bc
│ │ │ │ -0012cce0: 6173 7453 7472 696e 6752 6573 706f 6e73 astStringRespons
│ │ │ │ -0012ccf0: 653c 2f63 6f64 653e 2072 6573 706f 6e73 e
respons
│ │ │ │ -0012cd00: 6520 6d65 7373 6167 652c 2077 6869 6368 e message, which
│ │ │ │ -0012cd10: 2061 7265 2065 7373 656e 7469 616c 6c79 are essentially
│ │ │ │ -0012cd20: 2064 6563 6c61 7265 6420 6173 206f 6e65 declared as one
│ │ │ │ -0012cd30: 2d77 6179 206d 6573 7361 6765 7320 696e -way messages in
│ │ │ │ -0012cd40: 2074 6865 2068 6561 6465 7220 6669 6c65 the header file
│ │ │ │ -0012cd50: 3a3c 2f70 3e0a 3c64 6976 2063 6c61 7373 ://gsoap ns s
│ │ │ │ -0012cda0: 6572 7669 6365 206d 6574 686f 642d 6865 ervice method-he
│ │ │ │ -0012cdb0: 6164 6572 2d70 6172 743a 2020 2020 2020 ader-part:
│ │ │ │ -0012cdc0: 2020 2020 6263 6173 7453 7472 696e 6720 bcastString
│ │ │ │ -0012cdd0: 7773 615f 5f4d 6573 7361 6765 4944 203c wsa__MessageID <
│ │ │ │ -0012cde0: 2f73 7061 6e3e 3c2f 6469 763e 0a3c 6469 /span>wsdl2
│ │ │ │ -0012d330: 6820 2d62 3c2f 636f 6465 3e3c 2f62 3e20 h -b
│ │ │ │ -0012d340: 6f70 7469 6f6e 203c 623e 3c63 6f64 653e option
│ │ │ │ -0012d350: 2d62 3c2f 636f 6465 3e3c 2f62 3e3c 2f61 -b
."
│ │ │ │ -0012daf0: 6d65 7373 6167 6520 4944 2671 756f 743b message ID"
│ │ │ │ -0012db00: 3c2f 7370 616e 3e2c 203c 7370 616e 2063 , "endpo
│ │ │ │ -0012db30: 696e 7426 7175 6f74 3b3c 2f73 7061 6e3e int"
│ │ │ │ -0012db40: 2c20 3c73 7061 6e20 636c 6173 733d 2273 , &q
│ │ │ │ -0012db60: 756f 743b 534f 4150 2061 6374 696f 6e26 uot;SOAP action&
│ │ │ │ -0012db70: 7175 6f74 3b3c 2f73 7061 6e3e 293b 3c2f quot;);
│ │ │ │ -0012db80: 6469 763e 0a3c 6469 7620 636c 6173 733d div>.<
│ │ │ │ +0012a2a0: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ +0012a2b0: 2069 643d 226d 756c 7469 6361 7374 223e id="multicast">
│ │ │ │ +0012a2c0: 3c2f 613e 0a43 6c69 656e 742d 7369 6465 .Client-side
│ │ │ │ +0012a2d0: 206f 6e65 2d77 6179 2055 4450 206d 756c one-way UDP mul
│ │ │ │ +0012a2e0: 7469 6361 7374 3c2f 6833 3e0a 3c70 3e54 ticast
.IPPROT
│ │ │ │ +0012b890: 4f5f 4950 3c2f 636f 6465 3e20 3c63 6f64 O_IP
│ │ │ │ +0012b930: 696e 5f61 6464 725f 743c 2f63 6f64 653e in_addr_t
│ │ │ │ +0012b940: 2066 6f72 203c 636f 6465 3e73 696e 365f for sin6_
│ │ │ │ +0012b950: 7363 6f70 655f 6964 3c2f 636f 6465 3e29 scope_id
)
│ │ │ │ +0012b960: 2069 6e74 6572 6661 6365 2076 616c 7565 interface value
│ │ │ │ +0012b970: 2e20 4f74 6865 7277 6973 652c 2074 6865 . Otherwise, the
│ │ │ │ +0012b980: 2064 6566 6175 6c74 2069 6e74 6572 6661 default interfa
│ │ │ │ +0012b990: 6365 2073 6574 2062 7920 7468 6520 7379 ce set by the sy
│ │ │ │ +0012b9a0: 7374 656d 2061 646d 696e 6973 7472 6174 stem administrat
│ │ │ │ +0012b9b0: 6f72 2077 696c 6c20 6265 2075 7365 6420 or will be used
│ │ │ │ +0012b9c0: 2869 6620 616e 7929 2e3c 2f70 3e0a 3c70 (if any).IP
│ │ │ │ +0012ba00: 5052 4f54 4f5f 4950 3c2f 636f 6465 3e20 PROTO_IP
│ │ │ │ +0012ba10: 3c63 6f64 653e 4950 5f4d 554c 5449 4341 IP_MULTICA
│ │ │ │ +0012ba20: 5354 5f54 544c 3c2f 636f 6465 3e20 746f ST_TTL
to
│ │ │ │ +0012ba30: 206c 696d 6974 2074 6865 206c 6966 6574 limit the lifet
│ │ │ │ +0012ba40: 696d 6520 6f66 2074 6865 2070 6163 6b65 ime of the packe
│ │ │ │ +0012ba50: 742e 204d 756c 7469 6361 7374 2064 6174 t. Multicast dat
│ │ │ │ +0012ba60: 6167 7261 6d73 2061 7265 2073 656e 7420 agrams are sent
│ │ │ │ +0012ba70: 7769 7468 2061 2064 6566 6175 6c74 2076 with a default v
│ │ │ │ +0012ba80: 616c 7565 206f 6620 312c 2074 6f20 7072 alue of 1, to pr
│ │ │ │ +0012ba90: 6576 656e 7420 7468 656d 2074 6f20 6265 event them to be
│ │ │ │ +0012baa0: 2066 6f72 7761 7264 6564 2062 6579 6f6e forwarded beyon
│ │ │ │ +0012bab0: 6420 7468 6520 6c6f 6361 6c20 6e65 7477 d the local netw
│ │ │ │ +0012bac0: 6f72 6b2e 2054 6869 7320 7061 7261 6d65 ork. This parame
│ │ │ │ +0012bad0: 7465 7220 6361 6e20 6265 2073 6574 2062 ter can be set b
│ │ │ │ +0012bae0: 6574 7765 656e 2031 2074 6f20 3235 352e etween 1 to 255.
│ │ │ │ +0012baf0: 3c2f 703e 0a3c 703e f09f 949d 203c 6120 <
│ │ │ │ +0012bb30: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ +0012bb40: 2069 643d 2272 6571 7565 7374 7265 7370 id="requestresp
│ │ │ │ +0012bb50: 6f6e 7365 756e 6963 6173 7422 3e3c 2f61 onseunicast">
.Client-side re
│ │ │ │ +0012bb70: 7175 6573 742d 7265 7370 6f6e 7365 2055 quest-response U
│ │ │ │ +0012bb80: 4450 2075 6e69 6361 7374 3c2f 6833 3e0a DP unicast.
│ │ │ │ +0012bb90: 3c70 3e54 6869 7320 6578 616d 706c 6520 #im
│ │ │ │ +0012bc20: 706f 7274 2022 7773 612e 6822 3c2f 636f port "wsa.h" and the
function
│ │ │ │ +0012bc60: 2064 6973 6375 7373 6564 2069 6e20 5365 discussed in Se
│ │ │ │ +0012bc70: 6374 696f 6e20 3c61 2063 6c61 7373 3d22 ction Usi
│ │ │ │ +0012bca0: 6e67 2057 532d 4164 6472 6573 7369 6e67 ng WS-Addressing
│ │ │ │ +0012bcb0: 2077 6974 6820 534f 4150 2d6f 7665 722d with SOAP-over-
│ │ │ │ +0012bcc0: 5544 503c 2f61 3e20 2e3c 2f70 3e0a 3c64 UDP . ...
│ │ │ │ +0012c890: 2f2f 2055 4450 2073 6572 7665 7220 7265 // UDP server re
│ │ │ │ +0012c8a0: 7370 6f6e 7365 2069 7320 7374 6f72 6564 sponse is stored
│ │ │ │ +0012c8b0: 2069 6e20 2623 3339 3b72 6573 2623 3339 in 'res'
│ │ │ │ +0012c8c0: 3b20 3c2f 7370 616e 3e3c 2f64 6976 3e0a ; wsdl2h -b
option
│ │ │ │ +0012d330: 3c63 6f64 653e 2d62 3c2f 636f 6465 3e3c -b
<
│ │ │ │ +0012d340: 2f62 3e3c 2f61 3e2e 3c2f 703e 0a3c 703e /b>.// Timeout:
│ │ │ │ -0012e290: 6e6f 206d 6f72 6520 6d65 7373 6167 6573 no more messages
│ │ │ │ -0012e2a0: 2072 6563 6569 7665 6420 3c2f 7370 616e received bcast
│ │ │ │ -0012e630: 5374 7269 6e67 3c2f 636f 6465 3e20 646f String
do
│ │ │ │ -0012e640: 6573 206e 6f74 206e 6565 6420 746f 2075 es not need to u
│ │ │ │ -0012e650: 7365 2074 776f 2d6f 6e65 2077 6179 206d se two-one way m
│ │ │ │ -0012e660: 6573 7361 6765 732e 2054 6875 732c 206d essages. Thus, m
│ │ │ │ -0012e670: 756c 7469 6361 7374 2072 6571 7565 7374 ulticast request
│ │ │ │ -0012e680: 2d72 6573 706f 6e73 6520 6d65 7373 6167 -response messag
│ │ │ │ -0012e690: 6520 7061 7474 6572 6e20 6361 6e20 6265 e pattern can be
│ │ │ │ -0012e6a0: 2064 6563 6c61 7265 6420 616e 6420 696d declared and im
│ │ │ │ -0012e6b0: 706c 656d 656e 7465 6420 6173 2072 6571 plemented as req
│ │ │ │ -0012e6c0: 7565 7374 2d72 6573 706f 6e73 6520 6f70 uest-response op
│ │ │ │ -0012e6d0: 6572 6174 696f 6e73 2061 7420 7468 6520 erations at the
│ │ │ │ -0012e6e0: 7365 7276 6572 2073 6964 652e 3c2f 703e server side.
│ │ │ │ -0012e750: 613e 0a53 4f41 502d 6f76 6572 2d55 4450 a>.SOAP-over-UDP
│ │ │ │ -0012e760: 2073 6572 7665 723c 2f68 323e 0a3c 703e server
.
│ │ │ │ -0012e7c0: 7365 6e64 5374 7269 6e67 3c2f 636f 6465 sendString
and request-re
│ │ │ │ -0012e7e0: 7370 6f6e 7365 203c 636f 6465 3e65 6368 sponse ech
│ │ │ │ -0012e7f0: 6f53 7472 696e 673c 2f63 6f64 653e 206d oString
m
│ │ │ │ -0012e800: 6573 7361 6765 732e 2054 6869 7320 6578 essages. This ex
│ │ │ │ -0012e810: 616d 706c 6520 6173 7375 6d65 7320 7468 ample assumes th
│ │ │ │ -0012e820: 6174 2074 6865 2069 6e74 6572 6661 6365 at the interface
│ │ │ │ -0012e830: 2068 6561 6465 7220 6669 6c65 2069 6e63 header file inc
│ │ │ │ -0012e840: 6c75 6465 7320 7468 6520 534f 4150 2048 ludes the SOAP H
│ │ │ │ -0012e850: 6561 6465 7220 7769 7468 2057 532d 4164 eader with WS-Ad
│ │ │ │ -0012e860: 6472 6573 7369 6e67 2065 6c65 6d65 6e74 dressing element
│ │ │ │ -0012e870: 7320 696d 706f 7274 6564 2077 6974 6820 s imported with
│ │ │ │ -0012e880: 3c63 6f64 653e 2369 6d70 6f72 7420 2277 #import "w
│ │ │ │ -0012e890: 7361 2e68 223c 2f63 6f64 653e 2061 6e64 sa.h"
and
│ │ │ │ -0012e8a0: 2074 6865 203c 636f 6465 3e6e 735f 5f65 the ns__e
│ │ │ │ -0012e8b0: 6368 6f53 7472 696e 673c 2f63 6f64 653e choString
│ │ │ │ -0012e8c0: 2066 756e 6374 696f 6e20 6469 7363 7573 function discus
│ │ │ │ -0012e8d0: 7365 6420 696e 2053 6563 7469 6f6e 203c sed in Section <
│ │ │ │ -0012e8e0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ -0012e8f0: 663d 2269 6e64 6578 2e68 746d 6c23 7773 f="index.html#ws
│ │ │ │ -0012e900: 6175 6470 223e 5573 696e 6720 5753 2d41 audp">Using WS-A
│ │ │ │ -0012e910: 6464 7265 7373 696e 6720 7769 7468 2053 ddressing with S
│ │ │ │ -0012e920: 4f41 502d 6f76 6572 2d55 4450 3c2f 613e OAP-over-UDP
│ │ │ │ -0012e930: 202e 3c2f 703e 0a3c 6469 7620 636c 6173 .while (1)bcastString does not nee
│ │ │ │ +0012e630: 6420 746f 2075 7365 2074 776f 2d6f 6e65 d to use two-one
│ │ │ │ +0012e640: 2077 6179 206d 6573 7361 6765 732e 2054 way messages. T
│ │ │ │ +0012e650: 6875 732c 206d 756c 7469 6361 7374 2072 hus, multicast r
│ │ │ │ +0012e660: 6571 7565 7374 2d72 6573 706f 6e73 6520 equest-response
│ │ │ │ +0012e670: 6d65 7373 6167 6520 7061 7474 6572 6e20 message pattern
│ │ │ │ +0012e680: 6361 6e20 6265 2064 6563 6c61 7265 6420 can be declared
│ │ │ │ +0012e690: 616e 6420 696d 706c 656d 656e 7465 6420 and implemented
│ │ │ │ +0012e6a0: 6173 2072 6571 7565 7374 2d72 6573 706f as request-respo
│ │ │ │ +0012e6b0: 6e73 6520 6f70 6572 6174 696f 6e73 2061 nse operations a
│ │ │ │ +0012e6c0: 7420 7468 6520 7365 7276 6572 2073 6964 t the server sid
│ │ │ │ +0012e6d0: 652e 3c2f 703e 0a3c 703e f09f 949d 203c e.
.SOAP-ov
│ │ │ │ +0012e740: 6572 2d55 4450 2073 6572 7665 723c 2f68 er-UDP server.
sendString
│ │ │ │ +0012e7b0: 3c2f 636f 6465 3e20 616e 6420 7265 7175
and requ
│ │ │ │ +0012e7c0: 6573 742d 7265 7370 6f6e 7365 203c 636f est-response #imp
│ │ │ │ +0012e870: 6f72 7420 2277 7361 2e68 223c 2f63 6f64 ort "wsa.h" and the
ns__echoString<
│ │ │ │ +0012e8a0: 2f63 6f64 653e 2066 756e 6374 696f 6e20 /code> function
│ │ │ │ +0012e8b0: 6469 7363 7573 7365 6420 696e 2053 6563 discussed in Sec
│ │ │ │ +0012e8c0: 7469 6f6e 203c 6120 636c 6173 733d 2265 tion Usin
│ │ │ │ +0012e8f0: 6720 5753 2d41 6464 7265 7373 696e 6720 g WS-Addressing
│ │ │ │ +0012e900: 7769 7468 2053 4f41 502d 6f76 6572 2d55 with SOAP-over-U
│ │ │ │ +0012e910: 4450 3c2f 613e 202e 3c2f 703e 0a3c 6469 DP .
int main() // must set
│ │ │ │ +0012ebe0: 5544 5020 666c 6167 203c 2f73 7061 6e3e UDP flag
│ │ │ │ +0012ebf0: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 // should ch
│ │ │ │ -0012f870: 6563 6b20 666f 7220 6475 706c 6963 6174 eck for duplicat
│ │ │ │ -0012f880: 6520 6d65 7373 6167 6573 2028 736f 6d65 e messages (some
│ │ │ │ -0012f890: 7468 696e 6720 7468 6174 2057 532d 5265 thing that WS-Re
│ │ │ │ -0012f8a0: 6c69 6162 6c65 4d65 7373 6167 696e 6720 liableMessaging
│ │ │ │ -0012f8b0: 646f 6573 2074 6f6f 293c 2f73 7061 6e3e does too)
│ │ │ │ -0012f8c0: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 // don't
│ │ │ │ -0012faf0: 2072 6574 7572 6e20 7265 7370 6f6e 7365 return response
│ │ │ │ -0012fb00: 203c 2f73 7061 6e3e 3c2f 6469 763e 0a3c char *str) struct soap *soap
│ │ │ │ +0012fe30: 613e 2c20 3c73 7061 6e20 636c 6173 733d a>, ch
│ │ │ │ +0012fe50: 6172 3c2f 7370 616e 3e20 2a73 7472 2920 ar *str)
│ │ │ │ +0012fe60: 3c2f 6469 763e 0a3c 6469 7620 636c 6173 soap::recv_time
│ │ │ │ -00130af0: 6f75 743c 2f61 3e3c 2f63 6f64 653e 2074 out
t
│ │ │ │ -00130b00: 6f20 6d61 6b65 203c 636f 6465 3e3c 6120 o make soap
│ │ │ │ -00130b80: 5f73 6572 7665 3c2f 613e 3c2f 636f 6465 _serve
non-blocking.<
│ │ │ │ -00130ba0: 2f70 3e0a 3c70 3e54 6f20 6f62 7461 696e /p>.wsdl2
│ │ │ │ -00130c00: 6820 2d62 3c2f 636f 6465 3e3c 2f62 3e20 h -b
│ │ │ │ -00130c10: 6f70 7469 6f6e 203c 623e 3c63 6f64 653e option
│ │ │ │ -00130c20: 2d62 3c2f 636f 6465 3e3c 2f62 3e3c 2f61 -b
. This produces
│ │ │ │ -00130c40: 2061 6464 6974 696f 6e61 6c20 6f6e 652d additional one-
│ │ │ │ -00130c50: 7761 7920 6f70 6572 6174 696f 6e73 2074 way operations t
│ │ │ │ -00130c60: 6f20 7375 7070 6f72 7420 6173 796e 6368 o support asynch
│ │ │ │ -00130c70: 726f 6e6f 7573 2068 616e 646c 696e 6720 ronous handling
│ │ │ │ -00130c80: 6f66 2072 6573 706f 6e73 6520 6d65 7373 of response mess
│ │ │ │ -00130c90: 6167 6573 2069 6e20 7468 6520 7361 6d65 ages in the same
│ │ │ │ -00130ca0: 2077 6179 2072 6571 7565 7374 7320 6172 way requests ar
│ │ │ │ -00130cb0: 6520 6861 6e64 6c65 642e 3c2f 703e 0a3c e handled..SOAP-o
│ │ │ │ -00130d30: 7665 722d 5544 5020 6d75 6c74 6963 6173 ver-UDP multicas
│ │ │ │ -00130d40: 7420 7265 6365 6976 696e 6720 7365 7276 t receiving serv
│ │ │ │ -00130d50: 6572 3c2f 6833 3e0a 3c70 3e46 6f72 2055 er
.soap_ser
│ │ │ │ +001309b0: 7665 3c2f 613e 3c2f 636f 6465 3e20 7761 ve
wa
│ │ │ │ +001309c0: 6974 7320 666f 7220 6120 6d65 7373 6167 its for a messag
│ │ │ │ +001309d0: 6520 616e 6420 696d 6d65 6469 6174 656c e and immediatel
│ │ │ │ +001309e0: 7920 6163 6365 7074 7320 6974 2e20 596f y accepts it. Yo
│ │ │ │ +001309f0: 7520 6361 6e20 7573 6520 6120 7265 6365 u can use a rece
│ │ │ │ +00130a00: 6976 6520 7469 6d65 6f75 7420 7661 6c75 ive timeout valu
│ │ │ │ +00130a10: 6520 666f 7220 3c63 6f64 653e 3c61 2063 e for soap::rec
│ │ │ │ +00130ad0: 765f 7469 6d65 6f75 743c 2f61 3e3c 2f63 v_timeout to make
non-bloc
│ │ │ │ +00130b80: 6b69 6e67 2e3c 2f70 3e0a 3c70 3e54 6f20 king.wsdl2h -b
option
│ │ │ │ +00130c00: 3c63 6f64 653e 2d62 3c2f 636f 6465 3e3c -b
<
│ │ │ │ +00130c10: 2f62 3e3c 2f61 3e2e 2054 6869 7320 7072 /b>. This pr
│ │ │ │ +00130c20: 6f64 7563 6573 2061 6464 6974 696f 6e61 oduces additiona
│ │ │ │ +00130c30: 6c20 6f6e 652d 7761 7920 6f70 6572 6174 l one-way operat
│ │ │ │ +00130c40: 696f 6e73 2074 6f20 7375 7070 6f72 7420 ions to support
│ │ │ │ +00130c50: 6173 796e 6368 726f 6e6f 7573 2068 616e asynchronous han
│ │ │ │ +00130c60: 646c 696e 6720 6f66 2072 6573 706f 6e73 dling of respons
│ │ │ │ +00130c70: 6520 6d65 7373 6167 6573 2069 6e20 7468 e messages in th
│ │ │ │ +00130c80: 6520 7361 6d65 2077 6179 2072 6571 7565 e same way reque
│ │ │ │ +00130c90: 7374 7320 6172 6520 6861 6e64 6c65 642e sts are handled.
│ │ │ │ +00130ca0: 3c2f 703e 0a3c 703e f09f 949d 203c 6120 <
│ │ │ │ +00130ce0: 6120 636c 6173 733d 2261 6e63 686f 7222 a class="anchor"
│ │ │ │ +00130cf0: 2069 643d 2273 6f61 706f 7665 7275 6470 id="soapoverudp
│ │ │ │ +00130d00: 6d75 6c74 6963 6173 7422 3e3c 2f61 3e0a multicast">.
│ │ │ │ +00130d10: 534f 4150 2d6f 7665 722d 5544 5020 6d75 SOAP-over-UDP mu
│ │ │ │ +00130d20: 6c74 6963 6173 7420 7265 6365 6976 696e lticast receivin
│ │ │ │ +00130d30: 6720 7365 7276 6572 3c2f 6833 3e0a 3c70 g server
.int main() //.std::o
│ │ │ │ -00136100: 7374 7265 616d 3c2f 636f 6465 3e20 7769 stream
wi
│ │ │ │ -00136110: 7468 6f75 7420 736f 6170 6370 7032 2074 thout soapcpp2 t
│ │ │ │ -00136120: 6872 6f77 696e 6720 6572 726f 7273 2c20 hrowing errors,
│ │ │ │ -00136130: 6279 2075 7369 6e67 203c 636f 6465 3e65 by using e
│ │ │ │ -00136140: 7874 6572 6e3c 2f63 6f64 653e 2074 6f20 xtern
to
│ │ │ │ -00136150: 6465 636c 6172 6520 3c63 6f64 653e 636c declare cl
│ │ │ │ -00136160: 6173 7320 7374 643a 3a6f 7374 7265 616d ass std::ostream
│ │ │ │ -00136170: 3c2f 636f 6465 3e3a 3c2f 703e 0a3c 6469
:.Compi
│ │ │ │ +00131b60: 6c65 2d74 696d 6520 666c 6167 733c 2f68 le-time flags.
-D
│ │ │ │ +00131c90: 636f 6465 3e3c 2f62 3e20 746f 2073 6574 code>
to set
│ │ │ │ +00131ca0: 2074 6865 206d 6163 726f 3a3c 2f70 3e0a the macro:.
.d
│ │ │ │ +00131d10: 6566 696e 6520 2020 3c2f 7468 3e3c 7468 efine r
│ │ │ │ +00131d40: 6573 756c 7420 2020 203c 2f74 683e 3c2f esult
│ │ │ │ +00131d50: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. .#SO
│ │ │ │ +00131da0: 4150 4445 4653 5f48 3c2f 636f 6465 3e20 APDEFS_H
│ │ │ │ +00131db0: 2020 3c2f 7464 3e3c 7464 2063 6c61 7373 the hea
│ │ │ │ +00131de0: 6465 7220 6669 6c65 2074 6f20 696e 636c der file to incl
│ │ │ │ +00131df0: 7564 652c 2069 6620 6469 6666 6572 656e ude, if differen
│ │ │ │ +00131e00: 7420 6672 6f6d 203c 636f 6465 3e73 6f61 t from soa
│ │ │ │ +00131e10: 7064 6566 732e 683c 2f63 6f64 653e 2020 pdefs.h
│ │ │ │ +00131e20: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 .<
│ │ │ │ +00131e50: 7464 2063 6c61 7373 3d22 6d61 726b 646f td class="markdo
│ │ │ │ +00131e60: 776e 5461 626c 6542 6f64 794e 6f6e 6522 wnTableBodyNone"
│ │ │ │ +00131e70: 3e3c 636f 6465 3e23 5749 5448 5f53 4f41 > .<
│ │ │ │ +00131f60: 7472 2063 6c61 7373 3d22 6d61 726b 646f tr class="markdo
│ │ │ │ +00131f70: 776e 5461 626c 6552 6f77 4f64 6422 3e0a wnTableRowOdd">.
│ │ │ │ +00131f80: 3c74 6420 636c 6173 733d 226d 6172 6b64 #WITH_SOA
│ │ │ │ +00131e80: 5044 4546 535f 483c 2f63 6f64 653e 2020 PDEFS_H
│ │ │ │ +00131e90: 203c 2f74 643e 3c74 6420 636c 6173 733d includes
│ │ │ │ +00131ec0: 2074 6865 203c 636f 6465 3e73 6f61 7064 the soapd
│ │ │ │ +00131ed0: 6566 732e 683c 2f63 6f64 653e 2066 696c efs.h
fil
│ │ │ │ +00131ee0: 6520 666f 7220 6375 7374 6f6d 2073 6574 e for custom set
│ │ │ │ +00131ef0: 7469 6e67 732c 2073 6565 2053 6563 7469 tings, see Secti
│ │ │ │ +00131f00: 6f6e 203c 6120 636c 6173 733d 2265 6c22 on Usin
│ │ │ │ +00131f30: 6720 7468 6520 736f 6170 6465 6673 2e68 g the soapdefs.h
│ │ │ │ +00131f40: 2068 6561 6465 7220 6669 6c65 3c2f 613e header file
│ │ │ │ +00131f50: 2020 2020 3c2f 7464 3e3c 2f74 723e 0a3c #WITH_CO
│ │ │ │ +00131fb0: 4d50 4154 3c2f 636f 6465 3e20 2020 3c2f MPAT
│ │ │ │ +00131fc0: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>removes dep
│ │ │ │ +00131ff0: 656e 6465 6e63 7920 6f6e 2043 2b2b 2073 endency on C++ s
│ │ │ │ +00132000: 7472 6561 6d20 6c69 6272 6172 6965 7320 tream libraries
│ │ │ │ +00132010: 616e 6420 432b 2b20 6578 6365 7074 696f and C++ exceptio
│ │ │ │ +00132020: 6e73 2020 2020 3c2f 7464 3e3c 2f74 723e ns
│ │ │ │ +00132030: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .. .#WITH
│ │ │ │ +00132080: 5f4c 4541 4e3c 2f63 6f64 653e 2020 203c _LEAN
<
│ │ │ │ +00132090: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>creates a
│ │ │ │ +001320c0: 736d 616c 6c2d 666f 6f74 7072 696e 7420 small-footprint
│ │ │ │ +001320d0: 6578 6563 7574 6162 6c65 2c20 7365 6520 executable, see
│ │ │ │ +001320e0: 5365 6374 696f 6e20 3c61 2063 6c61 7373 Section How
│ │ │ │ +00132110: 2074 6f20 6d69 6e69 6d69 7a65 2061 7070 to minimize app
│ │ │ │ +00132120: 6c69 6361 7469 6f6e 206d 656d 6f72 7920 lication memory
│ │ │ │ +00132130: 666f 6f74 7072 696e 743c 2f61 3e20 2020 footprint
│ │ │ │ +00132140: 203c 2f74 643e 3c2f 7472 3e0a 3c74 7220 . .
│ │ │ │ +00132270: 3c74 7220 636c 6173 733d 226d 6172 6b64 <
│ │ │ │ +00132190: 636f 6465 3e23 5749 5448 5f4c 4541 4e45 code>#WITH_LEANE
│ │ │ │ +001321a0: 523c 2f63 6f64 653e 2020 203c 2f74 643e R
│ │ │ │ +001321b0: 3c74 6420 636c 6173 733d 226d 6172 6b64 creates an eve
│ │ │ │ +001321e0: 6e20 736d 616c 6c65 7220 666f 6f74 7072 n smaller footpr
│ │ │ │ +001321f0: 696e 7420 6578 6563 7574 6162 6c65 2c20 int executable,
│ │ │ │ +00132200: 7365 6520 5365 6374 696f 6e20 3c61 2063 see Section How to minimize
│ │ │ │ +00132240: 2061 7070 6c69 6361 7469 6f6e 206d 656d application mem
│ │ │ │ +00132250: 6f72 7920 666f 6f74 7072 696e 743c 2f61 ory footprint . #WITH_
│ │ │ │ +001322c0: 4641 5354 3c2f 636f 6465 3e20 2020 3c2f FAST
│ │ │ │ +001322d0: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>use faster
│ │ │ │ +00132300: 6d65 6d6f 7279 2061 6c6c 6f63 6174 696f memory allocatio
│ │ │ │ +00132310: 6e20 7768 656e 2075 7365 6420 7769 7468 n when used with
│ │ │ │ +00132320: 203c 636f 6465 3e23 5749 5448 5f4c 4541
│ │ │ │ +00132360: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.#WITH_LEA
│ │ │ │ +00132330: 4e3c 2f63 6f64 653e 206f 7220 3c63 6f64 N
or . .#WI
│ │ │ │ +001323b0: 5448 5f43 4f4f 4b49 4553 3c2f 636f 6465 TH_COOKIES
enabl
│ │ │ │ +001323f0: 6573 2048 5454 5020 636f 6f6b 6965 732c es HTTP cookies,
│ │ │ │ +00132400: 2073 6565 2053 6563 7469 6f6e 7320 3c61 see Sections Clien
│ │ │ │ +00132440: 742d 7369 6465 2063 6f6f 6b69 6520 7375 t-side cookie su
│ │ │ │ +00132450: 7070 6f72 743c 2f61 3e20 616e 6420 3c61 pport and Serve
│ │ │ │ +00132490: 722d 7369 6465 2063 6f6f 6b69 6520 7375 r-side cookie su
│ │ │ │ +001324a0: 7070 6f72 743c 2f61 3e20 2020 203c 2f74 pport . .enables
│ │ │ │ +00132550: 2048 5454 5020 636f 6f6b 6965 7320 616e HTTP cookies an
│ │ │ │ +00132560: 6420 616c 6c6f 7773 2063 6f6f 6b69 6573 d allows cookies
│ │ │ │ +00132570: 2077 6974 6820 7468 6569 7220 5365 6375 with their Secu
│ │ │ │ +00132580: 7265 2066 6c61 6720 7365 7420 746f 2062 re flag set to b
│ │ │ │ +00132590: 6520 7365 6e74 206f 7665 7220 696e 7365 e sent over inse
│ │ │ │ +001325a0: 6375 7265 2063 6861 6e6e 656c 7320 2020 cure channels
│ │ │ │ +001325b0: 203c 2f74 643e 3c2f 7472 3e0a 3c74 7220 . <
│ │ │ │ +00132600: 636f 6465 3e23 5749 5448 5f49 5056 363c code>#WITH_IPV6<
│ │ │ │ +00132610: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code> . .<
│ │ │ │ +00132730: 7472 2063 6c61 7373 3d22 6d61 726b 646f tr class="markdo
│ │ │ │ +00132740: 776e 5461 626c 6552 6f77 4f64 6422 3e0a wnTableRowOdd">.
│ │ │ │ +00132750: 3c74 6420 636c 6173 733d 226d 6172 6b64 #WI
│ │ │ │ +001326b0: 5448 5f49 5056 365f 5636 4f4e 4c59 3c2f TH_IPV6_V6ONLY
│ │ │ │ +001326c0: 636f 6465 3e20 2020 3c2f 7464 3e3c 7464 code>
e
│ │ │ │ +001326f0: 6e61 626c 6573 2049 5076 3620 7375 7070 nables IPv6 supp
│ │ │ │ +00132700: 6f72 7420 7769 7468 2049 5076 362d 6f6e ort with IPv6-on
│ │ │ │ +00132710: 6c79 2073 6572 7665 7220 6f70 7469 6f6e ly server option
│ │ │ │ +00132720: 2020 2020 3c2f 7464 3e3c 2f74 723e 0a3c #WITH_OP
│ │ │ │ +00132780: 454e 5353 4c3c 2f63 6f64 653e 2020 203c ENSSL
<
│ │ │ │ +00132790: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>enables Op
│ │ │ │ +001327c0: 656e 5353 4c2c 2073 6565 2053 6563 7469 enSSL, see Secti
│ │ │ │ +001327d0: 6f6e 7320 3c61 2063 6c61 7373 3d22 656c ons Secure clients
│ │ │ │ +00132810: 2077 6974 6820 4854 5450 533c 2f61 3e20 with HTTPS
│ │ │ │ +00132820: 616e 6420 3c61 2063 6c61 7373 3d22 656c and Secure Web ser
│ │ │ │ +00132860: 7669 6365 7320 7769 7468 2048 5454 5053 vices with HTTPS
│ │ │ │ +00132870: 3c2f 613e 2020 2020 3c2f 7464 3e3c 2f74 . .#WI
│ │ │ │ +001328d0: 5448 5f47 4e55 544c 533c 2f63 6f64 653e TH_GNUTLS
│ │ │ │ +001328e0: 2020 203c 2f74 643e 3c74 6420 636c 6173 enable
│ │ │ │ +00132910: 7320 474e 5554 4c53 2c20 7365 6520 5365 s GNUTLS, see Se
│ │ │ │ +00132920: 6374 696f 6e73 203c 6120 636c 6173 733d ctions Secure clie
│ │ │ │ +00132960: 6e74 7320 7769 7468 2048 5454 5053 3c2f nts with HTTPS
│ │ │ │ +00132970: 613e 2061 6e64 203c 6120 636c 6173 733d a> and Secure Web
│ │ │ │ +001329b0: 7365 7276 6963 6573 2077 6974 6820 4854 services with HT
│ │ │ │ +001329c0: 5450 533c 2f61 3e20 2020 203c 2f74 643e TPS
│ │ │ │ +001329d0: 3c2f 7472 3e0a 3c74 7220 636c 6173 733d . .#
│ │ │ │ +00132a20: 5749 5448 5f47 5a49 503c 2f63 6f64 653e WITH_GZIP
│ │ │ │ +00132a30: 2020 203c 2f74 643e 3c74 6420 636c 6173 enable
│ │ │ │ +00132a60: 7320 677a 6970 2061 6e64 2064 6566 6c61 s gzip and defla
│ │ │ │ +00132a70: 7465 2063 6f6d 7072 6573 7369 6f6e 2c20 te compression,
│ │ │ │ +00132a80: 7365 6520 5365 6374 696f 6e20 3c61 2063 see Section Zlib com
│ │ │ │ +00132ac0: 7072 6573 7369 6f6e 3c2f 613e 2020 2020 pression
│ │ │ │ +00132ad0: 3c2f 7464 3e3c 2f74 723e 0a3c 7472 2063 . .<
│ │ │ │ +00132b20: 636f 6465 3e23 5749 5448 5f5a 4c49 423c code>#WITH_ZLIB<
│ │ │ │ +00132b30: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code> . .#WITH_NTLM
│ │ │ │ +00132c30: 3c2f 636f 6465 3e20 2020 3c2f 7464 3e3c
<
│ │ │ │ +00132c40: 7464 2063 6c61 7373 3d22 6d61 726b 646f td class="markdo
│ │ │ │ +00132c50: 776e 5461 626c 6542 6f64 794e 6f6e 6522 wnTableBodyNone"
│ │ │ │ +00132c60: 3e65 6e61 626c 6573 204e 544c 4d20 7375 >enables NTLM su
│ │ │ │ +00132c70: 7070 6f72 7420 2020 203c 2f74 643e 3c2f pport
│ │ │ │ +00132c80: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. .#W
│ │ │ │ +00132cd0: 4954 485f 435f 4c4f 4341 4c45 3c2f 636f ITH_C_LOCALE
for
│ │ │ │ +00132d10: 6365 2074 6865 2075 7365 206c 6f63 616c ce the use local
│ │ │ │ +00132d20: 6520 6675 6e63 7469 6f6e 7320 7768 656e e functions when
│ │ │ │ +00132d30: 2061 7661 696c 6162 6c65 2074 6f20 656e available to en
│ │ │ │ +00132d40: 7375 7265 206c 6f63 616c 652d 696e 6465 sure locale-inde
│ │ │ │ +00132d50: 7065 6e64 656e 7420 6e75 6d62 6572 2063 pendent number c
│ │ │ │ +00132d60: 6f6e 7665 7273 696f 6e73 2020 2020 3c2f onversions
│ │ │ │ +00132d70: 7464 3e3c 2f74 723e 0a3c 7472 2063 6c61 td> . .remove the u
│ │ │ │ +00132e10: 7365 206f 6620 6c6f 6361 6c65 2066 756e se of locale fun
│ │ │ │ +00132e20: 6374 696f 6e73 2074 6f20 696d 7072 6f76 ctions to improv
│ │ │ │ +00132e30: 6520 706f 7274 6162 696c 6974 7920 2020 e portability
│ │ │ │ +00132e40: 203c 2f74 643e 3c2f 7472 3e0a 3c74 7220 . .#WITH_INCL
│ │ │ │ +00132ea0: 5544 455f 584c 4f43 414c 455f 483c 2f63 UDE_XLOCALE_H
fo
│ │ │ │ +00132ee0: 7263 6520 7468 6520 696e 636c 7573 696f rce the inclusio
│ │ │ │ +00132ef0: 6e20 6f66 203c 636f 6465 3e26 6c74 3b78 n of <x
│ │ │ │ +00132f00: 6c6f 6361 6c65 2e68 2667 743b 3c2f 636f locale.h> to define
_l
│ │ │ │ +00132f40: 3c2f 636f 6465 3e20 6675 6e63 7469 6f6e
function
│ │ │ │ +00132f50: 732c 2074 6f20 696d 7072 6f76 6520 706f s, to improve po
│ │ │ │ +00132f60: 7274 6162 696c 6974 7920 2020 203c 2f74 rtability . .#WITH_DOM
enabl
│ │ │ │ +00133000: 6520 444f 4d20 7061 7273 696e 6720 696e e DOM parsing in
│ │ │ │ +00133010: 2074 6865 2065 6e67 696e 652c 2072 6571 the engine, req
│ │ │ │ +00133020: 7569 7265 6420 6279 2074 6865 2057 532d uired by the WS-
│ │ │ │ +00133030: 5365 6375 7269 7479 2070 6c75 6769 6e20 Security plugin
│ │ │ │ +00133040: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74 #WITH_RE
│ │ │ │ +001330a0: 504c 4143 455f 494c 4c45 4741 4c5f 5554 PLACE_ILLEGAL_UT
│ │ │ │ +001330b0: 4638 3c2f 636f 6465 3e20 2020 3c2f 7464 F8
enable strict
│ │ │ │ +001330f0: 2055 5446 2d38 2c20 7265 706c 6163 6573 UTF-8, replaces
│ │ │ │ +00133100: 2055 5446 2d38 2063 6f6e 7465 6e74 2074 UTF-8 content t
│ │ │ │ +00133110: 6861 7420 6973 206f 7574 7369 6465 2074 hat is outside t
│ │ │ │ +00133120: 6865 2061 6c6c 6f77 6564 2072 616e 6765 he allowed range
│ │ │ │ +00133130: 2077 6974 6820 552b 4646 4644 2020 2020 with U+FFFD
│ │ │ │ +00133140: 3c2f 7464 3e3c 2f74 723e 0a3c 7472 2063 .
│ │ │ │ +00133230: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .
│ │ │ │ +001331b0: 3c74 6420 636c 6173 733d 226d 6172 6b64 enables FastCG
│ │ │ │ +001331e0: 492c 2073 6565 2053 6563 7469 6f6e 203c I, see Section <
│ │ │ │ +001331f0: 6120 636c 6173 733d 2265 6c22 2068 7265 a class="el" hre
│ │ │ │ +00133200: 663d 2269 6e64 6578 2e68 746d 6c23 6661 f="index.html#fa
│ │ │ │ +00133210: 7374 6367 6922 3e46 6173 7443 4749 3c2f stcgi">FastCGI
│ │ │ │ +00133220: 613e 2020 2020 3c2f 7464 3e3c 2f74 723e a> . .#WITH
│ │ │ │ +00133280: 5f4e 4f49 4f3c 2f63 6f64 653e 2020 203c _NOIO
<
│ │ │ │ +00133290: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>removes IO
│ │ │ │ +001332c0: 206f 7065 7261 7469 6f6e 732c 2074 6f20 operations, to
│ │ │ │ +001332d0: 656c 696d 696e 6174 6520 7468 6520 7573 eliminate the us
│ │ │ │ +001332e0: 6520 6f66 2042 5344 2073 6f63 6b65 7473 e of BSD sockets
│ │ │ │ +001332f0: 2c20 7365 6520 5365 6374 696f 6e20 3c61 , see Section How to remove
│ │ │ │ +00133330: 2074 6865 2042 5344 2073 6f63 6b65 7420 the BSD socket
│ │ │ │ +00133340: 6c69 6272 6172 7920 7265 7175 6972 656d library requirem
│ │ │ │ +00133350: 656e 743c 2f61 3e20 2020 203c 2f74 643e ent
│ │ │ │ +00133360: 3c2f 7472 3e0a 3c74 7220 636c 6173 733d .
│ │ │ │ +00133470: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .#
│ │ │ │ +001333b0: 5749 5448 5f4e 4f49 4452 4546 3c2f 636f WITH_NOIDREF
rem
│ │ │ │ +001333f0: 6f76 6573 2069 6420 616e 6420 6872 6566 oves id and href
│ │ │ │ +00133400: 2f72 6566 206d 756c 7469 2d72 6566 6572 /ref multi-refer
│ │ │ │ +00133410: 656e 6365 2064 6174 612c 206d 6f72 6520 ence data, more
│ │ │ │ +00133420: 6167 6772 6573 7369 7665 2074 6861 6e20 aggressive than
│ │ │ │ +00133430: 7573 696e 6720 7468 6520 3c63 6f64 653e using the
│ │ │ │ +00133440: 2353 4f41 505f 584d 4c5f 5452 4545 3c2f #SOAP_XML_TREE
│ │ │ │ +00133450: 636f 6465 3e20 7275 6e74 696d 6520 666c code> runtime fl
│ │ │ │ +00133460: 6167 2020 2020 3c2f 7464 3e3c 2f74 723e ag
.
│ │ │ │ +00133530: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .#WITH
│ │ │ │ +001334c0: 5f4e 4f48 5454 503c 2f63 6f64 653e 2020 _NOHTTP
│ │ │ │ +001334d0: 203c 2f74 643e 3c74 6420 636c 6173 733d removes
│ │ │ │ +00133500: 7468 6520 4854 5450 2073 7461 636b 2074 the HTTP stack t
│ │ │ │ +00133510: 6f20 7265 6475 6365 2063 6f64 6520 7369 o reduce code si
│ │ │ │ +00133520: 7a65 2020 2020 3c2f 7464 3e3c 2f74 723e ze . .#WITH_
│ │ │ │ +00133580: 4e4f 5a4f 4e45 3c2f 636f 6465 3e20 2020 NOZONE
│ │ │ │ +00133590: 3c2f 7464 3e3c 7464 2063 6c61 7373 3d22 disables
│ │ │ │ +001335c0: 616e 6420 6967 6e6f 7265 7320 7468 6520 and ignores the
│ │ │ │ +001335d0: 7469 6d65 7a6f 6e65 2069 6e20 3c63 6f64 timezone in . .<
│ │ │ │ +00133650: 636f 6465 3e23 5749 5448 5f4e 4f45 4d50 code>#WITH_NOEMP
│ │ │ │ +00133660: 5459 4e41 4d45 5350 4143 4553 3c2f 636f TYNAMESPACES dis
│ │ │ │ +001336a0: 6162 6c65 7320 786d 6c6e 733d 2222 2064 ables xmlns="" d
│ │ │ │ +001336b0: 6566 6175 6c74 2065 6d70 7479 206e 616d efault empty nam
│ │ │ │ +001336c0: 6573 7061 6365 7320 6672 6f6d 2058 4d4c espaces from XML
│ │ │ │ +001336d0: 206d 6573 7361 6765 7320 2020 203c 2f74 messages . .
│ │ │ │ +001337c0: 3c74 7220 636c 6173 733d 226d 6172 6b64 #WITH_NOEMPTYST
│ │ │ │ +00133740: 5255 4354 3c2f 636f 6465 3e20 2020 3c2f RUCT
│ │ │ │ +00133750: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>inserts a d
│ │ │ │ +00133780: 756d 6d79 206d 656d 6265 7220 696e 2065 ummy member in e
│ │ │ │ +00133790: 6d70 7479 2073 7472 7563 7473 2074 6f20 mpty structs to
│ │ │ │ +001337a0: 616c 6c6f 7720 636f 6d70 696c 6174 696f allow compilatio
│ │ │ │ +001337b0: 6e20 2020 203c 2f74 643e 3c2f 7472 3e0a n . #WITH_
│ │ │ │ +00133810: 4e4f 474c 4f42 414c 3c2f 636f 6465 3e20 NOGLOBAL
│ │ │ │ +00133820: 2020 3c2f 7464 3e3c 7464 2063 6c61 7373 omit SO
│ │ │ │ +00133850: 4150 2048 6561 6465 7220 616e 6420 4661 AP Header and Fa
│ │ │ │ +00133860: 756c 7420 7365 7269 616c 697a 6174 696f ult serializatio
│ │ │ │ +00133870: 6e20 636f 6465 2c20 7072 6576 656e 7473 n code, prevents
│ │ │ │ +00133880: 2064 7570 6c69 6361 7465 2064 6566 696e duplicate defin
│ │ │ │ +00133890: 6974 696f 6e73 2077 6974 6820 6765 6e65 itions with gene
│ │ │ │ +001338a0: 7261 7465 6420 736f 6170 5859 5a4c 6962 rated soapXYZLib
│ │ │ │ +001338b0: 2063 6f64 6520 2020 203c 2f74 643e 3c2f code
│ │ │ │ +001338c0: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.. .
│ │ │ │ +00133b10: 3c74 7220 636c 6173 733d 226d 6172 6b64 #WI
│ │ │ │ +00133910: 5448 5f4e 4f4e 414d 4553 5041 4345 533c TH_NONAMESPACES<
│ │ │ │ +00133920: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code>
soap_set_
│ │ │ │ +00133a80: 6e61 6d65 7370 6163 6573 3c2f 613e 3c2f namespaces
│ │ │ │ +00133a90: 636f 6465 3e20 7365 6520 616c 736f 2053 code> see also S
│ │ │ │ +00133aa0: 6563 7469 6f6e 203c 6120 636c 6173 733d ection X
│ │ │ │ +00133ad0: 4d4c 206e 616d 6573 7061 6365 7320 616e ML namespaces an
│ │ │ │ +00133ae0: 6420 7468 6520 6e61 6d65 7370 6163 6520 d the namespace
│ │ │ │ +00133af0: 6d61 7070 696e 6720 7461 626c 653c 2f61 mapping table
. .#WITH_
│ │ │ │ +00133b60: 4344 4154 413c 2f63 6f64 653e 2020 203c CDATA
<
│ │ │ │ +00133b70: 2f74 643e 3c74 6420 636c 6173 733d 226d /td>retains th
│ │ │ │ +00133ba0: 6520 7061 7273 6564 2043 4441 5441 2073 e parsed CDATA s
│ │ │ │ +00133bb0: 6563 7469 6f6e 7320 696e 206c 6974 6572 ections in liter
│ │ │ │ +00133bc0: 616c 2058 4d4c 2073 7472 696e 6773 2020 al XML strings
│ │ │ │ +00133bd0: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 . #WITH_PURE
│ │ │ │ +00133c30: 5f56 4952 5455 414c 3c2f 636f 6465 3e20 _VIRTUAL
│ │ │ │ +00133c40: 2020 3c2f 7464 3e3c 7464 2063 6c61 7373 enables
│ │ │ │ +00133c70: 2043 2b2b 2061 6273 7472 6163 7420 7365 C++ abstract se
│ │ │ │ +00133c80: 7276 6963 6520 636c 6173 7365 7320 7769 rvice classes wi
│ │ │ │ +00133c90: 7468 2070 7572 6520 7669 7274 7561 6c20 th pure virtual
│ │ │ │ +00133ca0: 6d65 7468 6f64 732c 2072 6571 7569 7265 methods, require
│ │ │ │ +00133cb0: 7320 736f 6170 6370 7032 206f 7074 696f s soapcpp2 optio
│ │ │ │ +00133cc0: 6e20 3c63 6f64 653e 2d69 3c2f 636f 6465 n -i
or -j
. .#WI
│ │ │ │ +00133d40: 5448 5f44 4546 4155 4c54 5f56 4952 5455 TH_DEFAULT_VIRTU
│ │ │ │ +00133d50: 414c 3c2f 636f 6465 3e20 2020 3c2f 7464 AL
enables C++ b
│ │ │ │ +00133d90: 6173 6520 7365 7276 6963 6520 636c 6173 ase service clas
│ │ │ │ +00133da0: 7365 7320 7769 7468 2064 6566 6175 6c74 ses with default
│ │ │ │ +00133db0: 2076 6972 7475 616c 206d 6574 686f 6473 virtual methods
│ │ │ │ +00133dc0: 2072 6574 7572 6e69 6e67 2066 6175 6c74 returning fault
│ │ │ │ +00133dd0: 203c 636f 6465 3e23 534f 4150 5f4e 4f5f #SOAP_NO_
│ │ │ │ +00133de0: 4d45 5448 4f44 3c2f 636f 6465 3e2c 2072 METHOD
, r
│ │ │ │ +00133df0: 6571 7569 7265 7320 736f 6170 6370 7032 equires soapcpp2
│ │ │ │ +00133e00: 206f 7074 696f 6e20 3c63 6f64 653e 2d69 option -i
│ │ │ │ +00133e10: 3c2f 636f 6465 3e20 6f72 203c 636f 6465
or -j
│ │ │ │ +00133e30: 7464 3e3c 2f74 723e 0a3c 7472 2063 6c61 td>. .<
│ │ │ │ +00133f00: 7472 2063 6c61 7373 3d22 6d61 726b 646f tr class="markdo
│ │ │ │ +00133f10: 776e 5461 626c 6552 6f77 4576 656e 223e wnTableRowEven">
│ │ │ │ +00133f20: 0a3c 7464 2063 6c61 7373 3d22 6d61 726b .enab
│ │ │ │ +00133ed0: 6c65 7320 6361 7365 2069 6e73 656e 7369 les case insensi
│ │ │ │ +00133ee0: 7469 7665 2058 4d4c 2070 6172 7369 6e67 tive XML parsing
│ │ │ │ +00133ef0: 2020 2020 3c2f 7464 3e3c 2f74 723e 0a3c #WITH_S
│ │ │ │ +00133f50: 4f43 4b45 545f 434c 4f53 455f 4f4e 5f45 OCKET_CLOSE_ON_E
│ │ │ │ +00133f60: 5849 543c 2f63 6f64 653e 2020 203c 2f74 XIT
prevents a s
│ │ │ │ +00133fa0: 6572 7665 7220 706f 7274 2066 726f 6d20 erver port from
│ │ │ │ +00133fb0: 7374 6179 696e 6720 696e 206c 6973 7465 staying in liste
│ │ │ │ +00133fc0: 6e69 6e67 206d 6f64 6520 6166 7465 7220 ning mode after
│ │ │ │ +00133fd0: 6578 6974 2062 7920 696e 7465 726e 616c exit by internal
│ │ │ │ +00133fe0: 6c79 2073 6574 7469 6e67 203c 636f 6465 ly setting .fcntl(sock, F_S
│ │ │ │ +00134000: 4554 4644 2c20 4644 5f43 4c4f 4558 4543 ETFD, FD_CLOEXEC
│ │ │ │ +00134010: 293c 2f63 6f64 653e 2020 2020 3c2f 7464 )
.
│ │ │ │ +00134070: 2357 4954 485f 5443 5046 494e 3c2f 636f #WITH_TCPFIN
ena
│ │ │ │ +001340b0: 626c 6573 2054 4350 2046 494e 2061 6674 bles TCP FIN aft
│ │ │ │ +001340c0: 6572 2073 656e 6473 2077 6865 6e20 736f er sends when so
│ │ │ │ +001340d0: 636b 6574 2069 7320 7265 6164 7920 746f cket is ready to
│ │ │ │ +001340e0: 2063 6c6f 7365 2020 2020 3c2f 7464 3e3c close <
│ │ │ │ +001340f0: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>..
│ │ │ │ +00134290: 0a3c 2f74 6162 6c65 3e0a 3c70 3e54 6865 .#
│ │ │ │ +00134140: 5749 5448 5f53 454c 465f 5049 5045 3c2f WITH_SELF_PIPE
│ │ │ │ +00134150: 636f 6465 3e20 2020 3c2f 7464 3e3c 7464 code>
e
│ │ │ │ +00134180: 6e61 626c 6573 2061 2022 7365 6c66 2070 nables a "self p
│ │ │ │ +00134190: 6970 6522 2074 6f20 656e 6162 6c65 2074 ipe" to enable t
│ │ │ │ +001341a0: 6865 203c 636f 6465 3e3c 6120 636c 6173 he
│ │ │ │ +00134240: 736f 6170 5f63 6c6f 7365 5f63 6f6e 6e65 soap_close_conne
│ │ │ │ +00134250: 6374 696f 6e3c 2f61 3e3c 2f63 6f64 653e ction
│ │ │ │ +00134260: 2066 756e 6374 696f 6e20 2867 534f 4150 function (gSOAP
│ │ │ │ +00134270: 2032 2e38 2e37 3120 6f72 2067 7265 6174 2.8.71 or great
│ │ │ │ +00134280: 6572 2920 2020 3c2f 7464 3e3c 2f74 723e er) -D
│ │ │ │ +001343c0: 3c2f 636f 6465 3e3c 2f62 3e20 746f 2073
to s
│ │ │ │ +001343d0: 6574 2074 6865 206d 6163 726f 3a3c 2f70 et the macro:.
│ │ │ │ +00134400: 3c74 7220 636c 6173 733d 226d 6172 6b64
.
│ │ │ │ +001359c0: 3c64 6c20 636c 6173 733d 2273 6563 7469 .<
│ │ │ │ +00134420: 7468 2063 6c61 7373 3d22 6d61 726b 646f th class="markdo
│ │ │ │ +00134430: 776e 5461 626c 6548 6561 644e 6f6e 6522 wnTableHeadNone"
│ │ │ │ +00134440: 3e64 6566 696e 6520 2020 3c2f 7468 3e3c >define <
│ │ │ │ +00134450: 7468 2063 6c61 7373 3d22 6d61 726b 646f th class="markdo
│ │ │ │ +00134460: 776e 5461 626c 6548 6561 644e 6f6e 6522 wnTableHeadNone"
│ │ │ │ +00134470: 3e72 6573 756c 7420 2020 203c 2f74 683e >result
│ │ │ │ +00134480: 3c2f 7472 3e0a 3c74 7220 636c 6173 733d .. .#
│ │ │ │ +001344d0: 534f 4150 5f4e 4f54 4852 4f57 3c2f 636f SOAP_NOTHROW
exp
│ │ │ │ +00134510: 616e 6473 2074 6f20 3c63 6f64 653e 2873 ands to (s
│ │ │ │ +00134520: 7464 3a3a 6e6f 7468 726f 7729 3c2f 636f td::nothrow) to prevent m
│ │ │ │ +00134540: 656d 6f72 7920 616c 6c6f 6361 7469 6f6e emory allocation
│ │ │ │ +00134550: 2065 7863 6570 7469 6f6e 7320 283c 636f exceptions (
#SOAP_BU
│ │ │ │ +00134600: 464c 454e 3c2f 636f 6465 3e20 2020 3c2f FLEN
│ │ │ │ +00134610: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>the length
│ │ │ │ +00134640: 6f66 2074 6865 2069 6e74 6572 6e61 6c20 of the internal
│ │ │ │ +00134650: 6d65 7373 6167 6520 6275 6666 6572 2c20 message buffer,
│ │ │ │ +00134660: 696d 7061 6374 7320 636f 6d6d 756e 6963 impacts communic
│ │ │ │ +00134670: 6174 696f 6e73 2070 6572 666f 726d 616e ations performan
│ │ │ │ +00134680: 6365 2020 2020 3c2f 7464 3e3c 2f74 723e ce
│ │ │ │ +00134690: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .. .#SOAP_
│ │ │ │ +001346e0: 4844 524c 454e 3c2f 636f 6465 3e20 2020 HDRLEN
│ │ │ │ +001346f0: 3c2f 7464 3e3c 7464 2063 6c61 7373 3d22 the maxim
│ │ │ │ +00134720: 756d 206c 656e 6774 6820 6f66 2048 5454 um length of HTT
│ │ │ │ +00134730: 5020 6865 6164 6572 7320 2020 203c 2f74 P headers . t
│ │ │ │ +001347d0: 6865 206d 6178 696d 756d 206c 656e 6774 he maximum lengt
│ │ │ │ +001347e0: 6820 6f66 2058 4d4c 2074 6167 7320 616e h of XML tags an
│ │ │ │ +001347f0: 6420 5552 4c73 2020 2020 3c2f 7464 3e3c d URLs <
│ │ │ │ +00134800: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>.. .<
│ │ │ │ +001348f0: 7472 2063 6c61 7373 3d22 6d61 726b 646f tr class="markdo
│ │ │ │ +00134900: 776e 5461 626c 6552 6f77 4576 656e 223e wnTableRowEven">
│ │ │ │ +00134910: 0a3c 7464 2063 6c61 7373 3d22 6d61 726b .#S
│ │ │ │ +00134850: 4f41 505f 544d 504c 454e 3c2f 636f 6465 OAP_TMPLEN
the m
│ │ │ │ +00134890: 6178 696d 756d 206c 656e 6774 6820 6f66 aximum length of
│ │ │ │ +001348a0: 2074 656d 706f 7261 7279 2073 7472 696e temporary strin
│ │ │ │ +001348b0: 6720 7661 6c75 6573 2c20 7368 6f72 7420 g values, short
│ │ │ │ +001348c0: 7374 7269 6e67 7320 616e 6420 6272 6965 strings and brie
│ │ │ │ +001348d0: 6620 6572 726f 7220 6d65 7373 6167 6573 f error messages
│ │ │ │ +001348e0: 2020 2020 3c2f 7464 3e3c 2f74 723e 0a3c #SOAP_M
│ │ │ │ +00134940: 4158 414c 4c4f 4353 495a 453c 2f63 6f64 AXALLOCSIZE
the
│ │ │ │ +00134980: 6d61 7869 6d75 6d20 7369 7a65 206f 6620 maximum size of
│ │ │ │ +00134990: 6120 626c 6f63 6b20 6f66 206d 656d 6f72 a block of memor
│ │ │ │ +001349a0: 7920 7468 6174 203c 636f 6465 3e6d 616c y that
│ │ │ │ +001349d0: 3c2f 7472 3e0a 3c74 7220 636c 6173 733d .mal
│ │ │ │ +001349b0: 6c6f 633c 2f63 6f64 653e 2063 616e 2061 loc
can a
│ │ │ │ +001349c0: 6c6c 6f63 6174 6520 2020 203c 2f74 643e llocate . .
│ │ │ │ +00134a40: 3c74 6420 636c 6173 733d 226d 6172 6b64 #
│ │ │ │ +00134a20: 534f 4150 5f4d 4158 4152 5241 5953 495a SOAP_MAXARRAYSIZ
│ │ │ │ +00134a30: 453c 2f63 6f64 653e 2020 203c 2f74 643e E
the maximum al
│ │ │ │ +00134a70: 6c6f 6361 7469 6f6e 2074 6872 6573 686f location thresho
│ │ │ │ +00134a80: 6c64 2074 6f20 7072 652d 616c 6c6f 6361 ld to pre-alloca
│ │ │ │ +00134a90: 7465 2053 4f41 5020 6172 7261 7973 2069 te SOAP arrays i
│ │ │ │ +00134aa0: 6e20 6d65 6d6f 7279 2020 2020 3c2f 7464 n memory . #SOAP_MAXDIMESI
│ │ │ │ +00134b10: 5a45 3c2f 636f 6465 3e20 2020 3c2f 7464 ZE
the maximum D
│ │ │ │ +00134b50: 494d 4520 6174 7461 6368 6d65 6e74 2073 IME attachment s
│ │ │ │ +00134b60: 697a 6520 616c 6c6f 7765 6420 746f 2072 ize allowed to r
│ │ │ │ +00134b70: 6563 6569 7665 2020 2020 3c2f 7464 3e3c eceive <
│ │ │ │ +00134b80: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>.. #S
│ │ │ │ +00134bd0: 4f41 505f 4d41 5845 494e 5452 3c2f 636f OAP_MAXEINTR
max
│ │ │ │ +00134c10: 696d 756d 206e 756d 6265 7220 6f66 2045 imum number of E
│ │ │ │ +00134c20: 494e 5452 2069 6e74 6572 7275 7074 7320 INTR interrupts
│ │ │ │ +00134c30: 746f 2069 676e 6f72 6520 7768 696c 6520 to ignore while
│ │ │ │ +00134c40: 706f 6c6c 696e 6720 6120 736f 636b 6574 polling a socket
│ │ │ │ +00134c50: 2066 6f72 2070 656e 6469 6e67 2061 6374 for pending act
│ │ │ │ +00134c60: 6976 6974 7920 2020 203c 2f74 643e 3c2f ivity
│ │ │ │ +00134c70: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>..
│ │ │ │ +00134d40: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .#S
│ │ │ │ +00134cc0: 4f41 505f 4d41 5849 4e46 4c41 5445 5349 OAP_MAXINFLATESI
│ │ │ │ +00134cd0: 5a45 3c2f 636f 6465 3e20 2020 3c2f 7464 ZE
trusted infla
│ │ │ │ +00134d10: 7465 6420 636f 6e74 656e 7420 7369 7a65 ted content size
│ │ │ │ +00134d20: 2028 3120 4d42 2062 7920 6465 6661 756c (1 MB by defaul
│ │ │ │ +00134d30: 7429 2020 2020 3c2f 7464 3e3c 2f74 723e t) . #SOAP_
│ │ │ │ +00134d90: 4d41 584b 4545 5041 4c49 5645 3c2f 636f MAXKEEPALIVE
max
│ │ │ │ +00134dd0: 696d 756d 2069 7465 7261 7469 6f6e 7320 imum iterations
│ │ │ │ +00134de0: 696e 2074 6865 203c 636f 6465 3e3c 6120 in the
│ │ │ │ +00134ea0: 7472 3e0a 3c74 7220 636c 6173 733d 226d tr>.soap
│ │ │ │ +00134e60: 5f73 6572 7665 3c2f 613e 3c2f 636f 6465 _serve
loop on HTTP k
│ │ │ │ +00134e80: 6565 702d 616c 6976 6520 636f 6e6e 6563 eep-alive connec
│ │ │ │ +00134e90: 7469 6f6e 7320 2020 203c 2f74 643e 3c2f tions . #S
│ │ │ │ +00134ef0: 4f41 505f 4d41 584c 454e 4754 483c 2f63 OAP_MAXLENGTH
ma
│ │ │ │ +00134f30: 7869 6d75 6d20 7374 7269 6e67 2063 6f6e ximum string con
│ │ │ │ +00134f40: 7465 6e74 206c 656e 6774 6820 666f 7220 tent length for
│ │ │ │ +00134f50: 7374 7269 6e67 7320 6e6f 7420 616c 7265 strings not alre
│ │ │ │ +00134f60: 6164 7920 636f 6e73 7472 6169 6e65 6420 ady constrained
│ │ │ │ +00134f70: 6279 2058 4d4c 2073 6368 656d 6120 7661 by XML schema va
│ │ │ │ +00134f80: 6c69 6461 7469 6f6e 2063 6f6e 7374 7261 lidation constra
│ │ │ │ +00134f90: 696e 7473 2020 2020 3c2f 7464 3e3c 2f74 ints .. #SOA
│ │ │ │ +00134ff0: 505f 4d41 584c 4556 454c 3c2f 636f 6465 P_MAXLEVEL
maxim
│ │ │ │ +00135030: 756d 2058 4d4c 206e 6573 7469 6e67 2064 um XML nesting d
│ │ │ │ +00135040: 6570 7468 206c 6576 656c 2070 6572 6d69 epth level permi
│ │ │ │ +00135050: 7474 6564 2062 7920 7468 6520 584d 4c20 tted by the XML
│ │ │ │ +00135060: 7061 7273 6572 2020 2020 3c2f 7464 3e3c parser <
│ │ │ │ +00135070: 2f74 723e 0a3c 7472 2063 6c61 7373 3d22 /tr>.. .
│ │ │ │ +00135190: 3c74 7220 636c 6173 733d 226d 6172 6b64 #
│ │ │ │ +001350c0: 534f 4150 5f4d 4158 4f43 4355 5253 3c2f SOAP_MAXOCCURS
│ │ │ │ +001350d0: 636f 6465 3e20 2020 3c2f 7464 3e3c 7464 code>
m
│ │ │ │ +00135100: 6178 696d 756d 206e 756d 6265 7220 6f66 aximum number of
│ │ │ │ +00135110: 2061 7272 6179 206f 7220 636f 6e74 6169 array or contai
│ │ │ │ +00135120: 6e65 7220 656c 656d 656e 7473 2066 6f72 ner elements for
│ │ │ │ +00135130: 2063 6f6e 7461 696e 6572 7320 7468 6174 containers that
│ │ │ │ +00135140: 2061 7265 206e 6f74 2061 6c72 6561 6479 are not already
│ │ │ │ +00135150: 2063 6f6e 7374 7261 696e 6564 2062 7920 constrained by
│ │ │ │ +00135160: 584d 4c20 7363 6865 6d61 2076 616c 6964 XML schema valid
│ │ │ │ +00135170: 6174 696f 6e20 636f 6e73 7472 6169 6e74 ation constraint
│ │ │ │ +00135180: 7320 2020 203c 2f74 643e 3c2f 7472 3e0a s
│ │ │ │ +001351b0: 0a3c 7464 2063 6c61 7373 3d22 6d61 726b . .#SOAP_M
│ │ │ │ +001351e0: 494e 4445 464c 4154 4552 4154 494f 3c2f INDEFLATERATIO
│ │ │ │ +001351f0: 636f 6465 3e20 2020 3c2f 7464 3e3c 7464 code>
t
│ │ │ │ +00135220: 7275 7374 6564 2064 6566 6c61 7469 6f6e rusted deflation
│ │ │ │ +00135230: 2072 6174 696f 2061 6674 6572 203c 636f ratio after . .set to #WITH_PU
│ │ │ │ +00135330: 5245 5f56 4952 5455 414c 3c2f 636f 6465 RE_VIRTUAL
is defined
│ │ │ │ +00135350: 3c2f 7464 3e3c 2f74 723e 0a3c 7472 2063 . .length of
│ │ │ │ +001353f0: 2074 6865 2052 5341 206b 6579 2028 3230 the RSA key (20
│ │ │ │ +00135400: 3438 2062 7920 6465 6661 756c 7429 2020 48 by default)
│ │ │ │ +00135410: 2020 3c2f 7464 3e3c 2f74 723e 0a3c 7472 .<
│ │ │ │ +00135440: 7464 2063 6c61 7373 3d22 6d61 726b 646f td class="markdo
│ │ │ │ +00135450: 776e 5461 626c 6542 6f64 794e 6f6e 6522 wnTableBodyNone"
│ │ │ │ +00135460: 3e3c 636f 6465 3e23 534f 4150 5f55 4e4b >
│ │ │ │ +00135540: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .#SOAP_UNK
│ │ │ │ +00135470: 4e4f 574e 5f43 4841 523c 2f63 6f64 653e NOWN_CHAR
│ │ │ │ +00135480: 2020 203c 2f74 643e 3c74 6420 636c 6173 an 8 b
│ │ │ │ +001354b0: 6974 2069 6e74 6567 6572 2074 6861 7420 it integer that
│ │ │ │ +001354c0: 7265 7072 6573 656e 7473 2061 2063 6861 represents a cha
│ │ │ │ +001354d0: 7261 6374 6572 2074 6861 7420 636f 756c racter that coul
│ │ │ │ +001354e0: 6420 6e6f 7420 6265 2063 6f6e 7665 7274 d not be convert
│ │ │ │ +001354f0: 6564 2074 6f20 616e 2041 5343 4949 2063 ed to an ASCII c
│ │ │ │ +00135500: 6861 722c 2069 2e65 2e20 7768 656e 2063 har, i.e. when c
│ │ │ │ +00135510: 6f6e 7665 7274 696e 6720 616e 2058 4d4c onverting an XML
│ │ │ │ +00135520: 2055 6e69 636f 6465 2063 6861 7261 6374 Unicode charact
│ │ │ │ +00135530: 6572 2020 2020 3c2f 7464 3e3c 2f74 723e er . .#SOAP_
│ │ │ │ +00135590: 554e 4b4e 4f57 4e5f 554e 4943 4f44 455f UNKNOWN_UNICODE_
│ │ │ │ +001355a0: 4348 4152 3c2f 636f 6465 3e20 2020 3c2f CHAR
│ │ │ │ +001355b0: 7464 3e3c 7464 2063 6c61 7373 3d22 6d61 td>integer Uni
│ │ │ │ +001355e0: 636f 6465 2076 616c 7565 2072 6570 7265 code value repre
│ │ │ │ +001355f0: 7365 6e74 696e 6720 6120 6368 6172 6163 senting a charac
│ │ │ │ +00135600: 7465 7220 7468 6174 2072 6570 6c61 6365 ter that replace
│ │ │ │ +00135610: 7320 616e 2069 6e76 616c 6964 2055 6e69 s an invalid Uni
│ │ │ │ +00135620: 636f 6465 2063 6f64 6520 706f 696e 7420 code code point
│ │ │ │ +00135630: 2020 203c 2f74 643e 3c2f 7472 3e0a 3c74 #SOAP_LO
│ │ │ │ +00135690: 4e47 5f46 4f52 4d41 543c 2f63 6f64 653e NG_FORMAT
│ │ │ │ +001356a0: 2020 203c 2f74 643e 3c74 6420 636c 6173 macro
│ │ │ │ +001356d0: 7468 6174 2072 6570 7265 7365 6e74 7320 that represents
│ │ │ │ +001356e0: 7468 6520 3c63 6f64 653e 234c 4f4e 4736 the .#LONG6
│ │ │ │ +001356f0: 343c 2f63 6f64 653e 2070 7269 6e74 6620 4
printf
│ │ │ │ +00135700: 252d 666f 726d 6174 2020 2020 3c2f 7464 %-format .
│ │ │ │ +001357f0: 0a3c 7472 2063 6c61 7373 3d22 6d61 726b .
│ │ │ │ +00135760: 2353 4f41 505f 554c 4f4e 475f 464f 524d #SOAP_ULONG_FORM
│ │ │ │ +00135770: 4154 3c2f 636f 6465 3e20 2020 3c2f 7464 AT
macro that re
│ │ │ │ +001357b0: 7072 6573 656e 7473 2074 6865 203c 636f presents the . .#SOAP
│ │ │ │ +00135840: 5f49 4e56 414c 4944 5f53 4f43 4b45 543c _INVALID_SOCKET<
│ │ │ │ +00135850: 2f63 6f64 653e 2020 203c 2f74 643e 3c74 /code>
│ │ │ │ +00135cb0: 0a3c 703e f09f 949d 203c 6120 6872 6566 ..gsoap/s
│ │ │ │ +00135a80: 7464 736f 6170 322e 6370 703c 2f63 6f64 tdsoap2.cpp,
,
│ │ │ │ +00135ae0: 3c65 6d3e 3c63 6f64 653e 736f 6170 5365 soapSe
│ │ │ │ +00135af0: 7276 6572 2e63 7070 3c2f 636f 6465 3e3c rver.cpp
<
│ │ │ │ +00135b00: 2f65 6d3e 2c20 616e 6420 616c 6c20 6170 /em>, and all ap
│ │ │ │ +00135b10: 706c 6963 6174 696f 6e20 736f 7572 6365 plication source
│ │ │ │ +00135b20: 2063 6f64 6520 6669 6c65 7320 7468 6174 code files that
│ │ │ │ +00135b30: 2069 6e63 6c75 6465 203c 656d 3e3c 636f include soa
│ │ │ │ +00135b70: 7048 2e68 3c2f 636f 6465 3e3c 2f65 6d3e pH.h
│ │ │ │ +00135b80: 2e20 4966 2074 6865 206d 6163 726f 7320 . If the macros
│ │ │ │ +00135b90: 6172 6520 6e6f 7420 636f 6e73 6973 7465 are not consiste
│ │ │ │ +00135ba0: 6e74 6c79 2064 6566 696e 6564 2061 7420 ntly defined at
│ │ │ │ +00135bb0: 636f 6d70 696c 6520 7469 6d65 2074 6865 compile time the
│ │ │ │ +00135bc0: 6e20 7468 6520 6170 706c 6963 6174 696f n the applicatio
│ │ │ │ +00135bd0: 6e20 7769 6c6c 206c 696b 656c 7920 6372 n will likely cr
│ │ │ │ +00135be0: 6173 6820 6475 6520 746f 2061 206d 6973 ash due to a mis
│ │ │ │ +00135bf0: 6d61 7463 6865 7320 696e 2074 6865 2064 matches in the d
│ │ │ │ +00135c00: 6563 6c61 7261 7469 6f6e 2061 6e64 2075 eclaration and u
│ │ │ │ +00135c10: 7365 206f 6620 7468 6520 3c63 6f64 653e se of the
│ │ │ │ +00135c20: 3c61 2063 6c61 7373 3d22 656c 2220 6872 soap
│ │ │ │ +00135c70: 3c2f 613e 3c2f 636f 6465 3e20 636f 6e74
cont
│ │ │ │ +00135c80: 6578 7420 7468 6174 2069 7320 6375 7374 ext that is cust
│ │ │ │ +00135c90: 6f6d 697a 6564 2062 7920 7468 6573 6520 omized by these
│ │ │ │ +00135ca0: 666c 6167 732e 3c2f 6464 3e3c 2f64 6c3e flags..
│ │ │ │ +00135d10: 5573 696e 6720 7468 6520 736f 6170 6465 Using the soapde
│ │ │ │ +00135d20: 6673 2e68 2068 6561 6465 7220 6669 6c65 fs.h header file
│ │ │ │ +00135d30: 3c2f 6832 3e0a 3c70 3e54 6865 203c 656d
.soapdefs.
│ │ │ │ +00135d50: 683c 2f63 6f64 653e 3c2f 656d 3e20 6865 h
he
│ │ │ │ +00135d60: 6164 6572 2066 696c 6520 6973 2069 6e63 ader file is inc
│ │ │ │ +00135d70: 6c75 6465 6420 696e 203c 656d 3e3c 636f luded in #WIT
│ │ │ │ +00135dd0: 485f 534f 4150 4445 4653 5f48 3c2f 636f H_SOAPDEFS_H:
│ │ │ │ +00135e00: 632b 2b20 2d44 2057 4954 485f 534f 4150 c++ -D WITH_SOAP
│ │ │ │ +00135e10: 4445 4653 5f48 202d 6320 7374 6473 6f61 DEFS_H -c stdsoa
│ │ │ │ +00135e20: 7032 2e63 7070 0a3c 2f70 7265 3e3c 703e p2.cpp.
s
│ │ │ │ +00135e40: 6f61 7064 6566 732e 683c 2f63 6f64 653e oapdefs.h
│ │ │ │ +00135e50: 3c2f 656d 3e20 6669 6c65 2061 6c6c 6f77 file allow
│ │ │ │ +00135e60: 7320 7573 6572 7320 746f 2069 6e63 6c75 s users to inclu
│ │ │ │ +00135e70: 6465 2064 6566 696e 6974 696f 6e73 2061 de definitions a
│ │ │ │ +00135e80: 6e64 2061 6464 2069 6e63 6c75 6465 7320 nd add includes
│ │ │ │ +00135e90: 7769 7468 6f75 7420 7265 7175 6972 696e without requirin
│ │ │ │ +00135ea0: 6720 6368 616e 6765 7320 746f 203c 656d g changes to gsoap/std
│ │ │ │ +00135ec0: 736f 6170 322e 683c 2f63 6f64 653e 3c2f soap2.h
│ │ │ │ +00135ed0: 656d 3e2e 2059 6f75 2063 616e 2061 6c73 em>. You can als
│ │ │ │ +00135ee0: 6f20 7370 6563 6966 7920 7468 6520 6865 o specify the he
│ │ │ │ +00135ef0: 6164 6572 2066 696c 6520 6e61 6d65 2074 ader file name t
│ │ │ │ +00135f00: 6f20 696e 636c 7564 6520 6173 2061 206d o include as a m
│ │ │ │ +00135f10: 6163 726f 203c 636f 6465 3e53 4f41 5044 acro SOAPD
│ │ │ │ +00135f20: 4546 535f 483c 2f63 6f64 653e 2074 6f20 EFS_H
to
│ │ │ │ +00135f30: 6f76 6572 7269 6465 2074 6865 206e 616d override the nam
│ │ │ │ +00135f40: 6520 3c65 6d3e 3c63 6f64 653e 736f 6170 e soap
│ │ │ │ +00135f50: 6465 6673 2e68 3c2f 636f 6465 3e3c 2f65 defs.h
: c
│ │ │ │ +00135f80: 2b2b 202d 4420 534f 4150 4445 4653 5f48 ++ -D SOAPDEFS_H
│ │ │ │ +00135f90: 3d6d 7964 6566 732e 6820 2d63 2073 7464 =mydefs.h -c std
│ │ │ │ +00135fa0: 736f 6170 322e 6370 700a 3c2f 7072 653e soap2.cpp.
│ │ │ │ +00135fb0: 3c70 3e20 466f 7220 6578 616d 706c 652c
│ │ │ │ +001360e0: 7374 643a 3a6f 7374 7265 616d 3c2f 636f std::ostream without soap
│ │ │ │ +00136100: 6370 7032 2074 6872 6f77 696e 6720 6572 cpp2 throwing er
│ │ │ │ +00136110: 726f 7273 2c20 6279 2075 7369 6e67 203c rors, by using <
│ │ │ │ +00136120: 636f 6465 3e65 7874 6572 6e3c 2f63 6f64 code>extern to declare
:
│ │ │ │ +00136160: 703e 0a3c 6469 7620 636c 6173 733d 2266 p>.extern class
│ │ │ │ +00136260: 7370 616e 3e73 7464 3a3a 6f73 7472 6561 span>std::ostrea
│ │ │ │ +00136270: 6d3b 3c2f 6469 763e 0a3c 6469 7620 636c m;.Run
│ │ │ │ -00136560: 2d74 696d 6520 666c 6167 733c 2f68 313e -time flags
│ │ │ │ -00136570: 0a3c 703e 5468 6520 6753 4f41 5020 656e .