neoQueryXML = XmlParse( neoQueryData );
dsNames= XmlSearch( neoQueryXML, "/wddxPacket/data/array/struct/var/struct/var[@name='DRIVER' or @name='driver']" );
names= ArrayNew( 1 );
for( i=1; i LTE ArrayLen( dsNames ); i=i+1 )
names[i] = dsNames[i].XMLParent.XMLParent.XMLAttributes.name;
cfcInfo = XmlParse( results );
methods = ArrayNew( 1 );
if( not( filter EQ "" ))
filter = " and " & filter;
methodInfo = XmlSearch( cfcInfo, "/component/method[@access='remote'"& filter & "]" );
paramInfo= "";
methodData="";
paramXML= "";
methodNode= "";
for( i=1; i LTE ArrayLen( methodInfo ); i=i+1 ) {
methodNode = methodInfo[i];
methodData= StructNew();
methodData.name =methodNode.XmlAttributes.name;
methodData.params= ArrayNew( 1 );
methods[i] = methodData;
for( j=1; j LTE ArrayLen( methodNode.XmlChildren ); j=j+1 ) {
paramXML= methodNode.XmlChildren[j];
paramInfo = StructNew();
paramInfo.name = paramXML.XmlAttributes.name;
try {
paramInfo.type = paramXML.XmlAttributes.type;
}
catch( any e ) {
paramInfo.type ="";
}
methodData.params[j] = paramInfo;
}
}
cfcInfo = XmlParse( results );
methods = ArrayNew( 1 );
if( not( filter eq "" ))
filter = " and " & filter;
methodInfo = XmlSearch( cfcInfo, "/component/method[@access='remote'"& filter & "]" );
paramInfo= "";
methodData="";
paramXML= "";
methodNode= "";
for( i=1; i lte ArrayLen( methodInfo ); i=i+1 ) {
methodNode = methodInfo[i];
if( checkParamCountAndType( methodNode, 2 )) {
methodData= StructNew();
methodData.name =methodNode.XmlAttributes.name;
methodData.params= ArrayNew( 1 );
methods[i] = methodData;
for( j=1; j LTE ArrayLen( methodNode.XmlChildren ); j=j+1 ) {
paramXML= methodNode.XmlChildren[j];
paramInfo = StructNew();
paramInfo.name = paramXML.XmlAttributes.name;
try {
paramInfo.type = paramXML.XmlAttributes.type;
}
catch( any e ) {
paramInfo.type ="any";
}
methodData.params[j] = paramInfo;
}
}
}
cfcInfo = XmlParse( results );
methods = ArrayNew( 1 );
if( not( filter eq "" ))
filter = " and " & filter;
methodInfo = XmlSearch( cfcInfo, "/component/method[@access='remote'"& filter & "]" );
paramInfo= "";
methodData="";
paramXML= "";
methodNode= "";
for( i=1; i lte ArrayLen( methodInfo ); i=i+1 ) {
methodNode = methodInfo[i];
if( checkParamCountAndType( methodNode, 1 )) {
methodData= StructNew();
methodData.name =methodNode.XmlAttributes.name;
methodData.params= ArrayNew( 1 );
methods[i] = methodData;
for( j=1; j LTE ArrayLen( methodNode.XmlChildren ); j=j+1 ) {
paramXML= methodNode.XmlChildren[j];
paramInfo = StructNew();
paramInfo.name = paramXML.XmlAttributes.name;
try {
paramInfo.type = paramXML.XmlAttributes.type;
}
catch( any e ) {
paramInfo.type ="any";
}
methodData.params[j] = paramInfo;
}
}
}
result = ArrayLen( methodNode.XmlChildren ) gte count;
if( result ) {
for( p=1; p lte count; p=p+1 ) {
try {
result = result and ( node.XmlChildren[p].XmlAttributes.type eq "string" );
}
catch( any e ) {
result = result and true;
}
}
}