<?xml version="1.0" encoding="UTF-8"?>
<syn:definitions xmlns:syn="http://ws.apache.org/ns/synapse">
    <syn:proxy name="HighestQuoteService" startOnLoad="true">
        <syn:target inSequence="proxy_in_seq" outSequence="proxy_out_seq" faultSequence="fault"/>
    </syn:proxy>
    <syn:localEntry key="ibm_xslt">
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template xmlns:ns="http://services.samples/xsd" match="//ns:getQuote">
        <m0:getQuote xmlns:m0="http://services.samples/xsd">
            <m0:request>
                <m0:symbol>IBM</m0:symbol>
            </m0:request>
        </m0:getQuote>
    </xsl:template>
</xsl:stylesheet>
    </syn:localEntry>
    <syn:localEntry key="msft_xslt">
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template xmlns:ns="http://services.samples/xsd" match="//ns:getQuote">
        <m0:getQuote xmlns:m0="http://services.samples/xsd">
            <m0:request>
                <m0:symbol>MSFT</m0:symbol>
            </m0:request>
        </m0:getQuote>
    </xsl:template>
</xsl:stylesheet>
    </syn:localEntry>
    <syn:localEntry key="out_transform">
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m0="http://services.samples/xsd" xmlns:fn="http://www.w3.org/2005/02/xpath-functions" version="2.0" exclude-result-prefixes="fn">
    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
    <xsl:template match="//m0:getQuoteResponse">
        <xsl:apply-templates select="//m0:getQuoteResponse"/>
    </xsl:template>
    <xsl:template match="//m0:getQuoteResponse">
        <ns:getQuoteResponse xmlns:ns="http://services.samples/xsd">
                <xsl:apply-templates>
                    <xsl:sort select="m0:high"/>
                </xsl:apply-templates>
        </ns:getQuoteResponse>
    </xsl:template>
    <xsl:template match="m0:return">
        <xsl:if test="position()=1">
        <ns:return xmlns:ns="http://services.samples/xsd">
            <ns:change>
                            <xsl:value-of select="m0:change"/>
                        </ns:change>
            <ns:earnings>
                            <xsl:value-of select="m0:earnings"/>
                        </ns:earnings>
            <ns:high>
                            <xsl:value-of select="m0:high"/>
                        </ns:high>
            <ns:last>
                            <xsl:value-of select="m0:last"/>
                        </ns:last>
            <ns:lastTradeTimestamp>
                            <xsl:value-of select="m0:lastTradeTimestamp"/>
                        </ns:lastTradeTimestamp>
            <ns:low>
                            <xsl:value-of select="m0:low"/>
                        </ns:low>
            <ns:marketCap>
                            <xsl:value-of select="m0:marketCap"/>
                        </ns:marketCap>
            <ns:name>
                            <xsl:value-of select="m0:name"/>
                        </ns:name>
            <ns:open>
                            <xsl:value-of select="m0:open"/>
                        </ns:open>
            <ns:peRatio>
                            <xsl:value-of select="m0:peRatio"/>
                        </ns:peRatio>
            <ns:percentageChange>
                            <xsl:value-of select="m0:percentageChange"/>
                        </ns:percentageChange>
            <ns:prevClose>
                            <xsl:value-of select="m0:prevClose"/>
                        </ns:prevClose>
            <ns:symbol>
                            <xsl:value-of select="m0:symbol"/>
                        </ns:symbol>
            <ns:volume>
                            <xsl:value-of select="m0:volume"/>
                        </ns:volume>
        </ns:return>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
    </syn:localEntry>
    <syn:localEntry key="sun_xslt">
        <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template xmlns:ns="http://services.samples/xsd" match="//ns:getQuote">
        <m0:getQuote xmlns:m0="http://services.samples/xsd">
            <m0:request>
                <m0:symbol>SUN</m0:symbol>
            </m0:request>
        </m0:getQuote>
    </xsl:template>
</xsl:stylesheet>
    </syn:localEntry>
    <syn:endpoint name="target_ep">
        <syn:address uri="http://localhost:9000/soap/SimpleStockQuoteService"/>
    </syn:endpoint>
    <syn:sequence name="ibm_quote">
        <syn:xslt key="ibm_xslt"/>
        <syn:send>
            <syn:endpoint key="target_ep"/>
        </syn:send>
    </syn:sequence>
    <syn:sequence name="main">
        <syn:log separator=","/>
    </syn:sequence>
    <syn:sequence name="sun_quote">
        <syn:xslt key="sun_xslt"/>
        <syn:send>
            <syn:endpoint key="target_ep"/>
        </syn:send>
    </syn:sequence>
    <syn:sequence name="fault">
        <syn:log/>
    </syn:sequence>
    <syn:sequence name="proxy_in_seq">
        <syn:clone>
            <syn:target sequence="ibm_quote"/>
            <syn:target sequence="msft_quote"/>
            <syn:target sequence="sun_quote"/>
        </syn:clone>
    </syn:sequence>
    <syn:sequence name="proxy_out_seq">
        <syn:aggregate>
            <syn:completeCondition timeout="30">
                <syn:messageCount min="-1" max="-1"/>
            </syn:completeCondition>
            <syn:onComplete xmlns:m0="http://services.samples/xsd" xmlns:ns1="http://org.apache.synapse/xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" expression="//m0:getQuoteResponse/m0:return">
                <syn:log level="full" separator=","/>
                <syn:xslt key="out_transform"/>
                <syn:log level="full" separator=","/>
                <syn:send/>
            </syn:onComplete>
        </syn:aggregate>
    </syn:sequence>
    <syn:sequence name="msft_quote">
        <syn:xslt key="msft_xslt"/>
        <syn:send>
            <syn:endpoint key="target_ep"/>
        </syn:send>
    </syn:sequence>
</syn:definitions>

