[oXygen-user] Saxon SA support in oXygen
George Cristian Bina
Thu Feb 19 15:31:41 CST 2009
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:
> 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
>
> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
More information about the oXygen-user
mailing list