2011-07-26 5 views
1

xaml Line要素のxslテンプレートを作成しようとしています。xsltでxamlを作成する

これは私がこれまで持っているものです。

... 

<xsl:call-template name="Line"> 
    <xsl:with-param name="xOne" select="70"/> 
    <xsl:with-param name="xTwo" select="905"/> 
    <xsl:with-param name="yOne" select="500"/> 
    <xsl:with-param name="yTwo" select="500"/> 
</xsl:call-template> 

<xsl:template name="Line"> 
    <xsl:param name="xOne"/> 
    <xsl:param name="xTwo"/> 
    <xsl:param name="yOne"/> 
    <xsl:param name="yTwo"/> 
    <Line xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Stroke="red" 
     StrokeThickness="2" 
     X1="$xOne" 
     X2="$xTwo" 
     Y1="<xsl:value-of select="number($yOne)"/>" <!-- example: not working --> 
     Y2="$yTwo"/> 
</xsl:template> 

質問:

  • それら名前空間を管理するためのより良い方法はありますか?
  • パラメータ$ xOne、$ xTwo、...は機能しません。限り、私はxsltを知っている私はこれを実装する必要があります:<xsl:value-of select="number($xOne)"/>しかし、それは私がそれらを実装する方法のために可能ではありません。

xsltとxamlの経験が豊富な人が私を助けてくれることを願っていますか?私は事前にXSL v1.0のに

TYを使用しています:)

答えて

1

あなたは、ルートノードで、すなわち名前空間宣言を置くことができます。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
> 

それではあなたは、単に名前空間を追加することなく、書くことができます。

<Line 

使用{}属性値を設定するには、例えば:

<xsl:template name="Line"> 
    <xsl:param name="xOne"/> 
    <xsl:param name="xTwo"/> 
    <xsl:param name="yOne"/> 
    <xsl:param name="yTwo"/> 
    <Line 
     Stroke="red" 
     StrokeThickness="2" 
     X1="{$xOne}" 
     X2="{$xTwo}" 
     Y1="{$yOne}" 
    Y2="{$yTwo}"/> 
</xsl:template> 
2

これらの名前空間を管理するより良い方法はありますか?

あなたは、スタイルシートのルート要素に名前空間宣言を追加することができます。

<xsl:stylesheet version="1.0" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

をし、必要な場所のように、接頭辞を使用します。

接頭辞が使用されていない
<xsl:template name="Line"> 
    <!-- ... --> 
    <x:Line /> 
</xsl:template> 

、デフォルトの名前空間が考慮されます。

X1="{$xOne}" 

パラメータ$ XONE、$ xTwo、


...

AVTと使用を学び働いていません

関連する問題