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

Reply via email to