Jeff Hooker wrote:
> 
> Having spoken with Bluestream, I have some more questions.
> 
> Jim Tivy (Bluesteam) says that the basic problem is that XXE knows only of 
> the virtual path, and not of the actual filename of the resource that I'm 
> trying to use a helper app to open. He has suggested that an intermediary 
> Java app to call the Bluestream API and establish the name of the actual file 
> in the cache would be the first step to successfully handing it off to a 
> helper app. Currently, he says, when XXE asks for a resource, XDocs simply 
> streams the resource down to XXE and the Virtual Drive plugin handles the 
> relationship between the file displayed in XXE and the file in the 
> repository. What's needed for making helper apps work is a more direct 
> relationship where the virtual drive checks out the resource and then hands 
> the name of the actual file in the cache off to the helper app.
> 
> Any ideas on where to go next with this? Does XXE have any built in ways of 
> accessing an external API? Could this be a custom command?
> 

What Jim Tivy (Bluestream) describes is specific to the way the XDocs
virtual drive plug-in has been implemented. The virtual drive plug-ins
implemented, and thus supported by XMLmind, do not work like this.

What he suggests, passing to the helper application the filename of the
file cached by the plug-in, this filename being obtained using an XDocs
API, cannot work for any other virtual drive plug-in.

We prefer to explain the simple, generic, solution to what is in fact a
generic problem.

Let's suppose I want to open an SVG illustration in Inkscape. The URL of
this SVG illustration is "foo://bar/gee/wiz.svg" (where the support of
"foo:" URLs is implemented by the means of the "Foo" virtual drive plug-in).

Needless to say that Inkscape knows nothing at all about "foo:" URLs!

The trick is to specify that the helper application does not support
URLs at all, just filenames.

To do that, simply use "%F" in the command template of the helper
application. See
http://www.xmlmind.com/xmleditor/_distrib/doc/help/com.xmlmind.helperapps.HelperApplicationEditor.html

By doing this, XXE will make a temporary copy (on the local file system)
of the file to be opened. Then XXE will invoke the helper application
passing the filename of the temporary copy to it.

Same  behavior if you want to edit the SVG illustration. XXE will first
make a temporary copy of the file to be edited. Then XXE will invoke the
helper application passing the filename of the temporary copy to it.
After this temporary copy has been edited in Inkscape, XXE will *upload*
the edited temporary copy in order to replace the original file.

I've tested all this with Inkscape and an SVG file having an "sftp:" URL
and it works really fine. There is no reason why it wouldn't work with
an "xdocs:" URL.



Reply via email to