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