[Bug 29857] New: [FO31] Uniqueness scope for generate-id()

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

            Bug ID: 29857
           Summary: [FO31] Uniqueness scope for generate-id()
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Functions and Operators 3.1
          Assignee: mike@saxonica.com
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

We say under generate-id():

An implementation is under no obligation to generate the same identifiers each
time a document is transformed or queried.

This is a very informal way of saying that the uniqueness rule is scoped to a
single execution scope. It casually implies that there is a concept of node
identity ("a document") that transcends execution scope, which formally
speaking is not the case (although XQuery Update might suggest otherwise). And
it raises questions about situations where a transformation or query can
involve multiple execution scopes, for example when fn:transform() is called,
or when XSLT static expressions are used.

I propose the following slightly more formal statement. After

"In other cases, the function returns a string that uniquely identifies a given
node."

add

"More formally, it is guaranteed that within a single *execution scope*,
codepoint-equal(generate-id($N), generate-id($M)) is true if and only if ($M is
$N) is true." 

and move the sentence

"An implementation is under no obligation to generate the same identifiers each
time a document is transformed or queried."

to the (non-normative) notes, since its meaning depends on informal notions of
identity.

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

Received on Thursday, 22 September 2016 08:04:35 UTC