It's not clear if you are using the XSLT as part of the FrameMaker import/export process, to generate HTML, or some other process. However, the answer is the same in each case...
Use the xpath function unparsed-entity-uri() to return the URI of the referenced graphic file.
This could be used within your XSLT as follows when the context node is the symbol element: <xsl:value-of select="unparsed-entity-uri(@boardno)"/>.
Just use the result to populate the relevant attribute in the output document for example in HTML:
<img href="{unparsed-entity-uri(@boardno)}">
I hope this what you were looking for.
Best regards
Ian
Ian Proudfoot
iTP-X
Adobe Community Expert
element "image"
{
is fm graphic element;
attribute "entity" drop;
attribute "href" is fm property file;
}
This would give you something like
<image href="some file path" ... />
- Michael
The dtd change could be politically difficult in this case. The sample looks like airplane stuff, where the boardno is an entity type attribute, old remnant from the old ATA dtd.
Ian's solution definitely works (using the same..)
Martti
Name token does not allow digits..I'd say that the problem is caused by the space in the graphics path that gets converted to %20.
If you cannot change the dtd, get rid of the space in the path.
BR, Martti
this is the structure i am using...
<xsl:template match="symbol">
<xsl:element name="IMG">
<xsl:attribute name="SRC"><xsl:value-of select="unparsed-entity-uri(@boardno)"/></xsl:attribute>
<xsl:attribute name="ALIGN">middle</xsl:attribute>
</xsl:element>
</xsl:template>
the result is img src="" align=middle
your xsl looks correct and should work (I've used the same with frame generated XML files but not with build-in XSLT).
Change the xsl to write the value of boardno to src attribute to see what value is returned. The only reason if could come up is that the local entity declarations are vanished when the XML is passed to XSLT.
Another try is to use, for example, saxon outside of frame env. to check that you get the unparsed value
BR, Martti