private void ResolveTypeNames(ref String typeNS, ref String typeName,
out bool bEmbedded, out bool bPrimitive)
{
Util.Log("SdlParser.ResolveTypeNames typeNS "+typeNS+" typeName "+typeName);
// Check for reference and array types
bEmbedded = true;
bool bArrayType = false;
if (MatchingStrings(typeNS, s_soapNamespaceString))
{
if(MatchingStrings(typeName, s_referenceString))
bEmbedded = false;
else if(MatchingStrings(typeName, s_arrayString))
bArrayType = true;
}
Util.Log("SdlParser.ResolveTypeNames typeNS 1 bEmbedded "+bEmbedded+" bArrayType "+bArrayType);
// Resolve to the actual type in the case of reference and array types
if((bEmbedded == false) || (bArrayType == true))
{
Util.Log("SdlParser.ResolveTypeNames typeNS 2 ");
typeName = LookupAttribute(s_refTypeString, s_sudsNamespaceString, true);
Util.Log("SdlParser.ResolveTypeNames typeNS 3 typeName "+typeName);
typeNS = ParseQName(ref typeName);
}
// Primitive types do not need the [Embedded] attribute;
bPrimitive = IsPrimitiveType(typeNS, typeName);
if(bPrimitive)
{
typeName = MapSchemaTypesToCSharpTypes(typeName);
bEmbedded = false;
}
else if(MatchingStrings(typeName, s_urTypeString) &&
MatchingStrings(typeNS, s_schemaNamespaceString))
{
typeName = s_objectString;
}
return;
}