Thanks Jakob, we'll make sure the doc for xdmp:directory-create gets fixed.

As for checking if the directory exists, a directory is a properties fragment 
at a URI with the special prop:directory property (see the "Properties 
Documents and Directories" chanper of the Application Developer's Guide, chap 
10 p 102-- http://developer.marklogic.com/pubs/4.1/books/dev_guide.pdf).

For example, if you run the following:

xdmp:directory-create("/test/jakob/")

then run the following:

xdmp:document-properties("/test/jakob/")

it returns the following properties document:

<prop:properties xmlns:prop="http://marklogic.com/xdmp/property";>
  <prop:directory/>
</prop:properties>

So to check for its existence, check to see if the xdmp:document-properties 
call on the directory URI has a prop:directory property.

Hope that helps.

-Danny

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Jakob Fix
Sent: Friday, August 07, 2009 7:16 AM
To: General Mark Logic Developer Discussion
Subject: [MarkLogic Dev General] discrepancy between doc and release notes 
(directory-create)

Just a quick note that the doc seems out of sync with reality :)

doc for xdmp:directory-create()
http://developer.marklogic.com/pubs/4.1/apidocs/UpdateBuiltins.html#xdmp:directory-create

"Creates a directory. If security is enabled, the document permissions
and collections are set to the given parameters, if supplied.
Otherwise, the current user's default permissions and/or collections
are applied. If the beginning of the the document URI is protected,
the user must have access to that URI privilege. If the directory URI
does not end with a '/' one is added. *If the directory already
exists, then nothing is done*."

release notes:
http://developer.marklogic.com/pubs/4.1/books/relnotes.pdf

"In 4.1, if you try to create a directory (using
xdmp:directory-create, for example) and the
directory already exists, then an exception is thrown
(XDMP-DIREXISTS). In 4.0, the directory was
re-created, and no exception was thrown. If you have code that relies
on the old behavior, you
must modify that code to make it handle the exception when the
directory exists."

As there doesn't seem to be a xdmp:directory-exists() function (could
fn:exists() be used?), what's the "correct" way to avoid exceptions
been thrown?  I'm currently using try/catch.

cheers,
Jakob.
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to