本发明涉及软件中表单的设计,用纯文本方式来表达表单设计的方法。
背景技术:
1、表单,作为信息录入的重要组件,被广泛用于各种软件信息系统中。最为典型的应用就是软件登录界面上,输入用户名和密码的界面。
2、如图1所示,表单从界面上看,可以分为如下部分:
3、标题- 表单的标题,每个表单必须有标题;
4、副标题- 副标题一般放在标题的下面,对标题内容进一步说明。字号一般要比标题要小一号。副标题不是必须的;
5、填表说明- 对填表人在填表之前简短的声明,放在标题(和副标题)后面,字段前面。填表说明一般是一句话或者几句话。填表说明不是必须的;
6、字段组- 字段组是由多个多个字段组成,每个字段由上到下,依次排列。表单必须有字段组;
7、尾注- 和填表说明类似,用于给填表即将完成时给填表人的提示文字。一般是一句话或者几句话。尾注放在表单的最后面。尾注不是必须的。
8、本专利用简单的数据结构来表达表达的设计。
9、一个可以用来描述表单的定义格式,即数据结构。把表单及组成表单的各个部分用数据结构的方式加以定义,就能够唯一的确定特定表单的规格说明,包括表单的用户界面、表单对应的数据的结构定义、用户交互设计。
10、一般的,对表单的定义,都是用xml格式,或者类似xml的其他格式。这些方式不利于人们阅读和编辑。
11、为了配合语义识别,需要对表单定义进行必要的格式限制,才能方便提取出相应的文本,并对各部位文本的语义环境加以限定,使得对文本的语义识别更加精准。
12、本说明书所说的表单定义仅限于结构比较简单的表单。即是表单的字段是由上到下、依次排列的,不含子表单、分页表单等复杂场景。
13、本说明书所述之数据结构采用人能容易理解并掌握使用方法的自然语言方式的一种纯文本定义。
14、如下举例说明。假设要用语言文字来描述一个报名表表单。就需要给出下面几点描述性语句:
15、表单的标题叫“报名表”;
16、表单有2个字段,分别是姓名和电话。
17、如果直接用上述2句话来生成一个表单(严格定义一张表单),当前技术条件下,还是比较困难的。
18、为此本专利做了特定格式(规范格式),来定义表单,让计算机能够利用这个特定格式(规范格式),从而计算机程序能够知道(确定唯一性)这个表单的组成,也就是知道这个表单应该长什么样子(规格定义)。
19、刚才报名表可以用如下格式表达:
20、
21、这种方式可以让计算机能够轻易识别,同时人也能够轻易学习并掌握。
技术实现思路
1、定义
2、表单:是一种用于收集用户输入的数据的界面,它在信息系统、通用软件的用户界面设计以及数据收集等领域具有广泛的应用。
3、表单组成:
4、标题- 【表单】的标题,每个表单必须有标题。
5、副标题- 副标题一般放在标题的下面,对标题内容进一步说明。字号一般要比标题要小一号。副标题不是必须的。
6、填表说明- 对填表人在填表之前简短的声明,放在标题(和副标题)后面,字段前面。填表说明一般是一句话或者几句话。填表说明不是必须的。
7、字段组- 字段组是由多个多个【字段】组成,每个字段由上到下,依次排列。表单必须有字段组。
8、尾注- 和填表说明类似,用于给填表即将完成时给填表人的提示文字。一般是一句话或者几句话。尾注放在表单的最后面。尾注不是必须的。
9、换行符:可以是crlf(回车符+换行符,unicode的编码为\u0d0a,常见表达为\r\n),或者只有lf(换行符,unicode的编码为\u0a,常见表达为\n)。
10、空行:行与行之间会有空行,即2个换行符相连的情况。如crlfcrlf或者lflf。一行内除了换行符以外,没有其他字符。字符串长度为0的情况。
11、普通文字内容:特指一行文本字符串,不包含换行符在内的字符组成的字符串。
12、句子结束符:
13、。(中文句号,unicode码为\u3002)
14、!(中文感叹号,unicode码为\uff01)
15、… (中文省略号,unicode码为\u2026)
16、” (中文右双引号,unicode码为\u201d)
17、. (英文句点,unicode码为\u002e)
18、! (英文感叹号,unicode码为\u0021)
19、" (英文双引号,unicode码为\u0022)
20、字段:是界面录入内容的元素。
21、字段属性:字段有一些属性来规范信息的录入,比如字段类型属性,长度属性,是否必填属性等。
22、属性分隔符:用于分隔字段属性或者表单属性,下面这些符号是按优先级次序排列的,优先级高的排前面:
23、。(中文句号,unicode码为\u3002)
24、;(中文分号,unicode码为\uff1b)
25、;(英文分号,unicode码为\u003b)
26、,(中文逗号,unicode码为\uff0c)
27、,(英文逗号,unicode码为\u002c)
28、、(中文顿号,unicode码为\u3001)
29、\(反斜杠,unicode码为\u005c)
30、/(斜杠,unicode码为\u002f)
31、|(全角竖线,unicode码为\uff5c)
32、|(半角竖线,unicode码为\u007c)
33、左圆括号:
34、((中文左圆括号,unicode码为\uff08)
35、((英文左圆括号,unicode码为\u0028)
36、右圆括号:
37、)(中文左圆括号,unicode码为\uff09)
38、)(英文左圆括号,unicode码为\u0029)
39、本说明书用全角方括号括起来这些专用名词。如【表单】表示专有名词。没有用方括号括起来的表单,则表示一般意义。
40、数据结构的详细说明
41、本专利是用一个unicode字符串来表述一个【表单】数据结构。用大写 c 表示一个unicode字符,则这个字符串可以表述为(如图3字符串示意和图4表单定义字符串原型示意):
42、 c 1 c 2 c 3 c 4 c 5 ……
43、这个字符串,由【空行】分隔为多个组:如图5字符串按空行分隔成组示意:
44、 【组 1 】【组 2 】【组 3 】【组 4 】【组 5 】……
45、每个组有特定用途,给所有组取名如下:如图1表单分组示意和图2表单界面示意。
46、【标题组】【描述组】opt【字段组】【尾注组】opt【表单属性组】opt
47、上述带opt下标的组,表示该组为可选组。即可以缺少该组。
48、【标题组】
49、【标题组】由【标题】和【副标题】组成,如图6所示,结构如下:
50、 【标题】(【换行符】【副标题】) opt
51、上述opt下标表示圆括号内的内容(不含圆括号)为可选部分,即最多出现一次。即是说【副标题】以及其前面的【换行符】可以一起出现,或是一起缺失。
52、【标题】是普通文字内容,由字符组成的字符串,其中不能包含【换行符】,且字符串长度必须大于1。结构如下:
53、 【普通文字内容】
54、【副标题】是普通文字内容,由字符组成的字符串,其中不能包含【换行符】,且字符串长度必须大于1。结构如下:
55、 【普通文字内容】
56、【描述组】
57、描述组】作为一个整体,在组成【表单】时,是可选的。
58、【描述组】由一行或多行组成,如图6所示,结构如下:
59、 【描述行】(【换行符】【描述行】) *
60、上述星号*下标表示圆括号内的内容(不含圆括号)为可选重复部分,即可以出现零次、一次或多次。即是说【描述行】可以是一行或多行。
61、【描述行】是普通文字内容,由字符组成的字符串,以【句子结束符】结尾,其中不能包含【换行符】,且字符串长度必须大于1。结构如下:
62、 【普通文字内容】【句子结束符】
63、【描述组】中所有【描述行】的字符串构成了表单的【填表说明】。
64、【字段组】
65、【字段组】由一行或多行组成,如图6所示,结构如下:
66、 【字段行】(【换行符】【字段行】) *
67、上述星号*下标表示圆括号内的内容(不含圆括号)为可选重复部分,即可以出现零次、一次或多次。即是说【字段行】可以是一行或多行。
68、字段行】由【字段名】和后面的【字段属性组】组成,【字段属性组】是可选部分,即最多出现一次。结构如下:
69、 【字段名】【字段属性组】 opt
70、字段名】是普通文字内容,由字符组成的字符串,其中不能包含【换行符】,也不能包含【左圆括号】,且字符串长度必须大于1。结构如下:
71、 【普通文字内容】
72、【字段属性组】由【左圆括号】和【字段属性序列】,以及【右圆括号】组成。结构如下:
73、 【左圆括号】【字段属性序列】【右圆括号】
74、【字段属性序列】由一个或多个【字段属性】组成,【字段属性】与【字段属性】之间用【属性分隔符】分隔。结构如下:
75、 【字段属性】(【属性分隔符】【字段属性】) *
76、上述星号*下标表示圆括号内的内容(不含圆括号)为可选重复部分,即可以出现零次、一次或多次。即是说【字段属性】可以是一个或多个。
77、【字段属性】是普通文字内容,由字符组成的字符串,其中不能包含【换行符】,也不能包含【属性分隔符】,且字符串长度必须大于1。结构如下:
78、 【普通文字内容】
79、【尾注组】
80、【尾注组】作为一个整体,在组成【表单】时,是可选的。
81、【尾注组】由一行或多行组成,如图6所示,结构如下:
82、 【尾注行】(【换行符】【尾注行】) *
83、上述星号*下标表示圆括号内的内容(不含圆括号)为可选重复部分,即可以出现零次、一次或多次。即是说【尾注行】可以是一行或多行。
84、【尾注行】是普通文字内容,由字符组成的字符串,以【句子结束符】结尾,其中不能包含【换行符】,且字符串长度必须大于1。结构如下:
85、 【普通文字内容】【句子结束符】
86、【尾注组】中所有【尾注行】的字符串构成了表单的【尾注】。
87、【表单属性组】
88、【表单属性组】作为一个整体,在组成【表单】时,是可选的。
89、【表单属性组】由一行或多行组成,如图6所示,第一行开头为【表单属性组开头标识】,后接【表单属性行】或者直接接【换行符】,第二行开始为,后续多行都是【表单属性行】,以【换行符】分隔。结构如下:
90、 【表单属性组开头标识】【表单属性序列】 opt (【换行符】【表单属性行】 * ) opt
91、第一个opt下标表示【表单属性组开头标识】后接的【表单属性序列】为可选部分,即可以出现零次或一次。
92、第二个opt下标表示圆括号内容(不包含圆括号)为可选。
93、上述星号*下标表示【表单属性行】为可选重复部分,即可以出现零次、一次或多次。
94、【表单属性组开头标识】由固定字符串“说明:”组成,结构如下:
95、 说明:
96、【表单属性行】由【表单属性序列】和【换行符】组成,结构如下:
97、 【表单属性序列】【换行符】
98、【表单属性序列】由表单一个或多个【表单属性】组成,【表单属性】与【表单属性】之间用【属性分隔符】。结构如下:
99、 【表单属性】(【属性分隔符】【表单属性】) *
100、上述星号*下标表示圆括号内的内容(不含圆括号)为可选重复部分,即可以出现零次、一次或多次。即是说【表单属性】可以是一个或多个。
101、【表单属性】是普通文字内容,由字符组成的字符串,其中不能包含【换行符】,也不能包含【属性分隔符】,且字符串长度必须大于1。结构如下:
102、 【普通文字内容】
103、【换行符】的确定规则
104、生成表单定义字符串时,应确定好使用crlf还是用lf作为换行符,确定好后,表单定义字符串中所有换行符统一用该换行符。
105、解构表单定义字符串时,首先搜索crlf是否存在,如果存在,则确定换行符为crlf;否则确定lf为换行符。
106、【属性分隔符】的确定规则
107、在【字段属性序列】和【表单属性序列】中,使用到【属性分隔符】对属性进行分隔。
108、在生成属性序列时,应遵循统一性原则,即统一使用一种【属性分隔符】,而且使用优先级高的【属性分隔符】。
109、解构属性序列时,通过扫描属性序列,找出优先级最高的【属性分隔符】,确定为该属性序列的唯一分隔符。如果有其他优先级低的【属性分隔符】出现,作为普通字符对待。
1.定义一种用于描述表单设计的规范,规范了一种特定数据结构,用简化的方式表达表单的构成规格。
2.如权利要求1说述表单设计特指:
3.如权利要求1所述的规范,是指一种标准,规定了数据结构的组成方式。
4.如权利要求1所述的数据结构,其特征在于:
5.如权利要求4所述的空行,是指出现连续两个换行符。所述换行符可以是crlf(回车符+换行符,unicode的编码为\u0d0a,常见表达为\r\n),或者只有lf(换行符,unicode的编码为\u0a,常见表达为\n)。所述空行,即2个换行符相连的情况,如crlfcrlf或者lflf,一行内除了换行符以外,没有其他字符。长度为0的情况。
6.如权利要求4所述的分组,按顺序分别为标题组、描述组、字段组、尾注组、表单属性组。
7.如权利要求6所述之标题组,由换行符分隔为1行或2行,第1行规定为表单的标题,如果存在第2行,则第2行为表单的副标题。
8.如权利要求6所述之描述组,由1行或多行组成,中间行不允许包含空行;每一行结尾必须是句子结束符。
9.如权利要求6所述之字段组,由1行或多行组成,中间行不允许包含空行;每一行结尾不能是句子结束符。每一行为一个字段行。
10.如权利要求6所述之尾注组,由1行或多行组成,中间行不允许包含空行;每一行结尾必须是句子结束符。
11.如权利要求6所述之表单属性组,由1行或多行组成,中间行不允许包含空行;其中第一行开头必须是“说明:”。
12.如权利要求6所述之分组,其中标题组和字段组为必须出现的组。
13.如权利要求6所述之分组,其中描述组、尾注组、表单属性组为可选出现的组。
14.如权利要求9所述之字段行,其包含字段名和用圆括号括起来的字段属性序列:
15.如权利要求14所述之字段属性序列,字符串长度必须大于0;用属性分隔符分隔成若干个字段属性。
16.如权利要求15所述之字段属性,为一个字符串,用于进一步说明对应的字段。
17.如权利要求11所述之表单属性组,以“说明:”开头,后面紧接着表单属性行或者换行符后再接着表单属性行。
18.如权利要求17所述之表单属性行,为一个字符串,长度必须大于0,以换行符结束,或是本数据结构的最后一个字符。表单属性行包含:
19.如权利要求18所述之表单属性序列,字符串长度必须大于0;用属性分隔符分隔成若干个表单属性。
20.如权利要求19所述之表单属性,为一个字符串,用于进一步说明表单。
21.本权利要求所述之句子结束符包含:
22.本权利要求所述之属性分隔符,用于分隔字段属性,包含下面这些符号,按优先级次序排列,优先级高的排前面:
