Ok, xdmp-eval() did the trick.
xdmp:eval-in('doc("foo.xsd")', xdmp:schema-database())
Again, this only gets me "foo.xsd" at the root of the schema DB. I do know the
content of the schema, and the schema file name. But when I look in the schema
database in CQ....I see that the schema files are not at "/foo.xsd", instead
they are at "/some/path/foo.xsd". This path *may* change with different schema
files...so I'd rather just search for the file by basename.
Is cts:uri-match("*/foo.xsd") the only way to *look for* files in a database
when you dont know the preceding path?
thanks,
/marv
--- On Thu, 5/13/10, Strawn, M. Shane <[email protected]> wrote:
From: Strawn, M. Shane <[email protected]>
Subject: Re: [MarkLogic Dev General] How to query files from the schema
database?
To: "General Mark Logic Developer Discussion" <[email protected]>
Date: Thursday, May 13, 2010, 1:26 PM
I think you might get more detailed answers... but two
parts:
1) in order to hit the Schemas database, or any
database that is not the main db of your app, you should do an xdmp:eval() or
xdmp:invoke(), of which one of the options is which database to target the
query to.
2) if you have no idea about your schema uris, only doc
file names, I think you could use
cts:uri-match("*/foo.xsd")
...IF you have the uri lexicon
turned on in the schemas db config.
~Shane
From: [email protected]
[mailto:[email protected]] On Behalf Of cOre
dUmPeR
Sent: Thursday, May 13, 2010 4:04 PM
To:
[email protected]
Subject: [MarkLogic Dev General] How
to query files from the schema database?
Question:
How do you write a ML-XQuery program *searches* the the Schema database
for a schema of a particular name, lets say "foo.xsd", and writes it to
disk?
I know if there was a doc named "foo.xml" in the document
database, I could just do:
doc("foo.xml")
but
the file i'm interested in is in the schema database. Also, I only know
the base name of the file "foo.xsd"...and I dont know the path in the
schema database...for example, the schema file could be in
/path/to/foo.xsd or if could be in /foobar/foo.xsd. So I have to be able
to *find* the schema file first.
I have gone over the ML4.1
docs...and have had little luck finding out how to do this.
I
realize in CQ I can just change the "content-source"...but my little app
will of course exist outside of CQ.
Context:
I have an install of MLS 4.1 at work. It is already populated with plenty
of XML docs and Schema files.
I am a MLS n00b...but have a good
amount of experience with XML and programming in General.
thanks in advance,
/marv
-----Inline Attachment Follows-----
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general