You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Adrian Herscu <bm...@axentra.net> on 2005/09/07 00:36:34 UTC
Re: [jelly] Still have schema validation problems
Paul, any news about these issues?
Adrian Herscu wrote:
> Thanks for your reply, Paul.
> Moving the xsi namespace declaration will not help me -- I need to load
> those XML documents and validate them at build time.
>
> I tried to use the parse tag:
> <jxml:parse var="classDocument" xml="${classFileURL}" />
> <core:set var="validFlag" value="${classVerifier.verify(classDocument)}" />
>
> this provides an workaround for the xsi problem.
>
> Still, this does not solve problem #3 -- the schema import path is
> resolved relatively to the program launch path :-(
>
> Thanks for your help,
> Adrian.
>
>
> Paul Libbrecht wrote:
>
>> Adrian,
>>
>> I have a quick fix: move the namespace declaration of xsi somewhat
>> above. (e.g. at the jelly element).
>> (note that outputting such attributes, however, needs the patch of
>> Diogo at JELLY-213).
>>
>> This made me, however realize that the following, simpler script
>> yields the same exception and shows that there's something
>> malfunctioning in static tags having attributes in a non-empty
>> namespace which explains some of your issues:
>> <j:jelly xmlns:j="jelly:core">
>> <foo xmlns:xx="lolo" xx:att2="lala"/>
>> </j:jelly>
>> I filed this as JELLY-214.
>> Tell us, however, if the quick fix works for you.
>>
>> thanks
>>
>> paul
>>
>>
>>
>>
>> Le 15 juil. 05, à 15:51, Adrian Herscu a écrit :
>>
>>>> 1 <validate:verifier
>>>> 2 var="verifier"
>>>> 3 uri="myschemapath/foo.xsd" />
>>>> 4 <core:catch var="exception">
>>>> 5 <validate:assertValid var="validFlag" verifier="${verifier}">
>>>> 6 <foo
>>>> 7 xsi:schemaLocation="foo_ns myschemapath/foo.xsd"
>>>> 8 xmlns="foo_ns"
>>>> 9 xmlns:base="base_ns"
>>>> 10 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>>> 11 <a>blah</a>
>>>> 12 <base:a>trah</base:a>
>>>> 13 </foo>
>>>> 14 </validate:assertValid>
>>>> 15 </core:catch>
>>>> 16 <echo>Valid: ${validFlag}</echo>
>>>> 17 <echo>Exception: ${exception}</echo>
>>>> My problems are:
>>>> =================
>>>> 1) Line #7, although valid XML, triggers this exception:
>>>> <validate:assertValid> The XML is not valid according to the schema:
>>>> error : line: -1 column: -1 message: unexpected attribute
>>>> "xsi:schemaLocation"
>>>> After deleting line #7 the validation succeeds.
>>>> 2) Because of the previous problem I cannot use <core:include>, to
>>>> load that document. (Or, should I use something else?)
>>>> 3) The foo.xsd schema imports a base.xsd schema. While using a
>>>> standalone schema validator (like MS-XML) the import path is
>>>> resolved relatively to myschemapath/. While using the above script,
>>>> imports are resolved relatively to the program's launch path -- so
>>>> the imported schemas are not found.
>>>> After changing the paths of the imported schema to be relative to
>>>> the launch path the validation succeeds.
>>
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org