加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何用XML表示以下数据?

发布时间:2020-12-16 23:15:01 所属栏目:百科 来源:网络整理
导读:如何用 XML格式表示以下数据? commandA ( a | b | c )position = pos [(m | n | o )][space = space] [(m|n|o)] [option1][option2 = "Hello"][option3] 注意: ??[] – 表示可选, () – 表示强制 | – 表示任何有价值的人 例如: commandA a position = 1.
如何用 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读