<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>26751</bug_id>
          
          <creation_ts>2014-09-08 00:44:03 +0000</creation_ts>
          <short_desc>[XSLT30] Potentially editorial: (minor) ambiguities and unclarities in the text</short_desc>
          <delta_ts>2015-10-29 09:50:36 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XPath / XQuery / XSLT</product>
          <component>XSLT 3.0</component>
          <version>Last Call drafts</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows NT</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Abel Braaksma">abel.braaksma</reporter>
          <assigned_to name="Michael Kay">mike</assigned_to>
          
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111150</commentid>
    <comment_count>0</comment_count>
    <who name="Abel Braaksma">abel.braaksma</who>
    <bug_when>2014-09-08 00:44:03 +0000</bug_when>
    <thetext>The following findings, suggestions etc have been collected during the last couple of months. Instead of submitting little bits at the time, I thought it would essentially be more efficient to deal with multiple minor issues at once.

In order of appearance, checked against the Sept 5, 2014 internal Draft:


Ambiguities (debatable, potentially not just editorial)
- 3.14.2 para starting &quot;This mechanism&quot; has opening sentence &quot;[...] applies to [...] and to all attributes that are in no namespace&quot;. While later LRE&apos;s are mentioned (but not data elements), it might be clearer to say &quot;and to all attributes that are in no namespace and are defined in this specification&quot;. Or something along those lines.

- 3.11, opening para above bulleted list starts with &quot;When an element...&quot;, then each item in the list starts with non-capital &quot;if the element&quot; and ends with &quot; then the element...&quot;. Instead of &quot;if the&quot; I would propose to use &quot;and the&quot;, because otherwise the sentences do not seem to combine.

- 6.7.1, the para on built-in text copy rules talks about nodes and atomic values, and then concludes only about the context node, which can be absent: &quot;The built-in template rule for text and attribute nodes and atomic values returns a text node containing the string value of the context node. It is effectively:&quot;
Suggestion: &quot;The built-in template rule for text and attribute nodes and atomic values returns a text node containing the string value of the context *item*. It is effectively:&quot;

- 8.3, first list, #5: &quot;[...]and may be caught by a containing xsl:try instruction.&quot;. Does containing here means &quot;wrapping&quot;, &quot;ancestore&quot; or &quot;outer&quot;? It is not clear to me what the object for &quot;containing&quot; is.

- 8.3.2, 2nd example, &quot;unvalidated tree&quot;, should this be &quot;invalid tree&quot; or &quot;non-validating tree&quot;?

- 9.7, under &quot;Statically known function signatures&quot; in the table, para starts: &quot;The core functions defined in [FO]&quot;. The definition for &quot;core functions&quot; was updated to include map functions, but the text was not. I think we should remove &quot;defined in [FO]&quot; to avoid this ambiguity.

- 9.7, static expressions are also used now in shadow attributes, this notion is not yet reflected here.

- 10, definition of &quot;invocation construct&quot;, misses fn:key.
- same in C Glossary

- 10, definition of &quot;invocation constructs&quot;, it looks like the closing &quot;]&quot; comes too soon (should be after the dot, including all items).
- same in C Glossary

- 14.2.1, last Rule: &quot;The current group is initially absent during the evaluation of global variables and stylesheet parameters.&quot;. This should include initial-value of xsl:accumulator. Same is true for fn:current-grouping-key, fn:current-merge-group, fn:current-merge-key.

- 15.6, see previous point, it also applies to the last para of the opening section

- 19.8.1, item 1.c.ii: &quot;the operand is not grounded&quot; should probably be &quot;the posture of the operand is not grounded&quot; (an operand itself cannot be grounded, its posture can)

- 19.8.8.18: 2nd para. Normally we talk of the &quot;static type&quot; or &quot;statically known item type&quot; of a construct. This is omitted here. I think it ought to be made explicit.

- 19.8.9, just before the examples &quot;A pattern that is not motionless is classified as free-ranging.&quot;. This is redundant, as in the first para of this section we already say &quot;The sweep of a pattern is either motionless or free-ranging.&quot;.

- 19.8.7.6, text mentions FilterExpr (1x in whole doc), but that production does not exist. Should probably be &quot;a PostfixExpr[XP30] that also is a filter expression[XP30]&quot;.

- 19.10 Definition of &quot;guaranteed streamable&quot; says &quot;as defined by the analysis in this specification.&quot;, I think this is too vague. Perhaps: &quot;as defined by the analysis in this specification under section 19. Streamability&quot; (or: &quot;as defined in this section.&quot;, which is terminology used elsewhere)

- XTSE3430: last part of the sentence does not explicitly state that it is meant to apply to streamed processing. I suggest: &quot;is to handle this situation *either* by processing the stylesheet without streaming, *or with streaming*, by making use of processor extensions to the streamaiblity rules where available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111335</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2014-09-10 10:19:39 +0000</bug_when>
    <thetext>
Changes applied as follows. Marking resolved since this is editorial.

- 3.14.2 para starting &quot;This mechanism&quot; has opening sentence &quot;[...] applies to [...] and to all attributes that are in no namespace&quot;. While later LRE&apos;s are mentioned (but not data elements), it might be clearer to say &quot;and to all attributes that are in no namespace and are defined in this specification&quot;. Or something along those lines.

The intended meaning was &quot;applies to all attributes in the stylesheet where the attribute name is in no namespace and the parent element is in the XSLT namespace.&quot; Will clarify accordingly.

