2011-11-28 15 views
7

Bu sorunun "geçmişten gelen" bir şey gibi görüneceğini biliyorum ama bunu bir ev ödevi için yapmalıyım ve çalışmamı sağlayamam.xslt ve xml hatası ile işlenen xforms

sorun şu:

Bir veritabanından denilen xml verileri, ben kullanmak sadece yüklendiği şekilde eski firefox 3.6 ile, tarayıcıda bir xforms belgesini işlemek için xslt kullanılan var xforms uzantısı. xforms belgesini doğru şekilde işler, ancak denetimler beklendiği gibi çalışmaz, bir form gönderemiyorum ve örnek veriler girişleri doldurmuyor.

Benim xsl stil şudur: Böyle

<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> 

ve benim xml kod görünüm: xforms işlemek için xhtml gerektirdiğinden

<cargo> 
    <iCargo_Id>1</iCargo_Id> 
    <sCargo_Desc>Jefe de Sistemas</sCargo_Desc> 
    <iConcurrencia_Id>1</iConcurrencia_Id> 
</cargo> 

Ben, sorun <xsl:output method="xml" nitelik olduğunu düşünüyorum, ama itfaiyeci yaptığım zaman bir XSLT istisnası atar.

Lütfen Yardım! Her yerde arama yaptım, ve keşfettim Bu firefox'ta bir hata ile bir şey var ama bu işi yapmak için başka bir yol olduğunu umuyorum, yardımınız benim için çok minnettar olacak ve benim için üzgünüm, şu anda öğreniyorum: D

+1

olarak html kullanarak bir çekicilik gibi çalıştı xhtml çıkışı diye bir şey yoktur. Xml, html, text olabilir. Firefox, html/xml'yi destekler. – FailedDev

+0

@FailedDev, XSLT 1.0'da "xhtml" çıktı * yöntemi yok mu demek istiyorsun? Bu doğrudur, ancak XHTML'yi XSLT 1.0'dan çıktırabilirsiniz, çünkü bu XML'dir. Yani söylediklerinden emin değilim. – LarsH

+1

Başka bir XSLT işlemcisi ile - özellikle de 'belirtebileceğiniz bir XSLT 2.0 işlemcisi ile dönüştürmeyi deneyebilirsiniz - sonra üretilen sonucun beklenen davranışa sahip olup olmadığını görmeye çalışın. Eğer böyle olmazsa, sorunun nedenine dair hipoteziniz yanlıştır. –

cevap

0

Tamam, bir çözüm bulamadım, ancak bu işi yapmak için bir geçici çözüm kullandım.

Sorun Firefox'la olduğu için, stil sayfasını başka bir şekilde oluşturmam gerekiyordu, bu yüzden arka plandaki kod üzerinde ön-çizim yapmak için aspnet'i kullandım (onunla çalıştığımı belirtmeyi unuttum) ve sonra Response.Write kullanarak Sayfa yazdı ve xsl: çıktı yöntemi