internal List<Conflict> QueryConflicts(Workspace workspace, List<ItemSpec> items)
{
var invoker = new SoapInvoker(this);
var msg = invoker.CreateEnvelope("QueryConflicts");
msg.Add(new XElement(MessageNs + "workspaceName", workspace.Name));
msg.Add(new XElement(MessageNs + "ownerName", workspace.OwnerName));
msg.Add(new XElement(MessageNs + "items", items.Select(itemSpec => itemSpec.ToXml(MessageNs + "ItemSpec"))));
var result = invoker.InvokeResult();
return ConflictExtractor(result, workspace);
}