On Mon, 01 Feb 2010 17:36:37 -0800, Tim Meagher <[email protected]> wrote:
Hi Mary,
We're running 4.1-3.
Well, this is mysterious: I see the XDMP-VALIDATENODECL error in 4.1-3
also.
Perhaps you can send me offline exactly what you are doing and seeing.
Since the document and schema are in separate databases, is there a way
to remove the relative path dependency indicated by the
noNamespaceSchemaLocation declaration?
I'm afraid not.
The schemas database could be the same as the main database, in
which case using the relative path is straightforward.
What some folks like to do who work with different versions of
the same schema is to drop the relevant schemas in relative locations
to the documents so the right version is found.
It would be a little strange to handle URIs in imported schemas differently
from those in schemaLocation on the instance, and the spec requires
us to apply the base uri to the former.
//Mary
Thanks,
Tim
-----Original Message-----
From: [email protected] [mailto:general-
[email protected]] On Behalf Of Mary Holstege
Sent: Monday, February 01, 2010 7:42 PM
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] Validating an XML document when
nonamespace is declared
On Mon, 01 Feb 2010 15:14:11 -0800, Tim Meagher <[email protected]> wrote:
>
> xquery version "1.0-ml";
> import schema "" at "/my-schema.xsd";
> declare default element namespace "";
> let $node := fn:doc("/A/B/my-doc.xml")
> return validate strict { $node }
>
>
> where the namespace is defined in my-doc.xml as follows:
>
> <root xsi:noNamespaceSchemaLocation="/my-schema.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>
>
> Note that the schema is located in the root of the Schema database.
>
> The exception is that if the schema name lacks the forward slash in
the
> xml document as follows:
>
<root xsi:noNamespaceSchemaLocation="my-schema.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
What this is saying is that the schema for this document is
at "/A/B/my-schema.xsd" (given that the document is at
"/A/B/my-doc.xml") in the Schemas database. No such schema
exists (I presume), so you should get the XDMP-VALIDATENODECL error
with strict validation or just the document back with lax validation.
> then the validation proceeds without any errors being thrown but
returns
> no document (so I don't think validation is working in this case).
This is some kind of bug: you should either get the error or the
document.
What version is this? I didn't see this in a quick check of the latest,
but it could be something that got fixed recently.
> I don't
> know if it needs the "/" because the document is not located in the
root
> path of its database or if the path is required to find the schema in
the
> Schema database. The documents I am trying to validate do not include
> the "/" path. I can always revise them, but I'm looking for a quick
fix.
>
>
> Thank you!
>
>
> Tim Meagher
//Mary
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general