[Bug 4874] [F&O] Casting NOTATION to String

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4874

           Summary: [F&O] Casting NOTATION to String
           Product: XPath / XQuery / XSLT
           Version: Recommendation
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Functions and Operators
        AssignedTo: mike@saxonica.com
        ReportedBy: mike@saxonica.com
         QAContact: public-qt-comments@w3.org


Casting NOTATION to String.

Section 17.1.2 says: If ST is xs:QName or xs:NOTATION:
    * if the qualified name has a prefix TV is (fn:concat(fn:prefix-from-QName(
SV), ":", fn:local-name-from-QName( SV)).

A literal reading of this says that if the NOTATION has a prefix, the result is
a type error, because fn:prefix-from-QName() cannot be applied to a NOTATION. I
don't think this is the interpretation that is intended. Since this expression
cannot be written in XPath, I suggest rephrasing it as "if the qualified name
has a prefix TV is the concatenation of the prefix of SV, a single colon (:),
and the local name of SV".

For the future: it seems unsatisfactory that the only way of constructing a
NOTATION is from a literal string, and that there is no way of processing a
NOTATION other than converting it to a string. This makes it impossible for the
user to determine, for example, what namespace a NOTATION is in, or to ensure
that this namespace is declared when an attribute of type NOTATION is written
to the result tree. I suggest that we should allow casting between QName and
NOTATION in both directions, with the obvious semantics, making operations
defined on QNames available for constructing and deconstructing NOTATIONs.

Received on Sunday, 22 July 2007 22:15:21 UTC