<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions targetNamespace="http://example.com/ws/2004/09/policy"
                  xmlns:tns="http://example.com/ws/2004/09/policy"
                  xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema"
                  xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/"
                  xmlns:wsp="http://www.w3.org/ns/ws-policy" 
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsp:Policy wsu:Id="T1Endpoint">
        <!-- Policy alternative T1 - Anonymous client -->
        <sp:TransportBinding>
            <wsp:Policy>
                <sp:TransportToken>
                    <wsp:Policy>
                        <sp:HttpsToken>
                            <wsp:Policy/>
                        </sp:HttpsToken>
                    </wsp:Policy>
                </sp:TransportToken>
                <sp:AlgorithmSuite>
                    <wsp:Policy>
                        <sp:Basic256Rsa15/>
                    </wsp:Policy>
                </sp:AlgorithmSuite>
                <sp:Layout>
                    <wsp:Policy>
                        <sp:Lax/>
                    </wsp:Policy>
                </sp:Layout>
                <sp:IncludeTimestamp/>
            </wsp:Policy>
        </sp:TransportBinding>
    </wsp:Policy>
    <wsp:Policy wsu:Id="T3Endpoint">
        <!-- Policy alternative T3 - Authenticated client with username/password token -->
        <sp:TransportBinding>
            <wsp:Policy>
                <sp:TransportToken>
                    <wsp:Policy>
                        <sp:HttpsToken>
                            <wsp:Policy/>
                        </sp:HttpsToken>
                    </wsp:Policy>
                </sp:TransportToken>
                <sp:AlgorithmSuite>
                    <wsp:Policy>
                        <sp:Basic256Rsa15/>
                    </wsp:Policy>
                </sp:AlgorithmSuite>
                <sp:Layout>
                    <wsp:Policy>
                        <sp:Lax/>
                    </wsp:Policy>
                </sp:Layout>
                <sp:IncludeTimestamp/>
            </wsp:Policy>
        </sp:TransportBinding>
        <sp:SignedSupportingTokens>
            <wsp:Policy>
                <sp:UsernameToken
                    sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient">
                    <wsp:Policy>
                        <sp:WssUsernameToken10/>
                    </wsp:Policy>
                </sp:UsernameToken>
            </wsp:Policy>
        </sp:SignedSupportingTokens>
        <sp:Wss10>
            <wsp:Policy>
                <sp:MustSupportRefKeyIdentifier/>
                <sp:MustSupportRefIssuerSerial/>
            </wsp:Policy>
        </sp:Wss10>
    </wsp:Policy>
    <wsp:Policy wsu:Id="A11Endpoint">
        <!-- Asymmetric Policy A11 - X509 with mutual authentication and AES 256 -->
        <sp:AsymmetricBinding>
            <wsp:Policy>
                <sp:RecipientToken>
                    <wsp:Policy>
                        <sp:X509Token
                            sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512/IncludeToken/Never">
                            <wsp:Policy>
                                <sp:WssX509V3Token10/>
                            </wsp:Policy>
                        </sp:X509Token>
                    </wsp:Policy>
                </sp:RecipientToken>
                <sp:InitiatorToken>
                    <wsp:Policy>
                        <sp:X509Token
                            sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient">
                            <wsp:Policy>
                                <sp:WssX509V3Token10/>
                            </wsp:Policy>
                        </sp:X509Token>
                    </wsp:Policy>
                </sp:InitiatorToken>
                <sp:AlgorithmSuite>
                    <wsp:Policy>
                        <sp:Basic256Rsa15/>
                    </wsp:Policy>
                </sp:AlgorithmSuite>
                <sp:Layout>
                    <wsp:Policy>
                        <sp:Lax/>
                    </wsp:Policy>
                </sp:Layout>
                <sp:IncludeTimestamp/>
                <sp:OnlySignEntireHeadersAndBody/>
            </wsp:Policy>
        </sp:AsymmetricBinding>
        <sp:Wss10>
            <wsp:Policy>
                <sp:MustSupportRefKeyIdentifier/>
                <sp:MustSupportRefIssuerSerial/>
            </wsp:Policy>
        </sp:Wss10>
    </wsp:Policy>
    <wsp:Policy wsu:Id="A12Endpoint">
        <!-- Asymmetric Policy A12 - X509 with mutual authentication and 3DES -->
        <sp:AsymmetricBinding>
            <wsp:Policy>
                <sp:RecipientToken>
                    <wsp:Policy>
                        <sp:X509Token
                            sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512/IncludeToken/Never">
                            <wsp:Policy>
                                <sp:WssX509V3Token10/>
                            </wsp:Policy>
                        </sp:X509Token>
                    </wsp:Policy>
                </sp:RecipientToken>
                <sp:InitiatorToken>
                    <wsp:Policy>
                        <sp:X509Token
                            sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200512/IncludeToken/AlwaysToRecipient">
                            <wsp:Policy>
                                <sp:WssX509V3Token10/>
                            </wsp:Policy>
                        </sp:X509Token>
                    </wsp:Policy>
                </sp:InitiatorToken>
                <sp:AlgorithmSuite>
                    <wsp:Policy>
                        <sp:TripleDesRsa15/>
                    </wsp:Policy>
                </sp:AlgorithmSuite>
                <sp:Layout>
                    <wsp:Policy>
                        <sp:Lax/>
                    </wsp:Policy>
                </sp:Layout>
                <sp:IncludeTimestamp/>
                <sp:OnlySignEntireHeadersAndBody/>
            </wsp:Policy>
        </sp:AsymmetricBinding>
        <sp:Wss10>
            <wsp:Policy>
                <sp:MustSupportRefKeyIdentifier/>
                <sp:MustSupportRefIssuerSerial/>
            </wsp:Policy>
        </sp:Wss10>
    </wsp:Policy>
    <wsp:Policy wsu:Id="AMessage">
        <sp:SignedParts>
            <sp:Body/>
        </sp:SignedParts>
        <sp:EncryptedParts>
            <sp:Body/>
        </sp:EncryptedParts>
    </wsp:Policy>
    <wsdl:types>
        <xs:schema targetNamespace="http://example.com/ws/2004/09/policy" blockDefault="#all"
     elementFormDefault="qualified">
            <xs:element name="EchoRequest" type="xs:string"/>
            <xs:element name="EchoResponse" type="xs:string"/>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="EchoInMessage">
        <wsdl:part name="Body" element="tns:EchoRequest"/>
    </wsdl:message>
    <wsdl:message name="EchoOutMessage">
        <wsdl:part name="Body" element="tns:EchoResponse"/>
    </wsdl:message>
    <wsdl:portType name="Test">
        <wsdl:operation name="Echo">
            <wsdl:input message="tns:EchoInMessage"/>
            <wsdl:output message="tns:EchoOutMessage"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="NoSecurityBinding" type="tns:Test">
        <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="Echo">
            <wsoap12:operation soapAction="http://example.com/ws/2004/09/policy/Test/EchoRequest"/>
            <wsdl:input>
                <wsoap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <wsoap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="T1Binding" type="tns:Test">
        <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#T1Endpoint" wsdl:required="true"/>
        <wsdl:operation name="Echo">
            <wsoap12:operation soapAction="http://example.com/ws/2004/09/policy/Test/EchoRequest"/>
            <wsdl:input>
                <wsoap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <wsoap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="T3Binding" type="tns:Test">
        <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#T3Endpoint" wsdl:required="true"/>
        <wsdl:operation name="Echo">
            <wsoap12:operation soapAction="http://example.com/ws/2004/09/policy/Test/EchoRequest"/>
            <wsdl:input>
                <wsoap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <wsoap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="A11Binding" type="tns:Test">
        <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#A11Endpoint" wsdl:required="true"/>
        <wsdl:operation name="Echo">
            <wsoap12:operation soapAction="http://example.com/ws/2004/09/policy/Test/EchoRequest"/>
            <wsdl:input>
                <wsoap12:body use="literal"/>
                <wsp:PolicyReference URI="#AMessage" wsdl:required="true"/>
            </wsdl:input>
            <wsdl:output>
                <wsoap12:body use="literal"/>
                <wsp:PolicyReference URI="#AMessage" wsdl:required="true"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="A12Binding" type="tns:Test">
        <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsp:PolicyReference URI="#A12Endpoint" wsdl:required="true"/>
        <wsdl:operation name="Echo">
            <wsoap12:operation soapAction="http://example.com/ws/2004/09/policy/Test/EchoRequest"/>
            <wsdl:input>
                <wsoap12:body use="literal"/>
                <wsp:PolicyReference URI="#AMessage" wsdl:required="true"/>
            </wsdl:input>
            <wsdl:output>
                <wsoap12:body use="literal"/>
                <wsp:PolicyReference URI="#AMessage" wsdl:required="true"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="Test">
        <wsdl:port name="NoSecurityPort" binding="tns:NoSecurityBinding">
            <wsoap12:address location="http://wsinterop.sun.com:3280/wspolicy_interop/round3/nosec"/>
        </wsdl:port>
        <wsdl:port name="T1Port" binding="tns:T1Binding">
            <wsoap12:address location="https://wsinterop.sun.com:3281/wspolicy_interop/round3/t1"/>
        </wsdl:port>
        <wsdl:port name="T3Port" binding="tns:T3Binding">
            <wsoap12:address location="https://wsinterop.sun.com:3281/wspolicy_interop/round3/t3"/>
        </wsdl:port>
        <wsdl:port name="A11Port" binding="tns:A11Binding">
            <wsoap12:address location="http://wsinterop.sun.com:3280/wspolicy_interop/round3/a11"/>
        </wsdl:port>
        <wsdl:port name="A12Port" binding="tns:A12Binding">
            <wsoap12:address location="http://wsinterop.sun.com:3280/wspolicy_interop/round3/a12"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
