Xforms отображаются через XSLT и XML ошибка - PullRequest
7 голосов
/ 29 ноября 2011

Я знаю, что этот вопрос будет звучать как "из прошлого", но мне нужно сделать это для домашней работы, и я не могу заставить его работать.

Проблема следующая:

У меня есть данные xml, вызванные из базы данных, я использовал xslt для рендеринга документа xforms в браузере, кстати, это старый Firefox 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

1 Ответ

0 голосов
/ 16 января 2012

хорошо, я не нашел решения, но использовал обходной путь, чтобы сделать эту работу.

Поскольку проблема была с Firefox, мне пришлось визуализировать таблицу стилей другим способом, поэтому я использовал aspnet для предварительной визуализациитаблица стилей кода (я забыл упомянуть, что работал с ней), а затем я записал ее на страницу с помощью Response.Write, и она работала как шарм, используя html в качестве метода вывода xsl:

...