views:

318

answers:

1

I have an XML to be rendered in sharepoint using a XSL file. I now the how to do this using object model of sharepoint but don't how to do this using sharepoint web services.

i.e. I want to create XML web parts using sharepoint web services.

Is it possible to do create XML web parts using sharepoint web services? If yes, how?

A: 

Found out myself how to do it. :-)

The AddWebPart method of WebPartPagesweb service is the only method which can be used to add a web part and add it to a page too.

You only need to prepare the Xml properly which needs to be passed to the methosd as a parameter. This XML determines the type of WebPart and it's properties.

For Xml WebPArt, I used the following Xml:

<WebPart xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/WebPart/v2"&gt;
          <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
          <TypeName>Microsoft.SharePoint.WebPartPages.XmlWebPart</TypeName>
          <FrameType>None</FrameType>
          <Title>XML Web Part</Title>
          <XMLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml"&gt;http://RootSite/sites/XYZ/Documents/ABC.xml&lt;/XMLLink&gt;
          <XML xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <XSLLink xmlns="http://schemas.microsoft.com/WebPart/v2/Xml"&gt;http://RootSite/sites/XYZ/Documents/ABC.xsl&lt;/XSLLink&gt;
          <XSL xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
          <PartStorage xmlns="http://schemas.microsoft.com/WebPart/v2/Xml" />
</WebPart>

And pass this Xml string to the AddWebPart Method:

public static Guid WebPartPagesAddWebPart(string PageUrl, string WebPartXml, uint Storage)
        {
            // proxy object to call the Versions web service
            WebPartPages.WebPartPagesWebService WebPartPagesWebService = new WebPartPages.WebPartPagesWebService();

            // the user credentials to use
            WebPartPagesWebService.Credentials = new NetworkCredential(UserName, Password, Domain);
            WebPartPagesWebService.Url = sharePointHost + WebPartPagesServiceName;

            // add the new web part to the page
            Guid Result = WebPartPagesWebService.AddWebPart(PageUrl, WebPartXml, (WebPartPages.Storage)Storage);

            // dispose the web service object
            WebPartPagesWebService.Dispose();
            return Result;
        }

The MSDN help only gave a example for ContentEditor web part. I searched a bit and modified it for Xml web part. :)

Manish