![]() |
| Previous Top Next |
General Information |
Standards conformance
| • | The Altova XPath 2.0 Engine implements the World Wide Web Consortium's (W3C's) XPath 2.0 Recommendation of 23 January 2007. The Altova XQuery 1.0 Engine implements the World Wide Web Consortium's (W3C's) XQuery 1.0 Recommendation of 23 January 2007. The XPath 2.0 and XQuery 1.0 functions support in these two engines is compliant with the XQuery 1.0 and XPath 2.0 Functions and Operators Recommendation of 23 January 2007. |
| • | The Altova XPath 2.0 Engine conforms to the rules of XML 1.0 (Fourth Edition) and XML Namespaces (1.0). |
Default functions namespace
The default functions namespace has been set to comply with that specified in the standard. Functions can therefore be called without a prefix.
Boundary-whitespace-only nodes in source XML document
The XML data (and, consequently, the XML Infoset) that is passed to the Altova XPath 2.0 Engine and Altova XQuery 1.0 Engine is stripped of boundary-whitespace-only text nodes. (A boundary-whitespace-only text node is a child whitespace-only text node that occurs between two elements within an element of mixed content.) This stripping has an effect on the value returned by the fn:position(), fn:last(), fn:count(), and fn:deep-equal() functions.
For any node selection that selects text nodes also, boundary-whitespace-only text nodes would typically also be included in the selection. However, since the XML Infoset used by the Altova engines has boundary-whitespace-only text nodes stripped from it, these nodes are not present in the XML Infoset. As a result, the size of the selection and the numbering of nodes in the selection will be different than that for a selection which included these text nodes. The fn:position(), fn:last(), fn:count(), and fn:deep-equal() functions, therefore, could produce results that are different from those produced by some other processors.
A situation in which boundary-whitespace-only text nodes are evaluated as siblings of other elements arises most commonly when xsl:apply-templates is used to apply templates. When the fn:position(), fn:last(), and fn:count() functions are used in patterns with a name test (for example, para[3], which is short for para[position()=3]), boundary-whitespace-only nodes are irrelevant since only the named elements (para in the above example) are selected. (Note, however, that boundary-whitespace-only nodes are relevant in patterns that use the wildcard, for example, *[10].)
Numeric notation
On output, when an xs:double is converted to a string, scientific notation (for example, 1.0E12) is used when the absolute value is less than 0.000001 or greater than 1,000,000. Otherwise decimal or integer notation is used.
Precision of xs:decimal
The precision refers to the number of digits in the number, and a minimum of 18 digits is required by the specification. For division operations that produce a result of type xs:decimal, the precision is 19 digits after the decimal point with no rounding.
Implicit timezone
When two date, time, or dateTime values need to be compared, the timezone of the values being compared need to be known. When the timezone is not explicitly given in such a value, the implicit timezone is used. The implicit timezone is taken from the system clock, and its value can be checked with the fn:implicit-timezone() function.
Collations
Only the Unicode codepoint collation is supported. No other collations can be used. String comparisons, including for the fn:max and fn:min functions, are based on this collation.
Namespace axis
The namespace axis is deprecated in XPath 2.0. Use of the namespace axis is, however, supported. To access namespace information with XPath 2.0 mechanisms, use the fn:in-scope-prefixes(), fn:namespace-uri() and fn:namespace-uri-for-prefix() functions.
Static typing extensions
The optional static type checking feature is not supported.
|