Dims, OK, that makes good sense. Thanks!
-- Tom Jordahl Macromedia Server Development > -----Original Message----- > From: Davanum Srinivas [mailto:[EMAIL PROTECTED] > Sent: Friday, July 29, 2005 11:04 AM > To: [email protected] > Subject: Re: cvs commit: ws-axis/java/src/org/apache/axis/wsdl/symbolTable > SchemaUtils.java SymbolTable.java > > Sorry Tom. Latest Intellij screwed up. > > Example from Paypal, when the ComplexType CategoryArrayType has a > unbounded "ns:Category" Which is AN element, NOT a complexType. we > were adding it to the symboltable as a UndefinedType and NOT has a > UndefinedElement. So i added a param boolean holder > getCollectionComponentQName to report back if the > complexType/sequence/element has a ref to an element then that > booleanholder is set to true. Also in getCollectionComponentQName, i > made sure that ns:Category gets added as a DefinedElement to the > symboltable by calling symbolTable.createTypeFromRef(node); > > Sorry about that. It was a late night effort gone awry :) > > <complexType name="CategoryArrayType"> > <sequence> > <element ref="ns:Category" minOccurs="0" > maxOccurs="unbounded"/> > </sequence> > </complexType> > <element name="Category" type="ns:CategoryType"/> > <complexType name="CategoryType"> > <annotation> > <documentation> > Container for data on the primary category of listing. > </documentation> > </annotation> > <sequence> > <element name="AutoPayEnabled" type="xs:boolean" > minOccurs="0"/> > <element name="B2BVATEnabled" type="xs:boolean" > minOccurs="0"/> > <element name="CatalogEnabled" type="xs:boolean" > minOccurs="0"/> > <element name="CategoryID" type="xs:string"/> > <element name="CategoryLevel" type="xs:int" > minOccurs="0"/> > <element name="CategoryName" type="xs:string" > minOccurs="0"/> > <element name="CategoryParentID" type="xs:string" > minOccurs="0" > maxOccurs="unbounded"/> > <element name="CategoryParentName" type="xs:string" > minOccurs="0" > maxOccurs="unbounded"/> > <element name="CSIDList" type="xs:string" minOccurs="0" > maxOccurs="unbounded"> > <annotation> > <documentation> > CSIDList is not present if Attributes > enabled. > </documentation> > </annotation> > </element> > <element name="Expired" type="xs:boolean" > minOccurs="0"/> > <element name="IntlAutosFixedCat" type="xs:boolean" > minOccurs="0"/> > <element name="LeafCategory" type="xs:boolean" > minOccurs="0"/> > <element name="Virtual" type="xs:boolean" > minOccurs="0"/> > </sequence> > </complexType> > > > > On 7/29/05, Tom Jordahl <[EMAIL PROTECTED]> wrote: > > Garg! > > > > Dims, why so many white space changes? Do you have your IDE configured > > to remove white space at the end of lines? Evil! Turn that off. > > > > Anyway, what exactly did you do here? Check in comments weren't much > > help. > > > > Thanks. > > > > -- > > Tom Jordahl > > Macromedia Server Development > > > > > -----Original Message----- > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, July 28, 2005 11:29 PM > > > To: [EMAIL PROTECTED] > > > Subject: cvs commit: ws-axis/java/src/org/apache/axis/wsdl/symbolTable > > > SchemaUtils.java SymbolTable.java > > > > > > dims 2005/07/28 20:28:44 > > > > > > Modified: java/src/org/apache/axis/wsdl/symbolTable > > SchemaUtils.java > > > SymbolTable.java > > > Log: > > > Fix for AXIS-2113 - WSDL Generation Does Not Work With Paypal > > > Fix for AXIS-1993 - WSDL2Java 1.2 fails where 1.2RC3 worked (XML > > > Signature XSD) > > > > > > Revision Changes Path > > > 1.62 +39 -30 ws- > > > axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java > > > > > > Index: SchemaUtils.java > > > =================================================================== > > > RCS file: /home/cvs/ws- > > > axis/java/src/org/apache/axis/wsdl/symbolTable/SchemaUtils.java,v > > > retrieving revision 1.61 > > > retrieving revision 1.62 > > > diff -u -r1.61 -r1.62 > > > --- SchemaUtils.java 27 Jul 2005 20:39:35 -0000 1.61 > > > +++ SchemaUtils.java 29 Jul 2005 03:28:43 -0000 1.62 > > > @@ -17,6 +17,7 @@ > > > > > > import org.apache.axis.Constants; > > > import org.apache.axis.AxisProperties; > > > +import org.apache.axis.i18n.Messages; > > > import org.apache.axis.utils.JavaUtils; > > > import org.w3c.dom.DOMException; > > > import org.w3c.dom.Element; > > > @@ -33,6 +34,7 @@ > > > import java.util.Set; > > > import java.util.StringTokenizer; > > > import java.util.Vector; > > > +import java.io.IOException; > > > > > > /** > > > * This class contains static utility methods specifically for > > schema > > > type queries. > > > @@ -366,7 +368,7 @@ > > > > > > return v; > > > } else if (isXSDNode(node, "group")) { > > > - /* > > > + /* > > > * Does this else clause make any sense anymore > > if > > > * we're treating refs to xs:groups like a macro > > > inclusion > > > * into the referencing type? > > > @@ -678,25 +680,25 @@ > > > Type type = (Type) symbolTable.getTypeEntry(nodeType, > > > false); > > > > > > if (type != null && type.getNode() != null) { > > > - //v.add(new ElementDecl(type, > > nodeName)); > > > - Node node = type.getNode(); > > > - NodeList children = > > node.getChildNodes(); > > > - for (int j = 0; j < > > children.getLength(); j++) { > > > - QName subNodeKind = > > > Utils.getNodeQName(children.item(j)); > > > - if ((subNodeKind != null) > > > - && > > Constants.isSchemaXSD( > > > - > > subNodeKind.getNamespaceURI())) > > > { > > > - if > > > (subNodeKind.getLocalPart().equals("sequence")) { > > > - > > > v.addAll(processSequenceNode(children.item(j), > > > - > > symbolTable)); > > > - } else if > > > (subNodeKind.getLocalPart().equals("all")) { > > > - > > > v.addAll(processAllNode(children.item(j), symbolTable)); > > > - } else if > > > (subNodeKind.getLocalPart().equals("choice")) { > > > - > > > v.addAll(processChoiceNode(children.item(j), > > > - > > symbolTable)); > > > - } > > > - } > > > - } > > > + //v.add(new ElementDecl(type, nodeName)); > > > + Node node = type.getNode(); > > > + NodeList children = node.getChildNodes(); > > > + for (int j = 0; j < children.getLength(); j++) { > > > + QName subNodeKind = > > > Utils.getNodeQName(children.item(j)); > > > + if ((subNodeKind != null) > > > + && Constants.isSchemaXSD( > > > + subNodeKind.getNamespaceURI())) { > > > + if > > > (subNodeKind.getLocalPart().equals("sequence")) { > > > + > > > v.addAll(processSequenceNode(children.item(j), > > > + symbolTable)); > > > + } else if > > > (subNodeKind.getLocalPart().equals("all")) { > > > + > > v.addAll(processAllNode(children.item(j), > > > symbolTable)); > > > + } else if > > > (subNodeKind.getLocalPart().equals("choice")) { > > > + > > > v.addAll(processChoiceNode(children.item(j), > > > + symbolTable)); > > > + } > > > + } > > > + } > > > } > > > } > > > return v; > > > @@ -806,8 +808,8 @@ > > > } > > > } > > > else { > > > - elem.setMaxOccursIsExactlyOne(true); > > > - } > > > + elem.setMaxOccursIsExactlyOne(true); > > > + } > > > elem.setNillable( > > > JavaUtils.isTrueExplicitly( > > > Utils.getAttribute(elementNode, > > > "nillable"))); > > > @@ -1320,12 +1322,13 @@ > > > IntHolder dims, > > > BooleanHolder > > > underlTypeNillable, > > > QNameHolder > > itemQName, > > > + BooleanHolder > > > forElement, > > > SymbolTable > > symbolTable) > > > { > > > > > > dims.value = 1; // assume 1 dimension > > > underlTypeNillable.value = false; // assume underlying type > > is > > > not nillable > > > > > > - QName qName = getCollectionComponentQName(node, itemQName); > > > + QName qName = getCollectionComponentQName(node, itemQName, > > > forElement, symbolTable); > > > > > > if (qName == null) { > > > qName = getArrayComponentQName_JAXRPC(node, dims, > > > underlTypeNillable, symbolTable); > > > @@ -1355,7 +1358,9 @@ > > > * @return QName of the compoent of the collection > > > */ > > > public static QName getCollectionComponentQName(Node node, > > > - QNameHolder > > > itemQName) { > > > + QNameHolder > > > itemQName, > > > + BooleanHolder > > > forElement, > > > + SymbolTable > > > symbolTable) { > > > // If we're going to turn "wrapped" arrays into types such > > that > > > // <complexType><sequence> > > > // <element name="foo" type="xs:string" > > > maxOccurs="unbounded"/> > > > @@ -1397,6 +1402,11 @@ > > > // continue the processing using that element ... > > > node = element; > > > storeComponentQName = true; > > > + try { > > > + symbolTable.createTypeFromRef(node); > > > + } catch (IOException e) { > > > + throw new > > > RuntimeException(Messages.getMessage("exception01",e.toString())); > > > + } > > > } > > > > > > // If the node kind is an element, dive to get its type. > > > @@ -1404,7 +1414,6 @@ > > > > > > // Compare the componentQName with the name of the > > > // full name. If different, return componentQName > > > - BooleanHolder forElement = new BooleanHolder(); > > > QName componentTypeQName = Utils.getTypeQName(node, > > > > > forElement, > > > true); > > > @@ -1755,13 +1764,13 @@ > > > // XXX - this may need to be revisited. > > > if ((type != null) && (attributeName != null)) { > > > ContainedAttribute attr = > > > - new ContainedAttribute(type, attributeName); > > > + new ContainedAttribute(type, attributeName); > > > > > > - String useValue = Utils.getAttribute(child, "use"); > > > + String useValue = Utils.getAttribute(child, "use"); > > > > > > - if (useValue != null) { > > > - attr.setOptional(useValue.equalsIgnoreCase("optional")); > > > - } > > > + if (useValue != null) { > > > + attr.setOptional(useValue.equalsIgnoreCase("optional")); > > > + } > > > > > > v.add(attr); > > > } > > > > > > > > > > > > 1.126 +155 -151 ws- > > > axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java > > > > > > Index: SymbolTable.java > > > =================================================================== > > > RCS file: /home/cvs/ws- > > > axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v > > > retrieving revision 1.125 > > > retrieving revision 1.126 > > > diff -u -r1.125 -r1.126 > > > --- SymbolTable.java 20 Jul 2005 17:00:00 -0000 1.125 > > > +++ SymbolTable.java 29 Jul 2005 03:28:43 -0000 1.126 > > > @@ -1188,6 +1188,7 @@ > > > // If we're supposed to unwrap arrays, supply > > someplace > > > to put the "inner" QName > > > // so we can propagate it into the appropriate > > metadata > > > container. > > > QNameHolder itemQName = wrapArrays ? null : new > > > QNameHolder(); > > > + BooleanHolder forElement2 = new BooleanHolder(); > > > > > > numDims.value = 0; > > > > > > @@ -1196,6 +1197,7 @@ > > > numDims, > > > > > > underlTypeNillable, > > > > > itemQName, > > > + > > forElement2, > > > this); > > > > > > if (arrayEQName != null) { > > > @@ -1203,7 +1205,7 @@ > > > // Get the TypeEntry for the array element type > > > refQName = arrayEQName; > > > > > > - TypeEntry refType = getTypeEntry(refQName, > > false); > > > + TypeEntry refType = getTypeEntry(refQName, > > > forElement2.value); > > > > > > if (refType == null) { > > > // arrayTypeQNames.add(refQName); > > > @@ -1213,6 +1215,8 @@ > > > > > > if (baseName != null) { > > > refType = new BaseType(refQName); > > > + } else if(forElement2.value) { > > > + refType = new > > UndefinedElement(refQName); > > > } else { > > > refType = new UndefinedType(refQName); > > > } > > > @@ -1304,11 +1308,11 @@ > > > /** > > > * Node may contain a reference (via type=, ref=, or element= > > > attributes) to > > > * another type. Create a Type object representing this > > referenced > > > type. > > > - * > > > - * @param node > > > - * @throws IOException > > > + * > > > + * @param node > > > + * @throws IOException > > > */ > > > - private void createTypeFromRef(Node node) throws IOException { > > > + protected void createTypeFromRef(Node node) throws IOException > > { > > > > > > // Get the QName of the node's type attribute value > > > BooleanHolder forElement = new BooleanHolder(); > > > @@ -1447,9 +1451,9 @@ > > > > > > /** > > > * Populate the symbol table with all of the MessageEntry's > > from > > > the Definition. > > > - * > > > - * @param def > > > - * @throws IOException > > > + * > > > + * @param def > > > + * @throws IOException > > > */ > > > private void populateMessages(Definition def) throws > > IOException { > > > > > > @@ -1477,7 +1481,7 @@ > > > * <p/> > > > * <strong>Note</strong>: this method should throw a > > > <code>javax.wsdl.WSDLException</code> rather than > > > * a <code>java.io.IOException</code> > > > - * > > > + * > > > * @param message the message object > > > * @throws IOException thrown, if the message is not valid > > > */ > > > @@ -1486,7 +1490,7 @@ > > > > > > // make sure the message is not null (i.e. there is an > > > // attribute 'message ') > > > - // > > > + // > > > if (message == null) { > > > throw new IOException( > > > "<input>,<output>, or <fault> in <operation ..> > > > without attribute 'message' found. Attribute 'message' is required."); > > > @@ -1494,7 +1498,7 @@ > > > > > > // make sure the value of the attribute refers to an > > > // already defined message > > > - // > > > + // > > > if (message.isUndefined()) { > > > throw new IOException( > > > "<input ..>, <output ..> or <fault ..> in > > > <portType> with undefined message found. message name is '" > > > @@ -1509,7 +1513,7 @@ > > > * <p/> > > > * <strong>Note</strong>: this method should throw a > > > <code>javax.wsdl.WSDLException</code> > > > * rather than a <code>java.io.IOException</code> > > > - * > > > + * > > > * @param operation the operation element > > > * @throws IOException thrown, if the element is > > not > > > valid. > > > * @throws IllegalArgumentException thrown, if operation is > > null > > > @@ -1524,7 +1528,7 @@ > > > > > > Input input = operation.getInput(); > > > Message message; > > > - > > > + > > > if (input != null) { > > > message = input.getMessage(); > > > if (message == null) { > > > @@ -1557,7 +1561,7 @@ > > > message = fault.getMessage(); > > > if (message == null) { > > > throw new IOException( > > > - "No 'message' attribute in <fault> > > named '" > > > + > > > + "No 'message' attribute in <fault> > > named '" > > > + > > > fault.getName() + "' for operation '" + > > > operation.getName() + "'"); > > > } > > > @@ -1572,7 +1576,7 @@ > > > * <p/> > > > * <strong>Note</strong>: this method should throw a > > > <code>javax.wsdl.WSDLException</code> > > > * rather than a <code>java.io.IOException</code> > > > - * > > > + * > > > * @param portType the portType element > > > * @throws IOException thrown, if the element is > > not > > > valid. > > > * @throws IllegalArgumentException thrown, if operation is > > null > > > @@ -1588,13 +1592,13 @@ > > > List operations = portType.getOperations(); > > > > > > // no operations defined ? -> valid according to the WSDL > > 1.1 > > > schema > > > - // > > > + // > > > if ((operations == null) || (operations.size() == 0)) { > > > return; > > > } > > > > > > // check operations defined in this portType > > > - // > > > + // > > > Iterator it = operations.iterator(); > > > > > > while (it.hasNext()) { > > > @@ -1606,9 +1610,9 @@ > > > > > > /** > > > * Populate the symbol table with all of the PortTypeEntry's > > from > > > the Definition. > > > - * > > > - * @param def > > > - * @throws IOException > > > + * > > > + * @param def > > > + * @throws IOException > > > */ > > > private void populatePortTypes(Definition def) throws > > IOException { > > > > > > @@ -1632,8 +1636,8 @@ > > > > > > /** > > > * Create the parameters and store them in the bindingEntry. > > > - * > > > - * @throws IOException > > > + * > > > + * @throws IOException > > > */ > > > private void populateParameters() throws IOException { > > > > > > @@ -1690,12 +1694,12 @@ > > > * There is a bit of processing that is needed to write the > > > interface, stub, and skeleton. > > > * Rather than do that processing 3 times, it is done once, > > here, > > > and stored in the > > > * Parameters object. > > > - * > > > - * @param operation > > > - * @param namespace > > > - * @param bindingEntry > > > - * @return > > > - * @throws IOException > > > + * > > > + * @param operation > > > + * @param namespace > > > + * @param bindingEntry > > > + * @return > > > + * @throws IOException > > > */ > > > public Parameters getOperationParameters( > > > Operation operation, String namespace, BindingEntry > > > bindingEntry) > > > @@ -1715,9 +1719,9 @@ > > > > > > Input input = operation.getInput(); > > > Output output = operation.getOutput(); > > > - > > > + > > > parameters.mep = operation.getStyle(); > > > - > > > + > > > // All input parts MUST be in the parameterOrder list. It > > is > > > an error otherwise. > > > if (parameterOrder != null && !wrapped) { > > > if (input != null) { > > > @@ -1791,7 +1795,7 @@ > > > // instead of: void echo(StringHolder inout) > > > // Do this: string echo(string in) > > > if (wrapped && (inputs.size() == 1) && (outputs.size() == > > 1) > > > - && > > > + && > > > Utils.getLastLocalPart(((Parameter) > > > inputs.get(0)).getName()).equals( > > > Utils.getLastLocalPart(((Parameter) > > > outputs.get(0)).getName())) > > > ) { > > > @@ -1859,10 +1863,10 @@ > > > > > > /** > > > * Return the index of the given name in the given Vector, -1 > > if it > > > doesn't exist. > > > - * > > > - * @param name > > > - * @param v > > > - * @return > > > + * > > > + * @param name > > > + * @param v > > > + * @return > > > */ > > > private int getPartIndex(String name, Vector v) { > > > name = Utils.getLastLocalPart(name); > > > @@ -1879,13 +1883,13 @@ > > > > > > /** > > > * Add an in or inout parameter to the parameters object. > > > - * > > > - * @param inputs > > > - * @param outputs > > > - * @param index > > > - * @param outdex > > > - * @param parameters > > > - * @param trimInput > > > + * > > > + * @param inputs > > > + * @param outputs > > > + * @param index > > > + * @param outdex > > > + * @param parameters > > > + * @param trimInput > > > */ > > > private void addInishParm(Vector inputs, Vector outputs, int > > index, > > > int outdex, Parameters parameters, > > > @@ -1928,7 +1932,7 @@ > > > p.setMode(Parameter.INOUT); > > > > > > ++parameters.inouts; > > > - } > > > + } > > > /* > > > else if > > (paramLastLocalPart.equals(outParamLastLocalPart)) > > > { > > > outputs.remove(outdex); > > > @@ -1957,11 +1961,11 @@ > > > } > > > */ > > > else { > > > - > > > + > > > // If we're here, we have both an input and an > > output > > > // part with the same name but different types.... > > > guess > > > // it's not really an inout.... > > > - // > > > + // > > > // throw new > > > IOException(Messages.getMessage("differentTypes00", > > > // new String[] { p.getName(), > > > // p.getType().getQName().toString(), > > > @@ -1985,11 +1989,11 @@ > > > > > > /** > > > * Add an output parameter to the parameters object. > > > - * > > > - * @param outputs > > > - * @param outdex > > > - * @param parameters > > > - * @param trim > > > + * > > > + * @param outputs > > > + * @param outdex > > > + * @param parameters > > > + * @param trim > > > */ > > > private void addOutParm(Vector outputs, int outdex, Parameters > > > parameters, > > > boolean trim) { > > > @@ -2077,7 +2081,7 @@ > > > // - That part is an element > > > // - That element has the same name as the operation > > > // - That element has no attributes (check done below) > > > - > > > + > > > if (!nowrap && literal && (numberOfElements == 1) && > > > possiblyWrapped) { > > > wrapped = true; > > > } > > > @@ -2136,7 +2140,7 @@ > > > // XML for literal parts that specify the type > > > attribute, > > > // (unless they're MIME types) abort processing > > with an > > > // error if we encounter this case > > > - // > > > + // > > > // node = getTypeEntry(typeName, false).getNode(); > > > String bindingName = (bindingEntry == null) > > > ? "unknown" > > > @@ -2172,10 +2176,10 @@ > > > } > > > > > > Vector vTypes = null; > > > - > > > + > > > // If we have nothing at this point, we're in trouble. > > > if (node == null) { > > > - // If node is null, that means the element in > > question > > > has no type declaration, > > > + // If node is null, that means the element in > > question > > > has no type declaration, > > > // therefore is not a wrapper element. > > > wrapped = false; > > > if (verbose) { > > > @@ -2188,7 +2192,7 @@ > > > // can't do wrapped mode > > > wrapped = false; > > > } > > > - > > > + > > > if (!SchemaUtils.isWrappedType(node)) { > > > // mark the type entry as not just literal > > > referenced > > > // This doesn't work, but it may help in the > > > future. > > > @@ -2252,7 +2256,7 @@ > > > > > > /** > > > * Set the header information for this paramter > > > - * > > > + * > > > * @param param Parameter to modify > > > * @param bindingEntry Binding info for this > > operation/parameter > > > * @param opName the operation we are processing > > > @@ -2314,10 +2318,10 @@ > > > > > > /** > > > * Method getBindedParameterName > > > - * > > > - * @param elements > > > - * @param p > > > - * @return > > > + * > > > + * @param elements > > > + * @param p > > > + * @return > > > */ > > > private QName getBindedParameterName(List elements, Parameter > > p) { > > > > > > @@ -2327,7 +2331,7 @@ > > > // with its part name. The namespace used is the one of the > > > soap:header. > > > // When it is in the body, if there is a SOAPBody with its > > part > > > name, > > > // the namespace used is the one of this soap:body. > > > - // > > > + // > > > // If the parameter is in the body and there is a soap:body > > > with no parts, > > > // its namespace is used for the parameter. > > > QName paramName = null; > > > @@ -2391,9 +2395,9 @@ > > > * Set the MIME type. This can be determine in one of two > > ways: > > > * 1. From WSDL 1.1 MIME constructs on the binding (passed > > in); > > > * 2. From AXIS-specific xml MIME types. > > > - * > > > - * @param p > > > - * @param mimeInfo > > > + * > > > + * @param p > > > + * @param mimeInfo > > > */ > > > private void setMIMEInfo(Parameter p, MimeInfo mimeInfo) { > > > > > > @@ -2422,9 +2426,9 @@ > > > > > > /** > > > * Populate the symbol table with all of the BindingEntry's > > from > > > the Definition. > > > - * > > > - * @param def > > > - * @throws IOException > > > + * > > > + * @param def > > > + * @throws IOException > > > */ > > > private void populateBindings(Definition def) throws > > IOException { > > > > > > @@ -2571,13 +2575,13 @@ > > > > > > /** > > > * Fill in some binding information: bodyType, mimeType, > > header > > > info. > > > - * > > > - * @param bEntry > > > - * @param operation > > > - * @param it > > > - * @param faults > > > - * @param input > > > - * @throws IOException > > > + * > > > + * @param bEntry > > > + * @param operation > > > + * @param it > > > + * @param faults > > > + * @param input > > > + * @throws IOException > > > */ > > > private void fillInBindingInfo( > > > BindingEntry bEntry, Operation operation, Iterator it, > > > ArrayList faults, boolean input) > > > @@ -2690,11 +2694,11 @@ > > > > > > /** > > > * Fill in DIME information > > > - * > > > - * @param unkElement > > > - * @param input > > > - * @param operation > > > - * @param bEntry > > > + * > > > + * @param unkElement > > > + * @param input > > > + * @param operation > > > + * @param bEntry > > > */ > > > private void fillInDIMEInformation(UnknownExtensibilityElement > > > unkElement, > > > boolean input, Operation > > > operation, > > > @@ -2780,12 +2784,12 @@ > > > > > > /** > > > * Get the faults from the soap:fault clause. > > > - * > > > - * @param binding > > > - * @param bindOp > > > - * @param operation > > > - * @param faults > > > - * @throws IOException > > > + * > > > + * @param binding > > > + * @param bindOp > > > + * @param operation > > > + * @param faults > > > + * @throws IOException > > > */ > > > private void faultsFromSOAPFault( > > > Binding binding, BindingOperation bindOp, Operation > > > operation, ArrayList faults) > > > @@ -2879,11 +2883,11 @@ > > > > > > /** > > > * Set the body type. > > > - * > > > - * @param use > > > - * @param bEntry > > > - * @param operation > > > - * @param input > > > + * > > > + * @param use > > > + * @param bEntry > > > + * @param operation > > > + * @param input > > > */ > > > private void setBodyType(String use, > > > BindingEntry bEntry, > > > @@ -2892,7 +2896,7 @@ > > > { > > > > > > if (use == null) { > > > - // Deprecated > > > + // Deprecated > > > // throw new IOException(Messages.getMessage("noUse", > > > // operation.getName())); > > > // for WS-I BP 1.0 R2707. > > > @@ -2909,12 +2913,12 @@ > > > * Add the parts that are really MIME types as MIME types. > > > * A side effect is to return the body Type of the given > > > * MIMEMultipartRelated object. > > > - * > > > - * @param bEntry > > > - * @param mpr > > > - * @param op > > > - * @return > > > - * @throws IOException > > > + * > > > + * @param bEntry > > > + * @param mpr > > > + * @param op > > > + * @return > > > + * @throws IOException > > > */ > > > private Use addMIMETypes( > > > BindingEntry bEntry, MIMEMultipartRelated mpr, > > Operation > > > op) > > > @@ -3000,10 +3004,10 @@ > > > > > > /** > > > * Method findPart > > > - * > > > - * @param operation > > > - * @param partName > > > - * @return > > > + * > > > + * @param operation > > > + * @param partName > > > + * @return > > > */ > > > private TypeEntry findPart(Operation operation, String > > partName) { > > > > > > @@ -3022,10 +3026,10 @@ > > > > > > /** > > > * Method findPart > > > - * > > > - * @param iterator > > > - * @param partName > > > - * @return > > > + * > > > + * @param iterator > > > + * @param partName > > > + * @return > > > */ > > > private TypeEntry findPart(Iterator iterator, String partName) > > { > > > > > > @@ -3050,13 +3054,13 @@ > > > > > > /** > > > * Populate the symbol table with all of the ServiceEntry's > > from > > > the Definition. > > > - * > > > - * @param def > > > - * @throws IOException > > > + * > > > + * @param def > > > + * @throws IOException > > > */ > > > > > > private void populateServices(Definition def) throws > > IOException { > > > - String originalName = null; > > > + String originalName = null; > > > Iterator i = def.getServices().values().iterator(); > > > > > > while (i.hasNext()) { > > > @@ -3068,7 +3072,7 @@ > > > || > > service.getQName().getLocalPart().equals("")) { > > > throw new > > > IOException(Messages.getMessage("BadServiceName00")); > > > } > > > - > > > + > > > // behave as though backslashes were never there > > > > > > > > service.setQName(BackslashUtil.getQNameWithBackslashlessLocal(service.ge > > tQ > > > Name())); > > > ServiceEntry sEntry = new ServiceEntry(service); > > > @@ -3083,7 +3087,7 @@ > > > /** > > > * populates the symbol table with port elements defined within > > a > > > <service> > > > * element. > > > - * > > > + * > > > * @param ports a map of name->port pairs (i.e. what is > > returned by > > > service.getPorts() > > > * @throws IOException thrown, if an IO or WSDL error is > > detected > > > * @see javax.wsdl.Service#getPorts() > > > @@ -3104,7 +3108,7 @@ > > > > > > // make sure there is a port name. The 'name' attribute > > for > > > WSDL ports is > > > // mandatory > > > - // > > > + // > > > if (portName == null) { > > > > > > // REMIND: should rather be a > > javax.wsdl.WSDLException > > > ? > > > @@ -3114,7 +3118,7 @@ > > > > > > // make sure there is a binding for the port. The > > 'binding' > > > attribute for > > > // WSDL ports is mandatory > > > - // > > > + // > > > if (portBinding == null) { > > > > > > // REMIND: should rather be a > > javax.wsdl.WSDLException > > > ? > > > @@ -3124,19 +3128,19 @@ > > > > > > // make sure the port name is unique among all port > > names > > > defined in this > > > // WSDL document. > > > - // > > > + // > > > // NOTE: there's a flaw in > > > com.ibm.wsdl.xml.WSDLReaderImpl#parsePort() and > > > // com.ibm.wsdl.xml.WSDLReaderImpl#addPort(). These > > methods > > > do not enforce > > > // the port name exists and is unique. Actually, if two > > > port definitions with > > > // the same name exist within the same service element, > > > only *one* port > > > // element is present after parsing and the following > > > exception is not thrown. > > > - // > > > + // > > > // If two ports with the same name exist in different > > > service elements, > > > // the exception below is thrown. This is conformant to > > the > > > WSDL 1.1 spec (sec 2.6) > > > // , which states: "The name attribute provides a > > unique > > > name among all ports > > > // defined within in the enclosing WSDL document." > > > - // > > > - // > > > + // > > > + // > > > if (existsPortWithName(new QName(portName))) { > > > > > > // REMIND: should rather be a > > javax.wsdl.WSDLException > > > ? > > > @@ -3156,9 +3160,9 @@ > > > * (An exception to the rule is that derived types are set as > > > referenced if > > > * their base type is referenced. This is necessary to support > > > generation and > > > * registration of derived types.) > > > - * > > > - * @param def > > > - * @param doc > > > + * > > > + * @param def > > > + * @param doc > > > */ > > > private void setReferences(Definition def, Document doc) { > > > > > > @@ -3230,10 +3234,10 @@ > > > /** > > > * Set the isReferenced flag to true on the given TypeEntry and > > all > > > * SymTabEntries that it refers to. > > > - * > > > - * @param entry > > > - * @param doc > > > - * @param literal > > > + * > > > + * @param entry > > > + * @param doc > > > + * @param literal > > > */ > > > private void setTypeReferences(TypeEntry entry, Document doc, > > > boolean literal) { > > > @@ -3333,11 +3337,11 @@ > > > /** > > > * Set the isReferenced flag to true on the given MessageEntry > > and > > > all > > > * SymTabEntries that it refers to. > > > - * > > > - * @param entry > > > - * @param def > > > - * @param doc > > > - * @param literal > > > + * > > > + * @param entry > > > + * @param def > > > + * @param doc > > > + * @param literal > > > */ > > > private void setMessageReferences(MessageEntry entry, > > Definition > > > def, > > > Document doc, boolean > > literal) { > > > @@ -3388,11 +3392,11 @@ > > > /** > > > * Set the isReferenced flag to true on the given PortTypeEntry > > and > > > all > > > * SymTabEntries that it refers to. > > > - * > > > - * @param entry > > > - * @param bEntry > > > - * @param def > > > - * @param doc > > > + * > > > + * @param entry > > > + * @param bEntry > > > + * @param def > > > + * @param doc > > > */ > > > private void setPortTypeReferences(PortTypeEntry entry, > > > BindingEntry bEntry, > > Definition > > > def, > > > @@ -3482,10 +3486,10 @@ > > > /** > > > * Set the isReferenced flag to true on the given BindingEntry > > and > > > all > > > * SymTabEntries that it refers to ONLY if this binding is a > > SOAP > > > binding. > > > - * > > > - * @param entry > > > - * @param def > > > - * @param doc > > > + * > > > + * @param entry > > > + * @param def > > > + * @param doc > > > */ > > > private void setBindingReferences(BindingEntry entry, > > Definition > > > def, > > > Document doc) { > > > @@ -3523,10 +3527,10 @@ > > > /** > > > * Set the isReferenced flag to true on the given ServiceEntry > > and > > > all > > > * SymTabEntries that it refers to. > > > - * > > > - * @param entry > > > - * @param def > > > - * @param doc > > > + * > > > + * @param entry > > > + * @param def > > > + * @param doc > > > */ > > > private void setServiceReferences(ServiceEntry entry, > > Definition > > > def, > > > Document doc) { > > > @@ -3568,9 +3572,9 @@ > > > > > > /** > > > * Put the given SymTabEntry into the symbol table, if > > appropriate. > > > - * > > > - * @param entry > > > - * @throws IOException > > > + * > > > + * @param entry > > > + * @throws IOException > > > */ > > > private SymTabEntry symbolTablePut(SymTabEntry entry) throws > > > IOException { > > > > > > @@ -3674,7 +3678,7 @@ > > > /** > > > * checks whether there exists a WSDL port with a given name in > > the > > > current > > > * symbol table > > > - * > > > + * > > > * @param name the QName of the port. Note: only the local part > > of > > > the qname is relevant, > > > * since port names are not qualified with a > > namespace. > > > They are of type nmtoken in WSDL 1.1 > > > * and of type ncname in WSDL 1.2 > > > @@ -3703,17 +3707,17 @@ > > > > > > /** > > > * Method getInnerCollectionComponentQName > > > - * > > > - * @param node > > > - * @return > > > + * > > > + * @param node > > > + * @return > > > */ > > > - private static QName getInnerCollectionComponentQName(Node > > node) { > > > + private QName getInnerCollectionComponentQName(Node node) { > > > > > > if (node == null) { > > > return null; > > > } > > > > > > - QName name = SchemaUtils.getCollectionComponentQName(node, > > new > > > QNameHolder()); > > > + QName name = SchemaUtils.getCollectionComponentQName(node, > > new > > > QNameHolder(), new BooleanHolder(), this); > > > > > > if (name != null) { > > > return name; > > > > > > > > > > > > > > -- > Davanum Srinivas -http://blogs.cocoondev.org/dims/
