}
protected void setupTypesMetaData(ServiceMetaData serviceMetaData)
{
WSDLDefinitions wsdlDefinitions = serviceMetaData.getWsdlDefinitions();
JavaWsdlMapping javaWsdlMapping = serviceMetaData.getJavaWsdlMapping();
TypesMetaData typesMetaData = serviceMetaData.getTypesMetaData();
// Copy the schema locations to the types meta data
if (wsdlDefinitions != null)
{
WSDLTypes wsdlTypes = wsdlDefinitions.getWsdlTypes();
typesMetaData.setSchemaModel(WSDLUtils.getSchemaModel(wsdlTypes));
}
// Copy the type mappings to the types meta data
if (javaWsdlMapping != null)
{
for (JavaXmlTypeMapping xmlTypeMapping : javaWsdlMapping.getJavaXmlTypeMappings())
{
String javaTypeName = xmlTypeMapping.getJavaType();
String qnameScope = xmlTypeMapping.getQnameScope();
QName xmlType = xmlTypeMapping.getRootTypeQName();
QName anonymousXMLType = xmlTypeMapping.getAnonymousTypeQName();
if (xmlType == null && anonymousXMLType != null)
xmlType = anonymousXMLType;
String nsURI = xmlType.getNamespaceURI();
if (Constants.NS_SCHEMA_XSD.equals(nsURI) == false && Constants.URI_SOAP11_ENC.equals(nsURI) == false)
{
TypeMappingMetaData tmMetaData = new TypeMappingMetaData(typesMetaData, xmlType, javaTypeName);
tmMetaData.setQNameScope(qnameScope);
typesMetaData.addTypeMapping(tmMetaData);
}
}
for (ExceptionMapping exceptionMapping : javaWsdlMapping.getExceptionMappings())
{
QName xmlType = exceptionMapping.getWsdlMessage();
String javaTypeName = exceptionMapping.getExceptionType();
TypeMappingMetaData tmMetaData = new TypeMappingMetaData(typesMetaData, xmlType, javaTypeName);
typesMetaData.addTypeMapping(tmMetaData);