Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Built in Types (1/2) >

Numeric types

In XPath 2.0 it is possible to use specify type of a value. If the type is not given the processor implicitly assigns a type to the value. If explicit types are used the value must conform to the type specification. The XPath 2.0 uses XML Schema for type specification. XSLT 2.0 processors must support all the types show in this chapter. XML Schema support other types but XSLT processors are not required to support them.

Types are specified with attribute as. Several XSLT elements support this attribute, e.g. xsl:variable and xsl:param.

Numbers can be of quite a few types. Some typical ones are given in the example. While in some case the effects of typing is transparent it is not always the case as demonstrated by the example.

XSLT

      <xsl:stylesheet
                  xmlns:sch="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0"
                  exclude-result-prefixes=" sch">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:template  match="/aaa">
                  <bbb>
                        <xsl:variable  name="a"
                                    as="sch:integer"
                                    select="12"/>
                        <xsl:value-of  select="$a"/>
                  </bbb>
                  <ccc>
                        <xsl:variable  name="b"
                                    as="sch:float"
                                    select="12"/>
                        <xsl:variable  name="c"
                                    as="sch:float"
                                    select="12.123456789123456789"/>
                        <xsl:value-of  select="$b"/>
                        <xsl:text> | </xsl:text>
                        <xsl:value-of  select="$c"/>
                  </ccc>
                  <ddd>
                        <xsl:variable  name="b"
                                    as="sch:double"
                                    select="12"/>
                        <xsl:variable  name="c"
                                    as="sch:double"
                                    select="12.123456789123456789"/>
                        <xsl:value-of  select="$b"/>
                        <xsl:text> | </xsl:text>
                        <xsl:value-of  select="$c"/>
                  </ddd>
                  <eee>
                        <xsl:variable  name="b"
                                    as="sch:decimal"
                                    select="12"/>
                        <xsl:variable  name="c"
                                    as="sch:decimal"
                                    select="12.123456789123456789"/>
                        <xsl:value-of  select="$b"/>
                        <xsl:text> | </xsl:text>
                        <xsl:value-of  select="$c"/>
                  </eee>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa/>
Output

      <bbb>12</bbb>
      <ccc>12 | 12.123457</ccc>
      <ddd>12 | 12.123456789123457</ddd>
      <eee>12 | 12.123456789123456789</eee>


Previous chapter: Comments and processing instructions
Next chapter: Errors
Previous page: - - -
Next page: Basic usage of types