I have now made use of four of the experimental oXygen plugin workspace API options (on a Mac running OS X - Snow Leopard) :

(1) getOptionsStorage -  This has a straightforaward interface, which worked as expected.
(2) createNewEditor - This was slightly more awkward to use in our plugin's context (more details below).
(3) getEntityResolver - Works as expected (thanks).
(4) getURIResolver - Appears to works as expected (but currently, not tested).

I have managed to get the 'createNewEditor' API call to create a fresh document that is considered to be modified, using the following code:

Writer writer = new StringWriter();
...
// Write to the string.
...
URL url= workspace.createNewEditor("xml", "text/xml", writer.toString());
WSEditor ed=workspace.getEditorAccess(url, StandalonePluginWorkspace.MAIN_EDITING_AREA);
ed.setModified(true);

Observations:

(1) This approach may be problematic for big documents, as the whole document is stored in a string.
(2) The created document is not marked as modified.

There are at least two ways of addressing the first of these points. One approach is to create a small blank document that is then overridden using the WSEditod's realoadContent(Reader). Here, the question I had was: what is the minimal XML document that can be overridden (and get the right document type association - e.g. DITA)? It might be that oXygen could automatically create such a document from the first two arguments of the createNewEditor method.

A second approach could be to replace the third argument of the createNewEditor method with a java.io.Reader argument, such as is used when reloading a document into an existing WSEditor (editor.reloadContent(reader)).

Overall, I am pleased with these experimental enhancements.

Regards,
Anthony.

--
-- -------------------------------------------------------------------------
Michael Anthony Smith, DeltaXML Ltd "Change control for XML"
T: +44 1684 578751   E: anthony.smith@deltaxml.com   http://www.deltaxml.com
Registered in England 02528681 Reg. Office: Monsell House, WR8 0QN, UK