This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
This is for the use case of recognizing soap arrayType and wsdl arrayType. Refer to attached google wsdl, it has following operation: <operation name="doGoogleSearch"> <input message="typens:doGoogleSearch"/> <output message="typens:doGoogleSearchResponse"/> </operation> The message doGoogleSearchResponse is defined as follows: <message name="doGoogleSearchResponse"> <part name="return" type="typens:GoogleSearchResult"/> </message> Where typens:GoogleSearchResult is defined as follows: <xsd:complexType name="GoogleSearchResult"> <xsd:all> <xsd:element name="documentFiltering" type="xsd:boolean"/> <xsd:element name="searchComments" type="xsd:string"/> <xsd:element name="estimatedTotalResultsCount" type="xsd:int"/> <xsd:element name="estimateIsExact" type="xsd:boolean"/> <xsd:element name="resultElements" type="typens:ResultElementArray"/> <xsd:element name="searchQuery" type="xsd:string"/> <xsd:element name="startIndex" type="xsd:int"/> <xsd:element name="endIndex" type="xsd:int"/> <xsd:element name="searchTips" type="xsd:string"/> <xsd:element name="directoryCategories" type="typens:DirectoryCategoryArray"/> <xsd:element name="searchTime" type="xsd:double"/> </xsd:all> </xsd:complexType> Note here resultElements is of type typens:ResultElementArray. And typens:ResultElementArray is defined as: <xsd:complexType name="ResultElementArray"> <xsd:complexContent> <xsd:restriction base="soapenc:Array"> <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:ResultElement[]"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> So what this is saying is that ResultElementArray is extending soapenc:Array so it is an array of some elements and because of presense of wsdl:arrayType, it is saying that ResultElementArray is an array of typens:ResultElement. typens:ResultElement is defined as: <xsd:complexType name="ResultElement"> <xsd:all> <xsd:element name="summary" type="xsd:string"/> <xsd:element name="URL" type="xsd:string"/> <xsd:element name="snippet" type="xsd:string"/> <xsd:element name="title" type="xsd:string"/> <xsd:element name="cachedSize" type="xsd:string"/> <xsd:element name="relatedInformationPresent" type="xsd:boolean"/> <xsd:element name="hostName" type="xsd:string"/> <xsd:element name="directoryCategory" type="typens:DirectoryCategory"/> <xsd:element name="directoryTitle" type="xsd:string"/> </xsd:all> </xsd:complexType> What mapper needs to support is as follows: (a) when showing resultElements as defined in typens:GoogleSearchResult it should show it as being an array which contains typens:ResultElement. Possibly could show a different array icon for resultElements. (b)Predicate should be allowed to be created on resultElements. This would facilitate predicate creation which allow user to map only some element of an array. ex: user wants to map only 4 element. so we should be able to create resultElements[4] using predicate mapper.
Created attachment 33307 [details] Google wsdl
Also when user expands resultElement[4] he should be able to see elements defined in typens:ResultElement
Attaching sample Google project which works soap encoding
Created attachment 34191 [details] sample Google project
Created attachment 34192 [details] email thread on support for soap encoding.
This is an enhancement in mapper to support soap array. current work around is to type in xpath query in source. This should be fixed as part of support to allow user to edit node test and xpath axis. Need to support wildchar as well. changing issue type.
I meant this to be enhancement , it is not fixed yet.
see previous comments for structure of part and its xsd element/types. User see something like this is mapper tree: return (part) documentFiltering searchComments estimatedTotalResultsCount resultElements now here resultElements is of type typens:ResultElementArray which is defined as an extension of soapenc:Array, so if resultElements represents an array we need to allow user to create a child step on resultElements. note that since resultElements is an array, its child elements are of the type ResultElement ( this is a complex type defined) For gogogle web service to work we need to create expression something like this: $DoGoogleSearchOut1.return/resultElements/*[ 1]/URL This means following need to be supported: (a) user should be able to select resultElements in mapper tree and lauch a step editor to create this *[1]/URL step. This needs more design.
At this point we do not have design to allow user to specify wildchar and also change the name of nodetest. I propose we could do following: (a) if an element is of soap array type , add an action to create location step. (b) This would show a text field where user can type in extra steps: ex user right click on resultElement and say edit step. then he types in *[ 1]/URL this will add a node resultElement*[ 1]/URL in the tree which user can map. when reverse rendering we need to add this node back into tree.
Obsolete milestone, please reevaluate
This one I think we need to implement.