xsl-list
[Top] [All Lists]

Re: [xsl] Validating source documents, with schema aware XSLT

2006-08-06 21:30:28
Thanks Mike for the explanations..

On 8/7/06, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
> The source XML is books.xml, and Schema is books.xsd found in
> the folder samples\data of Saxon distribution.
>
> The example works fine with the following command line:
>
> java com.saxonica.Transform -val books.xml books.xsl
>
> The source document gets validated, and I get the proper output.
>
> However, I am curious what is happening in the following cases:
>
> 1) I give the command line as, java com.saxonica.Transform
> books.xml books.xsl (i.e. no -val option)
>
> The following message comes from the stylesheet:
>
> Source document is not a validated book list

The "instance of" test fails because it is testing the type annotation of
the element node, and the type annotation is "xs:untyped" if the document
has not been validated.
>
> 2) I give the command line as, java com.saxonica.Transform
> -val books.xml books.xsl
>
> but I remove the line <xsl:import-schema schema-location="books.xsd"
> /> from the stylesheet,
>
> I get message,
>
> XPST0003: XPath syntax error at char 42 on line 4 in {...e of
> schema-element(B
> OOKLIS...}:
> No schema has been imported for namespace ''

You can't use the name of a schema-defined type in your stylesheet unless
you import the schema. The "instance of" test won't even compile in this
situation; it never gets as far as reading the source document.
>
> According to my testing, it seems that to validate source
> document, -val option is a must, and also xsl:import-schema
> is a must to include in the stylesheet. i.e. both these
> conditions must be fulfilled for the source document to get
> validated by the schema, and is usable by the stylesheet.

-val is necessary to create the type annotations; import-schema is necessary
to refer to the type in your stylesheet.
Michael Kay
http://www.saxonica.com/

--
Regards,
Mukul Gandhi

http://gandhimukul.tripod.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>