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

Re: Which is more declarative? More XMLish?

  • From: Michael Kay <mike@saxonica.com>
  • To: Dimitre Novatchev <dnovatchev@gmail.com>
  • Date: Sat, 2 Dec 2017 18:15:53 +0000

Re:  Which is more declarative? More XMLish?
> On 2 Dec 2017, at 17:04, Dimitre Novatchev <dnovatchev@gmail.com> wrote:
> This is not a set -- this is, strictly speaking, a sequence.
> More precisely, this is just one of the n! possible representations of
> the set {0, 2, ..., 2*(n-1)} as a specific sequence. I believe in XML
> Schema there is a way to express that the order of elements doesn't
> matter -- this must be specified when defining a set.

No, I don't think there is any way in XSD of saying what "matters" and what doesn't. XSD only says what is allowed, not what it means.

Perhaps you were thinking of xs:all, which says that several elements (A, B, and C say) are allowed to appear in any order - but it doesn't say whether the order matters.

> But an XML document cannot contain infinite number of
> elements (unless W3C makes a new XML Spec allowing this -- and this
> would be conveniently hand-in-hand with XSLT streaming).

I don't think there is any rule that says the number of elements in a document must be finite.

Oddly, there are some things that are required to be finite: the number of items in a value of variety {list}, the number of characters in a string, the number of digits in a decimal number. But I don't think there is a requirement that the number of elements in a document must be finite.

I remember complaining about this: since XSD says that strings should be finite, is an XSD processor expected to report an invalidity when they are not? I was assured that it was quite possible to write a test that would distinguish finite from infinite strings, provided the user wanting the answer has infinite patience...

One can conceive of infinite documents that are representable using finite memory. I'm not sure they have any practical applications though.

Perhaps more interestingly, XPath 3.1 introduces maps, and there is no rule that says a map must be finite. It is possible to take a finite graph structure (such as schema component model) and represent each node in the graph as a map; the map will then be infinite (you can navigate around it for ever, going round and round in circles). There are no operations in XPath/XQuery/XSLT that allow you to generate an infinite map, but one can envisage operations outside the language that do so. Saxon has mechanisms for generating maps using non-XPath operations (for example in Saxon-JS an external Javascript object is presented as a map) and this means that an operation such as map:find which traverses a map recursively becomes potentially non-terminating.

Michael Kay

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.

Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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.