This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
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.
The schema held in W3C yyyy/mm space is updated only when we do a formal publication of a new spec draft. So this will be fixed in the fullness of time.