internal List<PendingChange> QueryPendingChangesForWorkspace(Workspace workspace, List<ItemSpec> itemSpecs, bool includeDownloadInfo)
{
var invoker = new SoapInvoker(this);
var msg = invoker.CreateEnvelope("QueryPendingChangesForWorkspace");
msg.Add(new XElement(MessageNs + "workspaceName", workspace.Name));
msg.Add(new XElement(MessageNs + "workspaceOwner", workspace.OwnerName));
msg.Add(new XElement(MessageNs + "itemSpecs", itemSpecs.Select(i => i.ToXml(MessageNs + "ItemSpec"))));
msg.Add(new XElement(MessageNs + "generateDownloadUrls", includeDownloadInfo.ToLowString()));
var result = invoker.InvokeResult();
return result.Elements(MessageNs + "PendingChange").Select(PendingChange.FromXml).ToList();
}