If you look at the error message the fact that it says 'using schema ""'
indicates that it couldn't find the schema it was looking for.  Since you
are using a relative URI in the schemaLocation, it is looking for it  
relative
to the URI of the document, but your document doesn't have a URI yet -- it
is just a constructed node at the point you are doing the validation.

So you either need to separate the load and validate into separate  
transactions,
or add an explicit schema import statement to your query:

import schema namespace ls="http://www.marklogic.com/ls"; at  
"validSchema.xsd";

//Mary

On Tue, 20 Jul 2010 01:16:03 -0700, Pragya Kapoor  
<[email protected]> wrote:

> Hi
>
> I am trying to validate the following XML file against the below  
> mentioned xsd which is inserted in schema DB with uri validSchema.xsd
>
> ------------XSD------------
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";  
> elementFormDefault="qualified" attributeFormDefault="unqualified"
>         targetNamespace="http://www.marklogic.com/ls";
>         xmlns:ls=" http://www.marklogic.com/ls";
>         xmlns:xml="http://www.w3.org/XML/1998/namespace";>
>
>
>         <xs:import namespace="http://www.w3.org/XML/1998/namespace";  
> schemaLocation="xml.xsd"/>
>
>
>
>         <xs:element name="list">
>                <xs:complexType>
>                        <xs:sequence>
>                                <xs:element ref="ls:head"/>
>                                <xs:element ref="ls:body"/>
>                        </xs:sequence>
>
>                        <xs:attribute name="id" use="optional"  
> type="xs:string"/>
>                        <xs:attribute ref="xml:lang" use="optional"/>
>                </xs:complexType>
>         </xs:element>
>         ................
>
> ---XML ,I m trying to insert in Document DB------
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";  
> xsi:schemaLocation="http://www.marklogic.com/ls validSchema.xsd "
> xmlns=" http://www.marklogic.com/ls
> xmlns:ls=" http://www.marklogic.com/ls " id="1234" language="EN" >
> <ls:head>...
> <ls:body>...
> .....
>
> </list>
>
> Using :
> xquery version "1.0-ml";
>
> let $path := "C:\validate.xml"
> let $node := xdmp:document-get($path)
> return
> try { xdmp:document-insert("validate.xml",
>     validate strict { $node } )
>
> }
> catch ($e) { "Validation failed: ",
> $e/error:format-string/text() }
>
> I am receiving the following error
> Validation failed:
> XDMP-VALIDATENODECL: (err:XQDY0084) validate strict { $node } -- Missing  
> element declaration: Expected declaration for node  
> fn:doc("C:\validate.xml")/*:list in non-lax mode using schema ""
>
> Let me know if I am missing anything.
> Moreover , I tried to put the ns with list also
>
> <?xml version="1.0" encoding="UTF-8"?>
> <ls:list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";  
> xsi:schemaLocation="http://www.marklogic.com/ls validSchema.xsd "
> xmlns=" http://www.marklogic.com/ls
> xmlns:ls=" http://www.marklogic.com/ls " id="1234" language="EN" >
> <ls:head>...
> <ls:body>...
> .....
>
> </ls:list>
>
> But this is also giving the same error.
>
> Thanks,
> Pragya
>
>
>
> **************** CAUTION - Disclaimer *****************
> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended  
> solely
> for the use of the addressee(s). If you are not the intended recipient,  
> please
> notify the sender by e-mail and delete the original message. Further,  
> you are not
> to copy, disclose, or distribute this e-mail or its contents to any  
> other person and
> any such actions are unlawful. This e-mail may contain viruses. Infosys  
> has taken
> every reasonable precaution to minimize this risk, but is not liable for  
> any damage
> you may sustain as a result of any virus in this e-mail. You should  
> carry out your
> own virus checks before opening the e-mail or attachment. Infosys  
> reserves the
> right to monitor and review the content of all messages sent to or from  
> this e-mail
> address. Messages sent to or from this e-mail address may be stored on  
> the
> Infosys e-mail system.
> ***INFOSYS******** End of Disclaimer ********INFOSYS***


-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to