| 
 
Subject: RE: [xsl] Numbered Elements From: "Michael Kay" <mhk@xxxxxxxxx> Date: Sat, 3 May 2003 16:01:37 +0100  | 
> Still new to XML/XSLT, I am trying to get my arms around the 
> numbering methods in XML. Believe I have succeeded in 
> auto-numbering figures, equations, tables, etc. Now I need to 
> refer to an element by number. From textbooks and online 
> reading I have the following:
> 
> An element Equation of type EquationType:
>    <xs:complexType name="EquationType">
>       <xs:element name="Expression" type="xs:string"/>
>       <xs:element name="Target" type="xs:ID" use="required" />
>    </xs:complexType>
> 
> An element xRef of type xRefType:
>    <xs:complexType name="xRefType">
>    	<xs:sequence>
> 	   <xs:element name="RefElemType" type="xs:string"/>
>          <xs:element name="RefElemID" type="xs:IDREF"/>
>    	</xs:sequence>
>    </xs:complexType>
> 
> The Transform template of xRef is
>    <xsl:template match="etd:xRef">
>       <xsl:apply-templates select="number[@Target='etd:RefElemID']" />
>    </xsl:template>
> 
> Instead of the number of the equation having the indicated 
> target value, the result is a blank. There are no error messages.
> 
You have tried to select a child element called "number" and there isn't
one. If there were one, you would be selecting it only if its @Target
attribute were equal to the string "etd:RefElemId". But Target is not an
attribute, it is an element, and the string is not a string, it is an
element name - so you seem pretty confused.
I think you want
<xsl:key name="k" match="Equation" use="Target"/>
then
<xsl:apply-template select="key('k', etd:RefElemId)"/>
though I'm guessing wildly about the namespace.
Michael Kay
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
| <- Previous | Index | Next -> | 
|---|---|---|
| [xsl] Numbered Elements, Jack Cane | Thread | RE: [xsl] Numbered Elements, Jack Cane | 
| RE: [xsl] Numbered Elements, cknell | Date | RE: [xsl] Newline problems, Michael Kay | 
| Month |