From: Adam R. <ad...@ex...> - 2009-11-16 22:16:26
|
> There are many choices of XQuery file extension. Which, of these > many, extensions, can you choose based on the day of the week, and > which cause eXist's REST servlet to treat the file differently? > > Here's what I've observed... I'd appreciate any corrections or elaborations: > > 1. In the context of a REST servlet request, .xql, .xqy, and .xquery > files will be interpreted by the XQueryServlet, on the path through > any controller.xql files as defined in > $EXIST_HOME/webapp/WEB-INF/controller-config.xml > > 2. When storing files into the database using the Java client, .xq, > .xql, .xqm, .xquery, .xqy, and .xqws files are given the mime-type > name of "application/xquery", type of "binary", and description of > "XQuery script"; as defined in $EXIST_HOME/mime-types.xml > > 3. When working with queries stored on the filesystem, .xql, .xqy, and > .xquery files are interpreted (and serialized as text/html by > default), whereas all other .xq* files merely display their source. > > 4. When working with queries stored in the db, all of the above work > identically (but are serialized as text/xml by default) -- only .xqws > fails with a 500 error (String index out of range: -17). .xqws is a special type of XQuery module. XQWS means XQuery Web Service and it is executed via the REST SOAPServer, i.e. it lets you serve up the functions from an XQuery Module as a SOAP WebService. This code is somewhat outdated, but I am hoping to revise and improve the concepts in the not too distant future. > My conclusions are thus that: > > 1. The only truly "reserved" extensions are .xql, .xqy, and .xquery -- > no other extensions will be interpreted if they're stored on the file > system. > > 2. Other than this, when working in the database, you can use > whichever of the .xq* extensions listed above, with the exception of > .xqws, which doesn't work. > > 3. The choice among the various .xq* extensions is one of > convention/local practice, and isn't written in stone anywhere. > > Right? If so, what is your convention / local practice? Do you use a > single extension for all your xquery files, or do you use different > extensions for different purposes? Personally in eXist I use .xqm for XQuery Modules and .xql for XQuery. However I know that if for example you use MarkLogic than you typically use .xqy for everything, although .xqm also works for modules, I am not sure what other implementations use or if there is any sort of standard. I have also noticed that oXygen seems to choose .xquery by default. -- Adam Retter eXist Developer { United Kingdom } ad...@ex... irc://irc.freenode.net/existdb |