Restricting a choice complex type

Hello Everyone,
We have this XSD that allows users to register other users on our system with XML requests. These users are known as viewers and they may register a preferred payment type for them.
<xsd:element name="viewerInfo">
          <xsd:complexType>
               <xsd:sequence>
                    <!-- viewerPwd should be used if you wish to change the viewers password  -->
                    <xsd:element ref="viewerPwd" minOccurs="0"/>
                    <xsd:element ref="age" minOccurs="0"/>
                    <xsd:element ref="gender" minOccurs="0"/>
                    <xsd:element ref="fullname" minOccurs="0"/>
                    <xsd:element ref="address" minOccurs="0"/>
                    <xsd:element ref="city" minOccurs="0"/>
                    <xsd:element ref="zipCode" minOccurs="0"/>
                    <xsd:element ref="country" minOccurs="0"/>
                    <xsd:element ref="email" minOccurs="0"/>
                    <xsd:element ref="telephoneNumber" minOccurs="0"/>
                    <xsd:element ref="mobilePhoneNumber" minOccurs="0"/>
                    <xsd:element ref="ispServer" minOccurs="0"/>
                    <xsd:element ref="ispUsername" minOccurs="0"/>
                    <xsd:element ref="ispPassword" minOccurs="0"/>
                    <xsd:element ref="parentalControl" minOccurs="0"/>
                    <xsd:element ref="parent" minOccurs="0"/>
                    <xsd:element ref="houseId" minOccurs="0"/>
                    <xsd:element name="payPrefs" type="payMethodType" minOccurs="0"/>
                    <xsd:element name="twalletBalance" type="xsd:double" minOccurs="0"/>
                    <xsd:element name="notificationNumber" type="xsd:string" minOccurs="0"/>
                    <xsd:element name="favouriteEmail" type="xsd:string" minOccurs="0"/>
                    <xsd:element name="favouriteMms" type="xsd:string" minOccurs="0"/>
                    <xsd:element name="favouriteSms" type="xsd:string" minOccurs="0"/>
               </xsd:sequence>
          </xsd:complexType>
     </xsd:element>Here is the payMethodType complex type.
<xsd:element name="payMethod" type="payMethodType"/>
          <xsd:complexType name="payMethodType">
               <xsd:sequence>
                    <xsd:choice>
                         <xsd:element ref="creditCard"/>
                         <xsd:element ref="prepaid"/>
                         <xsd:element ref="ca"/>
                         <xsd:element ref="phoneBilling"/>
                         <xsd:element ref="viewerPreferred"/>
                    </xsd:choice>
               </xsd:sequence>
          </xsd:complexType> payMethodType is used for two things:
1. Registering a viewer
2. Making a payment request
payPrefs at the moment allows you to have as a payPref one of the 5 following options . However payMethod is also used for payment requests and message requests. In these cases it makes sense that you can make either a cc|prepaid|ca|phone|viewerpreferred payment. However it does not make sense to register a viewer to have as their payPrefs as "viewerPreferred" .
Is their any way that I can reuse the payMethodType for both the registering and the payment requests but put a restriction on the registering of a viewer that it can only be one of cc|prepaid|ca|phone| ???
If their is no solution to my question, can someone recommend an alternative ?
Thanks guys,
Joyce

Use complexContent with an extension
Set the payPrefs element as
<xsd:element name="payPrefs" type="payRefType" minOccurs="0"/> Define payRefType as
<xsd:complexType name="payRefType">
  <xsd:choice>
   <xsd:element ref="creditCard"/>
   <xsd:element ref="prepaid"/>
   <xsd:element ref="ca"/>
   <xsd:element ref="phoneBilling"/>
</xsd:choice>
</xsd:complexType>Set payMethod as
<xsd:element name="payMethod" type="payMethodType"/>
<xsd:complexType name="payMethodType">
  <xs:complexContent>
   <xs:extension base="payRefType">
    <xsd:sequence>
     <xsd:element ref="viewerPreferred"/>
   </xsd:sequence>
  <xs:extension>
</xs:complexContent>
</xsd:complexType>

