SharePoint List Service Recursive not working

Posted by stranger001 on Stack Overflow See other posts from Stack Overflow or by stranger001
Published on 2009-11-17T22:30:20Z Indexed on 2010/05/12 9:04 UTC
Read the original article Hit count: 217

Filed under:

Hi, I am using the following code to retrieve the documents in a list. Its working fine. However, it only returns documents and folders in root of the doc library. Is there any thing wrong I am doing here? I am looking for files in sub folders with recursive mode.

Service service = new Service();
    service.setMaintainSession(true);
    call    = (Call) service.createCall();
    call.setTargetEndpointAddress( new java.net.URL("<host>/_vti_bin/lists.asmx") );

    call.setOperationName(new QName("http://schemas.microsoft.com/sharepoint/soap/","GetListItems"));
    call.setProperty(Call.SOAPACTION_USE_PROPERTY, new Boolean("true"));
    call.setProperty(Call.SOAPACTION_URI_PROPERTY,"http://schemas.microsoft.com/sharepoint/soap/GetListItems");

  call.addParameter(new javax.xml.namespace.QName("http://schemas.microsoft.com/sharepoint/soap/", "listName"),
    new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"),
    java.lang.String.class,
    javax.xml.rpc.ParameterMode.IN);

   MessageElement me = 
        new MessageElement(new QName("QueryOptions"));
    me.addChildElement(new MessageElement(new QName(
    "IncludeMandatoryColumns"))).addTextNode("true");
    me.addChildElement(new MessageElement(new QName(
    "ViewAttributes"))).addAttribute(javax.xml.soap.SOAPFactory.newInstance().createName("Scope"), "Recursive");

    MessageElement[] me1 = {me}; 

    String strMyString = ""
        + "<Query>"
        + "<OrderBy><FieldRef Name=\"ows_Modified\" Ascending=\"TRUE\" /></OrderBy>"
        + "</Query>";

        MessageElement[] meArray = { getMeFromString(strMyString) };// Array


    call.addParameter("query",org.apache.axis.Constants.XSD_SCHEMA,
    		javax.xml.rpc.ParameterMode.IN);	

    call.addParameter("queryOptions",org.apache.axis.Constants.XSD_SCHEMA,
    		javax.xml.rpc.ParameterMode.IN);	

    call.setReturnType(org.apache.axis.Constants.XSD_SCHEMA);

   Schema ret = (Schema)call.invoke(new Object[] {"listGUID",meArray, me1 });


   public org.apache.axis.message.MessageElement getMeFromString(final String strMyString) {
    DocumentBuilder docBuilder = null;
    try {
        docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    } catch (final ParserConfigurationException e) {

        e.printStackTrace();
    } catch (final FactoryConfigurationError e) {

        e.printStackTrace();
    }
    final StringReader reader = new StringReader(strMyString);
    final InputSource inputsource = new InputSource(reader);
    Document doc = null;
    try {
        doc = docBuilder.parse(inputsource);
    } catch (final SAXException e) {
        e.printStackTrace();
    } catch (final IOException e) {
        e.printStackTrace();
    }
    final Element ele = doc.getDocumentElement();
    final MessageElement msg = new MessageElement(ele);

    return msg;
}

© Stack Overflow or respective owner

Related posts about sharepoint