欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是: 首页

XForms

科普小知识 2024-04-18 22:34:09
...

XForms是W3C组织所推荐的下一代在线Forms(早在2003年10月14日就被W3C推荐),它吸取了W3C标准诸如:XMLSchema,XPath和基于XML的事件,XForms试图突破当前HTMLforms模型的一些限制。

1、简介

XForms的最大特色是包含了客户端验证的功能,我们知道,在HTML中,许多关于forms验证的功能需要写大量的JavaScript脚本,由于验证的Javascript脚本库依赖于forms中的各个元素,当它们发生变化时,不得不重新更新或维护Javascript验证脚本。XForms结合了许多关于验证方面的功能,对form验证只需要使用简单的XML标记完成,其它亮点还有:XForms将数据从表现中分离,更健壮的数据类型表示,能够递交XML数据到服务端-替代我们通常使用name/value递交的做法(看起来这个还不错;)),XForms可以在不同的设备上正常显示。在学习XForms之前,推荐先阅读一下WebForms2.0,关于XForms的教程和文档可在W3C站点找到。

被称为“下一代Web表单”的XForms最初起源于HTML工作组的工作。W3C组织力图将XForms制定成为HTML表单的替代标准,用于包括桌面电脑、手持设备、信息家电等领域在内的各种平台之上。传统的HTMLWeb表单没有将表单的设计目的和表现形式分离开来,表单设计的灵活性很低,同时客户端计算能力也无法充分利用。

为了克服以上缺点,XForms对表单进行了抽象定义,将表单区分为数据,逻辑和表现三方面。规范中没有规定实现细节,因此XForms处理器的实现形式是多样的。既可以基于浏览器嵌入HTML页面中,利用HTML和JavaScript进行表现;也可以用JavaSwing应用程序等形式表现。另外XForms还为应用提供了事件驱动模型,这使得用户可以像开发普通的GUI应用程序一样对鼠标、键盘等事件进行相应的编程。

XForms标准的成功之处就是将表单的作用和表现方式分离,由相互独立的部分分别负责描述。这使得XForms的表现方式更灵活。

2、什么是XForms?

XForms是下一代的HTML表单

XForms与HTML表单相比更完善,更灵活

XForms将在XHTML2.0中成为表单标准

XForms独立于平台和设备

XForms可从表现分离数据和逻辑

XForms使用XML来定义表单数据

XForms可存储和传输XML文档中的数据

XForms含有诸如计算以及表单验证等特性

XForms可减少或根除对脚本的需求

XForms是W3C标准

XForms框架

HTML表单的作用是搜集数据。XForms的作用是相同的。

通过XForms,输入数据被描述在两个不同的部分中:

XForms模型(描述数据和逻辑)

XForms用户界面(显示和输入数据)

XForms模型

XForms模型用于描述数据。

数据模型是XML文档的一个实例(一个模板)。

XForms模型定义了一个元素内部的一个数据模型:

从上面的例子,您可以看到XForms模型使用一个元素来为需要收集的数据定义XML模板,并使用一个元素来描述如何提交数据。

模型没有表达任何有关表单可见部分(用户界面)的信息。

XForms的设计目标

1、支持手持设备、电视、桌面浏览器,以及打印机和扫描仪等

2、丰富的用户界面满足商务、消费和设备控制等各种应用

3、消除数据、逻辑和表现之间的耦合

4、增强的国际化功能

5、支持结构化表单数据

6、先进的表单逻辑

7、单页面多表单,以及单表单多页面

8、挂起和恢复功能的支持

9、和XML标签集的无缝集成

XForms绑定

XForms使用两个部分来定义数据:XForms模型和XForms用户界面。

XForms模型是针对数据的一个XML模板(实例),而XForms用户界面是对数据输入和显示的描述。

XForms使用XPath来定义这个两个部分的连接。这被称为绑定(binding)。

3、XForms数据类型

XForms属性参考

名称

描述

calculate

定义对项目执行的计算。

constraint

定义对项目的约束。

p3ptype

为项目定义P3P数据类型。

readonly

为项目定义一个编辑限定(editrestriction)(无法修改)

relevant

定义数据如何相关联。(供显示还是提交)

required

定义数据项目是必需项目。(不能为空)

type

为项目定义数据类型。

字符串数据类型

名称

描述

ID

AstringthatrepresentstheIDattribute

IDREF

AstringthatrepresentstheIDREFattribute

IDREFS

language

Astringthatcontainsavalidlanguageid(e.g.en,en-US)

Name

AstringthatcontainsavalidXMLname

NCName

NMTOKEN

AstringthatrepresentstheNMTOKENattribute

NMTOKENS

normalizedString

Astringthatdoesnotcontainnewlinecharactersortabs

QName

string

Astring.ThisisthedefaultdatatypeXFormswilluseifnodatatypeisspecified.Note:stringmaycontaintabcharactersandnewlinecharacters

token

Astringthatdoesnotcontainlinefeeds,carriagereturns,tabs,leadingortrailingspaces,ormultiplespaces

所有的字符串数据类型都源自于string数据类型本身。

日期和时间数据类型

名称

描述

date

Definesadatevalue

dateTime

Definesadateandtimevalue

gDay

Definesapartofadate-theday(DD)

gMonth

Definesapartofadate-themonth(MM)

gMonthDay

Definesapartofadate-themonthandday(MM-DD)

gYear

Definesapartofadate-theyear(CCYY)

gYearMonth

Definesapartofadate-theyearandmonth(CCYY-MM)

time

Definesatimevalue

数值数据类型

名称

描述

byte

Asigned8-bitinteger

decimal

Adecimalvalue

int

Asigned32-bitinteger

integer

Anintegervalue

long

Asigned64-bitinteger

negativeInteger

Anintegercontainingonlynegativevalues(..,-2,-1)

nonNegativeInteger

Anintegercontainingonlynon-negativevalues(0,1,2,..)

nonPositiveInteger

Anintegercontainingonlynon-positivevalues(..,-2,-1,0)

positiveInteger

Anintegercontainingonlypositivevalues(1,2,..)

short

Asigned16-bitinteger

unsignedLong

Anunsigned64-bitinteger

unsignedInt

Anunsigned32-bitinteger

unsignedShort

Anunsigned16-bitinteger

unsignedByte

Anunsigned8-bitinteger

杂项数据类型

名称

描述

anyURI

RepresentsaURI,whichincludeswebpageaddresses

base64Binary

Allowscharacters,includingcontrolcharacters,thatotherwisearen'trepresentableinXML

boolean

Definesatrue/falseor1/0value

double

float

hexBinary

XForms数据类型

名称

描述

listItems

Representsawhitespace-separatedlist

listItem

Representsonlynon-whitespacecharacters.Anexcellentbasetypeforawhitespace-separatedlist

dayTimeDuration

Representsadurationofacertainnumberofseconds

yearMonthDuration

Representsadurationofacertainnumberofmonths

推荐阅读