djencks, Schema stuff is part of JSR-110 (JWSDL 1.1)
-- dims On Mon, 14 Feb 2005 02:34:42 -0000, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Author: djencks > Date: Sun Feb 13 18:34:42 2005 > New Revision: 153695 > > URL: http://svn.apache.org/viewcvs?view=rev&rev=153695 > Log: > work with RC3 wsdl4j which has a schema extension element not mentioned in > the spec > > Modified: > > geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java > > Modified: > geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java > URL: > http://svn.apache.org/viewcvs/geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java?view=diff&r1=153694&r2=153695 > ============================================================================== > --- > geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java > (original) > +++ > geronimo/trunk/modules/axis-builder/src/java/org/apache/geronimo/axis/builder/AxisBuilder.java > Sun Feb 13 18:34:42 2005 > @@ -51,6 +51,7 @@ > import javax.wsdl.WSDLException; > import javax.wsdl.extensions.ExtensibilityElement; > import javax.wsdl.extensions.UnknownExtensibilityElement; > +import javax.wsdl.extensions.schema.Schema; > import javax.wsdl.extensions.soap.SOAPAddress; > import javax.wsdl.extensions.soap.SOAPBinding; > import javax.wsdl.extensions.soap.SOAPBody; > @@ -784,7 +785,7 @@ > > Map faultMap = operation.getFaults(); > for (Iterator iterator = faultMap.entrySet().iterator(); > iterator.hasNext();) { > - Map.Entry entry = (Map.Entry) iterator.next(); > + Map.Entry entry = (Map.Entry) iterator.next(); > String faultName = (String) entry.getKey(); > Fault fault = (Fault) entry.getValue(); > Message message = fault.getMessage(); > @@ -802,9 +803,9 @@ > String headerFaultMessagePartName = > exceptionMapping.getWsdlMessagePartName().getStringValue(); > part = message.getPart(headerFaultMessagePartName); > } else { > - part= (Part) message.getOrderedParts(null).iterator().next(); > + part = (Part) > message.getOrderedParts(null).iterator().next(); > } > - QName faultTypeQName = part.getElementName() == null? > part.getTypeName(): part.getElementName(); > + QName faultTypeQName = part.getElementName() == null ? > part.getTypeName() : part.getElementName(); > boolean isComplex = part.getTypeName() != null && > complexTypeMap.containsKey(part.getTypeName()); > FaultDesc faultDesc = new FaultDesc(faultQName, className, > faultTypeQName, isComplex); > > @@ -882,7 +883,43 @@ > List schemas = types.getExtensibilityElements(); > for (Iterator iterator = schemas.iterator(); > iterator.hasNext();) { > Object o = iterator.next(); > - if (o instanceof UnknownExtensibilityElement) { > + if (o instanceof Schema) { > + Schema unknownExtensibilityElement = (Schema) o; > + QName elementType = > unknownExtensibilityElement.getElementType(); > + if (new QName("http://www.w3.org/2001/XMLSchema", > "schema").equals(elementType)) { > + Element element = > unknownExtensibilityElement.getElement(); > + try { > + XmlObject xmlObject = > SchemaConversionUtils.parse(element); > + XmlCursor cursor = xmlObject.newCursor(); > + try { > + cursor.toFirstContentToken(); > + for (Iterator namespaces = > namespaceMap.entrySet().iterator(); namespaces.hasNext();) { > + Map.Entry entry = (Map.Entry) > namespaces.next(); > + cursor.insertNamespace((String) > entry.getKey(), (String) entry.getValue()); > + } > + } finally { > + cursor.dispose(); > + } > + SchemaDocument schemaDoc = (SchemaDocument) > xmlObject.changeType(SchemaDocument.type); > + SchemaConversionUtils.validateDD(schemaDoc); > + SchemaDocument.Schema schema = > schemaDoc.getSchema(); > + String targetNamespace = > schema.getTargetNamespace(); > + ComplexType[] complexTypes = > schema.getComplexTypeArray(); > + for (int j = 0; j < complexTypes.length; j++) { > + ComplexType complexType = complexTypes[j]; > + String complexTypeName = > complexType.getName(); > + QName complexTypeQName = new > QName(targetNamespace, complexTypeName); > + complexTypeMap.put(complexTypeQName, > complexType); > + } > + } catch (XmlException e) { > + throw new DeploymentException("Invalid schema in > wsdl", e); > + } > + } else { > + //problems?? > + } > + } else if (o instanceof UnknownExtensibilityElement) { > + //This is apparently obsolete as of > axis-wsdl4j-1.2-RC3.jar which includes the Schema extension above. > + //I'm leaving this in in case this Schema class is not > really part of a spec, even though its in javax. > UnknownExtensibilityElement unknownExtensibilityElement > = (UnknownExtensibilityElement) o; > QName elementType = > unknownExtensibilityElement.getElementType(); > if (new QName("http://www.w3.org/2001/XMLSchema", > "schema").equals(elementType)) { > > -- Davanum Srinivas - http://webservices.apache.org/~dims/