1SOAP::WSDL::Manual::WS_UIs(e3r)Contributed Perl DocumentSaOtAiPo:n:WSDL::Manual::WS_I(3)
2
3
4
6 SOAP::WSDL::Manual::WS_I - How SOAP::WSDL complies to WS-I Basic
7 Profile 1.0
8
10 This document gives an overview about how SOAP::WSDL confirms to the
11 rules of the WS-I Basic Profile 1.0 found at
12 <http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html>
13
14 Errata are not yet worked in.
15
16 You may find rules mis-categorized, especially in the "not applicable"
17 section.
18
19 Such mis-categorizations are documentation bugs, please feel free to
20 report them.
21
22 Rules are categorized into the following sections:
23
24 · RULES CONFIRMED
25
26 This section contains rules SOAP::WSDL follows. Conformance to
27 these rules may be assured by a test.
28
29 · RULES NOT CONFIRMED
30
31 This section contains rules SOAP::WSDL does not follow yet. These
32 may be considered as bugs.
33
34 · RULES NOT APPLICABLE
35
36 WS-I Basic Profile contains rules for web services as a whole.
37 SOAP::WSDL only plays the part of one layer in a Web Service
38 CONSUMER / RECEIVER, thus does not implement some parts the WS-I
39 Basic Profile references.
40
41 This section contains rules not applicable for SOAP::WSDL, because
42 they refer to parts SOAP::WSDL does not implement.
43
45 R1005
46 A MESSAGE MUST NOT contain soap:encodingStyle attributes on any of the elements
47 whose namespace name is "http://schemas.xmlsoap.org/soap/envelope/".
48
49 SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle
50 attributes on any element.
51
52 R1006
53 A MESSAGE MUST NOT contain soap:encodingStyle attributes on any element that is
54 a child of soap:Body.
55
56 SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle
57 attributes on any element.
58
59 R1008
60 A MESSAGE MUST NOT contain a Document Type Declaration.
61
62 SOAP::WSDL::Serializer::SOAP11 does not add DTDs.
63
64 R1009
65 A MESSAGE MUST NOT contain Processing Instructions.
66
67 SOAP::WSDL::Serializer::SOAP11 does not add Processing Instructions
68
69 R1010
70 A RECEIVER MUST accept messages that contain an XML Declaration.
71
72 SOAP::WSDL::Expat::MessageParser allows the use of XML Declarations.
73
74 R1011
75 A MESSAGE MUST NOT have any element children of soap:Envelope following
76 the soap:Body element.
77
78 SOAP::WSDL::Serializer::SOAP11 does not emit children of soap:Envelope
79 following the soap:Body element. Other serializers may behave
80 different.
81
82 R1012
83 A MESSAGE MUST be serialized as either UTF-8 or UTF-16.
84
85 SOAP::WSDL::Serializer::SOAP11 serializes messages as UTF-8.
86
87 R1018
88 The media type of a MESSAGE's envelope MUST indicate the correct character
89 encoding, using the charset parameter.
90
91 SOAP::WSDL::Transport::HTTP sets the Content-type header to "text/xml;
92 charset=utf8". SOAP::Transport does, too. Other transport backends may
93 behave different.
94
95 R1014
96 The children of the soap:Body element in a MESSAGE MUST be namespace
97 qualified.
98
99 SOAP::WSDL::Serializer::SOAP11 emits namespace-qualified child elements
100 of the soap:Body element.
101
102 R1017
103 A RECEIVER MUST NOT mandate the use of the xsi:type attribute in messages
104 except as required in order to indicate a derived type (see XML Schema
105 Part 1: Structures, Section 2.6.1).
106
107 SOAP::WSDL::Expat::MessageParser does not require the use of xsi:type
108 attributes, but uses typemaps instead.
109
110 Other deserializers may not comply to this rule.
111
112 R1028
113 When a Fault is generated by a RECEIVER, further processing SHOULD NOT be
114 performed on the SOAP message aside from that which is necessary to rollback,
115 or compensate for, any effects of processing the message prior to the
116 generation of the Fault.
117
118 A fault is generated when an error occurs processing the message.
119 SOAP::WSDL::Deserializer::SOAP11 does not perform any additional
120 processing after an error occurred.
121
122 R1029
123 Where the normal outcome of processing a SOAP message would have resulted
124 in the transmission of a SOAP response, but rather a SOAP Fault is generated
125 instead, a RECEIVER MUST transmit a SOAP Fault message in place of the
126 response.
127
128 A fault is generated when an error occurs processing the message.
129
130 R1030
131 A RECEIVER that generates a SOAP Fault SHOULD notify the end user that a
132 SOAP Fault has been generated when practical, by whatever means is deemed
133 appropriate to the circumstance.
134
135 Via return value.
136
137 R1140
138 A MESSAGE SHOULD be sent using HTTP/1.1.
139
140 SOAP::WSDL::Transport::HTTP uses HTTP/1.1
141
142 R1141
143 A MESSAGE MUST be sent using either HTTP/1.1 or HTTP/1.0.
144
145 SOAP::WSDL::Transport::HTTP uses HTTP/1.1
146
147 R1107
148 A RECEIVER MUST interpret SOAP messages containing only a soap:Fault element
149 as a Fault.
150
151 SOAP::WSDL::Deserializer::SOAP11 does this.
152
153 R1132
154 A HTTP request MESSAGE MUST use the HTTP POST method.
155
156 Both SOAP::WSDL::Transport::HTTP and SOAP::Transport::HTTP use POST.
157
158 R1108
159 A MESSAGE MUST NOT use the HTTP Extension Framework (RFC2774).
160
161 SOAP::WSDL::Transport::HTTP does not use the HTTP Extension framework,
162 however SOAP::Transport::HTTP use M-POST if POST was not successful.
163
164 To be sure you comply to this rule, use SOAP::WSDL::Transport::HTTP as
165 transport backend.
166
167 R1109
168 The value of the SOAPAction HTTP header field in a HTTP request
169 MESSAGE MUST be a quoted string.
170
171 SOAP::WSDL::Client always quotes the SOAPAction header.
172
173 R1119
174 A RECEIVER MAY respond with a Fault if the value of the SOAPAction
175 HTTP header field is not quoted.
176
177 SOAP::WSDL does not apply any processing on the SOAPAction header
178 field.
179
180 R1131
181 A CONSUMER MAY automatically redirect a request when it encounters a
182 "307 Temporary Redirect" HTTP status code in a response.
183
184 LWP::UserAgent (used by SOAP::WSDL::Transport::HTTP and
185 SOAP::Transport::HTTP) accepts up to 7 levels of redirect by default.
186
187 R2113
188 A MESSAGE containing serialized arrays MUST NOT include the
189 soapenc:arrayType attribute.
190
191 SOAP::WSDL does not natively support soapenc::arrayType.
192
193 R2114
194 The target namespace for WSDL definitions and the target namespace for
195 schema definitions in a DESCRIPTION MAY be the same.
196
197 SOAP::WSDL does not impose any constraints on the target namespace for
198 WSDL definitions or schema definitions.
199
200 R2301
201 The order of the elements in the soap:body of a MESSAGE MUST be the same
202 as that of the wsdl:parts in the wsdl:message that describes it.
203
204 SOAP::WSDL obeys the part order.
205
206 R2712
207 A document-literal binding MUST be represented on the wire as a
208 MESSAGE with a soap:Body whose child element is an instance of the
209 global element declaration referenced by the corresponding wsdl:message
210 part.
211
212 If defined accordingly in the DESCRIPTION, SOAP::WSDL issues document-
213 literal binding operation MESSAGES conforming to this rule.
214
215 R2748
216 A CONSUMER MUST NOT interpret the presence of the wsdl:required attribute
217 on a soapbind extension element with a value of "false" to mean the extension
218 element is optional in the messages generated from the WSDL description.
219
220 SOAP::WSDL does not imterpret the wsdl:required attribute at all.
221
222 R5000
223 An INSTANCE MAY require the use of HTTPS.
224
225 SOAP::WSDL supports https.
226
227 R5010
228 An INSTANCE MAY require the use of HTTPS with mutual authentication.
229
230 SOAP::WSDL supports all kinds of authentication known to LWP::UserAgent
231
232 R2742
233 A MESSAGE MAY contain a fault detail entry in a SOAP fault that is not
234 described by a wsdl:fault element in the corresponding WSDL description.
235
236 SOAP::WSDL does not emit such faults. Such faults can be processed by
237 adding custom maps to the type maps for
238 SOAP::WSDL::Expat::MessageParser.
239
240 R2744
241 A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with a
242 quoted value equal to the value of the soapAction attribute of
243 soapbind:operation, if present in the corresponding WSDL description.
244
245 SOAP::WSDL uses the soapAction attribute from soapbind:operation as
246 SOAPAction header in generated code.
247
248 Alternative WSDL parsers / code generator have to assure they pass the
249 correct soap_action to SOAP::WSDL::Client.
250
251 The interpreting SOAP::WSDL client does not conform to this rule, but
252 "guesses" the SOAPAction header from the operation name and the top
253 node's namespace.
254
255 R2745
256 A HTTP request MESSAGE MUST contain a SOAPAction HTTP header field with a
257 quoted empty string value, if in the corresponding WSDL description, the
258 soapAction of soapbind:operation is either not present, or present with an
259 empty string as its value.
260
261 SOAP::WSDL::Client always assures the SOAPaction header is quoted, thus
262 automatically inserts the empty string if no SOAPAction header is
263 defined.
264
265 R1015
266 A RECEIVER MUST generate a fault if they encounter a message whose document
267 element has a local name of "Envelope" but a namespace name that is not
268 "http://schemas.xmlsoap.org/soap/envelope/".
269
270 SOAP::WSDL::Expat::MessageParser checks the namespace of the SOAP
271 envelope.
272
273 SOAP::WSDL::Expat::MessageParser does not check that Envelope is the
274 root element, yet.
275
276 R1110
277 An INSTANCE MAY accept connections on TCP port 80 (HTTP)
278
279 SOAP::WSDL::Server::CGI may be used in a web server listening at port
280 80.
281
282 R1124
283 An INSTANCE MUST use a 2xx HTTP status code for responses that
284 indicate a successful outcome of a request.
285
286 SOAP::WSDL::Server::CGI sends a 2xx HTTP status code for successful
287 requests.
288
289 R1111
290 An INSTANCE SHOULD use a "200 OK" HTTP status code for responses
291 that contain a SOAP message that is not a SOAP fault.
292
293 SOAP::WSDL::Server::CGI does this.
294
295 R1112
296 An INSTANCE SHOULD use either a "200 OK" or "202 Accepted" HTTP
297 status code for a response that does do not contain a SOAP message
298 but indicates successful HTTP outcome of a request.
299
300 SOAP::WSDL::Server::CGI does this.
301
302 R1130
303 An INSTANCE MUST use HTTP status code "307 Temporary Redirect"
304 when redirecting a request to a different endpoint.
305
306 SOAP::WSDL::Server::CGI has no means of redirecting. The web server
307 running a SOAP::WSDL::Server::CGI script is responsible for redirecting
308 with a 307 HTTP status code.
309
310 R1125
311 An INSTANCE MUST use a 4xx HTTP status code for responses that indicate
312 a problem with the format of the request.
313
314 SOAP::WSDL does this.
315
316 R1113
317 An INSTANCE SHOULD use a "400 Bad Request "HTTP status code, if the
318 request message is a malformed HTTP request, or not well-formed XML.
319
320 SOAP::WSDL does this.
321
322 R1114
323 An INSTANCE SHOULD use a "405 Method not Allowed" HTTP status code if the
324 request method was not "POST".
325
326 SOAP::WSDL does this.
327
328 R1115
329 An INSTANCE SHOULD use a "415 Unsupported Media Type" HTTP status code if
330 the Content-Type HTTP request header did not have a value consistent with
331 the value specified for the corresponding binding of the input message.
332
333 SOAP::WSDL::Server::CGI does not support any content type other than
334 text/xml and application/xml yet.
335
337 R4001
338 A RECEIVER MUST accept messages that include the Unicode Byte Order Mark
339 (BOM).
340
341 May automatically work with XML::Parser::Expat, but is not tested yet.
342
343 TODO write test. If not confirmed, add encoding support.
344
345 R1002
346 A RECEIVER MUST accept fault messages that have any number of elements,
347 including zero, appearing as children of the detail element. Such children
348 can be qualified or unqualified.
349
350 Partially confirmed: This only works when the fault detail elements are
351 added to the deserializer's typemap.
352
353 TODO add processing of arbitrary content of faults to
354 SOAP::WSDL::Expat::MessageParser
355
356 R1003
357 A RECEIVER MUST accept fault messages that have any number of qualified or
358 unqualified attributes, including zero, appearing on the detail element.
359 The namespace of qualified attributes can be anything other than
360 "http://schemas.xmlsoap.org/soap/envelope/".
361
362 TODO add processing of arbitrary attributes to
363 SOAP::WSDL::SOAP::Typelib::Fault11
364
365 R1016
366 A RECEIVER MUST accept fault messages that carry an xml:lang attribute on
367 the faultstring element.
368
369 SOAP::WSDL::Expat::MessageParser currently ignores all attributes.
370
371 TODO add processing of the xml:lang attribute to
372 SOAP::WSDL::SOAP::Typelib::Fault11
373
374 R1007
375 A MESSAGE described in an rpc-literal binding MUST NOT contain soap:encodingStyle
376 attribute on any elements are grandchildren of soap:Body.
377
378 SOAP::WSDL::Serializer::SOAP11 does not add soap:encodingStyle
379 attributes on any element.
380
381 However, rpc-literal bindings are not supported, yet.
382
383 TODO support rpc-literal bindings.
384
385 R2008
386 In a DESCRIPTION the value of the location attribute of a wsdl:import element
387 SHOULD be treated as a hint.
388
389 The wsdl:import element imports the referenced WSDL definition.
390
391 This is rather hard-wired and does not allow one to specify a
392 wsdl:import without a resolvable location in SOAP::WSDL.
393
394 R4002
395 A DESCRIPTION MAY include the Unicode Byte Order Mark (BOM).
396
397 TODO Test.
398
399 R4003
400 A DESCRIPTION MUST use either UTF-8 or UTF-16 encoding.
401
402 TODO Test whether UTF-16 works.
403
404 R2020
405 The wsdl:documentation element MAY occur as a child of the wsdl:import
406 element in a DESCRIPTION.
407
408 Not tested yet.
409
410 R2024
411 The wsdl:documentation element MAY occur as a first child of the
412 wsdl:definitions element in a DESCRIPTION.
413
414 TODO Test.
415
416 R2027
417 If during the processing of an element in the WSDL namespace in a
418 description, a consumer encounters a WSDL extension element amongst
419 its element children, that has a wsdl:required attribute with a boolean
420 value of "true" that the consumer does not understand or cannot process,
421 the CONSUMER MUST fail processing of that element in the WSDL namespace.
422
423 TODO Implement support for wsdl:required
424
425 R2750
426 A CONSUMER MUST ignore a SOAP response carried in a response from a
427 one-way operation.
428
429 SOAP::WSDL does not ignore the SOAP response from a one way operation
430 yet.
431
432 TODO Define operation type signature, and ignore result from one way
433 operations.
434
435 R2747
436 A CONSUMER MUST understand and process all WSDL 1.1 SOAP Binding extension
437 elements, irrespective of the presence or absence of the wsdl:required
438 attribute on an extension element; and irrespective of the value of the
439 wsdl:required attribute, when present.
440
441 SOAP::WSDL does not implement all WSDL 1.1 SOAP Binding extension yet.
442
443 TODO check and implement.
444
445 R2800
446 A DESCRIPTION MAY use any construct from XML Schema 1.0.
447
448 SOAP::WSDL's WSDL parser doen not allow all constructs from XML Schema
449 1.0 to be used.
450
451 TODO become "minimal conformant".
452
454 R0004
455 A MESSAGE MAY contain conformance claims, as specified in the conformance claim schema.
456
457 SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other
458 serializers may act different.
459
460 R0005
461 A MESSAGE's conformance claims MUST be carried as SOAP header blocks.
462
463 SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other
464 serializers may act different.
465
466 R0006
467 A MESSAGE MAY contain conformance claims for more than one profile.
468
469 SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other
470 serializers may act different.
471
472 R0007
473 A SENDER MUST NOT use the soap:mustUnderstand attribute when sending a SOAP
474 header block containing a conformance claim.
475
476 SOAP::WSDL::Serializer::SOAP11 does not add conformance claims. Other
477 serializers may act different.
478
479 R3020
480 REGDATA of type uddi:tModel claiming conformance with a Profile MUST be
481 categorized using the ws-i-org:conformsTo:2002_12 taxonomy.
482
483 SOAP::WSDL does not publish web services yet.
484
485 R3030
486 REGDATA of type uddi:tModel claiming conformance with a Profile MUST use
487 the ws-i-org:conformsTo:2002_12 categorization value corresponding to
488 the conformance claim URI for that Profile.
489
490 SOAP::WSDL does not publish web services yet.
491
492 R3021
493 A REGISTRY MUST support the WS-I Conformance category system by adding
494 the ws-i-org:conformsTo:2002_12 tModel definition to its registry content.
495
496 SOAP::WSDL does not publish web services yet.
497
498 R3005
499 REGDATA other than uddi:tModel elements representing conformant Web service
500 types MUST NOT be categorized using the ws-i-org:conformsTo:2002_12
501 taxonomy and a categorization of "http://ws-i.org/profiles/basic/1.0".
502
503 SOAP::WSDL does not publish web services yet.
504
505 R3004
506 REGDATA of type uddi:tModel MUST be constructed so that the conformance
507 claim it makes is consistent with the conformance claim made by the
508 wsdl:binding to which it refers.
509
510 SOAP::WSDL does not publish web services yet.
511
512 R1000
513 When a MESSAGE contains a soap:Fault element, that element MUST NOT have element
514 children other than faultcode, faultstring, faultactor and detail.
515
516 SOAP::WSDL does not send fault messages. However,
517 SOAP::WSDL::SOAP::Typelib::Fault11 complies to this rule.
518
519 R1001
520 When a MESSAGE contains a soap:Fault element its element children MUST be
521 unqualified.
522
523 SOAP::WSDL does not send fault messages. However,
524 SOAP::WSDL::SOAP::Typelib::Fault11 complies to this rule.
525
526 R1004
527 When a MESSAGE contains a faultcode element the content of that element
528 SHOULD be one of the fault codes defined in SOAP 1.1 or a namespace qualified
529 fault code.
530
531 SOAP::WSDL does not send fault messages. However, the fault issued by
532 SOAP::WSDL::Deserializer comply to this rule.
533
534 R1031
535 When a MESSAGE contains a faultcode element the content of that element SHOULD
536 NOT use of the SOAP 1.1 "dot" notation to refine the meaning of the Fault.
537
538 SOAP::WSDL does not send fault messages. However, the fault issued by
539 SOAP::WSDL::Deserializer comply to this rule.
540
541 R1013
542 A MESSAGE containing a soap:mustUnderstand attribute MUST only use the lexical
543 forms "0" and "1".
544
545 SOAP::WSDL does not add soap:mustUnderstand attributes.
546
547 R1025
548 A RECEIVER MUST handle messages in such a way that it appears that all
549 checking of mandatory header blocks is performed before any actual
550 processing.
551
552 SOAP::WSDL does not check mandatory header blocks yet.
553
554 R1027
555 A RECEIVER MUST generate a "soap:MustUnderstand" fault when a message
556 contains a mandatory header block (i.e., one that has a soap:mustUnderstand
557 attribute with the value "1") targeted at the receiver (via soap:actor)
558 that the receiver does not understand.
559
560 SOAP::WSDL does not check mandatory header blocks yet.
561
562 R1120
563 An INSTANCE MAY use the HTTP state mechanism ("Cookies").
564
565 SOAP::WSDL::Server::CGI does not use cookies. A web server running a
566 SOAP::WSDL::Server::CGI script may use cookies..
567
568 R1122
569 An INSTANCE using Cookies SHOULD conform to RFC2965.
570
571 SOAP::WSDL::Server::CGI does not use cookies. A web server running a
572 SOAP::WSDL::Server::CGI script may use cookies..
573
574 R1121
575 An INSTANCE SHOULD NOT require consumer support for Cookies in order to
576 function correctly
577
578 SOAP::WSDL::Server::CGI does not use cookies. A web server running a
579 SOAP::WSDL::Server::CGI script may use cookies.
580
581 R1123
582 The value of the cookie MUST be considered to be opaque by the CONSUMER.
583
584 SOAP::WSDL::Server::CGI does not use cookies. A web server running a
585 SOAP::WSDL::Server::CGI script may use cookies.
586
587 R2028
588 A DESCRIPTION using the WSDL namespace (prefixed "wsdl" in this Profile)
589 MUST be valid according to the XML Schema found at
590 "http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd".
591
592 See 2029.
593
594 R2029
595 A DESCRIPTION using the WSDL SOAP binding namespace (prefixed "soapbind"
596 in this Profile) MUST be valid according to the XML Schema found at
597 "http://schemas.xmlsoap.org/wsdl/soap/2003-02-11.xsd".
598
599 Although the Profile requires WSDL descriptions to be Schema valid, it
600 does not require consumers to validate WSDL documents.
601
602 It is the responsibility of a WSDL document's author to assure that it
603 is Schema valid.
604
605 R2001
606 A DESCRIPTION MUST only use the WSDL "import" statement to import another
607 WSDL description.
608
609 SOAP::WSDL (partially) supports the wsdl:import statement. The
610 wsdl:include statement is not supported.
611
612 It's the responsibility of the WSDL author to use only the wsdl:import
613 statement for importing WSDL descriptions.
614
615 R2002
616 To import XML Schema Definitions, a DESCRIPTION MUST use the XML Schema
617 "import" statement.
618
619 SOAP::WSDL has no means of generating WSDL definitions.
620
621 R2003
622 A DESCRIPTION MUST use the XML Schema "import" statement only within the
623 xsd:schema element of the types section.
624
625 SOAP::WSDL has no means of generating WSDL definitions.
626
627 R2004
628 A DESCRIPTION MUST NOT use the XML Schema "import" statement to import a
629 Schema from any document whose root element is not "schema" from the
630 namespace "http://www.w3.org/2001/XMLSchema".
631
632 SOAP::WSDL has no means of generating WSDL definitions.
633
634 R2009
635 An XML Schema directly or indirectly imported by a DESCRIPTION MAY include
636 the Unicode Byte Order Mark (BOM).
637
638 SOAP::WSDL has no means of generating WSDL definitions.
639
640 R2010
641 An XML Schema directly or indirectly imported by a DESCRIPTION MUST
642 use either UTF-8 or UTF-16 encoding.
643
644 SOAP::WSDL has no means of generating WSDL definitions.
645
646 R2011
647 An XML Schema directly or indirectly imported by a DESCRIPTION MUST use
648 version 1.0 of the eXtensible Markup Language W3C Recommendation.
649
650 SOAP::WSDL has no means of generating WSDL definitions.
651
652 R2007
653 A DESCRIPTION MUST specify a non-empty location attribute on the wsdl:import
654 element.
655
656 SOAP::WSDL has no means of generating WSDL definitions.
657
658 R2022
659 When they appear in a DESCRIPTION, wsdl:import elements MUST precede all
660 other elements from the WSDL namespace except wsdl:documentation.
661
662 SOAP::WSDL has no means of generating WSDL definitions.
663
664 R2023
665 When they appear in a DESCRIPTION, wsdl:types elements MUST precede all
666 other elements from the WSDL namespace except wsdl:documentation and
667 wsdl:import.
668
669 SOAP::WSDL has no means of generating WSDL definitions.
670
671 R4004
672 A DESCRIPTION MUST use version 1.0 of the eXtensible Markup Language W3C
673 Recommendation.
674
675 SOAP::WSDL has no means of generating WSDL definitions.
676
677 R2005
678 The targetNamespace attribute on the wsdl:definitions element of a
679 description that is being imported MUST have same the value as the
680 namespace attribute on the wsdl:import element in the importing
681 DESCRIPTION.
682
683 SOAP::WSDL has no means of generating WSDL definitions.
684
685 R2021
686 The wsdl:documentation element MAY occur as a child of the wsdl:part
687 element in a DESCRIPTION.
688
689 SOAP::WSDL has no means of generating WSDL definitions.
690
691 R2025
692 A DESCRIPTION containing WSDL extensions MUST NOT use them to
693 contradict other requirements of the Profile.
694
695 SOAP::WSDL has no means of generating WSDL definitions.
696
697 R2026
698 A DESCRIPTION SHOULD NOT include extension elements with a wsdl:required
699 attribute value of "true" on any WSDL construct (wsdl:binding,
700 wsdl:portType, wsdl:message, wsdl:types or wsdl:import) that claims
701 conformance to the Profile.
702
703 SOAP::WSDL has no means of generating WSDL definitions.
704
705 R2101
706 A DESCRIPTION MUST NOT use QName references to elements in namespaces that
707 have been neither imported, nor defined in the referring WSDL document.
708
709 SOAP::WSDL has no means of generating WSDL definitions.
710
711 R2102
712 A QName reference to a Schema component in a DESCRIPTION MUST use the
713 namespace defined in the targetNamespace attribute on the xsd:schema
714 element, or to a namespace defined in the namespace attribute on an
715 xsd:import element within the xsd:schema element.
716
717 SOAP::WSDL has no means of generating WSDL definitions.
718
719 R2105
720 All xsd:schema elements contained in a wsdl:types element of a
721 DESCRIPTION MUST have a targetNamespace attribute with a valid and non-null
722 value, UNLESS the xsd:schema element has xsd:import and/or
723 xsd:annotation as its only child element(s).
724
725 SOAP::WSDL has no means of generating WSDL definitions.
726
727 R2110
728 In a DESCRIPTION, array declarations MUST NOT extend or restrict the
729 soapenc:Array type.
730
731 SOAP::WSDL has no means of generating WSDL definitions.
732
733 R2111
734 In a DESCRIPTION, array declarations MUST NOT use wsdl:arrayType attribute
735 in the type declaration.
736
737 SOAP::WSDL has no means of generating WSDL definitions.
738
739 R2112
740 In a DESCRIPTION, array declaration wrapper elements SHOULD NOT be named
741 using the convention ArrayOfXXX.
742
743 SOAP::WSDL has no means of generating WSDL definitions.
744
745 R2201
746 A document-literal binding in a DESCRIPTION MUST, in each of its
747 soapbind:body element(s), have at most one part listed in the parts
748 attribute, if the parts attribute is specified.
749
750 SOAP::WSDL has no means of generating WSDL definitions.
751
752 R2210
753 If a document-literal binding in a DESCRIPTION does not specify the parts
754 attribute on a soapbind:body element, the corresponding abstract
755 wsdl:message MUST define zero or one wsdl:parts.
756
757 SOAP::WSDL has no means of generating WSDL definitions.
758
759 R2202
760 A wsdl:binding in a DESCRIPTION MAY contain soapbind:body element(s) that
761 specify that zero parts form the soap:Body.
762
763 SOAP::WSDL has no means of generating WSDL definitions.
764
765 R2203
766 An rpc-literal binding in a DESCRIPTION MUST refer, in its soapbind:body
767 element(s), only to wsdl:part element(s) that have been defined using the
768 type attribute.
769
770 SOAP::WSDL has no means of generating WSDL definitions.
771
772 R2211
773 A MESSAGE described with an rpc-literal binding MUST NOT have the xsi:nil
774 attribute with a value of "1" or "true" on the part accessors.
775
776 R2207
777 A wsdl:message in a DESCRIPTION MAY contain wsdl:parts that use the
778 elements attribute provided those wsdl:parts are not referred to by a
779 soapbind:body in an rpc-literal binding.
780
781 SOAP::WSDL has no means of generating WSDL definitions.
782
783 R2204
784 A document-literal binding in a DESCRIPTION MUST refer, in each of its
785 soapbind:body element(s), only to wsdl:part element(s) that have been
786 defined using the element attribute.
787
788 SOAP::WSDL has no means of generating WSDL definitions.
789
790 Note: SOAP::WSDL requires that a DESCRIPTION confirms to these rules.
791
792 R2208
793 A binding in a DESCRIPTION MAY contain soapbind:header element(s) that
794 refer to wsdl:parts in the same wsdl:message that are referred to by its
795 soapbind:body element(s).
796
797 R2205
798 A wsdl:binding in a DESCRIPTION MUST refer, in each of its soapbind:header,
799 soapbind:headerfault and soapbind:fault elements, only to wsdl:part
800 element(s) that have been defined using the element attribute.
801
802 SOAP::WSDL has no means of generating WSDL definitions.
803
804 R2209
805 A wsdl:binding in a DESCRIPTION SHOULD bind every wsdl:part of a
806 wsdl:message in the wsdl:portType to which it refers to one of
807 soapbind:body, soapbind:header, soapbind:fault or soapbind:headerfault.
808
809 SOAP::WSDL has no means of generating WSDL definitions.
810
811 R2206
812 A wsdl:message in a DESCRIPTION containing a wsdl:part that uses the
813 element attribute MUST refer, in that attribute, to a global element
814 declaration.
815
816 SOAP::WSDL has no means of generating WSDL definitions.
817
818 R2302
819 A DESCRIPTION MAY use the parameterOrder attribute of an
820 wsdl:operation element to indicate the return value and method
821 signatures as a hint to code generators.
822
823 SOAP::WSDL has no means of generating WSDL definitions.
824
825 R2303
826 A DESCRIPTION MUST NOT use Solicit-Response and Notification type
827 operations in a wsdl:portType definition.
828
829 R2304
830 A wsdl:portType in a DESCRIPTION MUST have operations with distinct
831 values for their name attributes.
832
833 Note: SOAP::WSDL requires that a DESCRIPTION confirms to these rules.
834
835 R2305
836 A wsdl:portType in a DESCRIPTION MUST be constructed so that the
837 parameterOrder attribute, if present, omits at most 1 wsdl:part
838 from the output message.
839
840 R2306
841 A wsdl:message in a DESCRIPTION MUST NOT specify both type and
842 element attributes on the same wsdl:part.
843
844 SOAP::WSDL has no means of generating WSDL definitions.
845
846 R2401
847 A wsdl:binding element in a DESCRIPTION MUST use WSDL SOAP
848 Binding as defined in WSDL 1.1 Section 3.
849
850 SOAP::WSDL has no means of generating WSDL definitions.
851
852 R2701
853 The wsdl:binding element in a DESCRIPTION MUST be constructed so
854 that its soapbind:binding child element specifies the transport
855 attribute.
856
857 SOAP::WSDL has no means of generating WSDL definitions.
858
859 R2702
860 A wsdl:binding element in a DESCRIPTION MUST specify the HTTP
861 transport protocol with SOAP binding. Specifically, the transport
862 attribute of its soapbind:binding child MUST have the value
863 "http://schemas.xmlsoap.org/soap/http".
864
865 SOAP::WSDL has no means of generating WSDL definitions.
866
867 R2705
868 A wsdl:binding in a DESCRIPTION MUST use either be a rpc-literal
869 binding or a document-literal binding.
870
871 SOAP::WSDL has no means of generating WSDL definitions.
872
873 Note: SOAP::WSDL does not support rpc-literal bindings yet.
874
875 R2706
876 A wsdl:binding in a DESCRIPTION MUST use the value of "literal"
877 for the use attribute in all soapbind:body, soapbind:fault,
878 soapbind:header and soapbind:headerfault elements.
879
880 SOAP::WSDL has no means of generating WSDL definitions.
881
882 R2707
883 A wsdl:binding in a DESCRIPTION that contains one or more
884 soapbind:body, soapbind:fault, soapbind:header or soapbind:headerfault
885 elements that do not specify the use attribute MUST be interpreted as
886 though the value "literal" had been specified in each case.
887
888 SOAP::WSDL has no means of generating WSDL definitions.
889
890 R2709
891 A wsdl:portType in a DESCRIPTION MAY have zero or more wsdl:bindings
892 that refer to it, defined in the same or other WSDL documents.
893
894 SOAP::WSDL has no means of generating WSDL definitions.
895
896 R2710
897 The operations in a wsdl:binding in a DESCRIPTION MUST result in wire
898 signatures that are different from one another.
899
900 SOAP::WSDL has no means of generating WSDL definitions.
901
902 R2711
903 A DESCRIPTION SHOULD NOT have more than one wsdl:port with the same
904 value for the location attribute of the soapbind:address element.
905
906 SOAP::WSDL has no means of generating WSDL definitions.
907
908 R2714
909 For one-way operations, an INSTANCE MUST NOT return a HTTP response
910 that contains a SOAP envelope. Specifically, the HTTP response entity-
911 body must be empty.
912
913 SOAP::WSDL does not act as a server, yet.
914
915 R2727
916 For one-way operations, a CONSUMER MUST NOT interpret a successful
917 HTTP response status code (i.e., 2xx) to mean the message is valid
918 or that the receiver would process it.
919
920 SOAP::WSDL regards a successful HTTP status code for a one-way
921 operation as an acknowledgement of the RECEIVER having receive (not
922 processed!) the message.
923
924 SOAP::WSDL makes no assumptions about the processing of SOAP messages,
925 but higher level clients may do.
926
927 R2716
928 A document-literal binding in a DESCRIPTION MUST NOT have the
929 namespace attribute specified on contained soapbind:body,
930 soapbind:header, soapbind:headerfault and soapbind:fault elements.
931
932 SOAP::WSDL has no means of generating WSDL definitions.
933
934 R2717
935 An rpc-literal binding in a DESCRIPTION MUST have the namespace attribute
936 specified, the value of which MUST be an absolute URI, on
937 contained soapbind:body elements.
938
939 SOAP::WSDL has no means of generating WSDL definitions.
940
941 R2726
942 An rpc-literal binding in a DESCRIPTION MUST NOT have the namespace
943 attribute specified on contained soapbind:header, soapbind:headerfault
944 and soapbind:fault elements.
945
946 SOAP::WSDL has no means of generating WSDL definitions.
947
948 R2718
949 A wsdl:binding in a DESCRIPTION MUST have the same set of
950 wsdl:operations as the wsdl:portType to which it refers
951
952 SOAP::WSDL has no means of generating WSDL definitions.
953
954 R2719
955 A wsdl:binding in a DESCRIPTION MAY contain no soapbind:headerfault
956 elements if there are no known header faults.
957
958 SOAP::WSDL has no means of generating WSDL definitions.
959
960 R2740
961 A wsdl:binding in a DESCRIPTION SHOULD contain a soapbind:fault describing
962 each known fault.
963
964 SOAP::WSDL has no means of generating WSDL definitions.
965
966 R2741
967 A wsdl:binding in a DESCRIPTION SHOULD contain a soapbind:headerfault
968 describing each known header fault.
969
970 SOAP::WSDL has no means of generating WSDL definitions.
971
972 R2743
973 A MESSAGE MAY contain the details of a header processing related fault in a
974 SOAP header block that is not described by a wsdl:headerfault element in the
975 corresponding WSDL description.
976
977 R2720
978 A wsdl:binding in a DESCRIPTION MUST use the attribute named part with a
979 schema type of "NMTOKEN" on all contained soapbind:header and
980 soapbind:headerfault elements.
981
982 R2749
983 A wsdl:binding in a DESCRIPTION MUST NOT use the attribute named parts on
984 contained soapbind:header and soapbind:headerfault elements.
985
986 R2721
987 A wsdl:binding in a DESCRIPTION MUST have the name attribute specified on all
988 contained soapbind:fault elements.
989
990 R2754
991 In a DESCRIPTION, the value of the name attribute on a soapbind:fault element
992 MUST match the value of the name attribute on its parent wsdl:fault element.
993
994 R2722
995 A wsdl:binding in a DESCRIPTION MAY specify the use attribute on contained
996 soapbind:fault elements.
997
998 R2723
999 If in a wsdl:binding in a DESCRIPTION the use attribute on a contained
1000 soapbind:fault element is present, its value MUST be "literal".
1001
1002 R2728
1003 A wsdl:binding in a DESCRIPTION that omits the use attribute on a contained
1004 soapbind:fault element MUST be interpreted as though use="literal" had been
1005 specified.
1006
1007 R2724
1008 If an INSTANCE receives a message that is inconsistent with its WSDL
1009 description, it SHOULD generate a soap:Fault with a faultcode of "Client",
1010 unless a "MustUnderstand" or "VersionMismatch" fault is generated.
1011
1012 R2725
1013 If an INSTANCE receives a message that is inconsistent with its WSDL
1014 description, it MUST check for "VersionMismatch", "MustUnderstand" and
1015 "Client" fault conditions in that order.
1016
1017 R2729
1018 A MESSAGE described with an rpc-literal binding that is a response message
1019 MUST have a wrapper element whose name is the corresponding wsdl:operation
1020 name suffixed with the string "Response".
1021
1022 R2735
1023 A MESSAGE described with an rpc-literal binding MUST place the part accessor
1024 elements for parameters and return value in no namespace.
1025
1026 R2737
1027 A MESSAGE described with an rpc-literal binding MUST namespace qualify the
1028 children of part accessor elements for the parameters and the return value
1029 with the targetNamespace in which their types are defined.
1030
1031 R2738
1032 A MESSAGE MUST include all soapbind:headers specified on a wsdl:input or
1033 wsdl:output of a wsdl:operation of a wsdl:binding that describes it.
1034
1035 R2739
1036 A MESSAGE MAY contain SOAP header blocks that are not described in the
1037 wsdl:binding that describes it.
1038
1039 R2753
1040 A MESSAGE containing SOAP header blocks that are not described in the
1041 appropriate wsdl:binding MAY have the mustUnderstand attribute on such SOAP
1042 header blocks set to '1'.
1043
1044 R2751
1045 The order of soapbind:header elements in soapbind:binding sections of a
1046 DESCRIPTION MUST be considered independent of the order of SOAP header blocks
1047 in the message.
1048
1049 R2752
1050 A MESSAGE MAY contain more than one instance of each SOAP header block for
1051 each soapbind:header element in the appropriate child of soapbind:binding in
1052 the corresponding description.
1053
1054 R2801
1055 A DESCRIPTION MUST use XML Schema 1.0 Recommendation as the basis of user
1056 defined datatypes and structures.
1057
1058 R3100
1059 REGDATA of type uddi:bindingTemplate representing a conformant INSTANCE MUST
1060 contain the uddi:accessPoint element.
1061
1062 R3002
1063 REGDATA of type uddi:tModel representing a conformant Web service type MUST
1064 use WSDL as the description language.
1065
1066 R3003
1067 REGDATA of type uddi:tModel representing a conformant Web service type MUST be
1068 categorized using the uddi:types taxonomy and a categorization of "wsdlSpec".
1069
1070 R3010
1071 REGDATA of type uddi:tModel representing a conformant Web service type MUST
1072 follow V1.08 of the UDDI Best Practice for Using WSDL in a UDDI Registry.
1073
1074 R3011
1075 The wsdl:binding that is referenced by REGDATA of type uddi:tModel MUST itself
1076 conform to the Profile.
1077
1078 R5001
1079 If an INSTANCE requires the use of HTTPS, the location attribute of the
1080 soapbind:address element in its wsdl:port description MUST be a URI whose
1081 scheme is "https"; otherwise it MUST be a URI whose scheme is "http".
1082
1083 SOAP::WSDL has no means of generating WSDL definitions.
1084
1086 This file contains quotes from
1087 <http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html>. To
1088 these quotes, the legal notice from the document source applies.
1089
1090 Rest of this file: Copyright 2007 Martin Kutter.
1091
1092 This file is part of SOAP-WSDL. You may distribute/modify it under the
1093 same terms as perl itself
1094
1096 Martin Kutter <martin.kutter fen-net.de>
1097
1099 $Rev: 562 $
1100 $LastChangedBy: kutterma $
1101 $Id: WS_I.pod 562 2008-02-22 20:32:17Z kutterma $
1102 $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Manual/WS_I.pod $
1103
1104
1105
1106perl v5.28.0 2018-07-15 SOAP::WSDL::Manual::WS_I(3)