- From: <bugzilla@jessica.w3.org>
- Date: Sun, 13 Nov 2016 11:25:54 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=30002
Bug ID: 30002
Summary: [XSLT30]XSD schema for xsl:function element does not
declare the "cache" attribute
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: martin.honnen@gmx.de
QA Contact: public-qt-comments@w3.org
Target Milestone: ---
Looking at https://www.w3.org/2012/07/schema-for-xslt30.xsd#elem_function I
don't see any declaration of the boolean "cache" attribute introduced in
https://www.w3.org/TR/xslt-30/#memoization respectively listed in
https://www.w3.org/TR/xslt-30/#dt-stylesheet-function.
The schema inlined in the current spec
https://www.w3.org/XML/Group/qtspecs/specifications/xslt-30/html/#xsd11-schema-for-xslt
has it with
<xs:element name="function" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="xsl:sequence-constructor-group" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:EQName-in-namespace"/>
<xs:attribute name="override" type="xsl:yes-or-no" default="yes"/>
<xs:attribute name="as" type="xsl:sequence-type" default="item()*"/>
<xs:attribute name="visibility" type="xsl:visibility-type"/>
<xs:attribute name="streamability" type="xsl:streamability-type"/>
<xs:attribute name="override-extension-function"
type="xsl:yes-or-no"/>
<xs:attribute name="new-each-time" type="xsl:yes-or-no-or-maybe"/>
<xs:attribute name="cache" type="xsl:yes-or-no"/>
<xs:attribute name="_name" type="xs:string"/>
<xs:attribute name="_override" type="xs:string"/>
<xs:attribute name="_as" type="xs:string"/>
<xs:attribute name="_visibility" type="xs:string"/>
<xs:attribute name="_streamability" type="xs:string"/>
<xs:attribute name="_override-extension-function" type="xs:string"/>
<xs:attribute name="_identity-sensitive" type="xs:string"/>
<xs:attribute name="_cache" type="xs:string"/>
<xs:assert test="exists(@name | @_name)"/>
<xs:assert test="every $e in xsl:param satisfies (empty($e/(@select |
@_select)) and empty($e/child::node()))">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no default value.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
<xs:assert test="every $e in xsl:param satisfies
empty($e/(@visibility | @_visibility))">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no
<code>visibility</code> attribute.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
<xs:assert test="every $e in xsl:param satisfies empty($e/(@required
| @_required))">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no
<code>required</code> attribute.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
but the separate online schema only has
<xs:element name="function" substitutionGroup="xsl:declaration">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xsl:versioned-element-type">
<xs:sequence>
<xs:element ref="xsl:param" minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref="xsl:sequence-constructor-group" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xsl:EQName" use="required"/>
<xs:attribute name="override" type="xsl:yes-or-no" default="yes"/>
<xs:attribute name="as" type="xsl:sequence-type" default="item()*"/>
<xs:attribute name="visibility" type="xsl:visibility-type"/>
<xs:assert test="every $e in xsl:param satisfies (empty($e/@select)
and empty($e/child::node()))">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no default value.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
<xs:assert test="every $e in xsl:param satisfies
empty($e/@visibility)">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no
<code>visibility</code> attribute.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
<xs:assert test="every $e in xsl:param satisfies
empty($e/@required)">
<xs:annotation>
<xs:documentation>
<p>A parameter for a function must have no
<code>required</code> attribute.</p>
</xs:documentation>
</xs:annotation>
</xs:assert>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
so the "cache" attribute and all the shadow attributes are missing in the
separate schema. I think the schemas ought to be identical.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 13 November 2016 11:26:02 UTC