View Javadoc

1   /*
2    *  soapUI, copyright (C) 2004-2007 eviware.com 
3    *
4    *  soapUI is free software; you can redistribute it and/or modify it under the 
5    *  terms of version 2.1 of the GNU Lesser General Public License as published by 
6    *  the Free Software Foundation.
7    *
8    *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
9    *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
10   *  See the GNU Lesser General Public License for more details at gnu.org.
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  /***
27   * Public behaviour for a SOAP Version
28   * 
29   * @author ole.matzura
30   */
31  
32  public interface SoapVersion
33  {
34  	public static final SoapVersion11 Soap11 = SoapVersion11.instance;
35  	public static final SoapVersion12 Soap12 = SoapVersion12.instance; 
36  	
37     public QName getEnvelopeQName();
38     
39     public QName getBodyQName();
40     
41     public QName getHeaderQName();
42     
43     public void validateSoapEnvelope(String soapMessage, List<XmlError> errors);
44  
45  	public String getContentTypeHttpHeader( String encoding );
46  
47  	public String getEnvelopeNamespace();
48  
49  	public String getEncodingNamespace();
50  
51  	public XmlObject getSoapEncodingSchema() throws XmlException, IOException;
52  
53  	public XmlObject getSoapEnvelopeSchema() throws XmlException, IOException; 
54  	
55  	/***
56  	 * Checks if the specified validation error should be ignored for a message with
57  	 * this SOAP version. (The SOAP-spec may allow some constructions not allowed by 
58  	 * the corresponding XML-Schema) 
59  	 */
60  	
61  	public boolean shouldIgnore( XmlValidationError xmlError );
62  
63  	public String getContentType();
64  
65  	public SchemaType getEnvelopeType();
66  
67  	public SchemaType getFaultType();
68  
69  	public String getName();
70  	
71  	/***
72  	 * Utilities
73  	 * 
74  	 * @author ole.matzura
75  	 */
76  	
77  	public static class Utils
78  	{
79  		public static SoapVersion getSoapVersionForContentType( String contentType )
80  		{
81  			SoapVersion soapVersion = contentType.startsWith( SoapVersion.Soap11.getContentType() ) ? SoapVersion.Soap11 : null;
82  			soapVersion = soapVersion == null && contentType.startsWith( SoapVersion.Soap12.getContentType() ) ? SoapVersion.Soap12 : soapVersion;
83  	
84  			return soapVersion;
85  		}
86  	}
87  }