我知道這個問題聽起來像一個「從過去」的事情,但我需要做這個功課,我不能讓它工作。通過xslt和xml錯誤呈現的xforms
的問題如下:
我的XML數據,從數據庫中調用,我使用XSLT來呈現在瀏覽器中的XForms文檔,由只安裝使用方式的舊火狐3.6 xforms擴展。 它正確呈現xforms文檔,但控件並不像預期的那樣工作,我不能提交表單並且實例數據也沒有填充輸入。
我的XSL樣式表如下:
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xf="http://www.w3.org/2002/xforms">
<xsl:output method="xml"
indent="yes"
omit-xml-declaration="yes"
media-type="application/xhtml+xml"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" />
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms" dir="ltr" lang="es">
<head>
<xf:model>
<xf:instance>
<data xmlns="">
<iCargo_Id>1</iCargo_Id>
<sCargo_Desc>lalala</sCargo_Desc>
<iConcurrencia_Id>1</iConcurrencia_Id>
</data>
</xf:instance>
<xf:submission id="prueba" action="EditarCargos.aspx" method="post"/>
</xf:model>
<link href="../css/style.css" rel="stylesheet" type="text/css" />
<title><![CDATA[Adicionar Cargos]]></title>
</head>
<body>
<div class="header"></div>
<div class="menu">
<a href="../empleados/editarempleados.aspx"><![CDATA[Empleados]]></a>
<a href="../horarios/editarhorarios.aspx"><![CDATA[Horarios]]></a>
<a href="../jornadas/editarjornadas.aspx"><![CDATA[Jornadas]]></a>
<a href="../cargos/editarcargos.aspx"><![CDATA[Cargos]]></a>
<a href="../usuarios/editarusuarios.aspx"><![CDATA[Usuarios]]></a>
<a href="../profesiones/editarprofesiones.aspx"><![CDATA[Profesiones]]></a>
<a href="../reportes/ReporteMarcaciones.aspx"><![CDATA[Rep. de Marcaciones]]></a>
<a href="../cerrarSesion.aspx"><![CDATA[Cerrar Sesión]]></a>
</div>
<div id="main">
<div class="mainTitle">
<![CDATA[Adicionar Cargos]]>
</div>
<div>
<xf:input ref="sCargo_Desc">
<xf:label><![CDATA[Cargo]]></xf:label>
</xf:input>
<div>
<xf:submit submission="prueba">
<xf:label><![CDATA[Guardar Cambios]]></xf:label>
</xf:submit>
</div>
</div>
<div>
<a class="cmdSecond" href="EditarCargos.aspx"><![CDATA[Volver]]></a>
</div>
</div>
</body>
</html>
</xsl:template>
<xsl:template match="cargo[iCargo_Id]">
<iCargo_Id>
<xsl:value-of select="iCargo_Id"/>
</iCargo_Id>
<sCargo_Desc>
<xsl:value-of select="sCargo_Desc"/>
</sCargo_Desc>
<iConcurrencia_Id>
<xsl:value-of select="iConcurrencia_Id"/>
</iConcurrencia_Id>
</xsl:template>
<xsl:template match="cargo[not(iCargo_Id)]">
<iCargo_Id></iCargo_Id>
<sCargo_Desc></sCargo_Desc>
<iConcurrencia_Id></iConcurrencia_Id>
</xsl:template>
</xsl:stylesheet>
和我的XML代碼如下所示:
<cargo>
<iCargo_Id>1</iCargo_Id>
<sCargo_Desc>Jefe de Sistemas</sCargo_Desc>
<iConcurrencia_Id>1</iConcurrencia_Id>
</cargo>
我認爲這個問題是<xsl:output method="xml"
屬性 ,因爲XForms的要求XHTML來呈現,但是當我創建它時,firefox會拋出XSLT異常。
請幫忙!我已經到處搜索了,我發現它有一些與Firefox中的錯誤,但我希望有另一種方法來使這項工作,你的幫助將非常感激和對我的英語感到抱歉,我目前正在學習:D
沒有xhtml輸出這樣的東西。它可以是XML,HTML,文本。 Firefox支持html/xml。 – FailedDev
@FailedDev,你的意思是在XSLT 1.0中沒有'xhtml'輸出*方法*?這是真的,但你可以從XSLT 1.0輸出XHTML,因爲它是XML。所以我不確定你在說什麼。 – LarsH
您可以嘗試使用另一個XSLT處理器進行轉換 - 特別是使用可指定'的XSLT 2.0處理器 - 然後嘗試查看生成的結果是否具有預期的行爲。如果情況並非如此,那麼你對問題原因的假設是錯誤的。 –