1 17 package org.apache.servicemix.soap.marshalers; 18 19 import javax.xml.namespace.QName ; 20 import javax.xml.stream.XMLInputFactory; 21 import javax.xml.stream.XMLOutputFactory; 22 23 import org.apache.servicemix.jbi.jaxp.StAXSourceTransformer; 24 25 31 public class SoapMarshaler { 32 33 public static final String MIME_CONTENT_TYPE = "Content-Type"; 34 public static final String MULTIPART_CONTENT = "multipart/"; 35 public static final String SOAP_PART_ID = "soap-request"; 36 public static final String SOAP_11_URI = "http://schemas.xmlsoap.org/soap/envelope/"; 37 public static final String SOAP_12_URI = "http://www.w3.org/2003/05/soap-envelope"; 38 public static final String SOAP_PREFIX = "env"; 39 public static final String ENVELOPE = "Envelope"; 40 public static final String HEADER = "Header"; 41 public static final String BODY = "Body"; 42 public static final String FAULT = "Fault"; 43 44 public static final QName SOAP_11_FAULTCODE = new QName ("faultcode"); 45 public static final QName SOAP_11_FAULTSTRING = new QName ("faultstring"); 46 public static final QName SOAP_11_FAULTACTOR = new QName ("faultactor"); 47 public static final QName SOAP_11_FAULTDETAIL = new QName ("detail"); 48 public static final QName SOAP_11_CODE_VERSIONMISMATCH = new QName (SOAP_11_URI, "VersionMismatch"); 49 public static final QName SOAP_11_CODE_MUSTUNDERSTAND = new QName (SOAP_11_URI, "MustUnderstand"); 50 public static final QName SOAP_11_CODE_CLIENT = new QName (SOAP_11_URI, "Client"); 51 public static final QName SOAP_11_CODE_SERVER = new QName (SOAP_11_URI, "Server"); 52 53 public static final QName SOAP_12_FAULTCODE = new QName (SOAP_12_URI, "Code"); 54 public static final QName SOAP_12_FAULTSUBCODE = new QName (SOAP_12_URI, "Subcode"); 55 public static final QName SOAP_12_FAULTVALUE = new QName (SOAP_12_URI, "Value"); 56 public static final QName SOAP_12_FAULTREASON = new QName (SOAP_12_URI, "Reason"); 57 public static final QName SOAP_12_FAULTTEXT = new QName (SOAP_12_URI, "Text"); 58 public static final QName SOAP_12_FAULTNODE = new QName (SOAP_12_URI, "Node"); 59 public static final QName SOAP_12_FAULTROLE = new QName (SOAP_12_URI, "Role"); 60 public static final QName SOAP_12_FAULTDETAIL = new QName (SOAP_12_URI, "Detail"); 61 public static final QName SOAP_12_CODE_DATAENCODINGUNKNOWN = new QName (SOAP_12_URI, "DataEncodingUnknown"); 62 public static final QName SOAP_12_CODE_VERSIONMISMATCH = new QName (SOAP_12_URI, "VersionMismatch"); 63 public static final QName SOAP_12_CODE_MUSTUNDERSTAND = new QName (SOAP_12_URI, "MustUnderstand"); 64 public static final QName SOAP_12_CODE_RECEIVER = new QName (SOAP_12_URI, "Receiver"); 65 public static final QName SOAP_12_CODE_SENDER = new QName (SOAP_12_URI, "Sender"); 66 67 protected XMLInputFactory inputFactory; 68 protected XMLOutputFactory outputFactory; 69 protected StAXSourceTransformer sourceTransformer; 70 protected boolean repairingNamespace; 71 protected String prefix = SOAP_PREFIX; 72 protected boolean soap = true; 73 protected boolean useDom = false; 74 protected String soapUri = SOAP_12_URI; 75 76 public SoapMarshaler() { 77 } 78 79 public SoapMarshaler(boolean soap) { 80 this.soap = soap; 81 } 82 83 public SoapMarshaler(boolean soap, boolean useDom) { 84 this.soap = soap; 85 this.useDom = useDom; 86 } 87 88 public XMLInputFactory getInputFactory() { 89 if (inputFactory == null) { 90 inputFactory = XMLInputFactory.newInstance(); 91 inputFactory.setProperty(XMLInputFactory.IS_NAMESPACE_AWARE, Boolean.TRUE); 92 } 93 return inputFactory; 94 } 95 96 public XMLOutputFactory getOutputFactory() { 97 if (outputFactory == null) { 98 outputFactory = XMLOutputFactory.newInstance(); 99 if (isRepairingNamespace()) { 100 outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, 101 Boolean.valueOf(isRepairingNamespace())); 102 } 103 } 104 return outputFactory; 105 } 106 107 public StAXSourceTransformer getSourceTransformer() { 108 if (sourceTransformer == null) { 109 sourceTransformer = new StAXSourceTransformer(); 110 } 111 return sourceTransformer; 112 } 113 114 public boolean isRepairingNamespace() { 115 return repairingNamespace; 116 } 117 118 public void setRepairingNamespace(boolean repairingNamespace) { 119 this.repairingNamespace = repairingNamespace; 120 } 121 122 public boolean isSoap() { 123 return soap; 124 } 125 126 public void setSoap(boolean soap) { 127 this.soap = soap; 128 } 129 130 133 public boolean isUseDom() { 134 return useDom; 135 } 136 137 140 public void setUseDom(boolean useDom) { 141 this.useDom = useDom; 142 } 143 144 public String getPrefix() { 145 return prefix; 146 } 147 148 public void setPrefix(String prefix) { 149 this.prefix = prefix; 150 } 151 152 public String getSoapUri() { 153 return soapUri; 154 } 155 156 public void setSoapUri(String soapUri) { 157 this.soapUri = soapUri; 158 } 159 160 public SoapReader createReader() { 161 return new SoapReader(this); 162 } 163 164 public SoapWriter createWriter(SoapMessage message) { 165 return new SoapWriter(this, message); 166 } 167 } 168 | Popular Tags |