Hi Florian, Thanks for the clarification. The canDeleteTreeSpecified IS being passed back in the XML (and using the CMIS namespace!) but, as you say, OpenCMIS ignores it.
So what that means then is that Sharepoint really doesn't allow deleteTree? That is really weird. That means I need to actually walk the tree to delete the entries, I suppose. That's going to be expensive. Thanks, Alex On Thursday, March 31, 2011 at 10:20 AM, Florian Müller wrote: > Hi Alex, > > canDeleteTreeSpecified is a class member generated by the .NET XML > serialization framework. It indicates if the tag exists in the XML document > or not. It has nothing to do with the CMIS specification. > It shouldn't show up IN the XML, thought. Only Microsoft can answer why it is > there. OpenCMIS ignores it. > > The CMIS Workbench does work with SharePoint. There are a few issues that are > caused by Microsofts CMIS implementation. The CMIS Workbench works best with > the AtomPub binding. If you can, turn off NTLM and turn on basic > authentication on the SharePoint end. > > > Cheers, > > Florian > > > On 31/03/2011 00:28, Alexander Chow wrote: > > Hi all, > > > > So, we are trying to use OpenCMIS 0.2.0 to access a Sharepoint 2010 > > repository and noticed that we can't call Folder.deleteTree(). We get the > > following stacktrace snippet: > > > > Caused by: > > org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException: > > Method Not Allowed > > at > > org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:405) > > at > > org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.deleteTree(ObjectServiceImpl.java:370) > > at > > org.apache.chemistry.opencmis.client.runtime.FolderImpl.deleteTree(FolderImpl.java:176) > > ... > > > > Upon further investigation, it turns out that indeed the allowableActions > > entry "canDeleteTree" is FALSE. But there seems to be another entry that I > > am not familiar with and can't seem to find in the CMIS 1.0 spec... > > "canDeleteTreeSpecified", which is TRUE. > > > > <allowableActions xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"> > > <anyAttr i:nil="true" > > xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" > > xmlns:i="http://www.w3.org/2001/XMLSchema-instance" > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></anyAttr> > > <any i:nil="true" > > xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" > > xmlns:i="http://www.w3.org/2001/XMLSchema-instance" > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></any> > > ... > > <canDeleteObject > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObject> > > <canDeleteObjectSpecified > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObjectSpecified> > > <canDeleteTreeSpecified > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteTreeSpecified> > > ... > > <canDeleteContentStream > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteContentStream> > > <canDeleteTree > > xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteTree> > > ... > > </allowableActions> > > > > > > Incidentally, I have also noticed that the canDeleteTreeSpecified seems to > > be in the DotCMIS code: > > > > http://svn.apache.org/repos/asf/chemistry/dotcmis/trunk/DotCMIS/binding/converter.cs > > > > Can somebody give some light as to what Sharepoint (and DotCMIS) is doing > > here? Are we unable to delete the trees of a folder? Or is there some part > > of the spec which I am not familiar with? Incidentally, it seems as though > > the CMIS workbench does not work either with Sharepoint. > > > > Thanks, > > > > Alex >
