You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2005/07/29 05:28:44 UTC
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.getQName()));
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;