Author: karthick
Date: Fri Feb  6 21:52:01 2009
New Revision: 741748

URL: http://svn.apache.org/viewvc?rev=741748&view=rev
Log:
ODE-508 In essence, this is a forward port of ODE-498.

Added:
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/deploy.xml
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.bpel
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.properties
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.wsdl
    ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.xsd
Modified:
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/XPath20ExpressionCompilerImpl.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/XPath20ExpressionCompilerImpl.java
    
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/DataHandling20Test.java
    
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
    
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity2/TestAssign.bpel

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/XPath20ExpressionCompilerImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/XPath20ExpressionCompilerImpl.java?rev=741748&r1=741747&r2=741748&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/XPath20ExpressionCompilerImpl.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/XPath20ExpressionCompilerImpl.java
 Fri Feb  6 21:52:01 2009
@@ -19,7 +19,9 @@
 
 package org.apache.ode.bpel.compiler.v1.xpath20;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.namespace.QName;
@@ -30,6 +32,7 @@
 import javax.xml.xpath.XPathFactory;
 import javax.xml.xpath.XPathFactoryConfigurationException;
 
+import net.sf.saxon.om.Name11Checker;
 import net.sf.saxon.om.NamespaceConstant;
 
 import org.apache.commons.logging.Log;
@@ -155,6 +158,14 @@
             } catch (XPathExpressionException xpee) { 
                // swallow errors caused by uninitialized variable 
             }
+            for (String varExpr : extractVariableExprs(xpathStr)) {
+                expr = xpe.compile(varExpr);
+               try {
+                       expr.evaluate(node);
+               } catch (XPathExpressionException xpee) {
+                       // swallow errors caused by uninitialized variable 
+               }
+            }
         } catch (XPathFactoryConfigurationException xpfce) {
             __log.debug(xpfce);
             __log.info("Couldn't validate properly expression " + xpathStr);
@@ -174,4 +185,59 @@
         return _properties;
     }
 
+    /**
+     * Returns the list of variable references in the given XPath expression
+     * that may not have been resolved properly, which is the case especially 
+     * if the expression contains a function, which short circuited the 
evaluation.
+     *  
+     * @param xpathStr
+     * @return list of variable expressions that may not have been resolved 
properly
+     */
+    private List<String> extractVariableExprs(String xpathStr) {       
+               ArrayList<String> variableExprs = new ArrayList<String>();
+               int firstVariable = xpathStr.indexOf("$"), 
+                       lastVariable = xpathStr.lastIndexOf("$"),
+                       firstFunction = xpathStr.indexOf("("); 
+               if ((firstVariable > 0 && // the xpath references a variable
+                               firstFunction > 0) || // the xpath contains a 
function
+                       (firstVariable < lastVariable)) { // the xpath 
references multiple variables  
+                       // most likely, the variable reference has not been 
resolved, so make that happen
+                       StringBuffer variableExpr = new StringBuffer();
+                       boolean quoted = false, doubleQuoted = false, variable 
= false;
+                       Name11Checker nameChecker = Name11Checker.getInstance();
+                       for (int index = 0; index < xpathStr.length(); index++) 
{
+                               char ch = xpathStr.charAt(index);
+                               if (ch == '\''){
+                                       quoted = !quoted;
+                               }
+                               if (ch == '\"') {
+                                       doubleQuoted = !doubleQuoted;
+                               }
+                               if (quoted || doubleQuoted){
+                                       continue;
+                               }
+                               if (ch == '$') {
+                                       variable = true;
+                                       variableExpr.setLength(0);
+                                       variableExpr.append(ch);
+                               } else {
+                                       if (variable) {
+                                               variableExpr.append(ch);
+                                               // in the name is qualified, 
don't check if its a qname when we're at the ":" character
+                                               if (ch == ':') {
+                                                       continue;
+                                               }
+                                               if (index == xpathStr.length() 
|| 
+                                                               
!nameChecker.isQName(variableExpr.substring(1))) {
+                                                       variable = false;
+                                                       
variableExpr.setLength(variableExpr.length() - 1);
+                                                       
variableExprs.add(variableExpr.toString());
+                                               }
+                                       }
+                               }
+                       }
+               }
+               return variableExprs;
+       }
+
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/XPath20ExpressionCompilerImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/XPath20ExpressionCompilerImpl.java?rev=741748&r1=741747&r2=741748&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/XPath20ExpressionCompilerImpl.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/XPath20ExpressionCompilerImpl.java
 Fri Feb  6 21:52:01 2009
@@ -19,7 +19,9 @@
 
 package org.apache.ode.bpel.compiler.v2.xpath20;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.namespace.QName;
