Title: Adding CMIS extensions
The CMIS standard offers to add implementation specific extensions in many places. Here is an example how to add extensions to an instance of ObjectData.
(since OpenCMIS 0.2.0)
// we want to attach an extension to an object ObjectData object = ... // some dummy data String typeId = "MyType"; String objectId = "1111-2222-3333"; String name = "MyDocument"; // find a namespace for the extensions that is different from the CMIS namespaces String ns = "http://apache.org/opencmis/example"; // create a list for the first level of our extension List<CmisExtensionElement> extElements = new ArrayList<CmisExtensionElement>(); // set up an attribute (Avoid attributes! They will not work with the JSON binding!) Map<String, String> attr = new HashMap<String, String>(); attr.put("type", typeId); // add two leafs to the extension extElements.add(new CmisExtensionElementImpl(ns, "objectId", attr, objectId)); extElements.add(new CmisExtensionElementImpl(ns, "name", null, name)); // set the extension list List<CmisExtensionElement> extensions = new ArrayList<CmisExtensionElement>(); extensions.add(new CmisExtensionElementImpl(ns, "exampleExtension", null, extElements)); object.setExtensions(extensions);
This should create something like that:
<exampleExtension:exampleExtension xmlns="http://apache.org/opencmis/example" xmlns:exampleExtension="http://apache.org/opencmis/example"> <objectId type="MyType">1111-2222-3333</objectId> <name>MyDocument</name> </exampleExtension:exampleExtension>