xsltforms submission method =" post&#34 ;: Unknown XML root element

时间:2016-03-28 13:37:23

标签: xforms exist-db xsltforms

我在exists-db服务器上使用XSLTforms,我尝试使用method =" post"加载文件。没有运气。以下是该模型的示例:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
    <xf:model>
        <xf:instance xmlns="" id="default">
            <data>
                <x>
                    <a></a>
                    <b></b>
                    <c></c>
                </x>
            </data>
        </xf:instance>
        <xf:submission id="read-from-file" method="post" replace="instance" instance="default">
            <xf:resource value="'../data/test.xml'"></xf:resource>
        </xf:submission>
    </xf:model>
</head>

这是我试图提交的test.xml:

<data>
  <x>
    <a>test</a>
    <b>test</b>
    <c>test</c>
  </x>
</data>

当我触发提交时,我收到错误:

  

xsltforms.js:8115 POST ../data/test.xml 400(未知XML根元素:数据)

如果&#34;得到&#34;使用方法代替,一切都很好,只要文件足够小 - 如果我尝试使用方法加载更大的文件=&#34;得到&#34;最初它已加载,但在加载一次并尝试重新加载后,我收到错误&#34; 414(Request-URI太长)&#34;。我搜索了一个答案,建议是在这种情况下,正确的方法是使用&#34; post&#34;。我是xforms的新手,显然我做错了,所以我需要帮助来完成这项工作...... 提前谢谢!

1 个答案:

答案 0 :(得分:2)

在处理提交问题时,使用浏览器调试器来检查发送的内容和收到的内容是很有趣的。

GET方法显然是用于获取文件内容的方法,而PUT和POST则用于将内容推送到文件中。

默认情况下,默认实例序列化为GET参数。我认为这是URI太长警报的原因。由于您只想获取文件内容,是否可以再次尝试将“序列化”属性设置为“无”?