@@ -30,6 +32,7 @@
 import javax.xml.xpath.XPathFactory;
 import javax.xml.xpath.XPathFactoryConfigurationException;
 
+import net.sf.saxon.om.Name11Checker;
 import net.sf.saxon.om.NamespaceConstant;
 
 import org.apache.commons.logging.Log;
@@ -155,6 +158,14 @@
             } catch (XPathExpressionException xpee) { 
                // swallow errors caused by uninitialized variable 
             }
+            for (String varExpr : extractVariableExprs(xpathStr)) {
+                expr = xpe.compile(varExpr);
+               try {
+                       expr.evaluate(node);
+               } catch (XPathExpressionException xpee) {
+                       // swallow errors caused by uninitialized variable 
+               }
+            }
         } catch (XPathFactoryConfigurationException xpfce) {
             __log.debug(xpfce);
             __log.info("Couldn't validate properly expression " + xpathStr);
@@ -174,4 +185,59 @@
         return _properties;
     }
 
+    /**
+     * Returns the list of variable references in the given XPath expression
+     * that may not have been resolved properly, which is the case especially 
+     * if the expression contains a function, which short circuited the 
evaluation.
+     *  
+     * @param xpathStr
+     * @return list of variable expressions that may not have been resolved 
properly
+     */
+    private List<String> extractVariableExprs(String xpathStr) {       
+               ArrayList<String> variableExprs = new ArrayList<String>();
+               int firstVariable = xpathStr.indexOf("$"), 
+                       lastVariable = xpathStr.lastIndexOf("$"),
+                       firstFunction = xpathStr.indexOf("("); 
+               if ((firstVariable > 0 && // the xpath references a variable
+                               firstFunction > 0) || // the xpath contains a 
function
+                       (firstVariable < lastVariable)) { // the xpath 
references multiple variables  
+                       // most likely, the variable reference has not been 
resolved, so make that happen
+                       StringBuffer variableExpr = new StringBuffer();
+                       boolean quoted = false, doubleQuoted = false, variable 
= false;
+                       Name11Checker nameChecker = Name11Checker.getInstance();
+                       for (int index = 0; index < xpathStr.length(); index++) 
{
+                               char ch = xpathStr.charAt(index);
+                               if (ch == '\''){
+                                       quoted = !quoted;
+                               }
+                               if (ch == '\"') {
+                                       doubleQuoted = !doubleQuoted;
+                               }
+                               if (quoted || doubleQuoted){
+                                       continue;
+                               }
+                               if (ch == '$') {
+                                       variable = true;
+                                       variableExpr.setLength(0);
+                                       variableExpr.append(ch);
+                               } else {
+                                       if (variable) {
+                                               variableExpr.append(ch);
+                                               // in the name is qualified, 
don't check if its a qname when we're at the ":" character
+                                               if (ch == ':') {
+                                                       continue;
+                                               }
+                                               if (index == xpathStr.length() 
|| 
+                                                               
!nameChecker.isQName(variableExpr.substring(1))) {
+                                                       variable = false;
+                                                       
variableExpr.setLength(variableExpr.length() - 1);
+                                                       
variableExprs.add(variableExpr.toString());
+                                               }
+                                       }
+                               }
+                       }
+               }
+               return variableExprs;
+       }
+
 }

Modified: 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/DataHandling20Test.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/DataHandling20Test.java?rev=741748&r1=741747&r2=741748&view=diff
==============================================================================
--- 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/DataHandling20Test.java 
(original)
+++ 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/DataHandling20Test.java 
Fri Feb  6 21:52:01 2009
@@ -47,6 +47,9 @@
     @Test public void testAssignActivity2() throws Throwable {
         go("/bpel/2.0/TestAssignActivity2");
     }
+    @Test public void testAssignActivity3() throws Throwable {
+        go("/bpel/2.0/TestAssignActivity3");
+    }
     @Test public void testAssignComplex() throws Throwable {
         go("/bpel/2.0/TestAssignComplex");
     }

Modified: 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java?rev=741748&r1=741747&r2=741748&view=diff
==============================================================================
--- 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
 (original)
+++ 
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/StructuredActivities20Test.java
 Fri Feb  6 21:52:01 2009
@@ -36,6 +36,7 @@
          // Test Flow with XPath10
          go("/bpel/2.0/TestFlowLinks");
      }