Similar Messages

  • Web Services Data Control - Complex type bindings

    I am calling a web services using the web service data control. The request object is a complex type. I observed that some data managed to bind but some failed to bind (empty value on the outbound SOAP payload). Specifically, all the "scalar" elements within the complex type managed to bind. For example the following element snippet within the overall complex data did not bind the value entered to the SOAP payload:
    <xsd:element minOccurs="0" name="zones">
    <xsd:annotation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="zone"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    While the following complex element within the same payload managed to bind value entered:
    <xsd:element minOccurs="0" name="orderBy">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" name="orderByItem">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="fieldName"/>
    <xsd:element type="xsd:boolean" name="ascending"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    Any bug report of this?
    Cheers
    Boon

    Hi Frank,
    Thanks for the response. I looked further into the problem. This is what I found.
    This is error message:
    javax.xml.ws.soap.SOAPFaultException: Foundation Engine Error: '' is an Invalid search zone. Valid zones include: 'id_object','name','published.name','comment_text','published.comment_text','note','document_extension','published.document_extension','physical_id','file_title','published.created_by','content'
    I turned on the trace and found the following message:
    [SRC_METHOD: parse] [225] No XML file /ObjectiveSearch/send/params/searchRequest/searchInput/searchInfo/zones/zones.xml for metaobject ObjectiveSearch.send.params.searchRequest.searchInput.searchInfo.zones.zones
    But when I looked into the model directory, I only able to find:
    H:\JDeveloper\AdvancedSearch\Model\adfmsrc\ObjectiveSearch\send\params\searchRequest\searchInput\searchInfo\zones\zone.xml
    It seems that WS data controller adapter is looking for zones/zones.xml. The wsdl specify zones with sub-elements(sequence) of zone (see wsdl below). The correct structure (zones/zone) is shown on the web service data control pallete and I can bind it to a JSF page.
    wsdl:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wscoor="http://docs.oasis-open.org/ws-tx/wscoor/2006/06" xmlns:tns="urn:objective.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xi="http://www.w3.org/2001/XInclude" targetNamespace="urn:objective.com" name="searchService">
    <wsp:Policy wsu:Id="WSSPortBindingInputPolicy">
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:TransportBinding>
    <wsp:Policy>
    <wsp:All>
    <sp:TransportToken>
    <wsp:Policy>
    <sp:HttpsToken RequireClientCertificate="false"/>
    </wsp:Policy>
    </sp:TransportToken>
    <sp:AlgorithmSuite>
    <wsp:Policy>
    <sp:Basic128/>
    </wsp:Policy>
    </sp:AlgorithmSuite>
    <sp:Layout>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:Strict/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Layout>
    <sp:IncludeTimestamp/>
    </wsp:All>
    </wsp:Policy>
    </sp:TransportBinding>
    <sp:EndorsingSupportingTokens>
    <wsp:Policy>
    <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:WssX509V3Token10/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:X509Token>
    </wsp:Policy>
    </sp:EndorsingSupportingTokens>
    <sp:SignedParts>
    <sp:Body/>
    </sp:SignedParts>
    <sp:SignedSupportingTokens>
    <wsp:Policy>
    <wsp:All>
    <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
    <wsp:Policy>
    <sp:NoPassword/>
    </wsp:Policy>
    </sp:UsernameToken>
    </wsp:All>
    </wsp:Policy>
    </sp:SignedSupportingTokens>
    <sp:Wss11>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:MustSupportRefIssuerSerial/>
    <sp:MustSupportRefKeyIdentifier/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Wss11>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <wsp:Policy wsu:Id="WSSPortBindingOutputPolicy">
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:EndorsingSupportingTokens>
    <wsp:Policy>
    <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Always">
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:WssX509V3Token10/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:X509Token>
    </wsp:Policy>
    </sp:EndorsingSupportingTokens>
    <sp:SignedParts>
    <sp:Body/>
    </sp:SignedParts>
    <sp:Wss11>
    <wsp:Policy>
    <wsp:ExactlyOne>
    <wsp:All>
    <sp:MustSupportRefIssuerSerial/>
    <sp:MustSupportRefKeyIdentifier/>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    </sp:Wss11>
    </wsp:All>
    </wsp:ExactlyOne>
    </wsp:Policy>
    <types>
    <xsd:schema targetNamespace="urn:objective.com">
    <xsd:simpleType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="logicalOperatorType">
    <xsd:annotation>
    <xsd:documentation>The type of join of the condition 'and' 'or'.
                   </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="and"/>
    <xsd:enumeration value="or"/>
    </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="expressionType">
    <xsd:sequence>
    <xsd:choice maxOccurs="unbounded" minOccurs="0">
    <xsd:element maxOccurs="unbounded" minOccurs="0" type="tns:expressionType" name="expression"/>
    <xsd:element maxOccurs="unbounded" minOccurs="0" type="tns:metadataCondition" name="condition"/>
    </xsd:choice>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="metadataCondition">
    <xsd:annotation>
    <xsd:documentation>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:all>
    <xsd:element type="tns:logicalOperatorType" name="logicalOperator"/>
    <xsd:element type="xsd:string" name="field"/>
    <xsd:element type="xsd:string" name="operator"/>
    <xsd:element minOccurs="0" type="xsd:string" name="value"/>
    </xsd:all>
    </xsd:complexType>
    <xsd:element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="searchRequest">
    <xsd:annotation>
    <xsd:documentation>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="searchInput">
    <xsd:complexType>
    <xsd:all>
    <xsd:element name="searchInfo">
    <xsd:complexType>
    <xsd:all>
    <xsd:element minOccurs="0" name="objectTypes">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" type="xsd:string" name="objectType">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:int" name="numResults">
    <xsd:annotation>
    <xsd:documentation>The maximum number of results to     search for.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:boolean" name="showDeleted">
    <xsd:annotation>
    <xsd:documentation>Show deleted objects in the search results?</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="textQuery">
    <xsd:annotation>
    <xsd:documentation>A Verity text query, by default the     syntax of the query is "Internet" but can also be changed     to 'Verity' via the query syntax argument.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:string" minOccurs="0" name="syntax">
    <xsd:annotation>
    <xsd:documentation>The syntax of the search query either
                                                                     'Internet' (default) or 'Verity'.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" name="searchScopes">
    <xsd:annotation>
    <xsd:documentation>Search scopes to include in the
                                                                     search.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="searchScope"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" name="zones">
    <xsd:annotation>
    <xsd:documentation>Search zones to include in the
                                                                     search.</xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element type="xsd:string" maxOccurs="unbounded" minOccurs="1" name="zone"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element type="xsd:string" minOccurs="0" name="attributes">
    <xsd:annotation>
    <xsd:documentation>The attributes used when fetching
                                                                     results (these attributes are passed to inspect).
                                                                </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="behaviours">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="sections">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" name="orderBy">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="1" name="orderByItem">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="fieldName"/>
    <xsd:element type="xsd:boolean" name="ascending"/>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="searchRoot">
    <xsd:annotation>
    <xsd:documentation>The root container of the search, for a constrained search.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="depth">
    <xsd:annotation>
    <xsd:documentation>The depth to traverse.</xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    </xsd:all>
    </xsd:complexType>
    </xsd:element>
    <xsd:element xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:objective.com:ecosys" name="searchResult">
    <xsd:complexType>
    <xsd:all>
    <xsd:element type="xsd:string" name="resultId">
    <xsd:annotation>
    <xsd:documentation></xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:int" name="numberOfResults">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element type="xsd:boolean" name="sorted">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    <xsd:element minOccurs="0" type="xsd:string" name="sortError">
    <xsd:annotation>
    <xsd:documentation>     </xsd:documentation>
    </xsd:annotation>
    </xsd:element>
    </xsd:all>
    <xsd:attribute name="instanceDomain" type="xsd:string"/>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    </types>
    <message name="searchRequest">
    <part name="searchRequest" element="tns:searchRequest"/>
    </message>
    <message name="searchResult">
    <part name="searchResult" element="tns:searchResult"/>
    </message>
    <portType name="searchPortType">
    <operation name="send">
    <input message="tns:searchRequest"/>
    <output message="tns:searchResult"/>
    </operation>
    </portType>
    <binding name="searchBinding" type="tns:searchPortType">
    <wsp:PolicyReference URI="#WSSPortBindingInputPolicy"/>
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
    <operation name="send">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal"/>
    </input>
    <output>
    <wsp:PolicyReference URI="#WSSPortBindingOutputPolicy"/>
    <soap:body use="literal"/>
    </output>
    </operation>
    </binding>
    <service name="searchService">
    <documentation>"search" service.</documentation>
    <port name="searchPort" binding="tns:searchBinding">
    <soap:address location="https://youContentServer:443/services/search"/>
    </port>
    </service>
    </definitions>
    Cheers
    Boon

  • JAXB problem to manage nested complex types

    Hi!
    I've defined a XSD schema to design a folder structure. So I created a complex type which contains a sequence of 'folder' type elements.
    The folder type element includes several elements and a final one which is another 'folder' type element.
    So it is easy to model a general folder structure, no matter the depth and length.
    When I compile it with JAXB to have an OO view I catch the following error:
    Nested type Folder hides an enclosing type
    The fragment of code which caused the error is:
    * Java content class for Folder complex type.
    * <p>The following schema fragment specifies the expected content contained within this java content object. (defined at file:/C:/Progetti/folderschemaexample.xsd line 10)
    * <p>
    * <pre>
    * <complexType name="Folder">
    *   <complexContent>
    *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
    *       <choice maxOccurs="unbounded" minOccurs="0">
    *         <element name="folder_name" type="{http://www.w3.org/2001/XMLSchema}string"/>
    *         <element name="security" type="{}ACL"/>
    *         <element name="folder" type="{}Folder"/>
    *       </choice>
    *     </restriction>
    *   </complexContent>
    * </complexType>
    * </pre>
    */The error is raised when JAXB tries to compile a Folder interface as inner in another Folder interface (generated.Folder.Folder).
    Is any JAXB guru able to suggest me how to exit from this situation to create succesfully a JAXB compliant schema which models this folder structure?
    TIA

    Hi!
    I've defined a XSD schema to design a folder structure. So I created a complex type which contains a sequence of 'folder' type elements.
    The folder type element includes several elements and a final one which is another 'folder' type element.
    So it is easy to model a general folder structure, no matter the depth and length.
    When I compile it with JAXB to have an OO view I catch the following error:
    Nested type Folder hides an enclosing type
    The fragment of code which caused the error is:
    * Java content class for Folder complex type.
    * <p>The following schema fragment specifies the expected content contained within this java content object. (defined at file:/C:/Progetti/folderschemaexample.xsd line 10)
    * <p>
    * <pre>
    * <complexType name="Folder">
    *   <complexContent>
    *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
    *       <choice maxOccurs="unbounded" minOccurs="0">
    *         <element name="folder_name" type="{http://www.w3.org/2001/XMLSchema}string"/>
    *         <element name="security" type="{}ACL"/>
    *         <element name="folder" type="{}Folder"/>
    *       </choice>
    *     </restriction>
    *   </complexContent>
    * </complexType>
    * </pre>
    */The error is raised when JAXB tries to compile a Folder interface as inner in another Folder interface (generated.Folder.Folder).
    Is any JAXB guru able to suggest me how to exit from this situation to create succesfully a JAXB compliant schema which models this folder structure?
    TIA

  • Cannot assign value to a Variable of Complex Type beyond index 1

    Hello:
    I have a variable defined as a complex type as followed. I tried to assign a value to each of the two elements but it only allows me to assign to the 'element#1.
    This statement that tries to assign a value into element#2 will not work, if I assign with '[1]' for the first element it will work:
    <copy> <---- THIS WORKS
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[1]/ns9:pname"/>
    </copy>
    <copy> <---- THIS DOES NOT WORK
    <from expression="'John'"/>
    <to variable="My_Variable"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item[2]/ns9:pname"/>
    </copy>
    Is there something wrong with my definition below that allows only element#1 to be refererenced but not element#2???? Am I missing some kind of initialization that is needed to initialize both elements????
    Here are my message and Complex Type definitions:
    <variable name="My_Variable" messageType="ns8:args_out_msg"/>
    <message name="args_out_msg">
    <part name="My_Collection" element="db:My_Collection"/>
    </message>
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    The error msg it gives me is as followed:
    [2010/09/04 00:47:59] Error in <assign> expression: <to> value is empty at line "254". The XPath expression : "" returns zero node, when applied to document shown below:less
    oracle.xml.parser.v2.XMLElement@1fa7874
    [2010/09/04 00:47:59] "{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure" has been thrown.less
    -<selectionFailure xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
    -<part name="summary">
    <summary>
    XPath query string returns zero node.
    According to BPEL4WS spec 1.1 section 14.3, The assign activity &lt;to&gt; part query should not return zero node.
    Please check the BPEL source at line number "254" and verify the &lt;to&gt; part xpath query.
    </summary>
    </part>
    </selectionFailure>
    Thanks
    Newbie

    Hello:
    Base on the suggestion to use 'append' instead of 'copy', I tried to define a 'singleNode' which is of type 'Collection_Type_Struct' so I can append this individual 'struct' into my array (i.e. as the 2nd. element of my array "/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"), but I am getting an error in defining this variable as:
    <variable name="singleNode" element="Collection_Type_Struct"/> <--- error
    Can someone tell me how should I define "singleNode" so I can put a value in it and then append this 'singleNode' into the array:
    <variable name="singleNode" element=" how to define this????"/>
    <assign>
    <copy>
    <frem expression="'Element2Value'"/>
    <to variable="singleNode"
    part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item/ns9:pname"/>
    </copy>
    </assign>
    <bpelx:assign>
    <bpelx:append>
    <from variable="singleNode" query="/ns9:My_Collection/ns9:Collection/ns9:Collection_Item"/>
    <to variable="My_Variable"
    "part="My_Collection"
    query="/ns9:My_Collection/ns9:Collection"/>
    </bpelx:append>
    </bpelx:assign>
    Again here is my definition in my .xsd file:
    <element name="My_Collection">
    <complexType>
    <sequence>
    <element name="Collection" type="db:Collection_Type" db:index="2" db:type="Array" minOccurs="0" nillable="true"/>
    <element name="Ret" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="Collection_Type">
    <sequence>
    <element name="Collection_Item" type="db:Collection_Type_Struct" db:type="Struct" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    <complexType name="Collection_Type_Struct">
    <sequence>
    <element name="pname" db:type="VARCHAR2" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="25"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    Thanks for any help!!!!

  • SSIS Web Service Complex Type Inputs

    Hi,
    I am trying to make a call to a third-party web service in my SSIS package.  The request has custom complex data type as the parameter.  As has been pointed out in this forum before, the Web Service Task only lets you assign the outside parameter from a variable, not the internal parameters needed to create the complex data type. 
    To be more specific, the web service input wants a 'ContactSearchRequest' parameter.  I can assign this from a variable.  If I click on the 'value' field under the 'Input' section for the web service task, it shows me that the 'ContactSearchRequest' data type is made up of the following:
    contactId - long
    numResults - int
    offset - int
    passKey - string
    searchParam - string
    sortType - int
    Unfortunately, I can't assign these internal parameters from a variable, at least not through the web service task interface.
    My next thought was to create a variable of type 'object' and then set it in a script task prior to calling the web service task.  However, I'm not sure exactly how to do this.  How will my script know about the class definition of 'ContactSearchRequest'?  Do I just create a class called 'ContactSearchRequest'?
    I've used this same web service in a .NET C# project and after I imported the web service, visual studio knew all about the custom data types.  How do I do something similar in SSIS?
    Of course, the easiest solution would for Integration Service to allow me to set those internal parameters via variables, but we're apparently not there yet.
    Any suggestions?
    Thanks,
    Trey

    Hi All,
    I am trying to pull the data from a webservice. The method expects 5 parameters out of which one is a complex type. And it is fine to pass Null value for this parameter.
    The method expects a complex data type UrlReportFilter
    as follows:
    <simpleType name="UrlReportFilterOperatorEnum">
     <restriction base="xsd:string">
    <enumeration value="contains"/>
    <enumeration value="starts_with"/>
    <enumeration value="ends_with"/>
    <enumeration value="not_contains"/>
    <enumeration value="not_starts_with"/>
    <enumeration value="not_ends_with"/>
    <enumeration value="match_regular_expression"/>
    <enumeration value="not_match_regular_expression"/>
    <enumeration value="exact_match"/>
    </restriction>
    </simpleType>
    <complexType name="UrlReportFilter">
    <sequence>
    <element name="caseSensitive" type="xsd:boolean"/>
    <element name="operand" nillable="true" type="xsd:string"/>
    <element name="operator" nillable="true" type="akaaimsdt:UrlReportFilterOperatorEnum"/>
    </sequence>
    </complexType>
    How to assign values and use this in VB.NET code? 
    I am using following code to assign the values to the properties in VB.NET code in Script task but it is throwing the error below:
     Dim vUrlFilter As New Akamine.UrlReportFilter With {.caseSensitive = False, .operand = ""}
    Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Web.Services.Protocols.SoapException: AWSFault:Error in processing:(com..aws.services.exceptions.InvalidColumnException: Invalid column:
    for report:H
    Any help on this would be appreciated!!
    Thanks,
    Ruby
    Thanks & Regards

  • Problem with abstract complex type in substitution group.

    Hi all,
    I have three xsds, A, B, C.XSD respectively. A.xsd:There is a substitution group and its complex type declared as abstract and element that uses them. B.xsd has the same structure as A except that it has complex type derived from complex type from A. C.xsd is same as B.xsd.
    The xml files of A and B validate but not of C.
    It gives the following error:
    This file is not valid. Unexpected element'signatureString' in element author. Expected signatureString,signatureText.
    Any help at the earliest is greatly appreciated.
    the code of each xsds is as follows:
    A.XSD:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:PARTICIPATION="Participation" targetNamespace="Participation">
         <!-- ================================================= -->
         <!-- Package: Participation -->
         <!-- ================================================= -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- Class: <<ST>> SignatureString -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <xs:element name="signatureString" type="PARTICIPATION:SignatureString" substitutionGroup="PARTICIPATION:signatureText"/>
         <xs:complexType name="SignatureString">
              <xs:complexContent>
                   <xs:extension base="PARTICIPATION:SignatureText">
                        <xs:attribute name="value" type="xs:string" use="required"/>
                   </xs:extension>
              </xs:complexContent>
         </xs:complexType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- Class: SignatureText -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <xs:element name="signatureText" type="PARTICIPATION:SignatureText" abstract="true"/>
         <xs:complexType name="SignatureText" abstract="true"/>
    </xs:schema>
    B.xsd:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:CM3202="Common3202" xmlns:PARTICIPATION="Participation" targetNamespace="Common3202">
         <xs:import namespace="Participation" schemaLocation="Datatypes3203/RDT/Participation.xsd"/>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- Class: <<Participation>> PractitionerParticipation -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <xs:element name="practitionerParticipation" type="CM3202:PractitionerParticipation" abstract="true"/>
         <xs:complexType name="PractitionerParticipation" abstract="true">
              <xs:sequence>
                   <!--xs:element name="signatureText" type="PARTICIPATION:SignatureText" minOccurs="0"/-->
                   <xs:element ref="PARTICIPATION:signatureText"/>
                   </xs:sequence>
         </xs:complexType>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- Class: <<Participation>> Author -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <xs:element name="author" type="CM3202:Author" substitutionGroup="CM3202:practitionerParticipation"/>
         <xs:complexType name="Author">
              <xs:complexContent>
                   <xs:extension base="CM3202:PractitionerParticipation"/>
              </xs:complexContent>
         </xs:complexType>
    </xs:schema>
    C.xsd
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:VS3203="VitalSigns3203" xmlns:CM3202="Common3202" targetNamespace="VitalSigns3203">
         <xs:import namespace="Common3202" schemaLocation="Common3202.xsd"/>
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <!-- Class: <<Observation>> VitalSignsObservationEvent -->
         <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
         <xs:element name="vitalSignsObservationEvent" type="VS3203:VitalSignsObservationEvent"/>
         <xs:complexType name="VitalSignsObservationEvent">
              <xs:sequence>
                   <xs:element name="author" type="CM3202:Author" minOccurs="0">
                   </xs:element>
              </xs:sequence>
         </xs:complexType>
    </xs:schema>

    Hi all,
    This seems to be a bug unless someone of you have a solution.
    Also I ma new to xml/xsd world, so could someone please give the differences between xsi:type vs substitution groups with both element and complex type being abstract. Can this scenario be accomplished by usuage of choice groups.
    Also can anyone suggest any other good xml forums.
    Please let me know.
    Thanks in advance.

  • Complex types with single array type element, marshaling exception

    For our JAXRPC web service, we have a complex type, as follows:
    <xs:complexType name = "SomeFault">
    <xs:sequence>
    <xs:element name = "errorMessages" type="some:ErrorMessageWSType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>
    <xs:simpleType name = "ErrorMessageWSType">
    <xs:restriction base = "xs:NMTOKEN">
    <xs:enumeration value = "INVALID_1"/>
    <xs:enumeration value = "INVALID_2"/>
    <xs:enumeration value = "INVALID_3"/>
    </xs:restriction>
    </xs:simpleType>
    We are running into Marshaling exceptions on the server side when the response/fault complex type has a single array type field.
    weblogic.wsee.codec.CodecException: Failed to encode
    com.bea.xml.XmlException: failed to find a suitable binding type for use in marshalling object "[Lnamespace.type.ErrorMessageWSType;@693767e9".  using schema type: t=SomeFault@http://namespace/SOME/v1 java type:namespace.type.ErrorMessageWSType[]
    If I change SomeFault, by adding another element, the error goes away.
    <xs:complexType name = "SomeFault">
    <xs:sequence>
    <xs:element name = "errorMessages" type="some:ErrorMessageWSType" maxOccurs="unbounded" />
    <xs:element name = "dummyString" type="xsd:string" minOccurs="0" />
    </xs:sequence>
    </xs:complexType>
    Am I doing something wrong during the wsdlc code generation or is this a known issue?
    <wsdlc srcWsdl="${wsdl.dir}/${wsdl.file.name}"
    destJwsDir="${gen.src.dir}/gen-src-jar"
    destImplDir="${main.src.dir}"
    packageName="${package.prefix}" type="JAXRPC">

    Any luck with this? I am running into the same error. Apparently, this is not an issue with Java binding, but when invoking remote EJBs, we run into this. I am running 10.1.3.1 and the error is:
    <fault>
    <bindingFault xmlns="http://schemas.oracle.com/bpel/extension">
    <part name="summary">
    <summary>
    com.collaxa.cube.ws.wsif.providers.ejb.WSIFOperation_EJB@e26dbf : Could not invoke 'getIdentityInfo'; nested exception is:
         org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </summary>
    </part>
    <part name="detail">
    <detail>
    org.collaxa.thirdparty.apache.wsif.WSIFException: Class 'ca.bc.gov.pssg.c3.webservices.identitymanagement.Identity' is not compatible; nested exception is:
         oracle.xml.parser.v2.XMLDOMException: cannot add a node belonging to a different document
    </detail>
    </part>
    </bindingFault>
    </fault

  • Xsd:list using complex type ??

    Hello,
    I have modified world.xsd from (www.manojc.com... sample8)
    My customer wants to return a list of complex types. In this case list of Country (CountryList)
    Here is my schema and I run autotype target. produces errors
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    xmlns:tns="http://tutorial/sample8/"
    targetNamespace="http://tutorial/sample8/">
    <xsd:complexType name="World">
    <xsd:sequence>
    <xsd:element type="xsd:string" name="name"
    minOccurs="1" nillable="true" maxOccurs="1" />
    <xsd:element type="tns:Country" name="country"
    minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="population" type="xsd:long" />
    </xsd:complexType>
    <xsd:complexType name="Country">
    <xsd:sequence>
    <xsd:element type="xsd:string" name="name" minOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="population" type="xsd:long" />
    <xsd:attribute name="abbreviations">
    <xsd:simpleType>
    <xsd:list itemType="tns:TwoCharString" />
    </xsd:simpleType>
    </xsd:attribute>
    </xsd:complexType>
    <xsd:simpleType name="CountryList">
         <xsd:list itemType="tns:Country"/>
    </xsd:simpleType>
    <xsd:element name="countries" type="tns:CountryList"/>
    <xsd:complexType name="EUCountry">
    <xsd:complexContent>
    <xsd:extension base="tns:Country">
    <xsd:sequence>
    <xsd:element name="exchangeInfo" type="tns:ExchangeInformation" />
    </xsd:sequence>
    </xsd:extension>
    </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="TwoCharString">
    <xsd:restriction base="xsd:NCName">
    <xsd:length value='2' />
    </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="ExchangeInformation">
    <xsd:simpleContent>
    <xsd:restriction base="xsd:float">
    <xsd:maxInclusive value="10000.0" />
    <xsd:attribute name="currency" type="tns:TwoCharString" />
    </xsd:restriction>
    </xsd:simpleContent>
    </xsd:complexType>
    </xsd:schema>

    What I have tryed is to do analyze the dbms_xml packages and I tried to do it the same way with the result:
    SQL> declare
    2 bar long raw;
    3
    4 FUNCTION foo RETURN raw IS
    5 EXTERNAL
    6 NAME "tidyCreate"
    7 LANGUAGE C
    8 LIBRARY TIDY_LIB
    9 PARAMETERS ( RETURN );
    10 begin
    11 bar := '1';
    12 bar := foo;
    13
    14 dbms_output.put_line(bar);
    15 end;
    16 /
    declare
    FEHLER in Zeile 1:
    ORA-06525: Lõngenfehlanpassung bei CHAR- oder RAW-Daten
    ORA-06512: in Zeile 4
    ORA-06512: in Zeile 12

  • BPEL PM supports Complex Type?

    In my BPEL process flow, I am trying to invoke a web service operation with Response message an array of Complex Type. When I tried to look the output of the operation from the debug mode of the BPEL Console, I got a message "Error:internal bug (#321) object:id0 not found in object store".
    The operation is defined as
    <wsdl:operation name="getEffects">
    <wsdlsoap:operation soapAction="" />
    <wsdl:input name="getEffectsRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:IBCDS" use="encoded" />
    </wsdl:input>
    <wsdl:output name="getEffectsResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:IBCDS" use="encoded" />
    </wsdl:output>
    </wsdl:operation>
    the Complex Types are defined as
    <complexType name="Effect">
    <sequence>
    <element name="ID" nillable="true" type="xsd:string" />
    <element name="classification" nillable="true" type="xsd:string" />
    <element name="coe" type="xsd:byte" />
    <element name="com" type="xsd:byte" />
    <element name="country" nillable="true" type="xsd:string" />
    <element name="dateMod" nillable="true" type="xsd:dateTime" />
    <element name="deClassDate" nillable="true" type="xsd:dateTime" />
    <element name="def" type="xsd:byte" />
    <element name="description" nillable="true" type="xsd:string" />
    <element name="det" type="xsd:byte" />
    <element name="infl" type="xsd:byte" />
    <element name="name" nillable="true" type="xsd:string" />
    <element name="reliability" type="xsd:double" />
    <element name="tra" type="xsd:byte" />
    </sequence>
    </complexType>
    <complexType name="ArrayOfEffect">
    <complexContent>
    <restriction base="soapenc:Array">
    <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:Effect[]" />
    </restriction>
    </complexContent>
    </complexType>
    and the input/output for the operation are define as
    <wsdl:message name="getEffectsRequest" />
    <wsdl:message name="getEffectsResponse">
    <wsdl:part name="getEffectsReturn" type="impl:ArrayOfEffect" />
    </wsdl:message>
    My project involves lots of Complex Type data, I like to know if the current BPEL PM support the Complex Type that I just described?

    Hi June,
    BPEL PM Supports complex type return. I am not why you see this error in debugger. can you enable the bpel domain debug (under BPEL Console-->Manage Domain-->Logging) and send us the debug log? Is it possible to send your process (including wsdl + xsd) to our support email at [email protected]?

  • Complex type not permitted !!

    Hi,
    I have created a Data Type FileInput->Record->Row->First Name, Last Name.
    Activated this Data type FileInput.
    Now when I try to create another data type FileOutput and assign the Type as FileInput I get a message box saying "Complex type not permitted (restrictions and enhancements of complex types are not supported)".
    When I try to change the Category of FILEINPUT, I am unable to do so as it is not editable.
    Please let me know where am I going wrong.
    Apologize if this is a very silly question, bcoz I am new to XI.
    Thanks in advance.
    Regards,
    Vivek

    BTW
    assigning types to another data types
    might be used if the assigned structure is
    a smaller one let me give you an example:
    data type - <b>NameDT</b> :
    name
    secondname
    surname
    data type - <b>PersonDT</b>:
    NameDT (name, secondname, surname)
    Address
    year
    Reference:
    http://help.sap.com/saphelp_nw04/helpdata/en/a5/04623c4f69b712e10000000a114084/content.htm
    Regards,
    michal

  • Map xsd complex type to existing java class without adding JAXB annotations

    Hello
    I've got a case where I should map an xsd complex type to an existing Java class without modifying that class, i.e. without adding JAXB annotations to that class.
    Is this possible somehow?
    As far as I've understood, the <javaType> declaration (adapter, parse/print methods) can only be used for xsd simple types.
    Thanks, Tom

    It should be possible to implement an XmlAdapter<...,...> which performs the required conversion between the original type and a JAXB-annotated type. Then, at the places where the original type is used, the @XmlJavaTypeAdapter annotation would be used.
    The xjc compiler supports this for xsd simple types (xjc:javaType annotation), but not for complex types.
    Any idea why this is restricted to simple types?
    Would it be possible to implement a xjc plugin which does this for complex types?
    Thanks Tom.

  • Soap encoded array of complex type, impossible to map?

    Hello,
    can anyone please tell me if the XI has problems (or is unable) to read from soap-encoded arrays of a complex type.
    As far as I know this is conform to SOAP 1.1
    We developed this webservice for a client, who says, he cannot map this kind of array in his XI.
    Would it be better to do it this way ?
    <complexType name="ActivityList">
      <sequence>
        <element name="ActivityEl" maxOccurs="unbounded" type="Activity"/>
      </sequence>
    </complexType>
    Excerpt of the WSDL:
        <wsdl:message name="getDataForPbnrResponse">
            <wsdl:part name="getDataForPbnrReturn" type="impl:ArrayOf_tns1_Activity"/>
        </wsdl:message>
            <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ipslsv01vm02:9080/axis/services/QEC-Service">
                <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
                <complexType name="ArrayOf_tns1_Activity">
                    <complexContent>
                        <restriction base="soapenc:Array">
                            <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:Activity[]"/>
                        </restriction>
                    </complexContent>
                </complexType>
                <complexType name="ArrayOf_tns1_ActivityFeedback">
                    <complexContent>
                        <restriction base="soapenc:Array">
                            <attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:ActivityFeedback[]"/>
                        </restriction>
                    </complexContent>
                </complexType>
            </schema>
    Part ot the response:
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
      <ns1:getDataForPbnrResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://ipslsv01vm02:9080/axis/services/QEC-Service">
       <getDataForPbnrReturn xsi:type="soapenc:Array" soapenc:arrayType="ns3:Activity[7]" xmlns:ns2="http://www.w3.org/2002/12/soap-encoding" xmlns:ns3="urn:BeanService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <item href="#id0"/>
        <item href="#id1"/>
        <item href="#id2"/>
        <item href="#id3"/>
        <item href="#id4"/>
        <item href="#id5"/>
        <item href="#id6"/>
       </getDataForPbnrReturn>
      </ns1:getDataForPbnrResponse>
      <multiRef id="id5" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:Activity" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:BeanService">
       <FIN xsi:type="xsd:string">---</FIN>
       <VIN xsi:type="xsd:string"></VIN>
    cut -
       <ursache xsi:type="xsd:string"></ursache>
      </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>
    Thanks in advance!

    I am having this issue as well.
    From:
    http://help.sap.com/saphelp_nw04/helpdata/en/43/ce993b45cb0a85e10000000a1553f6/frameset.htm
    I see that:
    The WSDL document in rpc-style format must also not use any soapenc:Array types; these are often used in SOAP code in documents with this format. soapenc:Array uses the tag <xsd:any>, which the Integration Builder editors or proxy generation either ignore or do not support.
    You can replace soapenc:Array types with an equivalent <sequence>; see the WS-I  example under http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272.
    They give an example of what to use instead.
    Of course I have been given a WSDL that has a message I need to map to that uses the enc:Array.
    Has anyone else had this issue?  I need to map to a SOAP message to send to an external party.  I don't know what they are willing to change to support what I can do.  I changed the WSDL to use a sequence as below just to pull it in for now.
    Thanks,
    Eric

  • Problem in calling a WS with complex type

    Hi all...
    I have to invoke a WS that has as input type a complex type defined in the wsdl...
    <complexType name="LoginInfo">
    - <sequence>
      <element name="appCode" nillable="true" type="string" />
      <element name="login" nillable="true" type="string" />
      <element name="passwd" nillable="true" type="string" />
      </sequence>
      </complexType>the soapui request looks like this:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://com.susan/SusanWS/types">
       <soapenv:Header/>
       <soapenv:Body>
          <typ:LoginWebService>
             <LoginInfo_1>
                <appCode>WEB_SERVICES</appCode>
                <login>root</login>
                <passwd>root</passwd>
             </LoginInfo_1>
          </typ:LoginWebService>
       </soapenv:Body>
    </soapenv:Envelope>in my java code I'm trying to call it with:
    Service service = new Service();
                Call call = (Call)service.createCall();
                call.setTargetEndpointAddress( new URL( wsEndpoint ) );
    //            call.setOperationName( wsMethod );
                call.setOperationName( new QName("http://com.susan/SusanWS/types",wsMethod));
                call.addParameter( "LoginInfo_1", Constants.XSD_ANYTYPE, ParameterMode.IN );
    //            call.addParameter( "appCode", Constants.XSD_STRING, ParameterMode.IN );
    //            call.addParameter( "login", Constants.XSD_STRING, ParameterMode.IN );
    //            call.addParameter( "passwd", Constants.XSD_STRING, ParameterMode.IN );
                String[] params={appCode, login, passwd};
    //            call.setReturnType( Constants.XSD_INT );
    //            Object retval = call.invoke( new String[] {appCode, login, passwd} );
                Object retval = call.invoke( new Object[] { params } );doing so..it doesn't work...the first problem I can see...is that I don't assign a parameter name to the 3 strings I pass in the param array...
    anybody has a tip to give me on how to solve this problem?

    solved...
    I imported the wsdl into Intellij idea...which created all the needed classes, interfaces,...and used service locator and endpoint binding stubs...

  • Human tasks, complex types and variable assignment.

    Hi folks,
    I encountered a problem while working with 10.1.3.1 which I haven't managed to solve yet and would be grateful for assistance. I have defined a complex data type (just a sequence of strings) and want to fill that data type by going through a flow of screens, e.g. through several human tasks. I have defined that type as a variable to the BPEL process and have managed to assign simple expressions to the variable and pass that into a Human Task. In the task I see now a simple input form for all attributes of the type.
    Now the problem. After I fill out the form and complete the human task, I have
    The global variable:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <vorname/>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    and the return value from the human task:
    <task>
         <title>CaptureData</title>-
              <payload>
                   <MyProcessResponse>
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </payload>
    </task>
    Now the only thing I would like to do is to replace the original values in the variable with the new values that have been returned from the task, this should be performed in an extra assign step. Sounds simple. JDeveloper wouldn't even let me klick through the return value from the HumanTask, so it seems as if I have to do things manually.
    These are my tries:
    Command 1:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload" />
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 1:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <ns0:MyProcessResponse xmlns="http://xmlns.oracle.com/bpel/workflow/task"     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                   <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                        <vorname>David</vorname>
                        <nachname>Beckham</nachname>
                        <strasse>HighStreet</strasse>
                        <nummer/>
                        <postleitzahl/>
                        <stadt/>
                        <maximaleDauer/>
                        <minimaleDauer/>
                   </MyProcessResponse>
              </ns0:MyProcessResponse>
         </part>
    </outputVariable>
    --> There is one MyProcessResponse element too many
    Command 2:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse/ns1:vorname"/>
    </copy>
    Result 2:
    <outputVariable>
         <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
              <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                   <ns0:vorname xmlns="http://xmlns.oracle.com/bpel/workflow/task"                     xmlns:ns0="http://xmlns.oracle.com/VacationRequest">
                        <MyProcessResponse xmlns="http://xmlns.oracle.com/VacationRequest">
                             <vorname>David</vorname>
                             <nachname>Beckham</nachname>
                             <strasse>HighStreet</strasse>
                             <nummer/>
                             <postleitzahl/>
                             <stadt/>
                             <maximaleDauer/>
                             <minimaleDauer/>
                        </MyProcessResponse>
                   </ns0:vorname>
                   <nachname/>
                   <strasse/>
                   <nummer/>
                   <postleitzahl/>
                   <stadt/>
                   <maximaleDauer/>
                   <minimaleDauer/>
              </MyProcessResponse>
         </part>
    </outputVariable>
    --> This was moreless expected, since I tried to copy the stuff to some wrong place.
    Command 3:
    <copy>
         <from variable="CaptureData_1_globalVariable"
    part="payload" query="/task:task/task:payload/ns0:MyProcessResponse"/>
    <to variable="outputVariable" part="payload"
    query="/ns1:MyProcessResponse"/>
    </copy>
    Result 3:
    --> Task does't return (!!!). In the BPEL Worklist, the task is completed, however in the BPEL console it still apears as "waiting to return from Human task".
    Does anyone have a hint on how to copy the values so that I get exactly the structure that I printed at the very top?
    Thanks for help. Rock On !

    Hello everyone,
    It seems that we are talking about different things, I am afraid. Let me describe the scenario once again:
    - I want to have a BPEL process with more than one role involved
    - This process should be used to gather some complex data.
    - All data gathering should be done through HumanTasks.
    So I defined an xsd complex type, that contains a sequence of fields. This complex type should be part of the process payload.
    Now before HumanTask 1 is called, I copy the contents of this variable into the input for tasks1. This works fine and I see the appropriate values, when opening the Human Task in the BPEL worklist application.
    Now after HumanTask1 is completed, the values I entered inside that tasks are returned as a variable from the HumanTask. My problem is, that I cannot copy the contents of the task back into the main process. With simpleTypes this is relatively ok, since Jdev supports the assembling of the copy operation, however for complex tasks it fails.
    A typical scenario for this would be where e.g. a customer fills a shipping address and afterwards a store staff fills product details in the same order. In Java this could be solved via "pass by reference". Who can provide an example?

  • How to invoke a Web Service from PL/SQL with Complex Type as  input.

    Hello,
    I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
    The web service expects a complex type as input (defined below):
    <xs:complexType name="MsgType">
    <xs:sequence>
    <xs:element name="sender" type="xs:string"/>
    <xs:element name="messageId" type="xs:string"/>
    <xs:element name="messageType" type="xs:string"/>
    <xs:element name="dateSent" type="xs:date"/>
    </xs:sequence>
    </xs:complexType>
    How to construct input to this in PL/SQL Procedure?
    Has any body tried this before?
    An exmaple will be helpful.
    Thanks

    Dear,
    I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
    When running, the error occurs:
    1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name &quot;password&quot; associated with an element type &quot;user&quot; must be followed by the &apos; = &apos; character.
    My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
    I make PL/SQL (similiar as your example)
    FUNCTION INVOKESENDMT
    RETURN VARCHAR2
    AS
    l_request soap_api.t_request;
    l_response soap_api.t_response;
    l_return VARCHAR2(32767);
    l_url VARCHAR2(32767);
    l_namespace VARCHAR2(32767);
    l_method VARCHAR2(32767);
    l_soap_action VARCHAR2(32767);
    l_result_name VARCHAR2(32767);
    p_zipcode VARCHAR2(160);
    BEGIN
    --p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
    p_zipcode:='TEST';
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'TEST',
    -- p_password => 'TEST');
    l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
    l_namespace := 'xmlns="' || l_url || '"';
    l_method := 'sendMT';
    l_soap_action := l_url || '#sendMT';
    l_result_name := 'sendMTResponse';
    l_request := soap_api.new_request(p_method => l_method,
    p_namespace => l_namespace);
    soap_api.add_parameter(p_request => l_request,
    p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
    p_type => 'xsd:string',
    p_value => p_zipcode);
    l_response := soap_api.invoke(p_request => l_request,
    p_url => l_url,
    p_action => l_soap_action);
    l_return := soap_api.get_return_value(p_response => l_response,
    p_name => l_result_name,
    p_namespace => l_namespace);
    RETURN l_return;
    END;

Maybe you are looking for

  • Airport woes - suddenly stopped working

    I’m unfortunately currently having Airport issues, and was hoping to get some help. My wireless network has been running fine for a while, but yesterday evening it suddenly stopped working. I could see and join my network, but it wasn’t working. When

  • Impact on Timesheets (CATS) Auto Approved.

    Hi Experts, We are implementing timesheet(CATS) auto approval, please share your views on changing the status (20 to 30) by a batch job in CATSDB table. Thanks and Regards, Venugopal.R

  • How to launch a function/procedure without suspending the parent process?

    Hi everybody, I would like to know if I can define something as follows in PLSQL: procedure master begin call a procedure_child; End master; I would like that the procedure master does not suspend the execution and wait that the procedure_child finis

  • Business Rule problem

    Here is a problem I am not quite sure how to solve. Given a collection of objects of type X, find out if there are two objects in that collection that meet certain criteria.  For example, find out if there are two objects X1 and X2 such that X1.city=

  • Ovi error: A critical internal service has failed?

    For the past few days I have tried installing some applications from the Ovi store but I always get the same error message (in Norwegian): "En kritisk intern tjeneste har mislyktes" (A critical internal service has failed). Why is this happening and