- 3.11, opening para above bulleted list starts with &quot;When an element...&quot;, then each item in the list starts with non-capital &quot;if the element&quot; and ends with &quot; then the element...&quot;. Instead of &quot;if the&quot; I would propose to use &quot;and the&quot;, because otherwise the sentences do not seem to combine.

I have capitalised the &quot;if the&quot; bullets as they are all complete sentences.

- 6.7.1, the para on built-in text copy rules talks about nodes and atomic values, and then concludes only about the context node, which can be absent: &quot;The built-in template rule for text and attribute nodes and atomic values returns a text node containing the string value of the context node. It is effectively:&quot;
Suggestion: &quot;The built-in template rule for text and attribute nodes and atomic values returns a text node containing the string value of the context *item*. It is effectively:&quot;

Already fixed (atomic values are now handled separately since it is not possible to define a match pattern as a union of a selection pattern and a predicate pattern).

- 8.3, first list, #5: &quot;[...]and may be caught by a containing xsl:try instruction.&quot;. Does containing here means &quot;wrapping&quot;, &quot;ancestore&quot; or &quot;outer&quot;? It is not clear to me what the object for &quot;containing&quot; is.
It means an xsl:try instruction that is an ancestor of the xsl:result-document insttruction. But while the sentence is true (it may be caught be a containing xsl:try) it is incomplete (it can also be caught by a non-containing xsl:try). Changing it to say &quot;... and may be caught (for example by an xsl:try instruction that contains the xsl:result-document instruction).

- 8.3.2, 2nd example, &quot;unvalidated tree&quot;, should this be &quot;invalid tree&quot; or &quot;non-validating tree&quot;?
No, it means what it says: the tree that has not been validated; distinguishing it from the other tree, which has been validated. I can&apos;t think of a better way of saying this, and as it&apos;s only an example I propose no change.

- 9.7, under &quot;Statically known function signatures&quot; in the table, para starts: &quot;The core functions defined in [FO]&quot;. The definition for &quot;core functions&quot; was updated to include map functions, but the text was not. I think we should remove &quot;defined in [FO]&quot; to avoid this ambiguity.
Agreed.

- 9.7, static expressions are also used now in shadow attributes, this notion is not yet reflected here.
Agreed, fixed.

- 10, definition of &quot;invocation construct&quot;, misses fn:key.
- same in C Glossary
I think this is intentional. key() is more like a variable reference; it does not &quot;cause&quot; the execution of the xsl:key use or match attributes (in the sense, for example, that try/catch could catch errors during their validation). I&apos;m not sure whether acc-before and acc-after shouldn&apos;t be excluded from the list for the same reason. There are probably a number of edge cases here that could be better defined, e.g. the interaction of accumulators and try/catch. I don&apos;t propose to tackle that right now.

- 10, definition of &quot;invocation constructs&quot;, it looks like the closing &quot;]&quot; comes too soon (should be after the dot, including all items).
- same in C Glossary
Already fixed.

- 14.2.1, last Rule: &quot;The current group is initially absent during the evaluation of global variables and stylesheet parameters.&quot;. This should include initial-value of xsl:accumulator. Same is true for fn:current-grouping-key, fn:current-merge-group, fn:current-merge-key.
I&apos;ve been looking at the table in 5.4.4 and realising it&apos;s pretty muddled about exactly what it means when it says &quot;initial setting&quot;. Too big a job to tidy it up now, I&apos;ll apply the changes you suggest as a quick fix.

- 15.6, see previous point, it also applies to the last para of the opening section
This paragraph is essentially redundant, so I&apos;ve reduced it to a Note and simplified it.

- 19.8.1, item 1.c.ii: &quot;the operand is not grounded&quot; should probably be &quot;the posture of the operand is not grounded&quot; (an operand itself cannot be grounded, its posture can)
We often talk of the posture and sweep of an operand, e.g. 1a(ii) in the same section. I think this is legitimate: in the definition of &quot;operand&quot; (which we don&apos;t often link to...) we say &quot;an operand is a construct..&quot;, so it&apos;s reasonable to talk of properties of the construct as properties of the operand.

- 19.8.8.18: 2nd para. Normally we talk of the &quot;static type&quot; or &quot;statically known item type&quot; of a construct. This is omitted here. I think it ought to be made explicit.
Yes. Also changed it to use U{document-node()} notation.

- 19.8.9, just before the examples &quot;A pattern that is not motionless is classified as free-ranging.&quot;. This is redundant, as in the first para of this section we already say &quot;The sweep of a pattern is either motionless or free-ranging.&quot;.
Yes it&apos;s redundant, but I think it&apos;s helpful.

- 19.8.7.6, text mentions FilterExpr (1x in whole doc), but that production does not exist. Should probably be &quot;a PostfixExpr[XP30] that also is a filter expression[XP30]&quot;.
Changed it to say &quot;a filter expression (see [xpath 3.2.1])&quot;.

- 19.10 Definition of &quot;guaranteed streamable&quot; says &quot;as defined by the analysis in this specification.&quot;, I think this is too vague. Perhaps: &quot;as defined by the analysis in this specification under section 19. Streamability&quot; (or: &quot;as defined in this section.&quot;, which is terminology used elsewhere)
This has been raised before, and we ended up with the references at the start of 19.10. I don&apos;t think it&apos;s easy to improve further. &quot;This section&quot; is more ambiguous than &quot;this specification&quot;.

- XTSE3430: last part of the sentence does not explicitly state that it is meant to apply to streamed processing. I suggest: &quot;is to handle this situation *either* by processing the stylesheet without streaming, *or with streaming*, by making use of processor extensions to the streamaiblity rules where available.
I think the previous paragraph makes it clear. The error description is merely recapitulating the previous para and its bullet points.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>