我们正在寻找一种易于使用(阅读非技术性)创作环境的桌面表单技术.几年前,当我最后一次看到这个时,似乎XForms会成熟到真正有用的东西.现在这项技术似乎很少发生(例如,这里只有XForms标签下的5个问题)并没有提供工具,特别是基于桌面的工具.
那么,XForms死了吗?有更好的东西来吗?
XForms是和/或是支持结构化表单数据的XML标记.它是从XML发展而来的标准,旨在轻松集成到其他当前标记语言(如XHTML,ODF或SVG)或任何"合适的标记语言"中,并提供多平台和多浏览器支持.我在下面链接的工作组页面上声明了更多项目目标.
当我正在研究使用php处理表单时,我注意到PHP Features页面提供了在php中处理XForms的支持,但是我不知道XForms是什么,所以搜索开始了.
来自W3C网站的XForms工作组页面(制定网络标准的人),写道"表格工作组于2015-04-08正式关闭".它还表示可以继续通过XForms用户社区组开展工作,但自2015年10月以来,用户社区组尚未正式发布,除了询问XForms延续的人员.
该小组似乎一直致力于XForms的2.0版本,但它似乎从未发布过,因为W3C标准页面显示自2012年8月以来的2.0版草案,而1.1版本是2009年发布的最新版本.也链接如下.
为了更好地理解替代XForms的替代方案,从W3C网站的XForms页面可以看出,除了XForms是XML之外,XForms和HTML表单之间的主要区别是"将收集的数据与标记的分离"分开.控制收集个人价值".因此,作为XForms页面上的示例,不是将HTML硬编码到表单中以呈现特定方式,而是使用XForms架构,并且设备,浏览器或应用程序检测表单中的数据类型并将数据呈现为适合于平台,例如表单数据输入类型'选择','输入','秘密','上传'以及XForms团队定义的其他类型.
有没有人知道XForms是否仍在继续工作,或者它是否已经过时或者已经死亡的标准已经过时并被未来的软件所取代?
此外,是否有人知道已经实施的任何替代方案,或者正在开发替代XForms和类似的软件?
谢谢你的帮助.我远不是XForms或其用途的专家,所以如果我有任何错误信息,请纠正我.此外,我不能在这篇文章中发布超过2个链接,所以我将在评论中留下其他相关链接.
编辑:我也觉得2011年在这个问题上提出的类似问题已经过时,而且没有能力在社区中找到软件替代品.
类似帖子:XForms仍然是现场标准吗?
PHP功能:http://php.net/manual/en/features.php
W3 XForms 2.0草案:https://www.w3.org/TR/xforms20/
XForms标准页面似乎表明它已不再存在,并且html5有点排序现在可以完成工作.是这样的吗?我正在考虑将异构数据块存储为XML片段 - 根据数据类型生成编辑器页面.
我最近一直在研究为ASP.NET Web应用程序创建基于Web的表单的方法,这些表单可以在运行时进行编辑和管理.例如,管理员可能希望添加新的验证规则或新的字段集.
圣杯将提供一种指定表格以及(可能非常复杂的)任意验证规则以及为每个字段分配数据源的方法.然后,该规范将用于更新Web应用程序中的已部署表单,然后该表单将验证客户端和服务器端的提交.
我的调查让我看到了Xforms和许多支持它的技术.一个解决方案似乎是IBM Lotus Forms,但这需要在基础架构方面进行非常大的投资,这使得它变得不可行,尽管表单设计器可能作为创建表单的独立工具很有用.我还打印了浏览器插件,因为表单必须是公开可见的并且符合跨浏览器标准.
我注意到有许多javascript库在给定Xforms模式的情况下提供客户端实现.这些将提供部分解决方案,但仍然需要服务器端验证.
另一种选择似乎涉及使用服务器端解决方案,例如Java应用程序Orbeon.Orbeon提供了一个用于指定表单的工具(虽然没有Lotus Forms Designer那么丰富),但最有趣的一点是,它可以将XForms模式转换为完成验证的XHTML表单.如果可以与现有的ASP.NET应用程序集成,那么它是用Java编写的并不是一个大问题.
所以我的问题是之前是否有人这样做过.这听起来像是一个应该解决的问题,但本质上非常复杂.似乎可以使用现成的工具来设计表单并将其导出为Xforms模式和xhtml表单,并且似乎可以采用xforms模式和表单并使用客户端库发布它.似乎很难提供一种方法来验证服务器端的表单提交并将该过程与.NET很好地集成(虽然看起来.NET社区不涉及XForms;如果我错了请纠正我在这个数量上).
如果产品提供的东西很简单,就像可以根据模式验证提交的Web服务,我会非常高兴.也许Orbeon做到了这一点,但如果知情人士在我进一步研究之前能指出正确的方向,我将不胜感激.
非常感谢.
我正在开发一个允许在线编写和查看报告的Web应用程序.这些报告将具有典型的学校报告或年度员工评估报告的结构.我希望用户能够自定义其报告的结构.例如,一所学校可能希望采用该格式的报告
Subject Comment Score
-----------------------------
English He sucks 20%
Maths He rocks 88%
Science About average 70%
Run Code Online (Sandbox Code Playgroud)
而另一个可能想要
Subject Grade
---------------
English A
Maths B
Science C
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是每个学校指定报告格式的方式 - 可能是某种JavaScript表单构建库.这样的库可以在允许用户构建表单的页面中使用,该表单将用作其报告的模板.
因为我需要处理在服务器端提交的每个报告,所以我需要捕获关于每个字段的一些语义.例如,如果用户可以指定报告中每个问题的答案是纯文本,数字分数,复选框,单选按钮等,那将会很棒.
关于处理这种"动态"形式的有用技术的任何建议都将非常感激.XForms看起来可能是相关的,但我还没有深入挖掘它.
干杯,唐
我知道这个问题听起来像是"从过去"的事情,但我需要做一个功课,我不能让它工作.
问题如下:
我有从数据库调用的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"> …Run Code Online (Sandbox Code Playgroud) 几年前,我们开始在W3C中使用XForms来创建一个需要数百个自定义表单的Web应用程序.
由于主流浏览器目前不支持它们,您今天在项目中使用了哪些解析器/工具?
我对插件并不感兴趣 - 这需要是服务器端模拟XForms的东西.
假设我的view.xml中有以下表单数据实例:
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:exforms="http://www.exforms.org/exf/1-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xhtml:head>
<xforms:instance id="instanceData">
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<fruits>
<fruit>
<fruit-name>Mango</fruit-name>
</fruit>
<fruit>
<fruit-name>Apple</fruit-name>
</fruit>
<fruit>
<fruit-name>Banana</fruit-name>
</fruit>
</fruits>
</form>
</xforms:instance>
</xhtml:head>
Run Code Online (Sandbox Code Playgroud)
我想从上面的实例中选择所有水果名称.我尝试了以下方法,但它总是选择第一个水果.
instance('instanceData')/fruits/fruit[*]/fruit-name
instance('instanceData')/fruits/fruit/fruit-name
instance('instanceData')/fruits/fruit[position()>0]/fruit-name
Run Code Online (Sandbox Code Playgroud)
请提供一种在XPATH中克服此问题的方法
我正在开发一个使用ubiquity-xforms的应用程序.以前我一直使用XHTML 1.0 doctype以text/html的形式提供这些页面.
如果我换的MIME类型为application/xhtml + xml,我会看到一个相当大的性能提升,因为JavaScript的可以使用的,而不是什么它现在做的(通过每一次整个DOM树慢慢迭代的get ____ NS()函数,它需要选择一个元素).
但是当我尝试这个时,我的一堆CSS停止了工作.我注意到,当我检查的元素,无论是在Firebug或WebKit每日Web检查,故障点是".classname"和在XForms命名空间的元素'#ID’CSS选择器.我还注意到,在列出的DOM属性中,这些元素缺少'id'和'className'属性.
我的问题是,有没有办法让UA将这些识别为类和ID?
我尝试过的事情无济于事:
这是一些示例xhtml.在Firefox 3.5或Safari 4/WebKit Nightly中不起作用
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<style type="text/css">
/* <![CDATA[ */
#test {
background-color: red;
}
.testing {
color: blue;
}
/* ]]> */
</style>
</head>
<body>
<xf:group id="test" class="testing">Test</xf:group>
</body>
Run Code Online (Sandbox Code Playgroud)
如果我没有正确地问这个问题,我会提前道歉......很难说出我要问的内容.
我有XForms模型,如:
<file>
<criteria>
<criterion></criterion>
</criteria>
</file>
Run Code Online (Sandbox Code Playgroud)
我想有多个输入文本框,用于创建新的条件标记.
用户界面如:
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
<xf:input ref="/file/criteria/criterion" model="select_data">
<xf:label>Select</xf:label>
</xf:input>
Run Code Online (Sandbox Code Playgroud)
我希望XML输出看起来像这样(一旦用户输入信息):
<file>
<criteria>
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>CCC</criterion>
</criteria>
</file>
Run Code Online (Sandbox Code Playgroud)
我拥有它的方式不起作用,因为它看到3个输入字段都指向相同的标准标记.我如何区分?
谢谢!我希望这有点道理!
开始第一次编辑
感谢基本文本框的回复!
但是,我现在需要使用列表框执行此操作.但对于我的生活,我无法弄清楚如何.我读到了与xforms一起使用的地方:选择和取消选择事件..但我不知道放在哪里,我尝试的地方给了我非常奇怪的行为.
我目前正在实施以下内容:
<xf:select ref="instance('criteria_data')/criteria/criterion" selection="" appearance="compact" >
<xf:label>Choose criteria</xf:label>
<xf:itemset nodeset="instance('criteria_choices')/choice">
<xf:label ref="@label"></xf:label>
<xf:value ref="."></xf:value>
</xf:itemset>
</xf:select>
Run Code Online (Sandbox Code Playgroud)
但是,当提交多个选项时,所有选择值都将插入到同一节点中,并以空格分隔.
例如:
如果从列表框中选择AAA和BBB和FFF,则会产生以下XML:
<criterion>AAA BBB FFF</criterion>
Run Code Online (Sandbox Code Playgroud)
如何更改代码以使每个选择都在单独的节点中?
即我希望它看起来像这样:
<criterion>AAA</criterion>
<criterion>BBB</criterion>
<criterion>FFF</criterion>
Run Code Online (Sandbox Code Playgroud)
谢谢!
完成第一次编辑
开始第二次编辑:
对于列表框(即xf:select appearance ="compact"),我最终允许空间出现在同一节点中,然后使用xsl转换该xml以生成格式正确的新xml doc(具有单独的单个节点).不幸的是,我没有通过将它们最初插入到单独的节点中而找到不那么麻烦的解决方案.
所选答案对于文本框非常有效,因此我选择它作为答案.
结束第二次编辑