private void ParseRRMethod(URTComplexType parsingComplexType, URTInterface parsingInterface)
{
Util.Log("SdlParser.ParseRRMethod ns "+_XMLReader.NamespaceURI);
String methodName = LookupAttribute(s_nameString, null, true);
String soapAction = null;
RRMethod parsingMethod = new RRMethod(methodName, soapAction);
int curDepth = _XMLReader.Depth;
ReadNextXmlElement();
while(_XMLReader.Depth > curDepth)
{
String elmName = _XMLReader.LocalName;
if ((MatchingNamespace(s_soapNamespaceString)) && (MatchingStrings(elmName, s_operationString)))
{
soapAction = LookupAttribute(s_soapActionString, null, false);
parsingMethod.SoapAction = soapAction;
}
else if (MatchingNamespace(s_sudsNamespaceString))
{
if(MatchingStrings(elmName, s_requestString))
{
String refValue = LookupAttribute(s_refString, null, true);
String refNS = ParseQName(ref refValue);
parsingMethod.AddRequest(refValue, refNS);
ReadNextXmlElement();
continue;
}
else if(MatchingStrings(elmName, s_responseString))
{
String refValue = LookupAttribute(s_refString, null, true);
String refNS = ParseQName(ref refValue);
parsingMethod.AddResponse(refValue, refNS);
ReadNextXmlElement();
continue;
}
}
// Ignore others elements such as annotations
SkipXmlElement();
}
if(parsingComplexType != null)
parsingComplexType.AddMethod(parsingMethod);
else
parsingInterface.AddMethod(parsingMethod);
return;
}