- Invocation of the processor
-
This is described elsewhere in the documentation starting from Overview.
The Base Output URI is equal to the value of system_id in
XM_XSLT_TRANSFORMATION_RESULT, and this is set by whichever creation procedure
you use to create the object. See Transformation Result.
The command-line processor, by default, sets it to stdout:. This URI scheme (defined by the library), has only
the one lexical value, so relative URIs are not possible with this default.
- Creating new extension instructions and extension functions
-
There is no mechanism provided for creating new extension instructions.
See Creating extension functions for the mechanism for creating new extension functions.
- Recoverable Dynamic Errors
-
The decision on whether or not to recover from a recoverable dynamic error is made by the XM_XSLT_ERROR_LISTENER.
See The Error Listener for more details.
- Type Errors
-
Type errors are signalled statically whenever possible.
- Extension Namespaces
-
See Overview.
- User-defined Data Elements
-
See Extensions.
- Collection URIs
-
See Collections.
- URI References
-
The following URI schemes are directly supported by the library for reference
by the href attribute of xsl:import and xsl:include:
The last two schemes are used for reading from the standard input stream and text from Eiffel STRINGs respectively.
They are documented in Resolvers, which also documents how to add additional URI schemes.
The following additional URI schemes are supported by Gestalt:
For the list of supported media types and treatment of fragment identifiers, see Options
This also applies to the document() function.
- Limits
-
-
The maximum number of digits permitted for an xs:decimal value is at least 18, but may be set
to any higher value.
-
For dates and times, both positive and negative year values are supported for any value that can be
represented by a 32-bit signed integer. The maximum number of fractional second digits is three. Although additional digits
will be recognised, values are rounded to 3 digits.
-
For durations, the maximum values for the years, months, days, hours, minutes and seconds components are those that can
be
represented by a 32-bit signed integer.
-
For xs:yearMonth durations, the greatest durations that can be expressed in months is 13 times the maximum positive number
that can be expressed
as a 32-bit signed integer.
-
For xs:dayTime durations, the greatest durations that can be expressed in seconds is 24 * 60 * 60 times the maximum positive
number that can be expressed
as a 32-bit signed integer.
-
For xs:string, xs:hexBinary, xs:base64Binary, xs:QName, xs:anyURI and xs:NOTATION, the maximum length of a value
is the maximum positive number that can be expressed as a 32-bit signed integer.
-
The maximum length of a sequence is the maximum positive number that can be expressed as a 32-bit signed integer.
- Implicit Timezone
-
The implicit timezone is set to the local time zone when a transformer is created.
- Numbering sequences
-
No additional numbering sequences are defined.
- Upper bounds on numbering sequences with xsl:number
-
When using Roman Numerals, the maximum number is 3,999.
- Languages supported by xsl:number
-
The default language is English (en). The library does not have built-in support for any other languages right now,
but these can be added by writing a descendant of XM_XSLT_NUMBERER, and editing
selected_numberer of XM_XSLT_NUMBER_ROUTINES.
TODO: there should be a plugin-mechanism for this.
- Data-type attribute on xsl:sort
-
If the data-type attribute on the xsl:sort instruction has a value other than text or number then
error XTDE0030 is issued at run-time.
- Defining collation URIs
-
There is currently no mechanism for defining collations.
- Selecting collations
-
The algorithm currently used by xsl:sort for select a collation, given a lang and case-order
attribute, is
to use the Unicode Code-point collation for English, and to raise an error for any other language.
- Date/time formatting
-
The default language is English (en). No other languages are currently supported.
The default calendar is CE. AD is also supported. The default country is US. The country is currently
ignored, and all values are accepted. This will change.
The following abbreviations are used for the days of the week in English:
- Sun
- Mon
- Tues
- Weds
- Thurs
- Fri
- Sat
- System properties
-
The following values are returned for the standard system-properties:
- xsl:version
- 2.0
- xsl:vendor
- Gobo
This is actually configurable, by calling set_vendor_name from
XM_XPATH_CONFIGURATION. For Gestalt, the value is Colin Adams.
- xsl:vendor-url
- http://www.gobosoft.com/
This is actually configurable, by calling set_vendor_url from
XM_XPATH_CONFIGURATION. For Gestalt, the value is http://gestalt.sourceforge.net/.
- xsl:product-name
- Gexslt
This is actually configurable, by calling set_product_name from
XM_XPATH_CONFIGURATION. For Gestalt, the value is Gestalt.
- xsl:product-version
- This is equal to the version of the Gobo library. See Gobo news
This is actually configurable, by calling set_product_version from
XM_XPATH_CONFIGURATION. For Gestalt, the value is the version of Gestalt.
- xsl:is-schema-aware
- no
- xsl:supports-serialization
- yes
- xsl:supports-backwards-compatibility
- yes
- xsl:supports-namespace-axis
- no
Also, any property in the namespace http://exslt.org/system/environment is treated as the name
of an environment variable. If that environemnt variable is set, then it's value is returned.
Additional system properties in other namespaces may be registered. The standard implementation
provides the following properties in the namespace http://www.gobosoft.com/eiffel/gobo/gexslt/extension:
- gexslt:standard-file-collection
-
A value of yes indicates collection URIs in the file scheme are supported as documented in
Collections.
- gexslt:standard-ftp-collection
-
A value of yes indicates collection URIs in the ftp scheme are supported as documented in
Collections.
- gexslt:standard-http-collection
-
A value of yes indicates collection URIs in the http scheme are supported as documented in
Collections.
- Destination for xsl:message
-
All xsl:message output goes to the standard error stream by default. This is configurable (see API documentation).
- Extension function string results
-
Extension functions are required to raise an error if they attempt to
return a string that contains invalid XML characters. Since any extension
functions must be linked into the executable, this effectively means that there will
be a different implementation.
- External objects
-
None.
- Final result trees
-
See Accessing the Transformation Results for how to access
final result trees.
The following URI schemes are directly supported by the library for the value of the href attribute
of the xsl:result-document instruction:
Stdout refers to the standard output stream. The only value permitted for URIs in this scheme
is the the string stdout:. String refers to Eiffel STRINGs.
The following additional URI schemes are supported by Gestalt:
Eiffel programmers may add additional URI schemes. See The Output URI Resolver
Serialization is to the destination implied by the URI scheme. In the case of string:, these
can only be retrieved by an Eiffel program, by accessing output_destinations
from XM_XSLT_OUTPUT_URI_RESOLVER.
- Encoding
-
The default value for the encoding attribute of xsl:output is UTF-8.
- Output versions
-
This implementation supports the values 1.0 and 1.1 for the version attribute
of xsl:output when the method is xml or xhtml .
It supports 4.0 or 4.01 when the method is html.
- Byte order mark
-
The default value for the byte-order-mark attribute of xsl:output is no when the encoding is UTF-8.
- Disabling Output Escaping
-
This is not supported.
- Normalization forms
-
Only NFC, NFKC, NFD and NFKD are supported.