Properties and URIs of Directories
- Last Updated: April 15, 2026
- 1 minute read
- MarkLogic Server
- Version 11.0
- Documentation
A directory is stored as a properties document in a MarkLogic Server database. Like a document, a directory has a URI, but the URI must end in a forward slash (/). Use the xdmp:document-properties("uri_name") function to retrieve the properties document for a URI, or xdmp:document-properties() to retrieve all of the properties documents in the database.
Properties are in the http://marklogic.com/xdmp/property namespace. When you create a directory (either automatically or manually), the system creates a properties document in the database with a child element named directory. For example, if you have a directory in your database with a URI /myCompany/marketing/, the following query return the following results:
xdmp:document-properties("/myServer/Marketing/")
=>
<prop:properties xmlns:prop="http://marklogic.com/xdmp/property">
<prop:directory/>
</prop:properties>
The properties document returned does not contain the URI of the directory, but just an empty element (prop:directory) indicating the existence of a directory.
xdmp:document-properties() returns the properties documents for all documents in the database. Whenever there is a directory element in the properties document, there is a directory in the database, and calling xdmp:node-uri() on that element returns the URI of the directory. For example, the following query returns the URIs for all of the directories in a database:
declare namespace prop="http://marklogic.com/xdmp/property"
for $x in xdmp:document-properties()/prop:properties/prop:directory
return <directory-uri>{xdmp:node-uri($x)}</directory-uri>
Note:
It is possible to create a document with a URI that ends in a forward slash (/). To avoid confusion with directory URIs, the best practice is to avoid creating documents with URIs that end in a forward slash.