Re: [xsl] cross document id idref pair checks

Subject: Re: [xsl] cross document id idref pair checks
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 9 Jan 2001 16:45:51 GMT
Oh well if you are not using DTD defined ids then you are not subject to
the "same document" constraint so you don't need the for-each to change
the current document.

Also it's always better to use self:: if possible rather than name() 

<xsl:variable name="ref" select="substring-after(@href,'#')"/>
<xsl:variable name="smil-file-el" 
  select="document(@href)/smil/body//*[@id=$ref]"/>
<xsl:variable name="lineNo" select="saxon:lineNumber()"/>
<xsl:for-each select="$smil-file-el">
  <xsl:if test="not(name()='par' or name()='text')">
TN 76: Line <xsl:value-of select="$lineNo"/>.  <xsl:value-of
select="$msg/TN76"/></xsl:if>
</xsl:for-each>

is probably (untested)

<xsl:if test=
  "not(document(@href)/smil/body//*
          [@id="substring-after(current()/@href,'#')]
          [self::par or self::text]')">
TN 76: Line <xsl:value-of select="saxon:lineNumber()"/>.  <xsl:value-of
select="$msg/TN76"/>


David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet delivered
through the MessageLabs Virus Control Centre. For further information visit
http://www.star.net.uk/stats.asp

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread