[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Using @validation and @type?

Subject: Re: Using @validation and @type?
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 26 Nov 2019 07:50:06 -0000
Re:  Using @validation and @type?
Am 26.11.2019 um 02:38 schrieb David Birnbaum djbpitt@xxxxxxxxx:
Dear XSL-list,

I'm beginning to explore schema-aware processing, and for a real
project I need to create some temporary elements with attributes that
I would like to treat as integers. In the non-schema-aware version I
explicitly pass the attributes through the number() function when I
need integer behavior, and that does what I want, but I thought that
if I typed the values as xs:integer when creating them they wouldB be
recognized as instances of that type when used, and would have integer
behavior, so that I could avoidB using the number() function explicitly.

I created a small test sample below that replicates the problem I see
in my real code, and I would be grateful if someone could please
advise about whatB I've misunderstood. What I think I'm doing is
creating a a variable that contains <cell> elements withB @row
attributes that are typed as xs:integer, and that therefore should
behave as integers when I use them. But when I test in the
<xsl:for-each> at the end whether they are instances of integers, the
system reports that they are not. I'm running the tests at the command
line with Saxon EE and the -sa and -it switches. Thank you for any
guidance you might be able to provide.

Best,

David
__

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
B  B  xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs" version="3.0">
B  B  <xsl:output method="xml" indent="yes"/>
B  B  <xsl:template name="xsl:initial-template">
B  B  B  B  <xsl:variable name="test" as="element(test)">
B  B  B  B  B  B  <test xsl:validation="preserve">
B  B  B  B  B  B  B  B  <xsl:for-each select="1 to 5">
B  B  B  B  B  B  B  B  B  B  <cell>
B  B  B  B  B  B  B  B  B  B  B  B  <xsl:attribute name="row"
type="xs:integer"
select="."/>
B  B  B  B  B  B  B  B  B  B  B  B  <xsl:text>Hi!</xsl:text>
B  B  B  B  B  B  B  B  B  B  </cell>
B  B  B  B  B  B  B  B  </xsl:for-each>
B  B  B  B  B  B  </test>
B  B  B  B  </xsl:variable>
B  B  B  B  <xsl:for-each select="$test//cell">
B  B  B  B  B  B  <xsl:message select="@row, @row instance of xs:integer"/>
B  B  B  B  </xsl:for-each>
B  B  B  B  <root>
B  B  B  B  B  B  <xsl:sequence select="$test"/>
B  B  B  B  </root>
B  B  </xsl:template>
</xsl:stylesheet>


Where do you import a schema?

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.