Inconsistencies in XPath 2.0, data model and F&O WDs

Hi,

You probably have all of these under control, but here are some
inconsistencies that I noticed while reading through the XPath 2.0 WD,
especially after looking at the data model and F&O WDs:

Section 2.1 of the XPath 2.0 WD defines "simple values" as:

 "A simple value consists of a value contained in the value space of
  one of the primitive datatypes described in [XML Schema], together
  with a reference to a schema component that describes its type."

Simple values are now called 'simple typed values' in the data model
WD.

In the same section, it says:

  "In this document, the namespace prefix xs: is considered to be
  bound to the XML Schema namespace http://www.w3.org/2001/XMLSchema
  (described in [XML Schema]), and the prefix xf: is considered to be
  bound to the namespace of XPath/XQuery functions and operators,
  http://www.w3.org/2001/11/xquery-operators (described in [XQuery 1.0
  and XPath 2.0 Functions and Operators])."

The F&O WD uses two different namespaces, one for operators and one
for functions, with the prefix 'op' for operators
(http://www.w3.org/2001/12/xquery-operators) and the prefix 'xf' for
functions (http://www.w3.org/2001/12/xquery-functions).

In Section 2.1.1.2 (Evaluation Context) it says, of the current date
and time:

 "It can be retrieved by the xf:currentDateTime function."

The F&O WD defines a xf:current-dateTime function, not a
xf:currentDateTime() function.

Section 2.2.1 Literals. Is there any point in having integer literals,
given that according to the F&O WD integers are always promoted to (at
least) decimals when they're involved in numeric operations,
comparisons and as arguments for functions?

Productions 28 (NameTest) and 29 (Wildcard) seems to allow :foo:bar as
a name test, but disallow :div. I thought that the preceding : was
used to disambiguate names with the default namespace, so it should be
the other way round?

2.3.5 Abbreviated Syntax. It's a little confusing that the omission of
the Axis from an AxisStep is described as an abbreviation, but these
aren't defined as AbbreviatedSteps. If steps that omit the child axis
were included in the AbbreviatedStep production, then you could add
the ':' at the front of the NameTest here, with:

  AxisStep        ::= (Axis NodeTest StepQualifiers) | AbbreviatedStep
  
  AbbreviatedStep ::= "." | ".." |
                      ("@" NameTest StepQualifiers) |
                      (":"? NodeTest StepQualifiers)

That would prevent the current situation where you can add a ':' after
an axis name (when there's no need for disambiguation).

2.8 For Expressions. It appears that the unordered() function has been
dropped from the F&O WD, so it should probably be omitted here as
well.

Cheers,

Jeni
---
Jeni Tennison
http://www.jenitennison.com/

Received on Thursday, 3 January 2002 07:44:40 UTC