以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML在语音技术中的应用 』   (http://bbs.xml.org.cn/list.asp?boardid=47)
----  请问,vxml的属性可以扩展吗?我想在transfer时添加自己的属性  (http://bbs.xml.org.cn/dispbbs.asp?boardid=47&rootid=&id=41806)


--  作者:poptang
--  发布时间:12/30/2006 6:45:00 PM

--  请问,vxml的属性可以扩展吗?我想在transfer时添加自己的属性
在修改vxi的transfer_element函数后,调试报错,说badfetch。希望哪位大哥能帮帮我
--  作者:zhu_ruixian
--  发布时间:12/31/2006 9:48:00 AM

--  
没找到transfer_element函数。
--  作者:poptang
--  发布时间:12/31/2006 9:57:00 AM

--  
transfer_element里,我已经定义过了呀,怎么会没找到呢。
--  作者:zhu_ruixian
--  发布时间:12/31/2006 2:13:00 PM

--  
你是想在transfer_element元素里面添加一个属性是吗? 这样扩展不符合vxml的dtd文件。
(http://www.w3.org/TR/voicexml21/vxml.dtd)
如果硬要修改,那只有让openvxi加载自己的修改dtd文件。以下步骤:
1.修改dtd文件,让transfer_element拥有自己的属性,如”testattr“,然后让openvxi加载自己的dtd文件(可能要修改代码)。也有可能Openvxi已经把dtd包含进去了,那修改的地方会更多。
2.然后在VXMLh文件的第75行左右VXMLAttributeType枚举变量中,添加一个枚举值。如:ATTRIBUTE_TEST
3.在vxi模块的DocumentConvert.cpp的InitializeTables函数中(230-382行左右)添加一行
g_attrs.push_back(VXMLAttribute(L"testvar",ATTRIBUTE_TEST));

然后重新编译一下VXI模块。transfer_element中应该就可以使用testvar属性了。

//下面是dtd中 与transfer_element有关的内容
<!ELEMENT transfer (%audio; | %event.handler; | filled | %input; | prompt |
                    property)*>
<!ATTLIST transfer
    %item.attrs;
    dest %uri; #IMPLIED
    destexpr %expression; #IMPLIED
    bridge %boolean; #IMPLIED
    type NMTOKEN #IMPLIED
    connecttimeout %duration; #IMPLIED
    maxtime %duration; #IMPLIED
    transferaudio %uri; #IMPLIED
    aai CDATA #IMPLIED
    aaiexpr %expression; #IMPLIED
>


个人意见,我并没有去扩展它,如果我去做,我会用这个思路,我的理解就是这样,以上仅供参考。


--  作者:aryaky
--  发布时间:1/9/2007 9:45:00 AM

--  
可以用property标签来添加属性,这是vxml直接支持的。
<transfer>
<property name="a" value="b"/>
</transfer>
--  作者:aryaky
--  发布时间:1/12/2007 10:30:00 AM

--  
只看标题就回复了,看贴不够仔细,该罚。

vxi确实是把vxml定义放到程序里了,就是vxi目录下的Schema.hpp文件。里面一个很大的char数组。
数组里包含了好几个文件,其中有vxml的dtd和schema。而且shema的版本是20040728(2.1)



--  作者:xiangxie
--  发布时间:1/25/2007 10:36:00 AM

--  
在VXI/default.xml中增加属性<property name="a" value="b"/>
,然后在VXIclient/SBclient.cfg文件中启用
client.vxi.defaultsURI     VXIString   file://$(SWISBSDK)/config/Defaults.xml(去掉前面的注释),否则OPENVXI会加载Schema.hpp中的默认配置

Schema.hpp中的数组内容参考我发的帖子。


--  作者:xxzmxx
--  发布时间:4/7/2008 12:24:00 PM

--  
顶,我也在研究
--  作者:xxzmxx
--  发布时间:4/7/2008 12:25:00 PM

--  
顶,我也在研究
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
82.031ms