summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/quote-xquery/src/main/resources
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/samples/quote-xquery/src/main/resources')
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join.xq61
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_external_references.xq69
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_properties.xq74
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/wsdl/AvailQuote.xsd39
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/wsdl/PriceQuote.xsd49
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/wsdl/Quote.xsd40
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/wsdl/quotejoin.wsdl137
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/xqueryquotews.composite55
-rw-r--r--java/sca/samples/quote-xquery/src/main/resources/xqueryquotewsclient.composite111
9 files changed, 635 insertions, 0 deletions
diff --git a/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join.xq b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join.xq
new file mode 100644
index 0000000000..d504f40f04
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join.xq
@@ -0,0 +1,61 @@
+(:
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+:)
+
+declare namespace quoteJoin="scaservice:java/xquery.quote.QuoteJoin";
+
+declare namespace quoteCalculator="scareference:java/xquery.quote.QuoteCalculator";
+
+declare namespace quo="http://www.example.org/quote";
+
+declare variable $quoteCalculator external;
+
+declare function quoteJoin:joinPriceAndAvailQuotes($priceQuoteDoc, $availQuoteDoc, $taxRate) {
+<quo:quote>
+ <quo:name>{ data($priceQuoteDoc/*/customerName) }</quo:name>
+ <quo:address>{ concat($priceQuoteDoc/*/shipAddress/@street , ",", $priceQuoteDoc/*/shipAddress/@city ,",", fn:upper-case($priceQuoteDoc/*/shipAddress/@state) , ",", $priceQuoteDoc/*/shipAddress/@zip) }</quo:address>
+ {
+ for $priceRequest in $priceQuoteDoc/*/priceRequests/priceRequest,
+ $availRequest in $availQuoteDoc/*/availRequest
+ where data($priceRequest/widgetId) = data($availRequest/widgetId)
+ return
+ <quo:quoteResponse>
+ <quo:widgetId>{ data($priceRequest/widgetId) }</quo:widgetId>
+ <quo:unitPrice>{ data($priceRequest/price) }</quo:unitPrice>
+ <quo:requestedQuantity>{ data($availRequest/requestedQuantity) }</quo:requestedQuantity>
+ <quo:fillOrder>{ data($availRequest/quantityAvail) }</quo:fillOrder>
+ {
+ for $shipDate in $availRequest/shipDate
+ return
+ <quo:shipDate>{ data($shipDate) }</quo:shipDate>
+ }
+ <quo:taxRate>{ $taxRate }</quo:taxRate>
+ <quo:totalCost>{ quoteCalculator:calculateTotalPrice(
+ $quoteCalculator,
+
+ xs:float($taxRate),
+
+ $availRequest/requestedQuantity,
+
+ $priceRequest/price,
+
+ $availRequest/quantityAvail) }</quo:totalCost>
+ </quo:quoteResponse>
+ }
+ </quo:quote>
+};
diff --git a/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_external_references.xq b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_external_references.xq
new file mode 100644
index 0000000000..cc50da164a
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_external_references.xq
@@ -0,0 +1,69 @@
+(:
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+:)
+declare namespace quoteJoin="scaservice:java/xquery.quote.ExternalReferencesQuoteJoin";
+
+declare namespace quoteCalculator="scareference:java/xquery.quote.QuoteCalculator";
+
+declare namespace priceQuoteProvider="scareference:java/xquery.quote.PriceQuoteProviderNodeInfo";
+declare namespace availQuoteProvider="scareference:java/xquery.quote.AvailQuoteProviderNodeInfo";
+
+declare namespace quo="http://www.example.org/quote";
+
+declare variable $quoteCalculator external;
+
+declare variable $priceQuoteProvider external;
+declare variable $availQuoteProvider external;
+
+declare function quoteJoin:joinPriceAndAvailQuotes($taxRate) {
+let $priceQuoteDoc := priceQuoteProvider:providePriceQuote($priceQuoteProvider)
+let $availQuoteDoc := availQuoteProvider:provideAvailQuote($availQuoteProvider, 'dummy')
+return
+<quo:quote>
+ <quo:name>{ data($priceQuoteDoc/priceQuote/customerName) }</quo:name>
+ <quo:address>{ concat($priceQuoteDoc/priceQuote/shipAddress/@street , ",", $priceQuoteDoc/priceQuote/shipAddress/@city ,",", fn:upper-case($priceQuoteDoc/priceQuote/shipAddress/@state) , ",", $priceQuoteDoc/priceQuote/shipAddress/@zip) }</quo:address>
+ {
+ for $priceRequest in $priceQuoteDoc/priceQuote/priceRequests/priceRequest,
+ $availRequest in $availQuoteDoc/availQuote/availRequest
+ where data($priceRequest/widgetId) = data($availRequest/widgetId)
+ return
+ <quo:quoteResponse>
+ <quo:widgetId>{ data($priceRequest/widgetId) }</quo:widgetId>
+ <quo:unitPrice>{ data($priceRequest/price) }</quo:unitPrice>
+ <quo:requestedQuantity>{ data($availRequest/requestedQuantity) }</quo:requestedQuantity>
+ <quo:fillOrder>{ data($availRequest/quantityAvail) }</quo:fillOrder>
+ {
+ for $shipDate in $availRequest/shipDate
+ return
+ <quo:shipDate>{ data($shipDate) }</quo:shipDate>
+ }
+ <quo:taxRate>{ $taxRate }</quo:taxRate>
+ <quo:totalCost>{ quoteCalculator:calculateTotalPrice(
+ $quoteCalculator,
+
+ $taxRate,
+
+ $availRequest/requestedQuantity,
+
+ $priceRequest/price,
+
+ $availRequest/quantityAvail) }</quo:totalCost>
+ </quo:quoteResponse>
+ }
+ </quo:quote>
+};
diff --git a/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_properties.xq b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_properties.xq
new file mode 100644
index 0000000000..cf41ab528d
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/META-INF/sca/quote_join_properties.xq
@@ -0,0 +1,74 @@
+(:
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+:)
+
+declare namespace quoteJoin="scaservice:java/xquery.quote.PropertiesQuoteJoin";
+
+declare namespace quoteCalculator="scareference:java/xquery.quote.QuoteCalculator";
+
+declare namespace priceQuoteDoc="scaproperty:xml/http://www.example.org/price:priceQuote";
+declare namespace availQuoteDoc="scaproperty:xml/http://www.example.org/avail:availQuote";
+declare namespace taxRate="scaproperty:java/java.lang.Float";
+
+declare namespace pri="http://www.example.org/price";
+declare namespace ava="http://www.example.org/avail";
+declare namespace quo="http://www.example.org/quote";
+
+declare variable $quoteCalculator external;
+
+declare variable $priceQuoteDoc external;
+declare variable $availQuoteDoc external;
+declare variable $taxRate external;
+
+declare function quoteJoin:joinPriceAndAvailQuotes() {
+<quo:quote>
+ <quo:name>{ data($priceQuoteDoc/pri:priceQuote/customerName) }</quo:name>
+ <quo:address>{ concat($priceQuoteDoc/pri:priceQuote/shipAddress/@street , ",",
+ $priceQuoteDoc/pri:priceQuote/shipAddress/@city ,",",
+ fn:upper-case($priceQuoteDoc/pri:priceQuote/shipAddress/@state) , ",",
+ $priceQuoteDoc/pri:priceQuote/shipAddress/@zip) }</quo:address>
+ {
+ for $priceRequest in $priceQuoteDoc/pri:priceQuote/priceRequests/priceRequest,
+ $availRequest in $availQuoteDoc/ava:availQuote/availRequest
+ where data($priceRequest/widgetId) = data($availRequest/widgetId)
+ return
+ <quo:quoteResponse>
+ <quo:widgetId>{ data($priceRequest/widgetId) }</quo:widgetId>
+ <quo:unitPrice>{ data($priceRequest/price) }</quo:unitPrice>
+ <quo:requestedQuantity>{ data($availRequest/requestedQuantity) }</quo:requestedQuantity>
+ <quo:fillOrder>{ data($availRequest/quantityAvail) }</quo:fillOrder>
+ {
+ for $shipDate in $availRequest/shipDate
+ return
+ <quo:shipDate>{ data($shipDate) }</quo:shipDate>
+ }
+ <quo:taxRate>{ $taxRate }</quo:taxRate>
+ <quo:totalCost>{ quoteCalculator:calculateTotalPrice(
+ $quoteCalculator,
+
+ $taxRate,
+
+ $availRequest/requestedQuantity,
+
+ $priceRequest/price,
+
+ $availRequest/quantityAvail) }</quo:totalCost>
+ </quo:quoteResponse>
+ }
+ </quo:quote>
+};
diff --git a/java/sca/samples/quote-xquery/src/main/resources/wsdl/AvailQuote.xsd b/java/sca/samples/quote-xquery/src/main/resources/wsdl/AvailQuote.xsd
new file mode 100644
index 0000000000..e7f3e67068
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/wsdl/AvailQuote.xsd
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<xsd:schema targetNamespace="http://www.example.org/avail" xmlns:ava="http://www.example.org/avail" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
+ <xsd:element name="availQuote" type="ava:AvailQuote"/>
+ <xsd:complexType name="AvailRequest">
+ <xsd:sequence>
+ <xsd:element name="widgetId" type="xsd:integer"/>
+ <xsd:element name="requestedQuantity" type="xsd:int"/>
+ <xsd:element name="quantityAvail" type="xsd:boolean"/>
+ <xsd:element name="shipDate" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="AvailQuote">
+ <xsd:sequence>
+ <xsd:element name="availRequest" type="ava:AvailRequest" minOccurs="1" maxOccurs="10">
+ </xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+</xsd:schema>
+
+
+
diff --git a/java/sca/samples/quote-xquery/src/main/resources/wsdl/PriceQuote.xsd b/java/sca/samples/quote-xquery/src/main/resources/wsdl/PriceQuote.xsd
new file mode 100644
index 0000000000..4c437586ef
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/wsdl/PriceQuote.xsd
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<xsd:schema targetNamespace="http://www.example.org/price" xmlns:pri="http://www.example.org/price" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
+ <xsd:element name="priceQuote" type="pri:PriceQuote"/>
+ <xsd:complexType name="PriceRequest">
+ <xsd:sequence>
+ <xsd:element name="widgetId" type="xsd:integer"/>
+ <xsd:element name="price" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="PriceRequests">
+ <xsd:sequence>
+ <xsd:element name="priceRequest" type="pri:PriceRequest" minOccurs="1" maxOccurs="10"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="ShipAddress">
+ <xsd:attribute name="street" type="xsd:string"/>
+ <xsd:attribute name="city" type="xsd:string"/>
+ <xsd:attribute name="state" type="xsd:string"/>
+ <xsd:attribute name="zip" type="xsd:string"/>
+ </xsd:complexType>
+ <xsd:complexType name="PriceQuote">
+ <xsd:sequence>
+ <xsd:element name="customerName" type="xsd:string" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="shipAddress" type="pri:ShipAddress" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="priceRequests" type="pri:PriceRequests"/>
+ </xsd:sequence>
+ </xsd:complexType>
+</xsd:schema>
+
+
+
diff --git a/java/sca/samples/quote-xquery/src/main/resources/wsdl/Quote.xsd b/java/sca/samples/quote-xquery/src/main/resources/wsdl/Quote.xsd
new file mode 100644
index 0000000000..4f64850056
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/wsdl/Quote.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<xsd:schema targetNamespace="http://www.example.org/quote" xmlns:quo="http://www.example.org/quote" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified">
+ <xsd:element name="quote" type="quo:Quote"/>
+ <xsd:complexType name="Quote">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="address" type="xsd:string"/>
+ <xsd:element name="quoteResponse" type="quo:QuoteResponse" minOccurs="1" maxOccurs="10"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="QuoteResponse">
+ <xsd:sequence>
+ <xsd:element name="widgetId" type="xsd:integer"/>
+ <xsd:element name="unitPrice" type="xsd:float" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="requestedQuantity" type="xsd:int"/>
+ <xsd:element name="fillOrder" type="xsd:boolean"/>
+ <xsd:element name="shipDate" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="taxRate" type="xsd:float" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="totalCost" type="xsd:float" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:complexType>
+</xsd:schema>
diff --git a/java/sca/samples/quote-xquery/src/main/resources/wsdl/quotejoin.wsdl b/java/sca/samples/quote-xquery/src/main/resources/wsdl/quotejoin.wsdl
new file mode 100644
index 0000000000..96c2af138a
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/wsdl/quotejoin.wsdl
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<wsdl:definitions targetNamespace="http://quote.xquery" xmlns:tns="http://quote.xquery"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ava="http://www.example.org/avail"
+ xmlns:pri="http://www.example.org/price" xmlns:quo="http://www.example.org/quote" name="quotejoin">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://quote.xquery"
+ xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ava="http://www.example.org/avail"
+ xmlns:pri="http://www.example.org/price" xmlns:quo="http://www.example.org/quote">
+
+ <import namespace="http://www.example.org/avail" schemaLocation="AvailQuote.xsd" />
+ <import namespace="http://www.example.org/price" schemaLocation="PriceQuote.xsd" />
+ <import namespace="http://www.example.org/quote" schemaLocation="Quote.xsd" />
+
+ <element name="joinPriceAndAvailQuotes">
+ <complexType>
+ <sequence>
+ <element name="priceQuote" type="pri:PriceQuote" />
+ <element name="availQuote" type="ava:AvailQuote" />
+ <element name="taxRate" type="xsd:float" />
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="joinPriceAndAvailQuotesResponse">
+ <complexType>
+ <sequence>
+ <element name="joinPriceAndAvailQuotesReturn" type="quo:Quote" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="provideAvailQuote">
+ <complexType>
+ <sequence>
+ <element name="provideAvailQuote" type="xsd:string" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="provideAvailQuoteResponse">
+ <complexType>
+ <sequence>
+ <element name="provideAvailQuoteReturn" type="ava:AvailQuote" />
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="joinPriceAndAvailQuotesRequest">
+ <wsdl:part element="tns:joinPriceAndAvailQuotes" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:message name="joinPriceAndAvailQuotesResponse">
+ <wsdl:part element="tns:joinPriceAndAvailQuotesResponse" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:portType name="QuoteJoin">
+ <wsdl:operation name="joinPriceAndAvailQuotes">
+ <wsdl:input message="tns:joinPriceAndAvailQuotesRequest" name="joinPriceAndAvailQuotesRequest" />
+ <wsdl:output message="tns:joinPriceAndAvailQuotesResponse" name="joinPriceAndAvailQuotesResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="QuoteJoinSoapBinding" type="tns:QuoteJoin">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="joinPriceAndAvailQuotes">
+ <wsdlsoap:operation soapAction="" />
+ <wsdl:input name="joinPriceAndAvailQuotesRequest">
+ <wsdlsoap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="joinPriceAndAvailQuotesResponse">
+ <wsdlsoap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="QuoteJoinService">
+ <wsdl:port binding="tns:QuoteJoinSoapBinding" name="QuoteJoinSoapPort">
+ <wsdlsoap:address location="http://localhost:8085/QuoteJoinService" />
+ </wsdl:port>
+ </wsdl:service>
+
+
+
+ <wsdl:message name="provideAvailQuoteRequest">
+ <wsdl:part element="tns:provideAvailQuote" name="parameters" />
+ </wsdl:message>
+ <wsdl:message name="provideAvailQuoteResponse">
+ <wsdl:part element="tns:provideAvailQuoteResponse" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:portType name="AvailQuoteProvider">
+ <wsdl:operation name="provideAvailQuote">
+ <wsdl:input message="tns:provideAvailQuoteRequest" name="provideAvailQuoteRequest" />
+ <wsdl:output message="tns:provideAvailQuoteResponse" name="provideAvailQuoteResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="AvailQuoteProviderSoapBinding" type="tns:AvailQuoteProvider">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="provideAvailQuote">
+ <wsdlsoap:operation soapAction="" />
+ <wsdl:input name="provideAvailQuoteRequest">
+ <wsdlsoap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="provideAvailQuoteResponse">
+ <wsdlsoap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="AvailQuoteProviderService">
+ <wsdl:port binding="tns:AvailQuoteProviderSoapBinding" name="AvailQuoteProviderSoapPort">
+ <wsdlsoap:address location="http://localhost:8085/AvailQuoteProviderService" />
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/java/sca/samples/quote-xquery/src/main/resources/xqueryquotews.composite b/java/sca/samples/quote-xquery/src/main/resources/xqueryquotews.composite
new file mode 100644
index 0000000000..9e35e2ecb2
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/xqueryquotews.composite
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://quote.xquery"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0" xmlns:xq="http://quote.xquery"
+ name="xqueryquotews">
+
+<!--
+ <dbsdo:import.sdo factory="org.example.avail.AvailFactory" />
+ <dbsdo:import.sdo factory="org.example.price.PriceFactory" />
+ <dbsdo:import.sdo factory="org.example.quote.QuoteFactory" />
+ <dbsdo:import.sdo location="wsdl/quotejoin.wsdl" />
+ -->
+ <dbsdo:import.sdo factory="xquery.quote.QuoteFactory"/>
+
+ <component name="QuoteJoinServerComponent">
+ <tuscany:implementation.xquery location="META-INF/sca/quote_join.xq" />
+ <service name="quoteJoin">
+ <interface.java interface="xquery.quote.QuoteJoin" />
+ <binding.ws wsdlElement="http://quote.xquery#wsdl.port(QuoteJoinService/QuoteJoinSoapPort)" />
+ </service>
+ <reference name="quoteCalculator" target="QuoteCalculatorServerComponent" />
+ </component>
+
+ <component name="QuoteCalculatorServerComponent">
+ <implementation.java class="xquery.quote.QuoteCalculatorImpl" />
+ </component>
+
+ <component name="AvailQuoteProviderComponent">
+ <implementation.java class="xquery.quote.AvailQuoteProviderImpl" />
+ <service name="AvailQuoteProviderService">
+ <interface.java interface="xquery.quote.AvailQuoteProviderService" />
+ <binding.ws
+ wsdlElement="http://quote.xquery#wsdl.port(AvailQuoteProviderService/AvailQuoteProviderSoapPort)" />
+ </service>
+ </component>
+
+</composite>
diff --git a/java/sca/samples/quote-xquery/src/main/resources/xqueryquotewsclient.composite b/java/sca/samples/quote-xquery/src/main/resources/xqueryquotewsclient.composite
new file mode 100644
index 0000000000..f078b9ee9f
--- /dev/null
+++ b/java/sca/samples/quote-xquery/src/main/resources/xqueryquotewsclient.composite
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" targetNamespace="http://quote.xquery/client"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" xmlns:xq="http://quote.xquery/client"
+ name="xqueryquotewsclient">
+
+ <component name="QuoteJoinLocalComponent">
+ <implementation.java class="xquery.quote.QuoteJoinLocalImpl" />
+ <reference name="quoteJoin" target="QuoteJoinComponent" />
+ <reference name="propertiesQuoteJoin" target="QuoteJoinPropertiesComponent" />
+ <reference name="externalServicesQuoteJoin" target="QuoteJoinExternalReferencesComponent" />
+ </component>
+
+ <component name="QuoteJoinComponent">
+ <tuscany:implementation.xquery location="META-INF/sca/quote_join.xq" />
+ <reference name="quoteCalculator" target="QuoteCalculatorComponent" />
+ </component>
+
+ <component name="QuoteJoinPropertiesComponent">
+ <tuscany:implementation.xquery location="META-INF/sca/quote_join_properties.xq" />
+ <!-- Reset the default namespace as the sub-elements under pri:priceQuote are
+ unqualified -->
+ <property name="priceQuoteDoc">
+ <pri:priceQuote xmlns:pri="http://www.example.org/price" xmlns="">
+ <customerName>Acme Inc</customerName>
+ <shipAddress street="12 Springs Rd" city="Morris Plains" state="nj" zip="07960" />
+ <priceRequests>
+ <priceRequest>
+ <widgetId>12</widgetId>
+ <price>1.0</price>
+ </priceRequest>
+ <priceRequest>
+ <widgetId>134</widgetId>
+ <price>34.1</price>
+ </priceRequest>
+ <priceRequest>
+ <widgetId>211</widgetId>
+ <price>10.0</price>
+ </priceRequest>
+ </priceRequests>
+ </pri:priceQuote>
+ </property>
+ <!-- Reset the default namespace as the sub-elements under ava:availQuote are
+ unqualified -->
+
+ <property name="availQuoteDoc">
+ <ava:availQuote xmlns:ava="http://www.example.org/avail" xmlns="">
+ <availRequest>
+ <widgetId>12</widgetId>
+ <requestedQuantity>10</requestedQuantity>
+ <quantityAvail>true</quantityAvail>
+ <shipDate>2003-03-22</shipDate>
+ </availRequest>
+ <availRequest>
+ <widgetId>134</widgetId>
+ <requestedQuantity>345</requestedQuantity>
+ <quantityAvail>false</quantityAvail>
+ <shipDate>BackOrder</shipDate>
+ </availRequest>
+ <availRequest>
+ <widgetId>211</widgetId>
+ <requestedQuantity>100</requestedQuantity>
+ <quantityAvail>true</quantityAvail>
+ <shipDate>2003-04-21</shipDate>
+ </availRequest>
+ </ava:availQuote>
+ </property>
+ <property name="taxRate">0.1</property>
+ <reference name="quoteCalculator" target="QuoteCalculatorComponent" />
+ </component>
+
+ <component name="QuoteJoinExternalReferencesComponent">
+ <tuscany:implementation.xquery location="META-INF/sca/quote_join_external_references.xq" />
+ <reference name="quoteCalculator" target="QuoteCalculatorComponent" />
+ <reference name="priceQuoteProvider" target="PriceQuoteProviderComponent" />
+ </component>
+
+ <component name="QuoteCalculatorComponent">
+ <implementation.java class="xquery.quote.QuoteCalculatorImpl" />
+ </component>
+
+ <component name="PriceQuoteProviderComponent">
+ <implementation.java class="xquery.quote.PriceQuoteProviderImpl" />
+ </component>
+
+ <reference name="availQuoteProvider" promote="QuoteJoinExternalReferencesComponent/availQuoteProvider">
+ <interface.java interface="xquery.quote.AvailQuoteProviderService" />
+ <binding.ws wsdlElement="http://quote.xquery#wsdl.port(AvailQuoteProviderService/AvailQuoteProviderSoapPort)" />
+ </reference>
+ <reference name="quoteJoinWs" promote="QuoteJoinLocalComponent/quoteJoinWs">
+ <interface.java interface="xquery.quote.QuoteJoin" />
+ <binding.ws wsdlElement="http://quote.xquery#wsdl.port(QuoteJoinService/QuoteJoinSoapPort)" />
+ </reference>
+</composite>