[Bug 28215] New: [XSLT30] EBNF for versions incomplete for VersionTo production and ambiguous explanation for VersionPrefix

https://www.w3.org/Bugs/Public/show_bug.cgi?id=28215

            Bug ID: 28215
           Summary: [XSLT30] EBNF for versions incomplete for VersionTo
                    production and ambiguous explanation for VersionPrefix
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org

For reference, the current productions for PackageVersion and PackageRanges
are:

PackageVersion   ::= NumericPart ( "-" NamePart )?
NumericPart      ::= IntegerLiteral ( "." IntegerLiteral )*
NamePart         ::= NCName

PackageVersionRange ::=  AnyVersion | VersionRanges
AnyVersion          ::=  "*"
VersionRanges       ::=  VersionRange (S? "," S? VersionRange)*
VersionRange        ::=  VersionPrefix | VersionFrom | VersionTo |
VersionFromTo
VersionPrefix       ::=  PackageVersion ".*"
VersionFrom         ::=  PackageVersion "+"
VersionTo           ::=  "to" S VersionPrefix
VersionFromTo       ::=  PackageVersion S "to" S (PackageVersion |
VersionPrefix)

The first two items below are the bug, the last three are editorial
suggestions.

** ITEM 1 **
Bug 26997 fixed VersionFromTo, but the same fix (the part after the "to"
keyword) should also be applied on VersionTo, otherwise the examples, the
intended meaning and the explanation in the text do not match, as "to 2.1"
would be invalid):

VersionTo  ::= "to" S (PackageVersion | VersionPrefix)

** ITEM 2 **
The text on VersionPrefix says that all components must match. It is unclear
what "1.2-alpha.*" would match. The intention of a user might be to match
"1.2-alphaBuild1" and "1.2-alphaBuild7", but not "1.2-prod". But the NCName is
a component as mentioned in the text, so it seems to be that "1.2-alpha.*" only
ever matches a version that is exactly "1.2-alpha".

I think that mentioning this in the bulletpoint on VersionPrefix proves
beneficial.

** ITEM 3 **
(editorial)
The term "component" is rather unclear and generic. My (editorial) suggestion
is to change it to "version component" or even "package version component" and
to interlink and define it as a real definition. Now the rest of the text and
the explanation of the term "component" are not clearly linked and/or
understood as such, leading to (in our case) a very confusing discussion
between the programmers.

In addition, I think we should make it very clear that there is at most one
non-numeric component (even though the production already shows this) and that
even "1.0-alpha.b.2a-5b" is legal and has one NamePart, namely "alpha.b.2a-5b".

** ITEM 4 **
(editorial)
"The integers and optional NCName within the version number are referred to as
the components of the version number."

This should probably be s/NCName/NamePart/:
"The integers and optional NamePart within the version number are referred to
as the components of the version number."

And maybe even: s/integers/IntegerLiteral/, as "integers" is not mentioned in
the production.

** ITEM 5 **
(editorial)
Layout: the second production, on PackageVersionRange, is indented eight spaces
in the spec, the first part, on PackageVersion, is not.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Saturday, 14 March 2015 17:01:03 UTC