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

RE: XPath 2.0 (Backwards Compatibility)

Subject: RE: XPath 2.0 (Backwards Compatibility)
From: "McKeever, Marty" <marty.mckeever@xxxxxxxxxxxxxxxxx>
Date: Fri, 21 Dec 2001 08:57:29 -0500
xsl string backwards
Thanks for pointing these out to the list.  
Some of the changes sound very disturbing indeed!


> -----Original Message-----
> From: Miloslav Nic [mailto:nicmila@xxxxxxxxxxxx]
> Sent: Friday, December 21, 2001 3:54 AM
> To: www-xpath-comments@xxxxxx
> Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: 
> 
> 
> 
> I have started to read XPath 2.0 spec and obviously started with :
> D Backwards Compatibility with XPath 1.0 (Non-Normative)
> 
> and I was deeply disappointed. The proposed changes introduce
> inconveniences which will diminish value of XSLT as a prototyping
> language for text processing and it will make it less accessible to
> novices experimenting with XML.
> 
> In my opinion, changes should be made only if there are 
> really compelling
> reasons for them.
> These changes can break old stylesheets and they will in 
> their majority
> make  text processing more complicated.
> 
> Please, see below my first reactions on individual points.
> 
> ========================================
> 1.
> The rules for comparing a node-set to a boolean have changed. In XPath
> 1.0,
> an expression such as $nodeset=true() was evaluated by converting the
> node-set to a boolean and comparing the result: so this 
> expression would
> return true
> if $nodeset was non-empty. In XPath 2.0, this expression is handled in
> the same way as other comparisons between a sequence and a 
> singleton: it
> is true if
> $nodeset contains at least one node whose typed value is true.
> ----------------------------------------
> 
> seems reasonable
> 
> ========================================
> 2.
> The rules for converting a string to a boolean have changed, 
> so they are
> now
> aligned with XML Schema. In XPath 2.0, the strings "0" and "false"
> are treated as false, while in XPath 1.0, they were treated 
> as true. All
> other strings
> are converted in the same way as XPath 1.0.
> 
> ----------------------------------------
> 
> I would prefer the 1.0  way. It is a rule which can become 
> dangerous doing
> text processing.
> 
> 
> ========================================
> 
> 3.
> Additional numeric types have been introduced, with the effect that
> arithmetic
> may now be done as an integer, decimal, or single-precision 
> floating point
> calculation
> where previously it was always performed as double-precision floating
> point. The most
> notable difference (subject to resolution of an open issue) 
> is that 10 div
> 4
> is now an integer division, with the result 2, rather than a floating
> point division
> yielding 2.5.
> 
> ----------------------------------------
> 
> I would prefer very strongly 1.0. Integer division as the default
> behavior is unnatural.
> 
> 
> ========================================
> 
> 4.
> The rules for converting numbers to strings have changed. These will
> affect the
> way numbers are displayed in the output of a stylesheet. The 
> output format
> depends on
> the data type of the result: floating point values, for 
> example, will be
> displayed using
> scientific notation. The result of a decimal calculation such 
> as 1.5 + 3.5
> will be displayed as 5.0, not 5 as previously. The general
> rule is that the resulting string uses the canonical lexical
> representation for the
> data type as defined in XML Schema.
> 
> ----------------------------------------
> 
> I would prefer very strongly 1.0. Using XSLT to format  non-scientific
> texts, the default behavior would be
> a nuisance.
> ========================================
> 
> 5.
> The rules for converting strings to numbers have changed. A 
> string that
> cannot
> be interpreted as a number now (subject to resolution of an 
> open issue)
> produces an
> error, whereas in XPath 1.0 it produced the value NaN (not a number).
> 
> ----------------------------------------
> 
> I would much prefer 1.0 . When processing an XML file, it can 
> happen that
> the source contains
> some misspelling, or that it is just a draft document with some data
> missing. To get a fast preview of
> the data, I would just use a few very short templates to see 
> what is going
> on.
> If the proposed change is accepted, I would spend a minute writing
> stylesheet and than I will have to spent  10 minutes to do 
> error handling
> just to see my document and then throw the stylesheet away.
> 
> 
> ========================================
> 6.
> The representation of special values such as Infinity has been aligned
> with XML Schema.
> Strings containing a leading plus sign, or numbers in 
> scientific notation,
> may now
> be converted to ordinary numeric values, whereas in XPath 1.0 
> they were
> converted
> to NaN.
> 
> ----------------------------------------
> 
> Do not have an opinion
> 
> ========================================
> 7.
> Many operations in XPath 2.0 produce an empty sequence as their result
> when one of the arguments or operands is an empty sequence. With XPath
> 1.0, the result
> of such an operation was typically an empty string or the 
> numeric value
> NaN. Examples include the numeric operators, and functions such as
> substring and
> name. Functions also produce an empty sequence when applied 
> to an argument
> for which no other value is defined; for example, applying the name
> function
> to a text node now produces the empty sequence. This means, 
> for example,
> that with
> XPath 1.0 the expression node()[name()!='item'] would return all the
> children
> of an element, except for elements named item; with XPath 2.0 it will
> exclude
> text and comment nodes, because the condition ()!='item' is treated as
> false.
> 
> ----------------------------------------
> 
> WHY !???????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!
> 
> I WANT 1.0 !!!!!!!!!!!!!!!!!
> 
> ========================================
> 8.
> In XPath 1.0, the sum of an empty node-set was zero. At XPath 
> 2.0, it is
> an empty
> sequence.
> 
> ----------------------------------------
> 
> I would prefer 1.0. I expect a number from sum .
> 
> ========================================
> 9.
> In XPath 1.0, an equality comparison involving an element node was
> performed by
> comparing its string value, that is, the string obtained by 
> concatenating
> all its
> text node descendants. In XPath 2.0, it is an error to use an 
> element node
> in such
> a comparison unless it has simple content. However, because 
> the = operator
> tests whether any pair of items from the two operands are equal, this
> error will generally
> be masked, so a comparison such as PERSON='abc', where PERSON is
> an element with one or more child elements, will now always 
> return false.
> ----------------------------------------
> 
> I prefer 1.0, but could live with the change.
> 
> ========================================
> 10.
> In XPath 1.0, the < and > operators, when applied
> to two strings, attempted to convert both the strings to 
> numbers and then
> made a numeric
> comparison between the results. In XPath 2.0, subject to 
> resolution of an
> open issue,
> it is proposed that these operators should perform a lexicographic
> comparison using the
> default collating sequence.
> 
> ----------------------------------------
> 
> I would prefer 1.0 and to have another operator for a lexicographic
> comparison.
> 
> One of my common XSLT errors  is doing sorts based on numeric 
> values from
> the source and forgetting to set data-type
> 
> ========================================
> 11.
> In XPath 1.0, functions and operators that compared strings 
> (for example,
> the
> = operator and the contains function) worked on the basis of
> character-by-character equality of Unicode codepoints, 
> allowing Unicode
> normalization
> at the discretion of the implementor. In XPath 2.0 (subject 
> to resolution
> of open issues),
> these comparisons are done using the default collating sequence. The
> working group may
> define mechanisms allowing codepoint comparison to be selected as the
> default collating
> sequence, but there is no such mechanism in the current draft.
> 
> ----------------------------------------
> I do not have an opinion
> 
> ========================================
> 12.
> If an arithmetic operator is applied to an operand that is a 
> sequence of
> two or more nodes, at XPath 1.0 the numeric value of the 
> first node in the
> sequence was used. At XPath 2.0, this is an error. (The 
> current XPath 2.0
> specification does not invoke fallback conversion in this case).
> ----------------------------------------
> WHY!!!!!!!!!!!!!!!!??????????????????????????????????/
> 
> Default conversions are very valuable for prototyping.
> 
> ========================================
> 13.
> In the XPath 1.0 data model, an element node had a namespace 
> node for each
> in-scope
> namespace. The parent of the namespace node was the element 
> node, and the
> namespace nodes
> for one element were distinct from those of any other element (as
> revealed, for example,
> using the union operator |). In XPath 2.0 (subject to 
> resolution of open
> issues) element nodes will still have namespace nodes for all 
> the in-scope
> namespaces,
> but these namespace nodes will be shared by different 
> elements in the same
> document: that
> is, there will be a many-to-many relationship between element 
> nodes and
> namespace nodes.
> This will affect any code that attempts to find the parent or 
> ancestors of
> a namespace
> node, or that tries to count namespace nodes or to form a 
> union between
> two sets of namespace
> nodes.
> 
> ----------------------------------------
> 
> If it means that namespace::xxx/parent::* returns all 
> elements from the
> document sharing
> the namespace, it sounds interesting
> 
> 
> 
> 
> 
> -- 
> ******************************************
> <firstName> Miloslav </firstName>
> <surname>   Nic      </surname>
> 
> <mail>    nicmila@xxxxxxxxxxxx    </mail>
> <support> http://www.zvon.org  </support>
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


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.