[oXygen-sdk] CMS integration: Resolving images

Oxygen XML Editor Support support at oxygenxml.com
Mon Feb 4 03:11:10 CST 2013


Hi Pascal,

Right now how exactly are you opening the XML files from the CMS? Did 
you create a custom protocol or are you relying on WebDav?

Oxygen works inside using Java URLs.
Usually references (to images, to links, conrefs) are converted to URLs 
by using the URL of the current opened resource (topic). Then Oxygen 
requests the content for these URLs to the URL protocol handler.

Most (probably all known) CMS vendors who integrated with Oxygen took 
this approach:

> http://www.oxygenxml.com/doc/ug-oxygen/index.html#tasks/howto-cms-plugin.html

Basically you use a plugin extension to define a custom URL protocol like:

"sdl://...."

Then you a Browse or "Check out" button on the application's toolbar 
using a Workspace Access plugin extension.
The browse button will show the user your custom CMS browser and the 
user will choose a resource. Then you call our API 
(ro.sync.exml.workspace.api.Workspace.open(URL)) to open the resource 
using your custom protocol, something like:

"sdl://path/to/resource.dita"

Oxygen will request content for that resource from your custom protocol 
handler and your code will contact the CMS to obtain it. When Oxygen 
will find relative resources (like the image 
"GUID-1BA7EFB7-FE54-4643-8AEA-6A2E6A92BD85") it will consider them 
relative to the opened XML file, will create for them an URL like:

"sdl://path/to/GUID-1BA7EFB7-FE54-4643-8AEA-6A2E6A92BD85"

and will call again your protocol handler to obtain the content for it.

Your custom protocol handler also gets called to produce an output 
stream if Oxygen wants to save the content of the edited resource.

In dialogs in which the user needs to browse again the CMS to look for a 
certain resource (like Insert Image, Insert Conref, Insert Cross 
Reference) we have API which allows you to add a custom action for 
browsing the CMS:

> ro.sync.exml.workspace.api.standalone.ReferencesCustomizer.addInputURLChooserCustomizer(InputURLChooserCustomizer)

This API is used in the sample Java class 
"CustomWorkspaceAccessPluginExtension" present in our Plugins SDK as a 
sample of Workspace Access plugin.

Regards,
Radu

Radu Coravu
<oXygen/>  XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 2/4/2013 10:25 AM, Pascal Beutels wrote:
> Hi,
>
> We are creating a plugin for oXygen (14.1)  for our DITA based repository.
>
> All the content is stored in our repository, also the images, ….
>
> When e.g. a topic contains an image element, it only contains the unique
> identifier: <image href="GUID-1BA7EFB7-FE54-4643-8AEA-6A2E6A92BD85"
> placement="break">
>
> What would be the best way to resolve this. Are there hooks foreseen in
> oXygen we  can use? Does oXygen require that this image is on the file
> system (in other words does it expect a file path)?
>
> The same for internal links and conrefs.
>
> Kind regards,
>
> Pascal Beutels
>
>
>
> _______________________________________________
> oXygen-sdk mailing list
> oXygen-sdk at oxygenxml.com
> http://www.oxygenxml.com/mailman/listinfo/oxygen-sdk
>



More information about the oXygen-sdk mailing list