Mario Ivankovits wrote:
Philippe Poulard wrote:

i need these attributes to create the file : XML:DB oblige to indicate if a file is XML or binary ; other attributes may also be required according to the provider ; so, if IMAGINARY was a type that would accept attributes, all would work fine

Hmmm ... I am not happy with this.

Sure, this is a small and easy change but it breaks VFS philosphy: A single and consistent api to access files. Why? - You now have to know which filesystem you access and maybe setup some (not defined by the fs) attributes to correctly create/read/write files.

an XML:DB "file system" is somewhat exotic ; an URI is just a canonical expression of the representation of a file on a single string, but the fields are known : scheme, host, port, user, pwd, path etc ; the question is how to deal with additional informations required by the scheme provider but that can't be canonicalized ? the solution is to accept parameters


Say if I would like to move from a FTP: store to XMLDB: I would like to be able to do this without the need to change the whole application (e.g. set attributes before file creation)

these attributes are tightly coupled to this scheme
so if you have "xmldb:provider://..." somewhere, you also have attribute settings beside thus, when you make the switch from xmldb to -say- ftp, this includes to clean attributes becoming irrelevant

example:

with active tags i write it like this:
<io:file name="target" file-name="xmldb:xyl://user:[EMAIL PROTECTED]/path/to/file.xml">
    <!--needed by XML:DB-->
    <xcl:param name="xmldb-resource-type" value="XMLResource"/>
    <!--needed by Xyleme-->
    <xcl:param name="cluster" value="Raweb2004"/>
</io:file>

if i decide to move to ftp, i change like this:
<io:file name="target" file-name="ftp://user:[EMAIL PROTECTED]/path/to/file.xml"/>



When exactly do you need those attributes?
If we need to distinguish between binary/text files wouldnt it be better we provide a configuration to map filename-extensions/content-types to its type?

this implies that we must know which types we intend to use ; with XML, there is many and many usual extensions and if a new extension is encountered, what do we do ? eventually, we could attempt to parse the file and if it fails, we assume that it's a binary file ; but how can we distinguish a broken XML file (that we should't store) with a binary one (that would also store broken XML) ? so, we can't based upon the content or name or content-type to decide which kind of file we are dealing with : this must be driven by the application


Which attributes else do you need?


many others, that depend on the XML:DB provider
with Xyleme Zone Server, i have for example :
-the cluster name
-the attachment n�
-the timeout
-the mode (pipeline or document)
etc

some could be "normalized" by VFS ; for example, the "timeout" is a concept shared by remote file systems
why not define the "org.apache.commons.VFS.attributes.timeout" attribute ?
same thing for other providers ; this would avoid name conflicts
--
Cordialement,

           ///
          (. .)
 -----ooO--(_)--Ooo-----
|   Philippe Poulard    |
 -----------------------

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to