- From: Michael Dyck <MichaelDyck@home.com>
- Date: Thu, 07 Sep 2000 01:34:58 -0700
- To: www-xml-linking-comments@w3.org
Comments on "XML Pointer Language (XPointer) Version 1.0"
W3C Candidate Recommendation 7 June 2000
1.2 Notation and Document Conventions
1st para:
"The circumflex (^) metcharacter used in this notation":
After "notation", maybe insert "(to denote the complement of a set of
characters)".
It might be good to mention the validity constraints. For example,
"The formal grammar is augmented with validity constraints, rules
given in prose. Together, these specify the syntax of XPointers."
(Otherwise, it's not clear whether "the syntactic requirements imposed
by this specification" (3.2) and "the syntax specified in this
document" (3.5) include the VCs.
2 XPointer Terms and Concepts
I think it would be good to define "location" here, since it's fairly
fundamental, relates to a term in XPath, and could simplify a couple
of the other definitions.
"location-set":
Change "document nodes, points, and/or ranges" to "locations".
"range":
I think "a contiguous selection of" is redundant.
"singleton":
"A location that consists of a single, contiguous portion of a document.":
A location is either a point, a range, or a node. Therefore, a location
*must* be a single, contiguous portion of a document. Thus, I believe
that the definition of "singleton" should be:
"A location-set that consists of a single location."
The rest of the paragraph is pretty much redundant, given the defns
of location and location-set. Also, the repeated use of the word
"contiguous" might lure the reader into thinking that contiguity is the
defining characteristic of "singleton", which 5.4.6 refutes in detail.
order of defns:
Are the definitions supposed to be in alphabetical or logical order?
If alphabetical, "sub-resource" is out of order. If logical, I think
this order would be more logical:
point
range
location
location-set
singleton
sub-resource
3.5 Classes of XPointer Errors
"syntax error":
"and applications must not attempt to evaluate it as an XPointer"
This restriction conflicts with the last sentence of the section:
"This specification does not constrain how
applications deal with these errors."
I'd remove the restriction.
(If you think it should stay, then why isn't there a similar
restriction for resource errors? Why is there no restriction on the
location-set yielded by an XPointer with a sub-resource error?)
In any event, discussion of how applications deal with syntax errors
should not be within the *definition* of "syntax error".
4.1.1 URI Reference Encoding and Escaping
1st para:
This para seems to belong in section 4.1, if "other contexts" refers
to XML contexts.
disallowed characters:
It would be nice to have a non-normative list of them, for people who
don't have Section 2.4 of RFC 2396 handy.
4.1.2 XML Escaping
example:
It's missing the square brackets around "position() <= 5".
(And similarly in the second box.)
"Note that if XML-based languages define elements or attributes containing
URI references (such as XLink's href attribute shown above), the relevant
element content or attribute values also require the processing defined in
4.1.1 URI Reference Encoding and Escaping."
So shouldn't you complete the example by performing this processing?
You could put the final result in a third box, so that the result of
just the XML-escaping is still clear from the first two boxes.
You might also note that if the URI-escaping were performed first, it
would (among other things) change "<" into "%3C", which would (1) make
XML-escaping unnecessary, and (2) result in a slightly different
fragment identifier for the same XPointer.
4.2 Forms of XPointer
StringWithBalancedParens:
The EBNF does not admit escaped (unbalanced) parentheses. Yes, the
validity constraint allows them, but I think it's unusual for a VC to
be more permissive than the EBNF. Normally VCs are more restrictive.
In the EBNF, you could change "[^()]*" to
( [^()] | '^' [()] )*
which you might want to split off into its own production.
(This, like the original, allows arbitrary occurrences of circumflex.
You could disallow it in the EBNF, but only by having two different
uses of circumflex in the same expression. In the VC, you might want to
say "Any other occurrence of circumflex results in a syntax error.")
Validity constraint: Non-XPointer schemes:
So the use of any other scheme constitutes a syntax error. So when a
future Recommendation wants to introduce a new scheme, the XPointer
Rec will have to be amended to allow it?
Wouldn't it be easier to allow future schemes by indirection (to some
standard list maintained by W3C)?
Validity constraint: Parenthesis escaping:
You should probably note that circumflex is one of the URI-disallowed
characters, so it will have to be converted to "%5E" if the XPointer
appears in a URI reference.
4.2.3 Child Sequences
2nd para
Change "where" to "assuming".
In "an element that is the fifth child", change "an" to "the".
4.3 Schemes
1st para
"an initial Scheme identifies the particular notation used for each
XPtrPart":
Offhand, this sounds like a single Scheme governs multiple XPtrParts.
Maybe change to:
each XPtrPart begins with a Scheme that identifies
the particular notation used for that XPtrPart
Note:
the XPointer errata document:
This document doesn't exist yet. When it does, will it actually contain
a possible solution, or are you just hopeful that it eventually might?
bullets (failure conditions):
I think an application would check for the 3rd condition before the
2nd, so I suggest you swap those two points.
para after bullets:
"the fragment located by the XPointer as a whole":
This is the only place in the spec where "fragment" is used in this
sense. (Everywhere else, it's in "fragment identifier".) You should
probably change it to "sub-resource" or "location-set".
-Michael Dyck
Received on Thursday, 7 September 2000 04:38:27 UTC