Unexpected element name - confusion of types in client

I have a web service definition that performs four operations:
- String getTitle(long) - returns a title for a single asset
- StringArrayType) getTitles(LongArrayType) - returns an ordered list of titles matching input list
- AssetSummaryType getSummary(long) - Returns a complex type, summary information of an asset
- AssetSummaryArrayType getSummaries(LongArrayType) - Returns an array of complex types
Based on the WSDL (included at the bottom of this posting) I then generate the service
endpoint using wscompile and -f:wsi option (JDK 1.4.2-05 and JWSDP-1.4).
This is built into a raw war file and then cooked using wsdeploy.
On the client side I create stubs using wscompile and -f:wsi and compile
the resultant code. My client invokes each of the operations in turn, having been
provided the relevant 'longs' as input.
The service is deployed in JBoss-3.2.2 and the client is then executed from a separate JVM.
I then see the following client error:
java.rmi.RemoteException: Runtime exception; nested exception is:
unexpected element name: expected={http://example.com/myAssetWebSvc}Str
ingElement, actual={http://example.com/MyAssetWebSvc}AssetSummaryElement
at com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(
StreamingSender.java:318)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:300
at example.com.wsclient.asset.AssetService_Stub.getTitle(AssetService_St
ub.java:175)
at example.com.wsclient.asset.AssetClient.testAssetTitleRetrieval(AssetC
lient.java:82)
at example.com.wsclient.asset.AssetClient.main(AssetClient.java:51)
Caused by: unexpected element name: expected={http://example.com/MyAssetWebSvc}
StringElement, actual={http://example.com/MyAssetWebSvc}AssetSummaryElement
at com.sun.xml.rpc.encoding.literal.LiteralSimpleTypeSerializer.deserial
ize(LiteralSimpleTypeSerializer.java:106)
at example.com.wsclient.asset.AssetService_Stub._deserialize_getTitle(As
setService_Stub.java:318)
at example.com.wsclient.asset.AssetService_Stub._readFirstBodyElement(As
setService_Stub.java:276)
at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:215
... 3 more
If I deploy the same service with only the first two operations defined within wsdl,
the error is not seen.
I have also tried compilation on JWSDP 1.3 and JDK 1.4.1-03 and in this case the same error
occurs but the other way around. The two 'title' operations work but the summary
operations fail with the actual element encountered being a StringElement or StringArrayElement
and the expected an AssetSummaryElement or AssetSummaryArrayElement.
Further, if I change the name of the StringElement to for example 'MyStringElement', this is
reported as the actual - i.e. there is no confusion with a standard type at play here.
I also use handlers, one on the server side to inspect security information and one on the
client to insert relevant details and look for returned errors within the header.
Is this a known problem within JWSDP 1.3 and/or 1.4? Are there any workarounds.
My wsdl is provided below along with the wscompile options and the matching configuration
files used.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="MyAssetService" targetNamespace="http://example.com/MyAssetWebSvc"
     xmlns:tns="http://example.com/MyAssetWebSvc"
     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<xsd:schema targetNamespace="http://example.com/MyAssetWebSvc"
          xmlns:tns="http://example.com/MyAssetWebSvc"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="AssetSummaryType">
<xsd:all>
<xsd:element name="createdBy" type="xsd:string" />
<xsd:element name="createdDate" type="xsd:dateTime" />
<xsd:element name="description" type="xsd:string" />
<xsd:element name="fileSize" type="xsd:long" />
<xsd:element name="id" type="xsd:long" />
<xsd:element name="modifiedBy" type="xsd:string" />
<xsd:element name="modifiedDate" type="xsd:dateTime" />
<xsd:element name="organisation" type="xsd:string" />
<xsd:element name="owner" type="xsd:string" />
<xsd:element name="title" type="xsd:string" />
<xsd:element name="type" type="xsd:string" />
<xsd:element name="version" type="xsd:long" />
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ExceptionType">
<xsd:all>
<xsd:element name="rootCause" type="xsd:string" nillable="true" />
</xsd:all>
</xsd:complexType>
<xsd:complexType name="LongArrayType">
     <xsd:sequence>
          <xsd:element name="LongItem" type="xsd:long" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AssetSummaryArrayType">
     <xsd:sequence>
          <xsd:element name="AssetSummaryItem" type="tns:AssetSummaryType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="StringArrayType">
     <xsd:sequence>
          <xsd:element name="StringItem" type="xsd:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
     </xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CredentialsType">
<xsd:all>
<xsd:element name="principal" type="xsd:string" />
<xsd:element name="password" type="xsd:string" />
</xsd:all>
</xsd:complexType>
     <xsd:element name="LongElement" type="xsd:long"/>
<xsd:element name="StringElement" type="xsd:string"/>
<xsd:element name="LongArrayElement" type="tns:LongArrayType"/>
<xsd:element name="StringArrayElement" type="tns:StringArrayType"/>
<xsd:element name="AssetSummaryElement" type="tns:AssetSummaryType"/>
<xsd:element name="AssetSummaryArrayElement" type="tns:AssetSummaryArrayType"/>
     <xsd:element name="CredentialsElement" type="tns:CredentialsType"/>
     <xsd:element name="ExceptionElement" type="tns:ExceptionType"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getSummaryMessage">
<wsdl:part name="resourceId" element="tns:LongElement" />
</wsdl:message>
<wsdl:message name="getSummaryResponse">
<wsdl:part name="assetSummary" element="tns:AssetSummaryElement" />
</wsdl:message>
<wsdl:message name="assetException">
<wsdl:part name="exception" element="tns:ExceptionElement" />
</wsdl:message>
<wsdl:message name="getTitle">
<wsdl:part name="resourceId" element="tns:LongElement" />
</wsdl:message>
<wsdl:message name="getTitleResponse">
<wsdl:part name="assetTitle" element="tns:StringElement" />
</wsdl:message>
<wsdl:message name="getSummaries">
<wsdl:part name="resourceIdList" element="tns:LongArrayElement" />
</wsdl:message>
<wsdl:message name="getSummariesResponse">
<wsdl:part name="assetSummaryList" element="tns:AssetSummaryArrayElement" />
</wsdl:message>
<wsdl:message name="getTitles">
<wsdl:part name="resourceIdList" element="tns:LongArrayElement" />
</wsdl:message>
<wsdl:message name="getTitlesResponse">
<wsdl:part name="assetTitleList" element="tns:StringArrayElement" />
</wsdl:message>
<wsdl:message name="securityHeader">
<wsdl:part name="credentials" element="tns:CredentialsElement" />
</wsdl:message>
<wsdl:portType name="AssetService">
<wsdl:operation name="getSummary" parameterOrder="resourceId">
<wsdl:input message="tns:getSummaryMessage" />
<wsdl:output message="tns:getSummaryResponse" />
<wsdl:fault name="AssetException" message="tns:assetException" />
</wsdl:operation>
<wsdl:operation name="getTitle" parameterOrder="resourceId">
<wsdl:input message="tns:getTitle" />
<wsdl:output message="tns:getTitleResponse" />
<wsdl:fault name="AssetException" message="tns:assetException" />
</wsdl:operation>
<wsdl:operation name="getSummaries" parameterOrder="resourceIdList">
<wsdl:input message="tns:getSummaries" />
<wsdl:output message="tns:getSummariesResponse" />
<wsdl:fault name="AssetException" message="tns:assetException" />
</wsdl:operation>
<wsdl:operation name="getTitles" parameterOrder="resourceIdList">
<wsdl:input message="tns:getTitles" />
<wsdl:output message="tns:getTitlesResponse" />
<wsdl:fault name="AssetException" message="tns:assetException" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AssetServiceBinding" type="tns:AssetService">
<wsdl:operation name="getSummary">
<wsdl:input>
<soap:header required="true" message="tns:securityHeader" part="credentials" use="literal" actor="security"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="AssetException">
<soap:fault name="AssetException" use="literal"/>
</wsdl:fault>
<soap:operation soapAction="" />
</wsdl:operation>
<wsdl:operation name="getTitle">
<wsdl:input>
<soap:header required="true" message="tns:securityHeader" part="credentials" use="literal"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="AssetException">
<soap:fault name="AssetException" use="literal"/>
</wsdl:fault>
<soap:operation soapAction="" />
</wsdl:operation>
<wsdl:operation name="getSummaries">
<wsdl:input>
<soap:header required="true" message="tns:securityHeader" part="credentials" use="literal"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="AssetException">
<soap:fault name="AssetException" use="literal"/>
</wsdl:fault>
<soap:operation soapAction="" />
</wsdl:operation>
<wsdl:operation name="getTitles">
<wsdl:input>
<soap:header required="true" message="tns:securityHeader" part="credentials" use="literal"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="AssetException">
<soap:fault name="AssetException" use="literal"/>
</wsdl:fault>
<soap:operation soapAction="" />
</wsdl:operation>
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
</wsdl:binding>
<wsdl:service name="MyAssetService">
<wsdl:port name="AssetServicePort" binding="tns:AssetServiceBinding">
<soap:address location="http://localhost:9090/MyAssetWebSvc/asset" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Here is the wscompile for the server - this is within an ant script that substitutes the variables specified:
wscompile -keep -d ${path.classes} -s ${src.autojava} -import -model model.gz -f:wsi -f:documentliteral server-config.xml
and this is the server config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<wsdl location="file:///C:temp/MyAssetService_wsi.wsdl" packageName="example.com.wsserver.asset.wrapper">
<handlerChains>
<chain runAt="server">
<handler className="example.com.wsserver.security.SecurityServerHandler">
<property name="name" value="SecurityServerHandler"/>
</handler>
</chain>
</handlerChains>
</wsdl>
</configuration>
On the client side, here is the wscompile, again with ant variable substitution:
wscompile -gen:client -keep -d ${path.build.wsclient.class} -s ${path.build.wsclient.autojava} -classpath ${path.build.wsclient.class} -f:wsi -f:documentliteral client-config.xml
And here is the client config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
<wsdl location="file:///C:/temp/MyAssetService_wsi.wsdl" packageName="example.com.wsclient.asset">
<handlerChains>
<chain runAt="client">
<handler className="example.com.wsclient.security.SecurityClientHandler">
<property name="name" value="SecurityClientHandler"/>
</handler>
</chain>
</handlerChains>
</wsdl>
</configuration>
Note that I generate slightly different packages on client and server side. The server includes a 'wrapper' path on the package name - purely because the
generated code wrappers an existent api that I am making available as a web service. This is not needed to be seen
on the client side - i.e. the service appears as is without the wrapper.
I have tried omitting the documentliteral from the wscompiles and this seems to have no effect.
Any help gratefully received.
Best regards
Lawrence

Thanks for the prompting. I was convinced that the error was occurring client side as I could see no activity on the server. However having captured the soap request and responses its evident that this is not the case (which I'm a little confused on based on my original tests, but the error makes more sense in this context).
The request is below:
<env:Envelope xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns0="http://example.com/myAssetWebSvc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Header>
<ns1:mmsSecurity env:actor="security" env:mustUnderstand="1" xmlns:ns1="http://example.com/myAssetWebSvc">
<principal>example.user</principal>
<password>mypassword</password>
</ns1:mmsSecurity>
</env:Header>
<env:Body>
<ns0:LongElement>166333</ns0:LongElement>
</env:Body>
</env:Envelope>
I can see from the body that the signature is not unique - its the same as that of the Summary operation. In this case, the server side is performing the summary (rather than the title that I had intended) and returning that response. This gives rise to the deserialisation error on the client side for the response.
Presumably I need to move to the wrapped document literal style so that the request is uniquely identified on the server side.
To me this was not an obvious gotcha, Could the parser (wscompile) be enhanced to trap identical request message definitions within a single service/endpoint definition (i.e. WSDL)? If so where should I post the request?

Similar Messages

  • Unexpected element name: expected WHEN INVOKING A WEB SERVICE

    I am pretty new to Web Services and need some helping in resolving the following error. I created following two classes and published one of the method savePerson. When I tried to invoke the webservice through my browser passing the following:
    <ns1:savePersonElement xmlns:ns1="http://mypackage17/Person.wsdl/types">
    <ns1:sex>simpleType value</ns1:sex>
    <ns1:human>
    <ns2:last xmlns:ns2="http://tempuri.org">simpleType value</ns2:last>
    <ns3:first xmlns:ns3="http://tempuri.org">simpleType value</ns3:first>
    </ns1:human>
    </ns1:savePersonElement>
    I get the following error:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://mypackage17/Person.wsdl/types">
    <env:Body>
    <env:Fault>
    <faultcode>env:Client</faultcode>
    <faultstring>caught exception while handling request: unexpected element name: expected={http://mypackage17/Person.wsdl/types}name, actual={http://mypackage17/Person.wsdl/types}sex</faultstring>
    </env:Fault>
    </env:Body>
    </env:Envelope>
    But passing the following works fine as have passed all the parameters data:
    <ns1:savePersonElement xmlns:ns1="http://mypackage17/Person.wsdl/types">
    <ns1:name>simpleType value</ns1:name>
    <ns1:sex>simpleType value</ns1:sex>
    <ns1:human>
    <ns2:last xmlns:ns2="http://tempuri.org">simpleType value</ns2:last>
    <ns3:first xmlns:ns3="http://tempuri.org">simpleType value</ns3:first>
    </ns1:human>
    </ns1:savePersonElement>
    Here is the code I have for the webservice:
    package mypackage17;
    *@oracle.ws.WebService name = "MyWebService2", serviceName = "MyWebService2", description = "", targetNamespace = "http://tempuri.org", schemaTargetNamespace = "http://mypackage17/Person.wsdl/types", endpointInterface = "mypackage17.MyWebService1SEI"
    *@oracle.ws.SOAPBinding style = "DOCUMENT", use = "LITERAL", documentWrapped = "true", bindingName = "MyWebService1SoapHttp", portName = "MyWebService1Port"
    public class Person extends Human
    private String name;
    private String sex;
    public Person(){}
    public void setName(String name)
    this.name = name;
    public void setSex(String sex)
    this.sex = sex;
    public String getName()
    return this.name;
    public String getSex()
    return this.sex;
    *@oracle.ws.DocumentWrapper requestType = "savePerson", requestElement = "savePersonElement", requestPart = "parameters", responseType = "savePersonResponse", responseElement = "savePersonResponseElement", responsePart = "parameters"
    *@oracle.ws.WebMethod operationName = "savePerson", description = "", oneway = "false", documentWrapped = "true", inputMessage = "MyWebService1SEI_savePerson", outputMessage = "MyWebService1SEI_savePersonResponse", responsePart = "result"
    *@oracle.ws.ParamPart position = "0", partName = "name", mode = "IN", soapHeader = "false"
    *@oracle.ws.ParamPart position = "1", partName = "sex", mode = "IN", soapHeader = "false"
    *@oracle.ws.ParamPart position = "2", partName = "human", mode = "IN", soapHeader = "false"
    public void savePerson(String name, String sex, Human[] human)
    System.out.println("Name: " + name);
    System.out.println("Sex: " + sex);
    System.out.println(human.length);
    System.out.println("1 First: " + human[0].getFirst());
    System.out.println("1 Last: " + human[0].getLast());
    System.out.println("2 First: " + human[1].getFirst());
    System.out.println("2 Last: " + human[1].getLast());
    /****** THE OTHER CLASS ********/
    package mypackage17;
    public class Human
    private String first;
    private String last;
    public Human(){}
    public void setFirst(String first)
    this.first = first;
    public void setLast(String last)
    this.last = last;
    public String getFirst()
    return this.first;
    public String getLast()
    return this.last;
    Here is the WSDL generated using JDeveloper 10.1.3:
    <?xml version="1.0" encoding="UTF-8" ?>
    <definitions
    name="MyWebService2"
    targetNamespace="http://tempuri.org"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://tempuri.org"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:ns1="http://mypackage17/Person.wsdl/types"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    >
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://tempuri.org" elementFormDefault="qualified"
    xmlns:tns="http://tempuri.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/">
    <import namespace="http://mypackage17/Person.wsdl/types"/>
    <complexType name="Human">
    <sequence>
    <element name="last" type="string" nillable="true"/>
    <element name="first" type="string" nillable="true"/>
    </sequence>
    </complexType>
    </schema>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://mypackage17/Person.wsdl/types"
    elementFormDefault="qualified" xmlns:tns="http://mypackage17/Person.wsdl/types"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://tempuri.org">
    <import namespace="http://tempuri.org"/>
    <complexType name="savePerson">
    <sequence>
    <element name="name" type="string" nillable="true"/>
    <element name="sex" type="string" nillable="true"/>
    <element name="human" type="ns1:Human" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    </complexType>
    <complexType name="savePersonResponse">
    <sequence/>
    </complexType>
    <element name="savePersonElement" type="tns:savePerson"/>
    <element name="savePersonResponseElement" type="tns:savePersonResponse"/>
    </schema>
    </types>
    <message name="MyWebService1SEI_savePerson">
    <part name="parameters" element="ns1:savePersonElement"/>
    </message>
    <message name="MyWebService1SEI_savePersonResponse">
    <part name="parameters" element="ns1:savePersonResponseElement"/>
    </message>
    <portType name="MyWebService2">
    <operation name="savePerson">
    <input message="tns:MyWebService1SEI_savePerson"/>
    <output message="tns:MyWebService1SEI_savePersonResponse"/>
    </operation>
    </portType>
    <binding name="MyWebService1SoapHttp" type="tns:MyWebService2">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="savePerson">
    <soap:operation soapAction="http://tempuri.org:savePerson"/>
    <input>
    <soap:body use="literal" parts="parameters"/>
    </input>
    <output>
    <soap:body use="literal" parts="parameters"/>
    </output>
    </operation>
    </binding>
    <service name="MyWebService2">
    <port name="MyWebService1Port" binding="tns:MyWebService1SoapHttp">
    <soap:address location="http://192.168.2.101:8988/JavaWebService/MyWebService2"/>
    </port>
    </service>
    </definitions>
    Can someone tell what am I doing wrong. As it looks like I have to pass all the parameters for the method that is published but what if some are missing basically I want to keep all the parameters optional. How can I make the service to return the same what is passed when invoked. Any help is appreciated. I am using JDeveloper 10.1.3.

    To make the service return "whatever is passed", you have to take a step back and realize that there is a little understanding of XML Schema required.
    When using a complexType, which is defined as a sequence, then you are implying an ordered sequence of elements. Default value for the 'minOccurs' attribute is 1. It's also important to understand that there is a difference between minOccurs=0 and nillable="true".
    nillable="true" just means that the name element can carry a null value. If you want the name element to be optional, then you must use the minOccurs=0 and keep the maxOccurs to it's default value of 1. Using an array is just a bad work around. This is for deserialization (XML to JAVA).
    The second part of you problem is on the serialization (or JAVA to XML). When you have a JAVA Bean, there is no way to make the difference between a member's value being null or not set, so it's impossible to decide if you need to send back a nul (xsi:nil="true"), an empty element <ns1:name/> or nothing.
    That said, if you do want to go the XML route, you can use the dataBinding="false" flag in the different WSA command. Instead of converting XML into JAVA, you will have SOAPElement parameters, where you can do all you want (see WS user's guide [1] for details - chapter 16). Note that you have to make sure that the WSDL (your contract) reflect what you are doing on the wire (format of your messages), so that you do not geopardize your interoperability with other toolkit.
    Note that this only applies to literal message formats (use attribute in WSDL), which is your case.
    Hope this helps,
    Eric
    [1] http://download-west.oracle.com/otn_hosted_doc/ias/preview/web.1013/b14434.pdf

  • Error message : unexpected element name:

    Hi people,
    I'm trying to consume an external web service and encountered the following error when trying to run the service in JDeveloper. I'm new to both java and WSDL. Please lend a helping hand. Thanks for your help in advance.
    Error:
    C:\JDeveloper\jdk\bin\javaw.exe -client -classpath C:\E900\DEMO\Java\classes;C:\JDeveloper\webservices\lib\jaxrpc-api.jar;C:\JDeveloper\webservices\lib\wsclient.jar;C:\JDeveloper\webservices\lib\wsserver.jar;C:\JDeveloper\webservices\lib\wssecurity.jar;C:\JDeveloper\webservices\lib\wsdl.jar;C:\JDeveloper\webservices\lib\orasaaj.jar;C:\JDeveloper\webservices\lib\saaj-api.jar;C:\JDeveloper\webservices\lib\orawsdl.jar;C:\JDeveloper\webservices\lib\orawsrm.jar;C:\JDeveloper\webservices\lib\jaxr_api.jar;C:\JDeveloper\webservices\lib\orajaxr.jar;C:\JDeveloper\webservices\lib\relaxngDatatype.jar;C:\JDeveloper\webservices\lib\jaxb-impl.jar;C:\JDeveloper\webservices\lib\jaxb-libs.jar;C:\JDeveloper\webservices\lib\xsdlib.jar;C:\JDeveloper\webservices\lib\mdds.jar;C:\JDeveloper\jlib\jaxen.jar;C:\JDeveloper\jlib\oraclepki.jar;C:\JDeveloper\jlib\ojpse.jar;C:\JDeveloper\jlib\osdt_core.jar;C:\JDeveloper\jlib\osdt_cert.jar;C:\JDeveloper\jlib\osdt_xmlsec.jar;C:\JDeveloper\jlib\osdt_wss.jar;C:\JDeveloper\jlib\osdt_saml.jar;C:\JDeveloper\jlib\repository.jar;C:\JDeveloper\jlib\ojmisc.jar;C:\JDeveloper\j2ee\home\lib\http_client.jar;C:\JDeveloper\j2ee\home\jazncore.jar;C:\JDeveloper\j2ee\home\oc4jclient.jar;C:\JDeveloper\rdbms\jlib\xdb.jar;C:\JDeveloper\diagnostics\lib\ojdl2.jar;C:\E900\DEMO\ini\sbf;C:\E900\System\Classes\Base_JAR.jar;C:\E900\System\Classes\BizLogicContainer_JAR.jar;C:\E900\System\Classes\BusinessLogicServices_JAR.jar;C:\E900\System\Classes\Connector.jar;C:\E900\System\Classes\EventProcessor_JAR.jar;C:\E900\System\Classes\Generator_JAR.jar;C:\E900\System\Classes\JdbjBase_JAR.jar;C:\E900\System\Classes\JdbjInterfaces_JAR.jar;C:\E900\System\Classes\JdeNet_JAR.jar;C:\E900\System\Classes\Maf2Base_JAR.jar;C:\E900\System\Classes\mafsecurity.jar;C:\E900\System\Classes\Metadata.jar;C:\E900\System\Classes\MetadataInterface.jar;C:\E900\System\Classes\PMApi_JAR.jar;C:\E900\System\Classes\SBFFoundation_JAR.jar;C:\E900\System\Classes\Spec_JAR.jar;C:\E900\System\Classes\System_JAR.jar;C:\E900\System\Classes\SystemInterfaces_JAR.jar;C:\E900\System\Classes\castor.jar;C:\E900\System\Classes\log4j.jar;C:\E900\System\Classes\xerces.jar;C:\E900\System\Classes\xml-apis.jar;C:\E900\System\Classes\Rijndael.jar;C:\E900\System\Classes\ManagementAgent_JAR.jar;C:\E900\System\Classes\commons-logging.jar;C:\E900\System\Classes\commons-codec-1.3.jar;C:\E900\System\Classes\commons-httpclient-3.0.jar;C:\E900\System\Classes\jmxremote.jar;C:\E900\System\Classes\jmxremote_optional.jar;C:\E900\System\Classes\jmxri.jar;C:\E900\System\Classes\rmissl.jar;C:\E900\misc\classes12.jar;C:\E900\misc\mssqlserver.jar;C:\E900\misc\msutil.jar;C:\E900\misc\msbase.jar;C:\E900\misc\db2java.zip;C:\E900\misc\jt400.jar;C:\E900\misc\sqljdbc.jar;C:\E900\misc\ojdbc5.jar;C:\JDeveloper\lib\xmlparserv2.jar;C:\JDeveloper\lib\xml.jar oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceClient
    calling http://XXX.XX.XXX.XX:8080/PSIGW/HttpListeningConnector
    *unexpected element name: expected={http://xxxx.xxxx.com}EnquiryByLegacyIdResponse, actual=EnquiryByLegacyIdResponse*
    at oracle.j2ee.ws.common.encoding.literal.LiteralObjectSerializerBase.internalDeserialize(LiteralObjectSerializerBase.java:231)
    at oracle.j2ee.ws.common.encoding.literal.LiteralObjectSerializerBase.deserialize(LiteralObjectSerializerBase.java:159)
    at oracle.e1.bssv.J5500002.proxy.runtime.CrmCustomerServiceSoapBinding_Stub._deserialize_EnquiryByLegacyId(CrmCustomerServiceSoapBinding_Stub.java:348)
    at oracle.e1.bssv.J5500002.proxy.runtime.CrmCustomerServiceSoapBinding_Stub._readFirstBodyElement(CrmCustomerServiceSoapBinding_Stub.java:283)
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:335)
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:114)
    at oracle.e1.bssv.J5500002.proxy.runtime.CrmCustomerServiceSoapBinding_Stub.enquiryByLegacyId(CrmCustomerServiceSoapBinding_Stub.java:238)
    at oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceClient.enquiryByLegacyId(CrmCustomerServiceClient.java:55)
    at oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceClient.main(CrmCustomerServiceClient.java:41)
    Process exited with exit code 0.
    --- the definition for java class "CrmCustomerServiceClient.java" ---_*
    package oracle.e1.bssv.J5500002.proxy;
    import oracle.webservices.transport.ClientTransport;
    import oracle.webservices.OracleStub;
    import javax.xml.rpc.ServiceFactory;
    import javax.xml.rpc.Stub;
    public class CrmCustomerServiceClient {
    private oracle.e1.bssv.J5500002.proxy.CrmCustomerService _port;
    public CrmCustomerServiceClient() throws Exception {
    ServiceFactory factory = ServiceFactory.newInstance();
    _port = ((oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceService)factory.loadService(oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceService.class)).getCrmCustomerService();
    * @param args
    public static void main(String[] args) {
    try {
    oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceClient myPort = new oracle.e1.bssv.J5500002.proxy.CrmCustomerServiceClient();
    System.out.println("calling " + myPort.getEndpoint());
    // Add your own code here
    EnquiryByLegacyId test = new EnquiryByLegacyId ();
    test.setSETID("CTN");
    test.setCPL_LEGACY_ID("03-135452");
    //EnquiryByLegacyIdResponse response = new EnquiryByLegacyIdResponse();
    //response = myPort.enquiryByLegacyId(test);
    //EnquiryByLegacyIdResponse response = myPort.enquiryByLegacyId(test);
    CrmCustomerId cus = new CrmCustomerId();
    //cus = response.getEnquiryByLegacyIdReturn();
    cus = (myPort.enquiryByLegacyId(test)).getEnquiryByLegacyIdReturn();
    System.out.println("Your username is " + cus.getCUST_ID()+cus.getRESPOND_MSG());
    } catch (Exception ex) {
    ex.printStackTrace();
    * delegate all operations to the underlying implementation class.
    public EnquiryByLegacyIdResponse enquiryByLegacyId(EnquiryByLegacyId parameters) throws java.rmi.RemoteException {
    return _port.enquiryByLegacyId(parameters);
    public EnquiryByNationalIdResponse enquiryByNationalId(EnquiryByNationalId parameters) throws java.rmi.RemoteException {
    return _port.enquiryByNationalId(parameters);
    public EnquiryByNameResponse enquiryByName(EnquiryByName parameters) throws java.rmi.RemoteException {
    return _port.enquiryByName(parameters);
    public EnquiryByPhoneCellResponse enquiryByPhoneCell(EnquiryByPhoneCell parameters) throws java.rmi.RemoteException {
    return _port.enquiryByPhoneCell(parameters);
    * used to access the JAX-RPC level APIs
    * returns the interface of the port instance
    public oracle.e1.bssv.J5500002.proxy.CrmCustomerService getPort() {
    return _port;
    public String getEndpoint() {
    return (String) ((Stub) port).getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY);
    public void setEndpoint(String endpoint) {
    ((Stub) port).setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, endpoint);
    public String getPassword() {
    return (String) ((Stub) port).getProperty(Stub.PASSWORD_PROPERTY);
    public void setPassword(String password) {
    ((Stub) port).setProperty(Stub.PASSWORD_PROPERTY, password);
    public String getUsername() {
    return (String) ((Stub) port).getProperty(Stub.USERNAME_PROPERTY);
    public void setUsername(String username) {
    ((Stub) port).setProperty(Stub.USERNAME_PROPERTY, username);
    public void setMaintainSession(boolean maintainSession) {
    ((Stub) port).setProperty(Stub.SESSION_MAINTAIN_PROPERTY, Boolean.valueOf(maintainSession));
    public boolean getMaintainSession() {
    return ((Boolean) ((Stub) port).getProperty(Stub.SESSION_MAINTAIN_PROPERTY)).booleanValue();
    * returns the transport context
    public ClientTransport getClientTransport() {
    return ((OracleStub) _port).getClientTransport();
    --- the definition for java class "EnquiryByLegacyIdResponse.java" ---_*
    package oracle.e1.bssv.J5500002.proxy;
    public class EnquiryByLegacyIdResponse implements java.io.Serializable {
    protected oracle.e1.bssv.J5500002.proxy.CrmCustomerId enquiryByLegacyIdReturn;
    public EnquiryByLegacyIdResponse() {
    public oracle.e1.bssv.J5500002.proxy.CrmCustomerId getEnquiryByLegacyIdReturn() {
    return enquiryByLegacyIdReturn;
    public void setEnquiryByLegacyIdReturn(oracle.e1.bssv.J5500002.proxy.CrmCustomerId enquiryByLegacyIdReturn) {
    this.enquiryByLegacyIdReturn = enquiryByLegacyIdReturn;
    __--- the definition for the WSDL" ---__+
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://xxxx.xxxx.com" xmlns:intf="http://xxxx.xxxx.com" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xxxx.xxxx.com">
    <!--WSDL created by Apache Axis version: 1.3
    Built on Oct 05, 2005 (05:23:37 EDT)-->
    <wsdl:types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://xxxx.xxxx.com">
    <element name="EnquiryByLegacyId">
    <complexType>
    <sequence>
    <element name="SETID" type="xsd:string" />
    <element name="CPL_LEGACY_ID" type="xsd:string"/>
    </sequence>
    </complexType>
    </element>
    <element name="EnquiryByLegacyIdResponse">
    <complexType>
    <sequence>
    <element name="EnquiryByLegacyIdReturn" type="impl:CrmCustomerId"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="CrmCustomerId">
    <sequence>
    <element name="SETID" nillable="false" type="xsd:string"/>
    <element name="CPL_LEGACY_ID" nillable="true" type="xsd:string"/>
    <element name="CUST_ID" nillable="true" type="xsd:string"/>
    <element name="RESPOND_MSG" nillable="false" type="xsd:integer"/>
    </sequence>
    </complexType>
    <element name="EnquiryByNationalId">
    <complexType>
    <sequence>
    <element name="SETID" type="xsd:string"/>
    <element name="NATIONAL_ID" type="xsd:string"/>
    </sequence>
    </complexType>
    </element>
    <element name="EnquiryByNationalIdResponse">
    <complexType>
    <sequence>
    <element name="EnquiryByNationalIdReturn" type="impl:CrmCustomerId"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="CrmCustomerId">
    <sequence>
    <element name="SETID" nillable="false" type="xsd:string"/>
    <element name="CPL_LEGACY_ID" nillable="true" type="xsd:string"/>
    <element name="CUST_ID" nillable="true" type="xsd:string"/>
    <element name="RESPOND_MSG" nillable="false" type="xsd:integer"/>
    </sequence>
    </complexType>
    <element name="EnquiryByName">
    <complexType>
    <sequence>
    <element name="SETID" type="xsd:string"/>
    <element name="LAST_NAME" type="xsd:string"/>
    <element name="FIRST_NAME" type="xsd:string"/>
    <element name="ADDRESS1" type="xsd:string"/>
    </sequence>
    </complexType>
    </element>
    <element name="EnquiryByNameResponse">
    <complexType>
    <sequence>
    <element name="EnquiryByNameReturn" type="impl:CrmCustomerId"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="CrmCustomerId">
    <sequence>
    <element name="SETID" nillable="false" type="xsd:string"/>
    <element name="CPL_LEGACY_ID" nillable="true" type="xsd:string"/>
    <element name="CUST_ID" nillable="true" type="xsd:string"/>
    <element name="RESPOND_MSG" nillable="false" type="xsd:integer"/>
    </sequence>
    </complexType>
    <element name="EnquiryByPhoneCell">
    <complexType>
    <sequence>
    <element name="SETID" type="xsd:string" />
    <element name="PHONE_CELL" type="xsd:string"/>
    </sequence>
    </complexType>
    </element>
    <element name="EnquiryByPhoneCellResponse">
    <complexType>
    <sequence>
    <element name="EnquiryByPhoneCellReturn" type="impl:CrmCustomerId"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="CrmCustomerId">
    <sequence>
    <element name="SETID" nillable="false" type="xsd:string"/>
    <element name="CPL_LEGACY_ID" nillable="true" type="xsd:string"/>
    <element name="CUST_ID" nillable="true" type="xsd:string"/>
    <element name="RESPOND_MSG" nillable="false" type="xsd:integer"/>
    </sequence>
    </complexType>
    </schema>
    </wsdl:types>
    <wsdl:message name="EnquiryByLegacyIdRequest">
    <wsdl:part element="intf:EnquiryByLegacyId" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByLegacyIdResponse">
    <wsdl:part element="intf:EnquiryByLegacyIdResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByNationalIdRequest">
    <wsdl:part element="intf:EnquiryByNationalId" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByNationalIdResponse">
    <wsdl:part element="intf:EnquiryByNationalIdResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByNameRequest">
    <wsdl:part element="intf:EnquiryByName" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByNameResponse">
    <wsdl:part element="intf:EnquiryByNameResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByPhoneCellRequest">
    <wsdl:part element="intf:EnquiryByPhoneCell" name="parameters"/>
    </wsdl:message>
    <wsdl:message name="EnquiryByPhoneCellResponse">
    <wsdl:part element="intf:EnquiryByPhoneCellResponse" name="parameters"/>
    </wsdl:message>
    <wsdl:portType name="CrmCustomerService">
    <wsdl:operation name="EnquiryByLegacyId">
    <wsdl:input message="intf:EnquiryByLegacyIdRequest" name="EnquiryByLegacyIdRequest"/>
    <wsdl:output message="intf:EnquiryByLegacyIdResponse" name="EnquiryByLegacyIdResponse"/>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByNationalId">
    <wsdl:input message="intf:EnquiryByNationalIdRequest" name="EnquiryByNationalIdRequest"/>
    <wsdl:output message="intf:EnquiryByNationalIdResponse" name="EnquiryByNationalIdResponse"/>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByName">
    <wsdl:input message="intf:EnquiryByNameRequest" name="EnquiryByNameRequest"/>
    <wsdl:output message="intf:EnquiryByNameResponse" name="EnquiryByNameResponse"/>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByPhoneCell">
    <wsdl:input message="intf:EnquiryByPhoneCellRequest" name="EnquiryByPhoneCellRequest"/>
    <wsdl:output message="intf:EnquiryByPhoneCellResponse" name="EnquiryByPhoneCellResponse"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="CrmCustomerServiceSoapBinding" type="intf:CrmCustomerService">
    <wsdlsoap:binding style=""/>
    <wsdl:operation name="EnquiryByLegacyId">
    <wsdlsoap:operation soapAction="#CPL_LEGACY_ID_ENQ#CCH_TEST"/>
    <wsdl:input name="EnquiryByLegacyIdRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="EnquiryByLegacyIdResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByNationalId">
    <wsdlsoap:operation soapAction="#CPL_NATIONAL_ID_ENQ#CCH_TEST"/>
    <wsdl:input name="EnquiryByNationalIdRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="EnquiryByNationalIdResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByName">
    <wsdlsoap:operation soapAction="#CPL_NAME_ENQ#CCH_TEST"/>
    <wsdl:input name="EnquiryByNameRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="EnquiryByNameResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="EnquiryByPhoneCell">
    <wsdlsoap:operation soapAction="#CPL_PHONE_CELL_ENQ#CCH_TEST"/>
    <wsdl:input name="EnquiryByPhoneCellRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="EnquiryByPhoneCellResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CrmCustomerServiceService">
    <wsdl:port binding="intf:CrmCustomerServiceSoapBinding" name="CrmCustomerService">
    <wsdlsoap:address location="http://XXX.XX.XXX.XX:8080/PSIGW/HttpListeningConnector"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

    I do not understand this WSDL! Its wrong!!
    For e.g. why is this section repeated so many times:
    <complexType name="CrmCustomerId">
    <sequence>
    <element name="SETID" nillable="false" type="xsd:string"/>
    <element name="CPL_LEGACY_ID" nillable="true" type="xsd:string"/>
    <element name="CUST_ID" nillable="true" type="xsd:string"/>
    <element name="RESPOND_MSG" nillable="false" type="xsd:integer"/>
    </sequence>
    </complexType>
    Also when creating what mapping did you choose? JAX-B or JAX-RPC?
    Try JAX-B.
    Venkat

  • Unexpected element name: expected error while invoking external web service

    Hi,
    In JDeveloper when I invoke external web service call, I am getting following exception
    "unexpected element name: expected=..."
    But the same application works fine in .NET. Can someone help me as to why I am getting the exception only in JDeveloper and how to fix this exception.
    Thanks.

    Hi,
    Without more information, it will be hard to help, and tell you what could be teh issue.
    Usually, this kind of error occurs when the payload and the WSDL schema are out of sync, for example if the order of the element on the wire do not match the order in a sequence declaration, you may get this error.
    In such case, .NET handle the XML as if it was a 'all' -- no specific order -- and deserialize the message properly.
    Hope this helps,
    -eric

  • Unexpected element: CDATA

    Hi,
    I am using XMLBeans to parse an XML file and do some processing. I have created
    the xsd file and generated the beans. In my code i get an Unexpected element:
    CDATA exception during the XXX.Factory.parse(String filename) method.
    The code to parse the file is as follows:-
    PlatformDocument pDoc = PlatformDocument.Factory.parse("platform.xml");
    The exception thrown is:-
    javax.servlet.ServletException: StartupInitializer Parse Exception: error: Unexpected
    element: CDATA
    at com.nokia.npp.serlvet.init.StartupInitializer.init(StartupInitializer.java:89)
    at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
    at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
    at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5647)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:869)
    at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2022)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2063)
    at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
    at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
    at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    The xml file is attached to this post. The XSD is shown below:-
    <?xml version="1.0"?>
    <xs:schema
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:npp="http://xml.npp.nokia.com/platform.xsd"
         targetNamespace="http://xml.npp.nokia.com/platform.xsd"
         elementFormDefault="qualified"
         attributeFormDefault="unqualified">
    <xs:element name="platform">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:startup-classes" maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="startup-classes">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:start-up" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="start-up">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="description" type="xs:string" minOccurs="0"/>
    <xs:element name="class-name" type="xs:string" maxOccurs="1"/>
    <xs:element name="init-param" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="param-name" type="xs:string" minOccurs="1"
    maxOccurs="1"/>
    <xs:element name="param-value" type="xs:string" minOccurs="1"
    maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="scheduler">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:scheduler" maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    Any help apprceciated...
    Thanks
    Martin
    [platform.xml]

    I managed to fix this issue by passing a File object to the parse method instead
    of the String for the file name as below:-
    File xmlFile = new File("platform.xml");
    PlatformDocument pDoc = PlatformDocument.Factory.parse(xmlFile);
    "Martin Porter" <[email protected]> wrote:
    >
    >
    >
    Hi,
    I am using XMLBeans to parse an XML file and do some processing. I have
    created
    the xsd file and generated the beans. In my code i get an Unexpected
    element:
    CDATA exception during the XXX.Factory.parse(String filename) method.
    The code to parse the file is as follows:-
    PlatformDocument pDoc = PlatformDocument.Factory.parse("platform.xml");
    The exception thrown is:-
    javax.servlet.ServletException: StartupInitializer Parse Exception: error:
    Unexpected
    element: CDATA
    at com.nokia.npp.serlvet.init.StartupInitializer.init(StartupInitializer.java:89)
    at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:993)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
    at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:869)
    at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:848)
    at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:787)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlet(WebAppServletContext.java:3252)
    at weblogic.servlet.internal.WebAppServletContext.preloadServlets(WebAppServletContext.java:3197)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:3174)
    at weblogic.servlet.internal.WebAppServletContext.setStarted(WebAppServletContext.java:5647)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:869)
    at weblogic.j2ee.J2EEApplicationContainer.start(J2EEApplicationContainer.java:2022)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2063)
    at weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.activateContainer(SlaveDeployer.java:2592)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.doCommit(SlaveDeployer.java:2515)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.commit(SlaveDeployer.java:2317)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.checkAutoCommit(SlaveDeployer.java:2399)
    at weblogic.management.deploy.slave.SlaveDeployer$Task.prepare(SlaveDeployer.java:2311)
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDeployer.java:2479)
    at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeployer.java:798)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.java:507)
    at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.java:465)
    at weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.java:25)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
    The xml file is attached to this post. The XSD is shown below:-
    <?xml version="1.0"?>
    <xs:schema
         xmlns:xs="http://www.w3.org/2001/XMLSchema"
         xmlns:npp="http://xml.npp.nokia.com/platform.xsd"
         targetNamespace="http://xml.npp.nokia.com/platform.xsd"
         elementFormDefault="qualified"
         attributeFormDefault="unqualified">
    <xs:element name="platform">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:startup-classes" maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="startup-classes">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:start-up" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="start-up">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="description" type="xs:string" minOccurs="0"/>
    <xs:element name="class-name" type="xs:string" maxOccurs="1"/>
    <xs:element name="init-param" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="param-name" type="xs:string"
    minOccurs="1"
    maxOccurs="1"/>
    <xs:element name="param-value" type="xs:string"
    minOccurs="1"
    maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="scheduler">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="npp:scheduler" maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:schema>
    Any help apprceciated...
    Thanks
    Martin

  • Unexpected element type: QName vs. string

    Hello,
    i tried to run the "web service" example code of the book "Core Java" (2004). The program is a window where you can search for book authors in Amazon. But executing the client program results in:
    Exception: java.rmi.RemoteException: Runtime exception; nested exception is:
         unexpected element type: expected={http://www.w3.org/2001/XMLSchema}QName, actual={http://www.w3.org/2001/XMLSchema}stringYou can find the code below.
    Greetings
    Alfred
    config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration
       xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
       <wsdl location="http://soap.amazon.com/schemas3/AmazonWebServices.wsdl"
          packageName="com.amazon"/>
    </configuration>snippet of SOAPTest.java (client program)
    AmazonSearchPort port = (AmazonSearchPort)
                (new AmazonSearchService_Impl().getAmazonSearchPort());
             AuthorRequest request
                = new AuthorRequest(name, "1", "books", "", "lite", "", token, "","", "");
             ProductInfo response = port.authorSearchRequest(request);
             Details[] details = response.getDetails();
             StringBuilder r = new StringBuilder();
             for (Details d : details)
                r.append("authors=");
                String[] authors = d.getAuthors();
                if (authors == null) r.append("[]");
                else r.append(Arrays.asList(d.getAuthors()));
                r.append(",title=");
                r.append(d.getProductName());
                r.append(",publisher=");
                r.append(d.getManufacturer());
                r.append(",pubdate=");
                r.append(d.getReleaseDate());
                r.append("\n");
             return r.toString();

    Amazon discontinued the old service. You can no longer get a working developer token for it. When you give it an invalid token, then an error message is produced.
    Due to an error in the way Amazon produces the error message (see http://archives.java.sun.com/cgi-bin/wa?A2=ind0303&L=jaxrpc-interest&O=D&P=1513), you don't actually get to see it.

  • Generating target-type xsd with element names in camelCase

    Env: ODSI 10gR3, Workshop 10gR3, Oracle DB 10gR3
    We are developing logical data services following a bottom up approach. The source physical data services that we use to build the logical ds have xsd definitions in which element names are in CAPS_CAPS naming convention (following the same names as the database tables). For example, FIRST_NAME, LAST_NAME, etc.
    When we use Query Map to generate xsd for the target types of the logical ds, it generates element names that are also in the CAPS_CAPS convention. Is there a way to generate the target type xsd in which CAPS_CAPS names are converted to camelCase, e.g. FIRST_NAME becomes firstName.
    Thank you in advance.

    mixed-case with underscores removed vs. upper case is only one variation. Someone might like to rename SSN to SocialSecurityNumber, someone might like to rename LAST_NAME to Surname or FamilyName etc.
    You can do any renaming etc. with a Logical Data Service. See the "Best Practices" which is posted as an Announcement in this forum.
    Typically customers put their Physical (i.e. generated) data services in a Physical folder, and then create a parallel Logical folder (including the schemas folder). Then you would create new schemas in Logical/schemas with the new names, create new Logical data services to match the physical ones, then create a 'read' function that uses the physical read function and map the elements of the physical read function to the logical schema (with the new names). Then you can generate the create/delete/update procedures in the Logical data services.
    Getting back to your original question - the answer is No. There is no feature with in ODSI to automatically transform element names to something else.
    - Mike

  • WSDL, custom datatypes, fault element name issues

    Hello all,
    I am having a LOT of problems with BEAs webservices. I am posting
    this here in the hope that someone can help me and tell me what I am
    doing incorrectly. I am running
    WebLogic Server 7.0 SP1 Mon Sep 9 22:46:58 PDT 2002 206753
    WebLogic XMLX Module 7.0 SP1 Mon Sep 9 22:54:41 PDT 2002 206753
    Background:
    My goal is to make my company's product web services aware. I take an
    EJB, try to run it through the standard ant tasks and generate a web
    services accessible EJB. Sounds pretty easy, but complex types seem
    to make this quite difficult.
    I have been able to create a web service accessible EJB (only since
    7.0.1), but I am quite unhappy with the quality of what I am able to
    produce.
    I have a datatype which acts as a key, but it does not follow the
    javabeans idiom - i.e. it does not have a default constructor or
    accessor methods and I am not in the position to change it. I have
    created a codec for this class which works and an xml schema (both by
    hand). Its name is AgentKey. I have also had to use the autotyper to
    create codecs and typemapping entries for java.util.Properties,
    I can connect using the WebLogic classes and I am now trying to
    interact using MS Excel and Apache's Axis as my test clients.
    Issues:
    My first question deals with generating a client. There seem to be
    two ways to generate a client. Firstly via the <client> subtask of
    <servicegen><service>, the second way via <clientgen> task. Since I
    am using a custom data type (AgentKey) I have to manually insert the
    AgentKey schema into the web-services.xml file generated by
    servicegen. When I try to generate a client via the
    servicegen/service/client task there is no opportunity for me to
    insert this datatype schema information and I therefore get the
    following messages (lots of them, but I'm only including one):
    [servicegen] WARNINIG: Unable to find a javaType for the xmlType:['java:net.agentis.apml.runtime']:AgentKey.
    Make sure that you have registered this xml type in the type mapping
    [servicegen] Using SOAPElement instead
    BTW: I am also receiving the same problem with java.util.Properties.
    BTW: WARNING is misspelt
    If I attempt to generate a client class via the <clientgen> task, I
    need to supply either a wsdl or ear file as a parameter. I cannot
    supply a wsdl file because I haven't deployed the EAR yet (and I don't
    want to until the EAR has the client classes in it), and I can't
    supply the EAR because I want the ear to include the client classes.
    It is a bit of a catch 22 situation. Is there a solution I can't see?
    NOTE: it would be very, very nice if you added a schemaMapping
    attribute to the <servicegen/service> task so the web-services.xml
    file didn't have to be manually hacked. Something similar to the
    typemapping attribute already in the servicegen/service task would do
    it.
    My next problem deals with the validity of the WSDL. I am seeing that
    the WSDL created has exceptions defined multiple times. I saw a
    message from Manjo saying that it looked like a bug. I agree and
    would like to get a copy of the patch. On a more significant note,
    when is either SP2 or 7.1 due for release?
    Another problem with the WSDL (once you have cleansed the multiple
    exception messages) is that the fault elements of the
    binding/operation elements require names and they don't have any. For
    example, this is straight from the deployed EJB WSDL file:
    <binding name="ExampleAgentPortSoapBinding" type="tns:ExampleAgentPort">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="serviceWithPrimitiveDatatypes">
    <soap:operation soapAction="" style="rpc"/>
    <input>
    <soap:body use="encoded" namespace="http://sillyurl.com/reallysilly"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output>
    <soap:body use="encoded" namespace="http://sillyurl.com/reallysilly"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    <fault>
    <soap:body use="encoded" namespace="http://sillyurl.com/reallysilly"
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </fault>
    </operation>
    <operation ...
    The schema definition at http://schemas.xmlsoap.org/wsdl/ says the
    fault element require a name attribute:
    <complexType name =" tBindingOperationFault">
    <complexContent>
    <extension base="wsdl:tExtensibleDocumented">
    <attribute name="name" type="NCName" use="required"/>
    </extension>
    </complexContent>
    </complexType>
    The name of the fault should be the same name as the fault in the
    portType definition. In my example the name is "AgentisException" as
    evidenced by this snippet:
    <portType name="ExampleAgentPort">
    <operation name="serviceWithPrimitiveDatatypes">
    <input message="tns:serviceWithPrimitiveDatatypes"/>
    <output message="tns:serviceWithPrimitiveDatatypesResponse"/>
    <fault name="AgentisException" message="tns:AgentisException"/>
    </operation>
    Once these changes have been made then the WSDL will validate. Are
    there plans to fix these bugs?
    On a different note, when I try to interact with a method that uses a
    custom data type, such as AgentKey, via the "WebLogic Webservice
    standard testing home page" the custom data type without a default
    constructor cannot be rendered correctly. For instance, the AgentKey
    value is:
    <!-- Do not know how to create a sample instance for this part due to the following
    exception:java.lang.InstantiationException: net.agentis.apml.runtime.AgentKey.
    Pls replace this with the correct XML before invoking the service. --->
    <agentKey/>
    Since I can't deploy a valid WSDL, I can't get either Axis or Excel to
    connect to my web services.
    When I attempt to invoke Axis' (beta 1.1) wsdl2java I recieve the
    following message.
    java.io.IOException: ERROR: Fault is missing a name= attribute in operation
    "serviceWithPrimitiveDatatypes", in binding {http://sillyurl.com/reallysilly}ExampleAgentPortSoapBinding.
    This seems understandable considering the issues I mentioned earlier.
    Unfortunately Excel doesn't really give me anything to go with. If I
    type in the WSDL URI then it will give me a list of methods I can
    invoke, but if I try to add the service I get the very unhelpful "The
    Web Service References Tool could not generate the requested code.
    Any changes that were made to your project have been rolled back."
    Any help with those two issues would be greatly appreciated also.
    One final issue is that I cannot seem to fix is taskdef'ing
    <servicegen> properly from Ant. I can do the actual taskdef but then
    it cannot find classes from within the weblogic.jar. If I run the
    setExamplesEnv.cmd first the I don't need to do the taskdef and
    everything works fine. Has anyone else had this issue? (we can't run
    that command on our clients desktops before we build our build scripts
    - anyway, I've put it down to one of those weird Ant classpath
    issues.)
    In summary:
    Problems I can see and would like some help on are:
    - multiple exception messages
    - fault operations with no name
    - the ability to generate client code with complex data types before
    the EAR is deployed.
    Could the product team add
    - a clean way to add in schema datatypes without having to manually
    hack the web-services.xml file.
    I know this has been quite a long email, but it has been months in the
    making. Anyone's time would be greatly appreciated.
    Mark Mansour
    Agentis Software
    [email protected]

    Hi Mark,
    From your base post:
    My next problem deals with the validity of the WSDL. I am seeing that
    the WSDL created has exceptions defined multiple times. I saw a
    message from Manjo saying that it looked like a bug. I agree and
    would like to get a copy of the patch. On a more significant note,
    when is either SP2 or 7.1 due for release?I would recommend starting here with support since getting valid WSDL seems to be the root of most of
    your issues.
    Concerning the upcoming release, I believe it is scheduled for late this quarter; contact Michael
    ([email protected]) for more information.
    Also, at the bottom of this post:
    I would just like to see an automated way to do this (I've had to write my own
    utility to do this for me :(Does the autotype ant task help in this situation? Have you taken a look at this?
    http://e-docs.bea.com/wls/docs70/webserv/anttasks.html#1080062
    Thanks,
    Bruce
    Mark Mansour wrote:
    Hiya Bruce,
    I will try and get some time to follow this up with the support people too.
    In response:
    Problems I can see and would like some help on are:
    - multiple exception messages
    In your client code, you can set the following property to avoid the exceptionmessages so that the typemapping
    registry can be setup.
    //dont parse wsdl till we set the typemapping
    System.setProperty( "weblogic.webservice.servicenamechecking","false" );
    This is not a client issue. The WSDL is generating incorrect WSDL. Here is a
    little snippet :
    <message name="AgentisException" >
    <part name="AgentisException" xmlns:partns="http://www.w3.org/2001/XMLSchema"
    type="partns:string" />
    </message>
    <message name="setTraceLevel" >
    <part name="agentKey" xmlns:partns="java:net.agentis.apml.runtime" type="partns:AgentKey"
    />
    <part name="intVal" xmlns:partns="http://www.w3.org/2001/XMLSchema" type="partns:int"
    />
    </message>
    <message name="AgentisException" >
    <part name="AgentisException" xmlns:partns="http://www.w3.org/2001/XMLSchema"
    type="partns:string" />
    </message>
    As you can see the AgentisException is defined twice (in my real WSDL it is redefined
    every time a method has the AgentisException in its interface (which in my case
    is 5 times))
    - fault operations with no nameI believe the fault issues that you have raised have been addressed in the upcomingrelease that will be
    available for beta testing shortly. Contact [email protected] if you
    want to participate in the beta.
    great. Is there any ETA on the final release date?
    - the ability to generate client code with complex data types before
    the EAR is deployed.
    There is an example to show how to do this: http://dev2dev.bea.com/direct/webservice/dyncmplx.zip
    Unfortunately this doesn't solve my problem. I still don't have an EAR or WSDL
    file from which I can generate a client to be included in the final EAR file that
    gets deployed to the server. My original post explains this a bit better.
    Could the product team add
    - a clean way to add in schema datatypes without having to manually
    hack the web-services.xml file.
    Take a look at http://dev2dev.bea.com/direct/webservice/wswa.html#qz50 and others
    in this area.
    This was more in reference to the building of the web services in the first place
    rather than registering custom datatypes at runtime. The manual procedure is
    documented at http://edocs.bea.com/wls/docs70/webserv/customdata.html#1058102,
    I would just like to see an automated way to do this (I've had to write my own
    utility to do this for me :(
    Hope this helps,
    Bruce
    Thanks Bruce.
    Mark

  • How to fill in Element Name box in Create Symbol Script?

    I'm trying to follow Adobe's directions for creating a Component Symbol so I can change the properties later.  They say, " 9. Click the plus button to add an element name. 10. In the Element Name box, type the name of the element to customize. For example, to customize the text field named "label," type "label".
    Here are my problems.  Fireworks (CS4 - Mac) won't let me type anything in the Element Name box.  The only place I can type is in the "property name" and "value name" boxes.  I also have a limited list of properties to chose from in the "attribute" dropdown.
    So I tried using one of the attributes and saving, without anything in the Element Name box but Fireworks said the box was blank and wouldn't let me save it.  It wouldn't let me add text there and wouldn't let me save it without text there.  Kind of frustrating.  What am I doing wrong?

    Your welcome.
    Yeah I wish the attributes were a little more intuitive to work with. I always get confused between brush.diameter, brushcolor, fillcolor!
    If you vreate anything unique don't hesitate to share it with the community.
    h

  • UnmarshalException: unexpected element (uri:...

    Hello,
    I have an ugly problem while trying to unmarshal my xml-instance with JAXB (WSDP2.0). I hope that you may help.
    With the tool XJC I have generated some Java-classes from XML-Schema
    xjc.bat -debug -readOnly -b myBindingFile.xjb -extension -d ./java xsd\MyMainSchema.xsd>error.txtThere was no error message, so I thought that everything was fine
    The file MyMainSchema.xsd uses/imports several other XML-Schemas.
    Among other imported elements I am using some elements of OGC (GML3.1.1,Geography Markup Language) for example gml:Polygon.
    Schema:
    <xsd:schema xmlns="my:package:structure:MyRoot"
    xmlns:x="...."
    xmlns:y="...."
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:gml="http://www.opengis.net/gml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="my:package:structure:MyRoot"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="0.1">
    <xsd:import namespace="x" schemaLocation="../x.xsd"/>
    <xsd:import namespace="y" schemaLocation="../y.xsd"/>
    <xsd:element name="MyRoot" type="MyRootType"/>
    <xsd:complexType name="MyRootType">
    <xsd:sequence>
       <xsd:element ref="x:element1" minOccurs="0"/>
       <xsd:element ref="y:element2" minOccurs="0"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>element2 contains on lower level some GML-elements
    If I generate a valide instance of the schema and try to unmarshal (Schema->java-classes, I have done this in the following way:
    JAXBContext jc = JAXBContext.newInstance(my.package.structure.MyRootType.class);
    Unmarshaller u = jc.createUnmarshaller();
    FileInputStream f_in = new FileInputStream("C://my/path/to/instance/instance.xml"");      
    MyRootType doc = (MyRootType)u.unmarshal(f_in);Now I get an error message:
    javax.xml.bind.UnmarshalException: unexpected element (uri:"my:package:structure:MyRootType", local:"MyRoot").
    Expected elements are
    <{http://www.opengis.net/gml}Array>,
    <{http://www.opengis.net/gml}Bag>,
    <{http://www.opengis.net/gml}BaseUnit>,
    <{http://www.opengis.net/gml}validTime>,
    <{http://www.opengis.net/gml}vector>Can anybody please help and tell me where I may search for the error. I tried several hours to eliminate the error, but all without success.
    It seems that JAXB is searching for an element out of the GML-namespace but I don't understand why.
    the y:element2 contains a gml:Polygon, but I think that this can not be the cause
    Thanks a lot for your help!
    tine

    xsi:noNamespaceSchemaLocation="F:\Data\NetBeansProjects\834Parser\data\enrollmentschema.xsd"I did some googling; all of the examples of the xsi:noNamespaceSchemaLocation I found were too simple. But eventually I found a document which suggested that the value of this attribute should be a URI. Which makes sense since the schema specs were written by the W3C for use in Internet applications. And you haven't provided a URI there.

  • JAXB: Unexpected element

    Hi there,
    I am using JAXB.
    I have generated java classes by use of xjc. Let's say I have configured to generate the files in the java package "some.package". I use the classes in the following code snipped:
    JAXBContext jc = JAXBContext.newInstance(
         "some.package.simpson.bart:"+
         "some.package.simpson.lisa");
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    Data data= (Data) unmarshaller.unmarshal(new File("c:\\test.xml"));When I try to unmarshall an xml document I get the following error/exception:
    DefaultValidationEventHandler: [ERROR]: Unexpected element {simpson:bart}:Data
    Location: line xx of file:/c:/test.xml
    javax.xml.bind.UnmarshalException: Unexpected element {simpson:bart}:Data
    Can you help me?
    Niko
    I have two related DTDs:
    <xs:schema targetNamespace="simpson:bart" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="simpson:bart" elementFormDefault="qualified">
        <xs:element name="DataType" type="xs:string"/>
    </xs:schema>
    <xs:schema targetNamespace="simpson:lisa" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="simpson:lisa" elementFormDefault="qualified">
         <xs:element name="Data" type="xs:string"/>
    </xs:schema>My test.xml looks like this:
    <Data xmlns="simpson:lisa">
         <DataType xmlns="simpson:bart">someValue</DataType>
    <Data>

    Your schema tells me that the content of elements named "Data" should be of type "xs:string" and thus your instance document is not valid while it contains a nested element named "DataType".
    In order to parse your instance document, you need a schema that defines a complex type for the Data element that allows a nested DataType element... something like this:
    <xs:schema targetNamespace="simpson:lisa" xmlns:bart="simpson:bart" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="simpson:lisa" elementFormDefault="qualified">
      <xs:import namespace="simpson:bart" schemaLocation="bart.xsd"/>
      <xs:element name="Data">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="bart:DataType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

  • Form Element Name, is it possible to set in "Column Attibutes" ?

    Is it possible to set the "Form Element Name" for a column e.g. in tabular form in the "Column Attributes" which can be found from:
    Page --> Report region --> Report Attributes --> and select Column --> Column Attributes: for the selected column.
    The idea is to avoid coding the form element names with e.g. like:
    SELECT APEX_ITEM.SELECT_LIST_FROM_LOV(2,job,'JOB_FLOW_LOV')
    FROM emp
    Where the 2 is the Form Element Name for the column and a bit confusingly to F02, which can be seen e.g. with Firebug.
    Another question is that is it possible then to override the Form Element Name if the query has hardcoded different P_IDX in the apex_item.xxx ?
    Perhaps it would be very good to have a mapping too in the "Report Attributes"l for the columns order vs. collections order vs. Form Element Name order .
    rgrds Paavo

    I want to have control over certain 'dimension type of' columns in the classic report / tabular form with APEX_ITEM.* in the sql for the report while some of the columns are from Collection with their collection column names. C001, C002 etc..
    ...clips
    SELECT
    APEX_ITEM.SELECT_LIST_FROM_LOV(35
    ,C035,'LOV_ANIMALS'
    ,'style="width:50px"','YES',NULL,NULL
    ,'f35_' || LPAD (seq_id, 4, '0'),NULL) animals
    ,to_number(c001) c001
    ,to_number(c002) c002
    FROM apex_collections WHERE collection_name = 'SLEEPY_ANIMAL'
    ...clips
    When there are several columns in the report, it is easier to maintain C001...columns appearance in the Report Attributes-->Column Attributes.
    Oh yes, I have adapted Denes dynamic cascading lov for tabular forms which is the reason for having the "APEX_ITEM..." in the query and from some blog I read that it is very good to toss those 'dimension' type of columns to high-end numbers in the collection, so there will be space for the entry columns.
    E.g. firstrow in the tabular form
    c035 -- animals --> f35 --> f35_0001 (select list with lov LOV_ANIMALS)
    c001 -- "what ever I have said in Column attributes"--> f01 --> f01_0001 (text area, editable column)
    c002 -- "what ever I have said in Column attributes"--> f02 --> f02_0001 (text area, editable column)
    So the numbering is the same for the www-form and collection columns.
    Everything is ok if the columns c001 and c002 are editable e.g. 'text area' type, but if I change c001 to 'Display..' type then the order for item_id's change.
    c035 -- animals --> f35 --> f35_0001
    c001 -- "what ever I have said in Column attributes" (display as text (escape special chars...))
    c002 -- "what ever I have said in Column attributes"--> f01 --> f01_0001
    So now the collection column c002 accidentally is mapped to forms f01-column while I might assume it is f02.
    rgrds Paavo

  • How is it posible to get the File name, size and type from a File out the H

    How is it posible to get the File name, size and type from a File out the HttpServletRequest. I want to upload a File from a client and save it on a server with the client name. I want to conrole before saving the name, type and size of the file.How is it posible to get the File name, size and type from a File out the HttpServletRequest.
    form JSP
    <form name="form" method="post" action="procesuploading.jsp" ENCTYPE="multipart/form-data">
    File: <input type="file" name="filename"/
    Path: <input type="text" readonly="" name="path" value="c:"/
    Saveas: <input type="text" name="saveas"/>
    <input name="submit" type="submit" value="Upload" />
    </form>
    proces JSP
    <%@ page language="java" %>
    <%@ page import="java.util.*" %>
    <%@ page import="FileUploadBean" %>
    <jsp:useBean id="TheBean" scope="page" class="FileUploadBean" />
    <%
    TheBean.doUpload(request);
    %>
    BEAN
    import java.io.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletInputStream;
    public class FileUploadBean {
    public void doUpload(HttpServletRequest request) throws IOException
              String melding = "";
              String filename = request.getParameter("saveas");
              String path = request.getParameter("path");
              PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.java")));
              ServletInputStream in = request.getInputStream();
              int i = in.read();
              System.out.println("filename:"+filename);
              System.out.println("path:"+path);
              while (i != -1)
                   pw.print((char) i);
                   i = in.read();
              pw.close();
    }

    Thanks it works great.
    Here an excample from my code
    import org.apache.commons.fileupload.*;
    public class FileUploadBean extends Object implements java.io.Serializable{
    String foutmelding = "geen";
    String path;
    String filename;
    public boolean doUpload(HttpServletRequest request) throws IOException
         try
         // Create a new file upload handler
         FileUpload upload = new FileUpload();
         // Set upload parameters
         upload.setSizeMax(100000);
         upload.setSizeThreshold(100000000);
         upload.setRepositoryPath("/");
         // Parse the request
         List items = upload.parseRequest(request);
         // Process the uploaded fields
         Iterator iter = items.iterator();
         while (iter.hasNext())
         FileItem item = (FileItem) iter.next();
              if (item.isFormField())
                   String stringitem = item.getString();
         else
              String filename = "";
                   int temp = item.getName().lastIndexOf("\\");
                   filename = item.getName().substring(temp,item.getName().length());
                   File bestand = new File(path+filename);
                   if(item.getSize() > SizeMax && SizeMax != -1){foutmelding = "bestand is te groot.";return false;}
                   if(bestand.exists()){foutmelding ="bestand bestaat al";return false;}
                   FileOutputStream fOut = new FileOutputStream(bestand);     
                   BufferedOutputStream bOut = new BufferedOutputStream(fOut);
                   int bytesRead =0;
                   byte[] data = item.get();
                   bOut.write(data, 0 , data.length);     
                   bOut.close();
         catch(Exception e)
              System.out.println("er is een foutontstaan bij het opslaan de een bestand "+e);
              foutmelding = "Bestand opsturen is fout gegaan";
         return true;
         }

  • Element name too long when using ROWTYPE

    I've come across an issue with xml element names longer than 30 characters. Seems it has something to do with ROWTYPE. Creation of this function is successful:
    <pre>
    CREATE OR REPLACE FUNCTION test_fnc
    RETURN XMLTYPE
    AS
    var_return XMLTYPE;
    l_dummy DUAL.dummy%TYPE;
    BEGIN
    SELECT dummy INTO l_dummy FROM DUAL;
    SELECT XMLCONCAT(XMLELEMENT (
    "TEST",
    XMLFOREST (
    l_dummy "THIS_IS_OVER_30_CHARACTERS_LONG"
    data_set
    INTO var_return
    FROM DUAL;
    RETURN var_return;
    END test_fnc;
    </pre>
    However, specifying the variable as ROWTYPE gives ORA-00972 error (unless I shorten the element name...):
    <pre>
    CREATE OR REPLACE FUNCTION test_fnc
    RETURN XMLTYPE
    AS
    var_return XMLTYPE;
    l_dummy DUAL%ROWTYPE;
    BEGIN
    SELECT dummy INTO l_dummy FROM DUAL;
    SELECT XMLCONCAT(XMLELEMENT (
    "TEST",
    XMLFOREST (
    l_dummy.dummy "THIS_IS_OVER_30_CHARACTERS_LONG"
    data_set
    INTO var_return
    FROM DUAL;
    RETURN var_return;
    END test_fnc;
    </pre>
    Has anyone come across this before, or have any ideas for a solution? I could specify all my variables as TYPE but as there are many within the tables it would be easier to use ROWTYPE.
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
    Thanks.

    it works if you add "AS" after l_dummy.dummy
    SQL> CREATE OR REPLACE FUNCTION test_fnc
      2     RETURN XMLTYPE
      3  AS
      4     var_return   XMLTYPE;
      5     l_dummy      DUAL%ROWTYPE;
      6  BEGIN
      7     SELECT   dummy INTO l_dummy FROM DUAL;
      8
      9     SELECT   XMLCONCAT(XMLELEMENT (
    10                           "TEST",
    11                           XMLFOREST (
    12                              l_dummy.dummy AS "THIS_IS_OVER_30_CHARACTERS_LONG"
    13                           )
    14                        ))
    15                 data_set
    16       INTO   var_return
    17       FROM   DUAL;
    18  RETURN var_return;
    19  END test_fnc;
    20  /
    Function created.Ants

  • Specifying Case-Insensitive Element Names in XML Schema

    Hope someone knows this!
    Is it possible to define an an XML Schema Definition so that Element names in the target XML File can be case insensitive.
    At the moment my Parser throws an error if the element names in the XML file do not have the exact same case as the definition in the XML schema.
    E.g
    In Schema i have:
    <xsd:element name="HOSTINVENTORYLINE" type="HostInventoryLineType" maxOccurs="unbounded" minOccurs="0"/>
    but in xml file i have
    <HostInventoryLine field=""/>
    or
    <hostinventoryline field=""/>
    Does anyone know anyway to get around this, so that the parser accepts the HostInventoryLine element in the xml as an instance of the HOSTINVENTORYLINE element defined in the schema.
    Thanks in Advance
    JJ
    Message was edited by:
    [email protected]

    You could use substitution groups to handle this. You would need an entry in the schema for each valid capitalization. This won't scale well if you want to be completely case insensitive, but if you only support lower case, upper case, and camel case it should do the trick.
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
         <xs:complexType name="HostInventoryLineType">
              <xs:sequence>
                   <xs:element name="an-element" type="xs:string"/>
              </xs:sequence>
         </xs:complexType>
         <xs:element name="HostInventoryLine" type="HostInventoryLineType"/>
         <xs:element name="HOSTINVENTORYLINE" type="HostInventoryLineType" substitutionGroup="HostInventoryLine"/>
         <xs:element name="hostinventoryline" type="HostInventoryLineType" substitutionGroup="HostInventoryLine"/>
    </xs:schema>-Blaise

Maybe you are looking for

  • How can I print the "number lines" with the code in Visual Studio?

    How can I print the "number lines" with the code in Visual Studio?

  • Issues in auto creation of tasks using templates/attributes in FS

    Hi, We have a requirement to auto-create one or more tasks when a SR is created in Field Service module. Additionally, task owner should be auto-populated during the task creation (task owner would a CRM group which is dependent on the task type as p

  • Making photos full screen on an IDVD compilation??

    Can I make the photos play full screen on the TV after creating an IDVD video compilation of photos? I have already adjusted the setting to "safe TV screen size". Thanks

  • Eyetv

    I'd like to convert old VHS tapes and my old HI8 video camera to my mac to edit and transfer to dvd. should I buy eyetv hybrid or eyetv 250 plus??? I'd also watch very minimal TV on it.....suggestions??? I'd like the HIGHEST quality possible since th

  • JTextPane(continued)

    Hi, I have read the post about the JTextPane wrapping and it works fine. However, when I load a file that has a lot of characters (29,000+) and I want to display them on one line, it wraps the characters in a paragraph of lines and creates big blank