RE: Numbered Elements
Michael, So, the key runs independent of the number element, and just picks up all occurrences of "Equation", in order, and returns the key value for the matched IdRef value? I added items shown below. The result is a blank. <xsl:key name="kEqn" match="Equation" use="Target" /> <xsl:template match="etd:xRef"> <xsl:apply-templates select="key('kEqn', etd:RefElemID)"/> </xsl:template> Equation and Target are both elements declared within the etd namespace. I tried the template with and without etd: prefixes. tks, jwc -----Original Message----- From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Michael Kay Sent: Saturday, May 03, 2003 11:02 AM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: RE: Numbered Elements > 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 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format