Azam,
I'd suggest using CQ to debug the XQuery you are writing.
The explore tool looks will help you identify the paths of documents stored
in the database.
Just a shot in the dark but from the looks of it you're actually placing the
xcc connection string in the fn:doc() statement.
Based on the documentation for XCC and looking at your code below, since you
did not specify a URI to load the content, the uri for the doc would
actually be:
c:\DocBookForAuthentic.xml
so your code should read:
session.NewAdhocQuery("doc(\"c:\DocBookforAuthentic.xml\")/book/chapter[1]")
;
You may also encounter namespace issues, as I'm not sure what the content
within your xml file looks like, so one way to test that the document
actually exists is by using the below:
session.NewAdhocQuery("doc(\"c:\DocBookforAuthentic.xml\")");
Then you can work to sort out any namespace issues once you are sure that
you have the document in the database.
Another thing that you can try just to see the URIs of all the loaded
documents would be to make sure that the uri lexicon is enabled on your
database and then execute the following:
session.NewAdhocQuery("cts:uris()");
hope this helps.
-fs
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Azam
Sent: Tuesday, November 25, 2008 5:40 AM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
Hi
The following is the Xquery I have used.
Request request =
session.NewAdhocQuery("doc(\"xcc://azam:[EMAIL PROTECTED]:8003/GunDigest/D
ocBookforAuthentic.xml\")/book/chapter[1]");
ResultSequence rs = session.SubmitRequest(request);
ConsoleWriteLine(rs.AsString());
ConsoleRead();
But iam not able to get the content from the Mark Logic server.
Could you please tell what may be the reason.
Azam
_____
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Deshbir
Sent: Monday, November 24, 2008 7:56 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
One obvious issue in the code are the 2 different XBDC ports i.e. 8003 for
loading and 8001 pulling content. So you could be loading your XML into a
different database and then trying pull it from another one? Also you have
"spaces" in your XQuery; not sure, but these could also be a problem. Try
without spaces -
"xcc://azam:[EMAIL PROTECTED]:8001/GunDigest/DocBookforAuthentic.xml")/boo
k/chapter[1]"
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Azam
Sent: Monday, November 24, 2008 7:45 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
C#.net console Application
For loading the xml document in Mark Logic server:
Uri serverUri = new
Uri("xcc://azam:[EMAIL PROTECTED]:8003/GunDigest");
FileInfo[] files = new FileInfo[1];
ContentLoader loader = new ContentLoader(serverUri);
files[0] = new FileInfo(@"c:\DocBookforAuthentic.xml");
loader.Load(files);
For pulling the content from xml file in Mark Logic server:
ContentSource contentSource =
ContentSourceFactory.NewContentSource(serverUri);//.newContentSource(serverU
ri);
Session session = contentSource.NewSession();
string strq =
doc("xcc://azam:[EMAIL PROTECTED]:8001/GunDigest/DocBookforAuthentic.xml")
/ book / chapter[1];
Request request = session.NewAdhocQuery(strq);
ResultSequence rs = session.SubmitRequest(request);
ConsoleWriteLine(rs.AsString());
ConsoleRead();
For loading the xml document in Mark Logic server code is working
But in For pulling the content from xml file in Mark Logic server
Near doc and book and chapter iam getting the error as
Doc does not exist in the current context
book does not exist in the current context
Chapter does not exist in the current context
Could you please tell me why its happening like this
I will be very thankful to you sir.
Azam
_____
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Deshbir
Sent: Monday, November 24, 2008 7:25 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
Assuming your XML document is something like:
<book>
<chapter>..</chapter>
<chapter>..</chapter>
<chapter>..</chapter>
.
</book>
the XQuery for retrieving the 1st chapter would be
doc("<uri of your xml>")/book/chapter[1]
or if you have unique attributes (for example an id) for your chapters:
<book>
<chapter id="."' >..</chapter>
<chapter>..</chapter>
<chapter>..</chapter>
.
</book>
the XQuery for retrieving the 1st chapter could be
doc("<uri of your xml>")/book/[EMAIL PROTECTED]"."]
In general, you can assume that XQuery is a superset of Xpath , so almost
any XPath selector would work.
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Azam
Sent: Monday, November 24, 2008 7:02 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
Thanks a lot.
I will work out on this as I need c#.net code
But one problem as iam new to xquery can you send me the xquery samples
For pulling the xml document named test.xml at a particular node called
"chapter" from Mark logic server
It will be very helpful for me.
Thanks,
Azam
_____
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Deshbir
Sent: Monday, November 24, 2008 6:57 PM
To: 'General Mark Logic Developer Discussion'
Subject: RE: [MarkLogic Dev General] XQuery and Mark Logic Sever
Hi Azam,
Sample code:
========================================
import com.marklogic.xcc.*;
import java.net.*;
//Setup a connection to Mark Logic XDBC server
URI serverUri = new URI ("xcc://" +
userName + ":" +
pass + "@" +
serverIP + ":" +
port);
ContentSource cs = ContentSourceFactory.newContentSource(serverUri);
Session session = cs.newSession();
//Execute XQuery
String strQuery="<Any XQuery>";
Request request = m_objConnectionSession.newAdhocQuery (strQuery);
ResultSequence rs= session.submitRequest(request);
//Retrieve Output of XQuery
String xmlOutput;
if (rs.hasNext())
{
ResultItem item = rs.next();
xmlOutput = item.asInputStream();
}
//Print XML
System.out.println(xmlOutput);
=====================================
Regards.
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Azam
Sent: Monday, November 24, 2008 6:29 PM
To: [email protected]
Subject: [MarkLogic Dev General] XQuery and Mark Logic Sever
Hi,
I have loaded the Xml document in Mark Logic server using the XCC demo
application.
The main task I need to complete is ,
I have to pull the content from the Xml document which I have loaded into
Mark Login server at a particular node using XQUERY and XCC.
As iam very new to XQUERY.
Could you please send me the process or the sample code for the above task.
Its very urgent.
I will be very helpful to you if I through with my task.
Thanks in Advance.
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ General mailing list [email protected] http://xqzone.com/mailman/listinfo/general
