1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.support.soap;
14
15 import java.io.IOException;
16 import java.util.List;
17
18 import javax.xml.namespace.QName;
19
20 import org.apache.xmlbeans.SchemaType;
21 import org.apache.xmlbeans.XmlError;
22 import org.apache.xmlbeans.XmlException;
23 import org.apache.xmlbeans.XmlObject;
24 import org.apache.xmlbeans.XmlValidationError;
25
26 import com.eviware.soapui.support.StringUtils;
27
28 /***
29 * Public behaviour for a SOAP Version
30 *
31 * @author ole.matzura
32 */
33
34 public interface SoapVersion
35 {
36 public static final SoapVersion11 Soap11 = SoapVersion11.instance;
37 public static final SoapVersion12 Soap12 = SoapVersion12.instance;
38
39 public QName getEnvelopeQName();
40
41 public QName getBodyQName();
42
43 public QName getHeaderQName();
44
45 public void validateSoapEnvelope(String soapMessage, List<XmlError> errors);
46
47 public String getContentTypeHttpHeader( String encoding, String soapAction );
48
49 public String getEnvelopeNamespace();
50
51 public String getEncodingNamespace();
52
53 public XmlObject getSoapEncodingSchema() throws XmlException, IOException;
54
55 public XmlObject getSoapEnvelopeSchema() throws XmlException, IOException;
56
57 /***
58 * Checks if the specified validation error should be ignored for a message with
59 * this SOAP version. (The SOAP-spec may allow some constructions not allowed by
60 * the corresponding XML-Schema)
61 */
62
63 public boolean shouldIgnore( XmlValidationError xmlError );
64
65 public String getContentType();
66
67 public SchemaType getEnvelopeType();
68
69 public SchemaType getFaultType();
70
71 public String getName();
72
73 /***
74 * Utilities
75 *
76 * @author ole.matzura
77 */
78
79 public static class Utils
80 {
81 public static SoapVersion getSoapVersionForContentType( String contentType, SoapVersion def )
82 {
83 if( StringUtils.isNullOrEmpty( contentType ))
84 return def;
85
86 SoapVersion soapVersion = contentType.startsWith( SoapVersion.Soap11.getContentType() ) ? SoapVersion.Soap11 : null;
87 soapVersion = soapVersion == null && contentType.startsWith( SoapVersion.Soap12.getContentType() ) ? SoapVersion.Soap12 : soapVersion;
88
89 return soapVersion == null ? def : soapVersion;
90 }
91 }
92
93 public String getSoapActionHeader( String soapAction );
94 }