The name (actually the URI) of your document in
MarkLogic is "/C/software/MarkLogic Server/db/people/people.xml",
not simply "people.xml".

   A collection of documents in MarkLogic is not a
disk-style filesystem, even though it can often be
treated that way.  Whenever you reference a specific
document by name you need to provide the full and
complete URI.  Think of document URIs as more like
hash keys than filenames.

   Use the xdmp:document-load() function to load
a document and assign your preferred URI.

On Apr 3, 2011, at 6:16 AM, Scott wrote:

> I just downloaded MarkLogic Server 4.2 and have created a database and loaded 
> some data.  I'm brand new to this, so I have a basic question on how to 
> specify a document to query.
>  
> I followed this tutorial for setting up a new database with the Shakespeare 
> data.  But I'll go through a simple scenario of creating everything from 
> scratch.
>       • Create a new database called "people"
>       • Create a new forest called "people", no data directory specified
>       • Create a new HTTP App Server called "people", specify a root folder, 
> port 8012, selected database "people"
>       • Copy the cq folder from the samples folder
>       • Copy an xml file to the http server root called people.xml.  Here is 
> the contents:
>       • <people>
> <person name="bob" />
> <person name="jim" />
> <person name="bob" />
> <person name="ryan" />
> </people>
> 
>       • I load the data using the load tab of the people database screen.
>       • In CQ->explore, I see:  /C/software/MarkLogic 
> Server/db/people/people.xml – element people (properties)  (no collections)
>       • Now I can query this data:
> xquery version "1.0-ml";
> for $person in doc()/people/person 
> return (
> <div>
> $person/@name
> <a href="delete.xqy?path={ xdmp:path($person) }">delete</a>
> </div>
> )
> 
>  
> There are some problems with this query that some research will help me to 
> figure out--the results look like this:
> 
>  
> $person/@name delete
> $person/@name delete
> $person/@name delete
> $person/@name delete
> 
>  
> --but I'm getting the right number of results.  My question is, how to I 
> target a document by name?
> 
>  
> If I change the doc() call above to read doc( "people.xml" ), I get an emtpy 
> return set in response.  I need this to work because I have several xml files 
> loaded into the database I'm trying to work with, and I want to be specific.
> 
>  
> Thanks for helping out!
> 
>  
> Scott 
> 
>  
> _______________________________________________
> General mailing list
> [email protected]
> http://developer.marklogic.com/mailman/listinfo/general

---
Ron Hitchens {mailto:[email protected]}   Ronsoft Technologies
     +44 7879 358 212 (voice)          http://www.ronsoft.com
     +1 707 924 3878 (fax)              Bit Twiddling At Its Finest
"No amount of belief establishes any fact." -Unknown




_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to