+       @Ignore
     @Test public void testIsolatedScopes1() throws Throwable {
         // Test Flow with XPath10
         go("/bpel/2.0/TestIsolatedScopes1");

Modified: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity2/TestAssign.bpel
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity2/TestAssign.bpel?rev=741748&r1=741747&r2=741748&view=diff
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity2/TestAssign.bpel
 (original)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity2/TestAssign.bpel
 Fri Feb  6 21:52:01 2009
@@ -43,6 +43,8 @@
         <variable name="myVar" messageType="test:TestAssignMessage"/>
         <variable name="otherMsgVar" messageType="test:TestAssignMessage"/>
         <variable name="strVar" type="xsd:string"/>
+        <variable name="txtVar" type="xsd:string"/>
+        <variable name="eprVar" type="xsd:anyType"/>
         <variable name="intVar" type="xsd:int"/>
     </variables>
 
@@ -77,6 +79,34 @@
                 <to>$otherMsgVar.TestPart</to>
             </copy>
         </assign>
+
+        <assign name="assign2">
+            <copy>
+                <from><literal>1</literal></from>
+                <to variable="intVar"/>
+            </copy>
+            <copy>
+                <from><literal>1</literal></from>
+                <to variable="intVar"/>
+            </copy>
+            <copy>
+                
<from>ode:process-property("dd:epr")/addr:EndpointReference/child::node()[position()=$intVar]</from>
+                <to variable="strVar"/>
+            </copy>
+            <copy>
+                
<from>ode:process-property("dd:epr")/addr:EndpointReference</from>
+                <to>$eprVar</to>
+            </copy>
+            <copy>
+                <from>$eprVar/child::node()[$intVar]</from>
+                <to variable="strVar"/>
+            </copy>
+            <copy>
+                <from>concat($eprVar/text()[1], $ode:pid)</from>
+                <to variable="strVar"/>
+            </copy>
+        </assign>
+
         <reply name="end" partnerLink="TestAssignPartnerLink" 
portType="test:TestAssignPortType"
                operation="testAssign" variable="otherMsgVar"/>
     </sequence>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/deploy.xml
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/deploy.xml?rev=741748&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/deploy.xml 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/deploy.xml 
Fri Feb  6 21:52:01 2009
@@ -0,0 +1,11 @@
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03";
+   xmlns:testws="http://xxx/yyy/ws";
+   xmlns:testbpel="http://xxx/yyy/bpel";>
+
+   <process name="testbpel:test" fileName="test.bpel">
+      <active>true</active>
+      <provide partnerLink="test-pl">
+         <service name="testws:testService" port="testPort"/>
+      </provide>
+   </process>
+</deploy>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.bpel
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.bpel?rev=741748&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.bpel 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.bpel 
Fri Feb  6 21:52:01 2009
@@ -0,0 +1,81 @@
+<process xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable";
+         xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/";
+         xmlns:op="http://www.w3.org/2005/xpath-functions";
+         xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+         xmlns:test="http://xxx/yyy";
+         xmlns:testws="http://xxx/yyy/ws";
+         xmlns:ode="http://www.apache.org/ode/type/extension";
+         xmlns:fn="http://www.w3.org/2005/02/xpath-functions";
+         xmlns:dbg="java:tc.Test"
+         name="test"
+         targetNamespace="http://xxx/yyy/bpel";
+         queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
+         expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">
+
+   <import location="test.wsdl"
+           namespace="http://xxx/yyy/ws";
+           importType="http://schemas.xmlsoap.org/wsdl/"/>
+
+  <partnerLinks>
+    <partnerLink name="test-pl" partnerLinkType="testws:test-plt" 
myRole="testService" />
+  </partnerLinks>
+  <variables>
+    <!-- invoking message for this process.  -->
+    <variable name="test-req-msg" messageType="testws:test-request-msg" />
+    <!-- response message for this process.  -->
+    <variable name="test-resp-msg" messageType="testws:test-response-msg" />
+    <variable name="id" type="xsd:string"/>
+
+    <variable name="is-it" type="xsd:boolean" />
+    <variable name="is-that" type="xsd:boolean" />
+  </variables>
+  <sequence name="HiddenSequence">
+    <receive createInstance="yes" name="Receive__test-request" 
partnerLink="test-pl"
+             variable="test-req-msg" portType="testws:testInterface" 
operation="test-op" />
+    <assign name="Assign__credentials_from_header">
+      <copy>
+        <from><literal>false</literal></from>
+        <to>$is-it</to>
+      </copy>
+      <copy>
+        <from><literal>false</literal></from>
+        <to>$is-that</to>
+      </copy>
+      <copy>
+        <from>string(false)</from>
+        <to>$id</to>
+      </copy>
+      <copy>
+        <from>string("")</from>
+        <to>$id</to>
+      </copy>
+      <copy>
+        <from>string($is-it)</from>
+        <to>$id</to>
+      </copy>
+      <copy>
+        <from>xsd:string(($is-it or $is-that))</from>
+        <to>$id</to>
+      </copy>
+      <copy>
+        <from>string(not($is-it or $is-that))</from>
+        <to>$id</to>
+      </copy>
+    </assign>
+    <assign name="Assign__test_response">
+      <copy>
+        <from 
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xquery1.0">
+        <![CDATA[
+        <test-response xmlns="http://xxx/yyy";>
+            <id>{$id}</id>
+        </test-response>
+        ]]>
+        </from>
+        <to variable="test-resp-msg" part="test-resp-part"></to>
+      </copy>
+    </assign>
+    <reply name="Reply__test_response" partnerLink="test-pl"
+           portType="testws:testInterface"
+           operation="test-op" variable="test-resp-msg" />
+  </sequence>
+</process>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.properties
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.properties?rev=741748&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.properties
 (added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.properties
 Fri Feb  6 21:52:01 2009
@@ -0,0 +1,22 @@
+#
+#    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.
+#
+
+namespace=http://xxx/yyy/ws
+service=testService
+operation=test-op
+request1=<message><test-req-part><test-request 
xmlns="http://xxx/yyy";><id></id><c-id>1</c-id>2<r-id>3</r-id></test-request></test-req-part></message>
+response1=.*<id>true</id>.*
\ No newline at end of file

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.wsdl
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.wsdl?rev=741748&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.wsdl 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.wsdl 
Fri Feb  6 21:52:01 2009
@@ -0,0 +1,66 @@
+<!--
+bcprt
+This software and related documentation are proprietary to UGS Corp.
+COPYRIGHT 2005 UGS CORP.  ALL RIGHTS RESERVED
+ecprt
+-->
+
+<wsdl:definitions name="test"
+                  targetNamespace="http://xxx/yyy/ws";
+                  xmlns="http://schemas.xmlsoap.org/wsdl/";
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
+                  xmlns:test="http://xxx/yyy";
+                  xmlns:testws="http://xxx/yyy/ws";
+                  xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype";>
+
+    <wsdl:types>
+        <xsd:schema>
+            <xsd:import namespace="http://xxx/yyy"; schemaLocation="test.xsd"/>
+        </xsd:schema>
+    </wsdl:types>
+
+   <wsdl:message name="test-request-msg">
+      <wsdl:part name="test-req-part" element="test:test-request"/>
+   </wsdl:message>
+
+   <wsdl:message name="test-response-msg">
+      <wsdl:part name="test-resp-part" element="test:test-response"/>
+   </wsdl:message>
+
+   <wsdl:portType name="testInterface">
+      <wsdl:documentation>
+           Test BPEL webservice.
+      </wsdl:documentation>
+
+      <!-- test operation -->
+      <wsdl:operation name="test-op">
+         <wsdl:input name="test-op-input"
+                     message="testws:test-request-msg"/>
+         <wsdl:output name="test-op-output"
+                      message="testws:test-response-msg"/>
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="testBinding" type="testws:testInterface">
+      <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
+      <wsdl:operation name="test-op">
+           <soap:operation style="document" soapAction="testSoapAction"/>
+           <wsdl:input><soap:body  use="literal"/></wsdl:input>
+           <wsdl:output><soap:body use="literal"/></wsdl:output>
+      </wsdl:operation>
+   </wsdl:binding>
+
+   <wsdl:service name="testService">
+       <wsdl:port binding="testws:testBinding" name="testPort">
+          <soap:address location="http://localhost:8080/ode/processes/test"/>
+      </wsdl:port>
+   </wsdl:service>
+
+  <plnk:partnerLinkType name="test-plt">
+     <plnk:role name="testService" portType="testws:testInterface"/>
+  </plnk:partnerLinkType>
+
+</wsdl:definitions>

Added: 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.xsd
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.xsd?rev=741748&view=auto
==============================================================================
--- 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.xsd 
(added)
+++ 
ode/trunk/bpel-test/src/test/resources/bpel/2.0/TestAssignActivity3/test.xsd 
Fri Feb  6 21:52:01 2009
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+bcprt
+This software and related documentation are proprietary to UGS Corp.
+COPYRIGHT 2005 UGS CORP.  ALL RIGHTS RESERVED
+ecprt
+  -->
+
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
+           xmlns:test="http://xxx/yyy";
+           targetNamespace="http://xxx/yyy";
+           elementFormDefault="qualified">
+
+   <xsd:element name="test-request">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element name="id" type="xsd:string"/>
+            <xsd:element name="c-id" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="r-id" type="xsd:string" minOccurs="0"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+
+   <xsd:element name="test-response">
+      <xsd:complexType>
+         <xsd:sequence>
+            <xsd:element name="id" type="xsd:string"/>
+            <xsd:element name="c-id" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="r-id" type="xsd:string" minOccurs="0"/>
+         </xsd:sequence>
+      </xsd:complexType>
+   </xsd:element>
+
+</xsd:schema>


Reply via email to