如何用
XML格式表示以下数据?
commandA ( a | b | c ) position = pos [(m | n | o )] [space = space] [(m|n|o)] [option1] [option2 = "Hello"] [option3]
注意:
[] – >表示可选,
() – >表示强制
| – >表示任何有价值的人
例如:
commandA a position = 1.0<m> space = 2.0<n> option1 option2="Hello"
如何在xml中有效地表示这些数据?
我试过这样的事,
<command name="commandA" position = "position" > <option name="option1"/> <option name="option2" value = "Hello"/> <option name="option3"/> </command>
但是如何处理命令值,即a | b | c和位置,即m | n | o?
编辑:
命令:语法:
commandA(a | b | c)pos = 0 [w | x | y | z] [spa = 0.0 [w | x | y | z]] [str =“Hello”]
commandA a pos = 0w spa = 0.0z str =“你好”
我试过这样的事,
<command name="commandA"> <direction> <direction name="a"/> <direction name="b"> <direction name="c"/> </direction> <parameter> <position value="pos=0" /> <spacing value="spa=0.0" /> <options> <option name="w"/> <option name="x"/> <option name="y"/> <option name="z"/> </options> </parameter> <string value="str=" /> </command>
有什么建议吗?
解决方法
这样的事情怎么样?它结合了标签来指导自动完成,以及命令DOM的标签:
<ac:autocomlete> <command> <command-name>commandA</command-name> <separator> </separator> <ac:choice> <command-type>a</command-type> <command-type>b</command-type> <command-type>c</command-type> </ac:choice> <separator> </separator> <pos> <pos-text>pos=</pos-text> <pos-value><ac:match regex="\d+"/></pos-value> <ac:optional> <ac:choice> <pos-unit>w</pos-unit> <pos-unit>x</pos-unit> <pos-unit>y</pos-unit> <pos-unit>z</pos-unit> </ac:choice> </ac:optional> </pos> <ac:optional> <spa-separator> </spa-separator> <spa> <spa-text>spa=</spa-text> <spa-value><ac:match regex="\d+\.\d+"/></spa-value> <ac:optional> <ac:choice> <spa-unit>w</spa-unit> <spa-unit>x</spa-unit> <spa-unit>y</spa-unit> <spa-unit>z</spa-unit> </ac:choice> </ac:optional> </spa> </ac:optional> <ac:optional> <arg-separator> </arg-separator> <arg-name>str=</arg-name> <arg-value><ac:match regex='"[^"]*"'/></arg-value> </ac:optional> </command> </autocomlete>
自动完成代码只匹配文字元素文本一次,除非它包含在选项或可选标记中,这会相应地更改行为.我将这些自动完成标记放在一个单独的命名空间中,以分隔自动完成代码识别的内容以及DOM是什么,尽管如果您不想这样做,则不必维护单独的命名空间.
匹配标记根据正则表达式匹配/完成文本.构建DOM时,匹配标记将替换为输入的文字文本.
自动完成标记告诉自动完成如何处理子标记.子标记的名称是任意的,不会被自动完成使用,但可以用于为用户输入的命令构建DOM:一旦自动完成构建了模型,并自动完成标记删除,剩下的是用户输入的命令的DOM.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。