2013-03-18 65 views
1

我有以下的XForms代碼:XForms數據模型不能被保存在XML文件

<?xml-stylesheet href="./xsltforms.xsl" type="text/xsl"?> 
<?xsltforms-options debug="yes"?> 
<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:xf="http://www.w3.org/2002/xforms" 
    xmlns:ev="http://www.w3.org/2001/xml-events"> 
    <head> 
     <title>XForms Submit Example</title> 
     <xf:model id="MyModel"> 
       <xf:instance src="./Model.xml"/> 
       <xf:bind id="FirstName" nodeset="/MyData/FirstName"/> 
       <xf:submission id="save" method="put" action="./myData.xml" replace="none" /> 
       <xf:submission id="loadDoc" action="./myData.xml" replace="instance" method="get" /> 
     </xf:model> 
    </head> 
    <body> 
       <xf:input ref="FirstName" incremental="true"> 
      <xf:label>Please enter your first name: </xf:label> 
     </xf:input> 
       <br/> 
       <br/> 

       Output First Name: <xf:output ref="FirstName" /> 

       <br/> 
       <br/> 

       <xf:submit submission="save"> 
     <xf:label>Save</xf:label> 
       </xf:submit> 

       <br/> 
       <br/> 

       <xf:submit submission="loadDoc"> 
     <xf:label>Load</xf:label> 
       </xf:submit> 

    </body> 
</html> 

此窗體包含一個文本框字段和兩個按鈕saveload,也1依賴於文件Model.xml這是:

<?xml version="1.0" encoding="UTF-8"?> 
<MyData> 
       <FirstName>John</FirstName> 
       <Data2>Two</Data2> 
       <Data3>Three</Data3> 
</MyData> 

的問題是:當我輸入一些數據到文本框中,按下保存按鈕,該模型應保存到myData.xml。該文件存在於磁盤,它不是隻讀

其實什麼也沒有發生,以及文件的數據將不會被更新(順便說Load按鈕正常工作)。

什麼是此行爲以及如何之所以解決這個問題,進入數據保存到外部文件?

回答

2

你已經嘗試添加「文件://」 action屬性?

-Alain

+0

我更喜歡使用相對路徑來避免錯誤的URI,如我可以指定文件:/// d:/MyData.xml或file:/ d:/MyData.xml等 指定的文件名是正確的。而XForms知道該文件存在。如果我指定了類似MyData_.xml的內容,我將在XSLTForms插件的調試模式下收到消息「系統找不到指定的資源」。文件應該存在並且不會被創建是非常奇怪的,不是嗎? – algreat 2013-03-18 13:13:12

+0

寫一個文件是將數據發送到Web服務器完全不同:在瀏覽器中,需要一個Java小程序! 您正在編寫離線應用程序嗎? – 2013-03-18 13:41:40

+0

是,離線應用 – algreat 2013-03-18 14:47:39