XForms
外观
XForms 是维基教科书上的 精选书籍,因为它包含大量内容,格式良好,并且维基教科书社区 决定 在 首页 或其他地方推荐它。请继续改进它,感谢你所做的出色工作!你可以编辑它的 广告模板。 |
XForms
欢迎来到 XForms 教程和食谱维基教科书!
XForms 是 万维网联盟 推荐 的用于创建 Web 表单和 Web 应用程序的标准。它易于学习,提供丰富的用户体验,并且不需要你学习 JavaScript。
XForms 有很多不同的实现,这个食谱旨在与任何实现一起使用。在 W3C 网站 上有一个实现列表。
这是一个协作项目,我们鼓励所有使用 XForms 的人贡献他们完整的 XForms 工作示例。所有提交都必须在 知识共享署名-相同方式共享 2.5 许可证 下授权。
注意:本维基教科书中的许多示例仍然使用“nodeset”属性用于绑定规则、组和重复。大多数 XForms 系统(Orbeon 和 betterForm)现在使用“ref”属性,可能不再支持旧的“nodeset”属性。XSLTForms 1.0RC 不允许使用 @ref 代替 @nodeset,但从 rev.559 开始的版本支持使用 @ref 代替之前使用的 @nodeset。我们将相应地更新示例。
- 讲师:如果你正在使用本书学习或教授 XForms,请在我们的 访客登记簿 上签名。
- 贡献者:请查看我们的 命名约定,以确保你的示例与教科书一致。
- 如果你正在寻找特定示例程序,请随时使用 想要示例 部分。
如果你觉得这些示例有用,请创建到本网站的链接。本书有超过 30 位贡献者。
相关维基教科书:XQuery XForms/REST/XQuery
注意:几乎所有示例都已在 FireFox 2.0 XForms 附加组件和更新的 0.8.6ff3 FireFox 3.0 附加组件中进行了测试。如果你发现任何错误,请告知我们。
介绍
- 介绍 - 关于本书和技术的概述。
- 背景 - XForms 标准的简要历史、理论和动机。
- 优点 - 为什么使用 XForms?
- 安装和测试 - 如何安装 XForm 插件或扩展。
- 命名约定 - 本书中使用的命名标准。
- XForms 产品比较 - 对 XForms 产品的比较
XForms 概览
这些示例适用于刚入门的人。
- HelloWorld - 一个简单的测试,用于查看 XForms 是否已正确安装。
- 简单消息 - 打开一个带有消息的面板
- XForms 架构 - 对 XForms MVC 架构的介绍
- 输入示例 - 一个简单的输入,它会更新模型
- 增量多对一 - 一个输入字段如何改变多个输出控件
- 类似电子表格的更新 - XForms 如何跟踪需要更新的字段
- 绑定 - 如何使用 bind 元素将输入绑定到模型
- 加法器 - 使用远程 Web 服务对两个数字求和的 XForm 示例
控件
- 输入 - 一个带有标签的简单输入表单
- 地址 - 一个带有标签的简单地址表单
- 地址对齐 - 使用 CSS 对齐字段
- 输入字段宽度 - 使用 CSS 控制字段宽度
- 秘密 - 一种输入密码的方式
- 消息类型 - 三种消息类型
- 文本区域 - 一大块文本
- 带样式的文本区域 - 使用 CSS 样式化文本区域
- 复选框 - 一个简单的布尔(是/否)复选框
- 从列表中选择项目
- Select1 - 新的单选按钮
- Select1 下拉列表 - 从下拉列表中选择一个选项
- 开放选择 - 建议一个值或允许用户添加自己的值
- Select - 选择多个(复选框)
- 多列选择 - 从多列中选择多个项目(复选框)
- Select1 多列 - 从多列中选择一个项目(单选按钮)
- 从模型中选择 - 从模型中获取选择列表的数据
- 从文件中选择代码 - 从外部文件中获取选择列表的数据
- 使用日期
- 上传 - 从本地文件系统上传文件
- 触发器 - 新按钮
- 控制按钮外观 - 设置按钮标签、提示并使用图像
- 范围 - 在表单中添加滑块
- 发送 - 发送新的资源请求
- 加载 - 动态加载更多资源到您的表单中
绑定
- 选择文本 - 使用绑定表达式从各种文本消息中设置选择
中等例子
这些示例假设您熟悉 XForms 概念和控件。
客户端字段验证
服务器端字段验证
- 服务器端字段验证 - 将单个字段发送到服务器以验证字段内容
提交数据
- 提交 - 将您的 XML 数据保存到文件或 Web 服务器
- 编码参数 - 编码提交参数
- 更改提交中的命名空间 - 更改提交数据的命名空间前缀
- 显示保存结果 - 保存后显示保存状态
事件和条件
输出
- 绑定到多个实例 - 绑定到多个模型中的多个实例
- 绑定到范围 - 绑定到两个不同的范围
- 重复 - 使用重复来显示列表
- 条件样式 - 使用 CSS 和分组来有条件地显示列表中的项目
- 数字格式化 - 如何格式化数字和货币
- 输出和链接 - 如何在您的输出中显示链接
动态表单
随着您使用而改变的表单。无需使用 Javascript 的动态表单
- 开关和情况 - 使用开关和情况来切换视图
- 相关 - 只显示相关字段
- 重复中的绑定 - 在重复元素内绑定
- 显示-隐藏控件 - 隐藏大型控件
- 禁用按钮 - 如何在按钮不相关时禁用它们
- 只读 - 将输入字段设置为只读
- 选择和分组 - 使用选择来有条件地显示一个分组
- 动态标签 - 在不重新加载页面的情况下动态更改表单的标签
- 建议项目 - 在您输入时创建一个建议项目的列表
- 动态选择列表 - 动态依赖于 xml 实例值的项目集
- 增量模型加载 - 动态加载其他模型
- 本地语言动态标签 - 在不重新加载页面的情况下动态更改表单的本地语言标签
搜索表单
- 搜索表单 - 创建一个搜索表单
- 使用加载搜索 - 使用加载元素创建一个搜索表单
- 高级搜索 - 带有简单和高级选项卡的搜索屏幕
- 日期范围搜索 - 搜索具有日期范围的项目
- 搜索 Flickr - 使用 REST 接口搜索 Flickr
- Web 服务 - 从 XForm 中调用 Web 服务
- 股票报价 - 调用 REST 服务,从股票代码获取股票信息
- 搜索亚马逊 - 使用网络服务搜索亚马逊
- 增量查找 - 键入时,选择列表会缩小
高级表单
大型示例
- CKEditor - 允许用户使用 WYSIWYG 编辑器添加标记
- 幻灯片 - 在幻灯片中更改图像
- 引用项目 - 引用集合中的项目
- 深度复制带插入来源 - 使用插入来源在模型中执行实例之间的深度复制
- 在文本框中插入 BBcode 的触发器
- 多部分表单 - 如何保持初始加载时间短
- 在列表之间移动项目 - 如何在列表之间移动选定项目
- 队列管理 - 如何管理排序队列中的项目
浏览大型表单
使用标签和树 - 浏览复杂表单数据
- 水平文件标签菜单 - 一个完整的运行示例,无需 Javascript
- 水平文件标签菜单突出显示 - 使用 CSS 目标突出显示选定标签的标签菜单
- 垂直菜单 - 与先前版本类似的菜单,但使用垂直方向
- 在模型中存储标签 - 在模型中存储标签,并使用重复显示标签
- 折叠菜单 - 折叠菜单
- 树菜单 - 层次树菜单
- 取消选择事件 - 当您从表单导航离开时捕获取消选择事件
- 使用绑定突出显示水平文件标签菜单 - 另一个使用实例、绑定、事件和 CSS 的水平文件标签菜单
- 层次书签 - 编辑书签
- 大纲编辑器 - 带缩进的大纲
读写文件
- 使用 get 和 put 进行读写 - 使用提交元素读写静态数据
- 保存中间表单数据 - 将中间表单数据保存到本地驱动器
复合控件
组合控件的控件
表格和重复数据
- 重复到表格 - 将数据放入 HTML 表格
- 重复过滤 - 动态地从列表中过滤掉行
- 内联重复 - 水平地向右侧添加结构
- 插入 - 将新行插入表格结构
- 使用源插入 - 插入新数据并使用源属性指定初始值
- 删除 - 从表格结构中删除选定的行
- 突出显示选定行 - 突出显示选定的行
- 表格列总计 - 表格底部带有列总计的表格
- 多个上传 - 使用重复功能将多个上传附加到表单
- 摘要详情 - 表格顶部的摘要信息表允许您检查每个项目的详细信息
XML 架构
- 从 XML 架构加载 - 从外部 XML 架构文件加载数据类型
- 验证 - 使用 XML 架构验证表单
- 使用架构类型验证 - 使用 XML 架构类型验证表单
- 分面验证 - 从 XML 架构检查字段的最小和最大长度
- SVG
JavaScript
- 动态加载 JavaScript - 动态加载 JavaScript 程序的示例
添加图表、图表和地图
- 饼图 - 使用范围控件绘制饼图
- Google 图表 - 使用 Google 图表 REST 网络服务
- 韦恩图 - 使用范围控件更改韦恩图参数
- 供求关系 - 使用范围控件更改价格,并查看对需求的影响
- 图形查看器 - 查看节点和链接的图形
开发工具
- 事件记录器 - 如何记录事件的演示
- 替换测试器 - 测试正则表达式替换
- 流程步骤编辑器 - 编辑水平流程步骤列表
- 应用程序构建器 - 用于创建表单管理应用程序的表单
- 仪表盘构建器 - 用于指定单页仪表盘布局的表单
- URL 重写器 - 配置和测试 Jetty URL 重写规则的表单
- Web 服务测试器 - 用于测试 Web 服务的表单
- 同义词集编辑器 - 将同义词集与业务术语相关联
其他示例
- W2 税务表格 - 基于 Mozilla XForms 站点的示例税务表格
- 发票管理器 - 发票管理器
- 计算器 - 一个四则运算计算器
- 犯罪档案 - 刑事司法中使用的复杂表单示例
- CSS 表格 - 使用 CSS 格式化表格输出,无需使用 HTML 表格
- 自定义控件 - 使用 XBL 的自定义控件示例
- 导航离开时警告 - 在保存之前警告用户是否导航离开
- 全选 - 选择表格中的所有行
- 谷歌地图 - 在 XForms 中使用 Google Maps 的示例
- 使用 XSLT 排序 - 使用 XSLT 样式表对实例进行排序的示例
移动 XForms
- 移动 XForms - 基于 XForms 的移动应用程序示例
客户端 XForms 解决方案
- FireFox 扩展
- FormFaces
- Picoforms
- Ubiquity XForms - http://code.google.com/p/ubiquity-xforms/
- XSLTForms - 开源的客户端实现,不是插件或安装,适用于所有主要浏览器(IE、FireFox、Opera、Safari、Chrome 等)。
- EMC Documentum Formula - 客户端实现,开发者免费使用。
服务器端解决方案
- Apache - 配置 Apache 以与 XForms 协同工作
- 使用 WebDAV 和 Subversion 对表单数据进行版本控制 - 使用 Subversion 和 WebDAV 自动对表单数据进行版本控制
- IIS - 配置 Microsoft 的 IIS 以与 XForms 协同工作
- XML 数据库 - 使用原生 XML 数据库与 XForms 协同工作
- eXist - 使用 eXist 开源原生 XML 数据库
- IBM DB2 - 使用 DB2 v9 与 XForms 协同工作
- Orbeon Forms - 开源的基于 Ajax 的 XForms 实现(也附带 Form Builder 编辑器)
- betterFORM - 使用 Dojo 工具包的开源 Java 实现,用于客户端 AJAX 层
开发工具
符号密钥
指示 XForms/最佳实践