
Hi Wendell, You need to use xsl:import-schema to load the schema in the stylesheet and then you should use schema-element(element) instead of an element test in your XPath, for example, if you put the following stylesheet in the oXygen samples folder (where we have the sample project, next to personal.xsl): <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xsl:import-schema schema-location="personal.xsd"/> <xsl:template match="/schema-element(email)/test"> <test/> </xsl:template> <xsl:template match="/schema-element(a)/x"> <x/> </xsl:template> </xsl:stylesheet> and you set Saxon-SA 9.1.x.x in Options->Preferences -- XML / XSLT-FO-XQuery / XSLT -- XSLT 2.0 Validate with then you should get the following errors when you compile the stylesheet: SystemID: C:\Program Files\Oxygen XML Editor 10\samples\personal.xsl Description: [Saxon-SA 9.1.0.3] Failed to compile stylesheet. 1 error detected. SystemID: C:\Program Files\Oxygen XML Editor 10\samples\personal.xsd Location: 126:0 Description: [Saxon-SA 9.1.0.3] For compatibility, a notation should not have both a public identifier and a system identifier SystemID: C:\Program Files\Oxygen XML Editor 10\samples\personal.xsl Location: 10:0 Description: [Saxon-SA 9.1.0.3] XSLT Pattern syntax error at char 18 on line 10 in {/schema-element(a)/x}: There is no declaration for element <a> in an imported schema URL: http://www.w3.org/TR/xpath20/#ERRXPST0008 SystemID: C:\Program Files\Oxygen XML Editor 10\samples\personal.xsl Location: 7:0 Description: [Saxon-SA 9.1.0.3] The child axis will never select any element nodes when starting at a node with simple type xs:string The -val option is for strict validation. Hope that helps, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com Wendell Piez wrote:
Gentlemen,
I am trying out features of schema-aware transformations. I am aware that one of the things SaxonSA is supposed to be able to do is signal errors when XPath expressions in your XSLT would resolve in empty sequences by necessity (given valid input), since the elements named would be invalid according to the given schema. (This is documented on pp 169-170 of Michael Kay's Programmers Reference, 4th ed., and elsewhere.) But I can't get this to work in oXygen. SaxonSA happily runs my transform without emitting warnings, even when I put spurious XPath in.
On p 169 of the PR 4ed, Mike indicates that -val:strict has to be provided from the command line. In oXygen's Preferences, I can see how to set -val, but not -val:strict. Might that have to do with why this feature isn't working for me?
This is just a guess, since Saxon does complain if input is not valid. Otherwise I'm completely in the dark. I'd be grateful for any tips.
I'm still on oXygen 10; the version of SaxonSA is 9.1.0.3J.
Thanks! Wendell
====================================================================== Wendell Piez mailto:wapiez@mulberrytech.com Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
_______________________________________________ oXygen-user mailing list oXygen-user@oxygenxml.com http://www.oxygenxml.com/mailman/listinfo/oxygen-user