Я пробовал следующий xml (SimpleSampleInput.xml), который ссылается на SimpleTransform1.xsl. Я использовал Firefox и Xalan для преобразования xml, отображая его как SVG. Кажется, что оба дают одинаковые результаты. Явные части получают выходные данные, а xsl: element - нет. Кроме того, содержимое <xsl:template name="metadata" match="sample">
отображается в Firebug, но отказывается отображаться. Смущенный!
В данный момент я просто пытаюсь освоить технологию (xml + xsl -> svg), и поэтому в этом примере не выполняется весь вывод, к которому я стремлюсь, но я делаю небольшие шаги.
С удовольствием предоставим более подробную информацию, если следующей пасты недостаточно ...
Заранее спасибо:
Грег
(примечание: в моем контексте оба файла находятся в моем каталоге Apache (/ var / www / xmlxsl2svg /), и у меня есть версия Xalan 1.10.0 &
Xerces версия 2.8.0)
SimpleSampleInput.xml
<?xml-stylesheet href="SimpleTransform1.xsl" type="text/xsl"?>
<sample frame="all">
<title>DO MYCOMMAND </title>
<groupseq>
<kwd>DO MYCOMMAND </kwd>
</groupseq>
<groupseq importance="optional">
<kwd>SWITCH1 </kwd>
<delim>( </delim>
<var>switch1 var </var>
<delim>) </delim>
<synnote>Switch1 description </synnote>
</groupseq>
<groupchoice importance="optional">
<kwd importance="default">SWITCH2(sw2var) </kwd>
<groupseq>
<kwd>PARM </kwd>
<delim>( </delim>
<var>member-name </var>
<delim>) </delim>
</groupseq>
</groupchoice>
</sample>
SimpleTransform1.xsl
<?xml version="1.0" encoding="UTF-8"?>
<!--xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="metadata" match="sample">
<xsl:param name="synnote" select="groupseq"/>
<xsl:variable name="synnoteText" >
<xsl:element name = "text" >
<xsl:attribute name="x">50 </xsl:attribute>
<xsl:attribute name="y">100 </xsl:attribute>
<xsl:attribute name="id">xslGeneratedTextElement </xsl:attribute>
<xsl:attribute name="style">font-family:sans-serif; font-size:12; stroke:none; fill:black; </xsl:attribute>
xslGeneratedTextElement
<xsl:value-of select="$synnote" />
</xsl:element>
</xsl:variable>
<circle cx="90" cy="90" r="50" id="templateCircle" style="stroke:#255965; stroke-width:10px; stroke-dasharray:20,10; fill:red;"/>
<!--the following line is the only output when this template is called! -->
<text x="50" y="300" id="templateText" style="font-family:sans-serif; font-size:22; stroke:none; fill:green;">
<xsl:value-of select="$synnote" />
</text>
<!--the following line should output the xslGeneratedTextElement-->
<xsl:value-of select="$synnoteText" />
</xsl:template>
<xsl:template match="sample">
<svg width="1000" height="600" xmlns="http://www.w3.org/2000/svg">
<xsl:call-template name="metadata" />
<circle cx="300" cy="300" r="200" id="largeCircle" style="stroke:#255965; stroke-width:10px; stroke-dasharray:20,10; fill:pink;"/>
<text x="50" y="20" id="titleText" style="font-family:sans-serif; font-size:12; stroke:none; fill:black;">
<xsl:value-of select="title"/>
</text>
<!--xsl:param name="bbb" match="sample"/-->
<xsl:variable name="aaa" >
<xsl:element name = "text2" >
<xsl:attribute name="x">50 </xsl:attribute>
<xsl:attribute name="y">100 </xsl:attribute>
<xsl:attribute name="id">xslGeneratedTextElement2 </xsl:attribute>
<xsl:attribute name="style">font-family:sans-serif; font-size:12; stroke:none; fill:black; </xsl:attribute>
The title is: <xsl:value-of select="title" />
</xsl:element>
</xsl:variable>
<xsl:value-of select="$aaa" />
</svg>
</xsl:template>
</xsl:stylesheet>