2017-06-10 86 views
0

顯示我試圖使用XForms:輸入,但它們並不在瀏覽器中顯示。 這裏是我的XHTML代碼:的XForms:輸入沒有在瀏覽器

<?xml-model href="http://www.oxygenxml.com/1999/xhtml/xhtml-xforms.nvdl" 
    schematypens="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0"?> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:xforms="http://www.w3.org/2002/xforms" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <meta:meta xmlns:meta="http://www.xsmiles.org/2002/metadata" 
      name="XForms Controls" 
      description="Tests all XForms controls in single document"/> 
    <head> 
    <title>Registo de Utilizador</title> 
    <xforms:model id="modelUtilizador"> 
     <xforms:instance 
     id="instanceUtilizador" 
     src="http://localhost:8081/exist/apps/PEIFinal/data/utilizadores.xml"/> 
     <xforms:bind id="nome" nodeset="//utilizador/nome" type="xsd:string" required="true()"/> 
     <xforms:bind id="sexo" nodeset="//utilizador/sexo" type="xsd:string"/> 
     <xforms:bind id="rua" nodeset="//utilizador/rua" type="xsd:string" required="true()"/> 
     <xforms:bind id="nporta" nodeset="//utilizador/nPorta" type="xsd:integer" required="true()"/> 
     <xforms:bind id="codPost1" nodeset="//utilizador/codPost1" type="xsd:integer"/> 
     <xforms:bind id="codPost2" nodeset="//utilizador/codPost2" type="xsd:integer" required="true()"/> 
     <xforms:bind id="distrito" nodeset="//utilizador/distrito" type="xsd:string" required="true()"/> 
     <xforms:bind id="pais" nodeset="//utilizador/pais" type="xsd:string" required="true()"/> 
     <xforms:bind id="telefone" nodeset="//utilizador/telefone" type="xsd:string" required="true()"/> 
     <xforms:bind id="email" nodeset="//utilizador/email" type="xsd:string" required="true()"/> 
     <xforms:bind id="username" nodeset="//utilizador/username" type="xsd:string" required="true()"/> 
     <xforms:bind id="password" nodeset="//utilizador/password" type="xsd:string" required="true()"/> 
     <xforms:submission action="http://google.com" id="s001" method="post"/> 
    </xforms:model> 
    </head> 
    <body> 
     <fieldset> 
      <xforms:input bind="nome"> 
       <xforms:label> Nome </xforms:label> 
       <legend/> 
       <input class="texttoNome" type="text" name="nome"/> 
      </xforms:input> 
      <xforms:input bind="sexo"> 
       <xforms:label> Sexo <input class="texttoSexo" type="checkbox" name="sexo"/> 
       </xforms:label> 
      </xforms:input> 
      <xforms:input bind="rua"> 
       <xforms:label> Rua </xforms:label> 
       <input class="texttoRua" type="text" name="rua"/> 
      </xforms:input> 
      <xforms:input bind="nporta"> 
       <xforms:label> Porta </xforms:label> 
       <input class="texttoPorta" type="text" name="porta"/> 
      </xforms:input> 
      <xforms:input bind="codPost1"> 
       <xforms:label> CodigoPostal </xforms:label> 
       <input class="texttocodPost1" type="text" name="codPost1"/> 
      </xforms:input> 
      <xforms:input bind="codPost2"> 
       <xforms:label> </xforms:label> 
       <input class="texttocodPost2" type="text" name="codPost2"/> 
      </xforms:input> 
      <xforms:input bind="distrito"> 
       <xforms:label> Distrito </xforms:label> 
       <input class="texttodistrito" type="text" name="distrito"/> 
      </xforms:input> 
      <xforms:input bind="pais"> 
       <xforms:label> País </xforms:label> 
       <input class="texttopais" type="text" name="pais"/> 
      </xforms:input> 
      <xforms:input bind="telefone"> 
       <xforms:label> Telefone </xforms:label> 
       <input class="texttotelefone" type="text" name="telefone"/> 
      </xforms:input> 
      <xforms:input bind="email"> 
       <xforms:label> Email </xforms:label> 
       <input class="texttoemail" type="text" name="email"/> 
      </xforms:input> 
      <xforms:input bind="username"> 
       <xforms:label> Username </xforms:label> 
       <input class="texttousername" type="text" name="username"/> 
      </xforms:input> 
      <xforms:input model="modelUtilizador" bind="password"> 
       <xforms:label> Password </xforms:label> 
      </xforms:input> 
      <xforms:submit submission="s001"> 
       <xforms:label>Registar</xforms:label> 
      </xforms:submit> 
     </fieldset> 
    </body> 
</html> 

你可以看到,我使用HTML,因爲這樣的XForms不工作。

當我點擊提交按鈕,這不工作太多,也許這是原因。

你可以幫我找到解決方案,xForms不會顯示在瀏覽器中?

+0

我不知道我可以添加到我離開你以前的問題發表評論。也許這[維基百科](https://en.wikipedia.org/wiki/XForms#Software_support)報價會說服你嗎? ***「在撰寫本文時,沒有廣泛使用的Web瀏覽器本地支持XForms。」*** –

回答

0

如今瀏覽器不支持Xforms,這就是爲什麼你看不到你的表單的任何東西。 也許你可以嘗試使用Orbeon。 Orbeon Forms是構建和部署Web表單的解決方案。您必須將其部署到您的服務器以使用Xforms。

0

正如其他人所指出的那樣,目前的Web瀏覽器還不支持XForms本身。你將需要一些XForms實現來使你的表單工作。 XHTML中嵌入的XForms通常有兩種實現:

  • 瀏覽器端實現。

    一個突出的例子是由AgenceXML的Alain Couthures開發的XSLTForms。非常簡單的安裝和使用:將庫安裝在Web服務器上,並從表單中引用XSLTForms樣式表。樣式表在用戶的Web瀏覽器中使用XSLT引擎來構建表單的HTML + Javascript版本。

    老式的X-Smiles獨立瀏覽器和XForms的Mozilla插件就是這個類的更多例子,但據我所知現在都沒有保存。

  • 服務器端實現。

    突出的例子包括Orbeon和BetterForms。當XForm的請求進入時,服務器上的代碼會生成一個包含Ajax調用的HTML頁面。有些東西是在Web瀏覽器和服務器上的其他東西中執行的(對於XForms作者來說不可見)。在服務器代碼中,實現者比在Javascript中擁有更多的自由,可以在客戶端上運行,所以我認爲添加新特性對於這些實現更容易。 Orbeon和BetterForms都有令人印象深刻的文檔。

BetterForms和XSLTForms都作爲eXist XML數據庫包的一部分。因此可以通過這種方式避免一些安裝問題。而最後一次看,eXist與Orbeon打包在一起。

W3C XForms wiki上的list of active implementations指向這些和其他實現。

相關問題