- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 21 Sep 2006 03:57:38 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3758
Summary: [FS] technical: 4.7.1: losing type information
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Platform: All
OS/Version: All
Status: NEW
Severity: minor
Priority: P2
Component: Formal Semantics
AssignedTo: simeon@us.ibm.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
4.7.1 / Norm
"In general, we do not want to convert all atomic values to text nodes,
especially when performing static-type analysis, because we lose useful
type information. [For example,
<date>{ xs:date("2003-03-18") }</date>
should be normalized to
element date { xs:date("2003-03-18") }
rather than
element date { text { "2003-03-18" } }
because the latter loses useful type info.] To preserve useful type
information, we distinguish between direct element constructors that
contain one element-content unit and those that contain more than one..."
If you perform STA on these two CompElemConstructors (using
4.7.3.1 / STA / rule (1|2)), you find that
element date { xs:date("2003-03-18") }
fails at premise 4, because xs:date is not a subtype of
attribute *, (element | text | comment | processing-instruction)*
And even if you fix those premises to handle atomic types, you wind
up with the same type for the two CompElemConstructors, i.e. either
element date of type xs:anyType
or
element date of type xs:untyped
depending only on statEnv.constructionMode. The type of the content
expression doesn't have any effect.
Thus, although converting all atomic values to text nodes may lose
type information, it's information that will be lost anyway. So there
doesn't seem to be any reason to handle the n=1 case differently.
(The word "especially" suggests that there are occasions *other* than
STA when "we do not want want to convert all atomic values to text
nodes". What did you have in mind there?)
(Section 4.7.1.1 has a similar split betwen the n=1 and n>1 cases,
which is even less justified.)
Received on Thursday, 21 September 2006 03:57:51 UTC