TEIC / Stylesheets

TEI XSL Stylesheets
231 stars 124 forks source link

Stylesheets function cannot cope with remarks with `@versionDate` #556

Closed martindholmes closed 2 years ago

martindholmes commented 2 years ago

A current build-break is (I think) caused by this function from common/functions.xsl:

  <doc xmlns="http://www.oxygenxml.com/ns/doc/xsl">
    <desc>whether there is an out-of-date desc or gloss in the translation language</desc>
  </doc>
  <xsl:function name="tei:descOrGlossOutOfDate">
    <xsl:param name="context"/>
    <xsl:for-each select="$context">
      <xsl:variable name="lang" select="tei:generateDocumentationLang(.)[1]"/>
      <xsl:sequence select="tei:desc[@xml:lang='en']/@versionDate gt tei:desc[@xml:lang=$lang]/@versionDate
                         or tei:gloss[@xml:lang='en']/@versionDate gt tei:gloss[@xml:lang=$lang]/@versionDate"></xsl:sequence>
    </xsl:for-each>
  </xsl:function>

The issue is that @versionDate is now being added to <remarks>, and <remarks> are siblings of the <gloss>es and <desc>s for the context <*Spec> element, so (for instance) if you have both a <desc> and a <remarks> for the same language with @versionDate, then a sequence of two items will be retrieved by the function, and the attempt to compare the @versionDate values will generate an error.

I believe the solution is to have the function check the local-name() of the element as well as the @versionDate.

martindholmes commented 2 years ago

Looks like I got this completely wrong! @hcayless fixed it with a tweak to the P5 sources. Closing.