- From: <bugzilla@jessica.w3.org>
- Date: Thu, 22 Sep 2016 08:04:06 +0000
- To: public-qt-comments@w3.org
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