File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Services Certification (SCDJWS/OCPJWSD) and the fly likes part names in output  and input Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login
JavaRanch » Java Forums » Professional Certification » Web Services Certification (SCDJWS/OCPJWSD)
Reply Bookmark "part names in output  and input" Watch "part names in output  and input" New topic
Author

part names in output and input

Jack Zhou
Ranch Hand

Joined: Dec 27, 2003
Posts: 93
In the following wsdl fragments.
message named "InputMsg" and "OutputMsg" both have a
part called "Common" but the Common part in InputMsg
is typed string while the onter is int. as part name only
needs to unique accross the the enclosing message. Message declaraion
looks fine for me.

<message name="InputMsg">
<part name="para1" type="xsd:string"/>
<part name="Common" type="xsd:int"/>
</message>
<message name="OutputMsg>
<part name="Common" type="xsd:string>
</message>

<portType name="test">
<operation name="TestOP>
<input message="InputMsg"/>
<output message="OutputMsg"/>
</portType>


My question is for the TestOP operation. As part named "Common"
appears both in operattion TestOP's input and output message.
Will "Common" part become and in/out parameter?. Logically the
anwser should be no. Not for java, you would say. But I cannot
find a definitive answer for this situation.


Thanks,<br />Jack Zhou<br />SCJP, SCJD, SCWCD, SCBCD, SCDJWS,SCEA
Santosh Ramachandrula
Ranch Hand

Joined: Apr 04, 2004
Posts: 251
By Basic Profile if you are using the same part name in both input and output then it has to be of the same type .

It would be called as INOUT parameter .

Richard's book has a good description of this in the WSDL chapter.
[ June 01, 2004: Message edited by: Santosh Ram ]

Thanks,
Santosh
Jack Zhou
Ranch Hand

Joined: Dec 27, 2003
Posts: 93
By Basic Profile if you are using the same part name in both input and output then it has to be of the same type

I cannot find requirment that backs up your claim. Could you point out the
require number to me?

BTW, the term "in/out paramenter" is used bywsdl Note.
Santosh Ramachandrula
Ranch Hand

Joined: Apr 04, 2004
Posts: 251
Zhou I have been reading Richard M H J2EE Web Services book, I read that in the SOAP and WSDL chapter.

I think Richard M H is around this forum he may give you better explanation. :roll:
roland polzer
Greenhorn

Joined: Mar 26, 2003
Posts: 5
Monson-Haefel, p. 144:

"When the <input> and <output> elements in a <portType> declare a part with the same name, it's an INOUT parameter, and the type must be the same in the <input> and <output> elements"

Cheers,
Roland
Jack Zhou
Ranch Hand

Joined: Dec 27, 2003
Posts: 93
Thank you guys, I found it in the book too. However, It's not very clear if the claim in the book also logically implies the following statment:

If two message definitions each contains parts with different
type but the same name, then these two messages cannot be used in the soap perarion such that one of the message is used in input and the other is used as output.


I was trying to find out if above statment is implyed by BP and wsdl spec. However, I would guess that above statemnet is false and in the case the messages is used in a soap peration it is more logical for me that they corresponds to one IN parameter and one OUT paremeter separately. I am studying the wsdl note and BP1.0 file to figure it out.
Dhiren Joshi
Ranch Hand

Joined: Dec 09, 2003
Posts: 463
Yeah I agree with u that it should be an IN and OUT and not INOUT becuase the wire signature s are not the same so its not the same part .
If the types were the same then its an INOUT I think that is what RMH implies for it to qualify as INOUT the types have to be the same. (pg 144 quoted)

Any thoughts .
I think Richard can is the best person to clarify this for us though.
Dhiren
Richard Monson-Haefel
author
Ranch Hand

Joined: Oct 31, 2003
Posts: 92
If an input and output message have a part with the same name, but a different type, than they would be interpreted as different paramters (IN and OUT). That said, the WS-I BP clearly prohibits this so if an input and output have a part with the same name, they must be the same type and therefor it represents an INOUT parameter.


-- <br />Richard Monson-Haefel<br /><a href="http://www.Monson-Haefel.com" target="_blank" rel="nofollow">http://www.Monson-Haefel.com</a>
Jack Zhou
Ranch Hand

Joined: Dec 27, 2003
Posts: 93
Hi Richard,
I am unable to find out relevant discussions in Basic Profile Version 1.0 that can support the following claim in your post:

the WS-I BP clearly prohibits this so if an input and output have a part with the same name, they must be the same type


Could you possibly give me a clue either as form of the requirement statement number or cut and paste some text from Basic Profile Version 1.0? Am I looking at wrong document?
I appreicate your help very much.
 
 
subject: part names in output and input
 
Threads others viewed
Is this wsdl somehow wrong? - Help please!
SOAPMessage Frights
error when generating WS Client code using wsdl
msg=No Deserializer found to deserialize a ':return'
Query Regarding WSIMPORT generated Artifacts
IntelliJ Java IDE