vxml.dtd
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:14k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. <!-- 
  2. VoiceXML 2.1 DTD (20040728)
  3. Copyright 1998-2004 W3C (MIT, ERCIM, Keio), All Rights Reserved. 
  4. Permission to use, copy, modify and distribute the VoiceXML DTD and 
  5. its accompanying documentation for any purpose and without fee is 
  6. hereby granted in perpetuity, provided that the above copyright 
  7. notice and this paragraph appear in all copies.  
  8. The copyright holders make no representation about the suitability 
  9. of the DTD for any purpose. It is provided "as is" without expressed 
  10. or implied warranty.
  11. -->
  12. <!ENTITY % audio "#PCDATA | audio | enumerate | value">
  13. <!ENTITY % bargeintype "( speech | hotword )">
  14. <!ENTITY % boolean "(true|false)">
  15. <!ENTITY % content.type "CDATA">
  16. <!ENTITY % duration "CDATA">
  17. <!ENTITY % event.handler "catch | help | noinput | nomatch | error">
  18. <!ENTITY % event.name "NMTOKEN">
  19. <!ENTITY % event.names "NMTOKENS">
  20. <!ENTITY % executable.content "%audio; | assign | clear | data | disconnect | 
  21.                                exit | foreach | goto | if | log | prompt | 
  22.                            reprompt | return | script | submit | throw | var ">
  23.                            
  24. <!-- temporary limitation.  spec calls for executable.content, but
  25.      some work needs to be done to support nested foreach or prompt elements -->
  26. <!ENTITY % foreach.content    "%audio; | assign | clear | data | disconnect | 
  27.                                exit | goto | if | log | prompt |
  28.                            reprompt | return | script | submit | throw | var ">
  29.                            
  30. <!ENTITY % expression "CDATA">
  31. <!ENTITY % restrictedvariable.name "NMTOKEN">
  32. <!ENTITY % variable.name "CDATA">
  33. <!ENTITY % restrictedvariable.names "NMTOKENS">
  34. <!ENTITY % variable.names "CDATA">
  35. <!ENTITY % integer "CDATA">
  36. <!ENTITY % item.attrs "name %restrictedvariable.name; #IMPLIED 
  37. cond %expression; #IMPLIED
  38. expr %expression; #IMPLIED ">
  39. <!ENTITY % uri "CDATA">
  40. <!ENTITY % cache.attrs "fetchhint (prefetch|safe) #IMPLIED
  41. fetchtimeout %duration; #IMPLIED
  42. maxage %integer; #IMPLIED
  43. maxstale %integer; #IMPLIED">
  44. <!ENTITY % next.attrs "next %uri; #IMPLIED
  45. expr %expression; #IMPLIED ">
  46. <!ENTITY % submit.attrs "method (get|post) 'get'
  47. enctype %content.type; 'application/x-www-form-urlencoded'
  48. namelist %variable.names; #IMPLIED">
  49. <!ENTITY % throw.attrs "event %event.name; #IMPLIED
  50. eventexpr %expression; #IMPLIED
  51. message CDATA #IMPLIED
  52. messageexpr %expression; #IMPLIED">
  53. <!ENTITY % variable "block | data | field | var">
  54. <!--================================= Root ================================-->
  55. <!ELEMENT vxml (%event.handler; | data | form | link | menu | meta | metadata | 
  56.                 property | script | var)+>
  57. <!ATTLIST vxml
  58. application %uri; #IMPLIED
  59. xml:base %uri; #IMPLIED
  60. xml:lang NMTOKEN #IMPLIED
  61. xmlns CDATA #FIXED 'http://www.w3.org/2001/vxml' 
  62. xmlns:xsi CDATA #IMPLIED
  63. xsi:schemaLocation CDATA #IMPLIED
  64. version CDATA #REQUIRED
  65. >
  66. <!ELEMENT meta EMPTY>
  67. <!ATTLIST meta
  68. name NMTOKEN #IMPLIED
  69. content CDATA #REQUIRED
  70. http-equiv NMTOKEN #IMPLIED
  71. >
  72. <!ELEMENT metadata ANY>
  73. <!--================================ Prompts ==============================-->
  74. <!-- definitions adapted from SSML 1.0 DTD -->
  75. <!ENTITY % structure "p | s">
  76. <!ENTITY % sentence-elements "break | emphasis | mark | phoneme | prosody | 
  77.                               say-as | voice | sub">
  78. <!-- addition of enumerate and value elements as 'allowed-within-sentence' 
  79.      audio elements -->
  80. <!ENTITY % allowed-within-sentence " %audio; | %sentence-elements; ">
  81. <!-- Prompt is modelled on SSML 1.0 DTD speak element:
  82. - addition of 'bargein', 'bargeintype', 'cond', 'count' and 'timeout' attributes
  83. - removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
  84. - version attribute fixed as "1.0"
  85. -->
  86. <!ELEMENT prompt (%allowed-within-sentence; | %structure; | lexicon | foreach
  87.                   | metadata | meta )*>
  88. <!ATTLIST prompt
  89. bargein %boolean; #IMPLIED
  90. bargeintype %bargeintype; #IMPLIED
  91. cond %expression; #IMPLIED
  92. count %integer; #IMPLIED
  93. xml:lang NMTOKEN #IMPLIED
  94. timeout %duration; #IMPLIED
  95. xml:base %uri; #IMPLIED
  96. version CDATA #FIXED "1.0"
  97. >
  98. <!ELEMENT enumerate (%allowed-within-sentence; | %structure;)*>
  99. <!ELEMENT reprompt EMPTY>
  100. <!--================================= Dialogs =============================-->
  101. <!ENTITY % input "grammar">
  102. <!ENTITY % scope "(document | dialog)">
  103. <!ELEMENT form (%input; | %event.handler; | filled | initial | object | link |
  104.               property | record | script | subdialog | transfer | %variable;)*>
  105. <!ATTLIST form
  106. id ID #IMPLIED
  107. scope %scope; "dialog"
  108. >
  109. <!ENTITY % accept.attrs "accept (exact | approximate) 'exact'">
  110. <!ELEMENT menu (%audio; | choice | data | %event.handler; | prompt | property)*>
  111. <!ATTLIST menu
  112. id ID #IMPLIED
  113. scope %scope; "dialog"
  114. %accept.attrs; 
  115. dtmf %boolean; "false"
  116. >
  117. <!ELEMENT choice ( #PCDATA | %input; )*>
  118. <!ATTLIST choice
  119. %cache.attrs; 
  120. accept (exact | approximate) #IMPLIED
  121. dtmf CDATA #IMPLIED
  122. %throw.attrs; 
  123. fetchaudio %uri; #IMPLIED
  124. %next.attrs; 
  125. >
  126. <!--================================ Audio Output ==============================-->
  127. <!-- definitions adapted from SSML 1.0 DTD -->
  128. <!ELEMENT p (%allowed-within-sentence; | s)*>
  129. <!ATTLIST p
  130. xml:lang NMTOKEN #IMPLIED
  131. >
  132. <!ELEMENT s (%allowed-within-sentence;)*>
  133. <!ATTLIST s
  134. xml:lang NMTOKEN #IMPLIED
  135. >
  136. <!ELEMENT voice (%allowed-within-sentence; | %structure;)*>
  137. <!ATTLIST voice
  138. xml:lang NMTOKEN #IMPLIED
  139. gender (male | female | neutral) #IMPLIED
  140. age %integer; #IMPLIED
  141. variant %integer; #IMPLIED
  142. name CDATA #IMPLIED
  143. >
  144. <!ELEMENT prosody (%allowed-within-sentence; | %structure;)*>
  145. <!ATTLIST prosody
  146. pitch CDATA #IMPLIED
  147. contour CDATA #IMPLIED
  148. range CDATA #IMPLIED
  149. rate CDATA #IMPLIED
  150. duration %duration; #IMPLIED
  151. volume CDATA #IMPLIED
  152. >
  153. <!-- Changes to SSML 1.0 DTD audio element:
  154. - src not obligatory, addition of 'expr' and caching attributes
  155. -->
  156. <!ELEMENT audio (%allowed-within-sentence; | %structure; | desc)*>
  157. <!ATTLIST audio
  158. src %uri; #IMPLIED
  159. expr %expression; #IMPLIED
  160. %cache.attrs; 
  161. >
  162. <!ELEMENT desc (#PCDATA)>
  163. <!ATTLIST desc
  164. xml:lang NMTOKEN #IMPLIED
  165. >
  166. <!ELEMENT emphasis (%allowed-within-sentence;)*>
  167. <!ATTLIST emphasis
  168. level (strong | moderate | none | reduced) "moderate"
  169. >
  170. <!-- Changes to SSML 1.0 DTD say-as element:
  171. - allows value element as child
  172. -->
  173. <!ELEMENT say-as (#PCDATA | value )*>
  174. <!ATTLIST say-as
  175. interpret-as NMTOKEN #REQUIRED
  176. format NMTOKEN #IMPLIED
  177. detail NMTOKEN #IMPLIED
  178. >
  179. <!ELEMENT sub (#PCDATA)>
  180. <!ATTLIST sub
  181. alias CDATA #REQUIRED
  182. >
  183. <!ELEMENT phoneme (#PCDATA)>
  184. <!ATTLIST phoneme
  185. ph CDATA #REQUIRED
  186. alphabet CDATA #IMPLIED
  187. >
  188. <!ELEMENT break EMPTY>
  189. <!ATTLIST break
  190. time CDATA #IMPLIED
  191. strength  (none | x-weak | weak  | medium | strong | x-strong) "medium"
  192. >
  193. <!ELEMENT mark EMPTY>
  194. <!ATTLIST mark
  195. name CDATA #IMPLIED
  196. nameexpr %expression; #IMPLIED
  197. >
  198. <!--================================ Fields ===============================-->
  199. <!ELEMENT field (%audio; | %event.handler; | filled | %input; | link | option |
  200.                  prompt | property)*>
  201. <!ATTLIST field
  202. %item.attrs; 
  203. type CDATA #IMPLIED
  204. slot NMTOKEN #IMPLIED
  205. modal %boolean; "false"
  206. >
  207. <!ELEMENT option (#PCDATA)>
  208. <!ATTLIST option
  209. %accept.attrs; 
  210. dtmf CDATA #IMPLIED
  211. value CDATA #IMPLIED
  212. >
  213. <!ELEMENT var EMPTY>
  214. <!ATTLIST var
  215. name %restrictedvariable.name; #REQUIRED
  216. expr %expression; #IMPLIED
  217. >
  218. <!ELEMENT initial (%audio; | %event.handler; | link | prompt | property)*>
  219. <!ATTLIST initial
  220. %item.attrs; 
  221. >
  222. <!ELEMENT block (%executable.content;)*>
  223. <!ATTLIST block
  224. %item.attrs; 
  225. >
  226. <!ELEMENT assign EMPTY>
  227. <!ATTLIST assign
  228. name %variable.name; #REQUIRED
  229. expr %expression; #REQUIRED
  230. >
  231. <!ELEMENT clear EMPTY>
  232. <!ATTLIST clear
  233. namelist %variable.names; #IMPLIED
  234. >
  235. <!ELEMENT value EMPTY>
  236. <!ATTLIST value
  237. expr %expression; #REQUIRED
  238. >
  239. <!--================================== Events =============================-->
  240. <!ENTITY % event.handler.attrs "count %integer; #IMPLIED
  241. cond %expression; #IMPLIED">
  242. <!ELEMENT catch (%executable.content;)*>
  243. <!ATTLIST catch
  244. event %event.names; #IMPLIED
  245. %event.handler.attrs; 
  246. >
  247. <!ELEMENT error (%executable.content;)*>
  248. <!ATTLIST error
  249. %event.handler.attrs; 
  250. >
  251. <!ELEMENT help (%executable.content;)*>
  252. <!ATTLIST help
  253. %event.handler.attrs; 
  254. >
  255. <!ELEMENT link (%input;)*>
  256. <!ATTLIST link
  257. %cache.attrs; 
  258. %next.attrs; 
  259. fetchaudio %uri; #IMPLIED
  260. dtmf CDATA #IMPLIED
  261. %throw.attrs; 
  262. >
  263. <!ELEMENT noinput (%executable.content;)*>
  264. <!ATTLIST noinput
  265. %event.handler.attrs; 
  266. >
  267. <!ELEMENT nomatch (%executable.content;)*>
  268. <!ATTLIST nomatch
  269. %event.handler.attrs; 
  270. >
  271. <!ELEMENT throw EMPTY>
  272. <!ATTLIST throw
  273. %throw.attrs; 
  274. >
  275. <!--============================= Grammar Input =============================-->
  276. <!-- definitions adapted from SRGS 1.0 DTD -->
  277. <!ENTITY % rule-expansion "#PCDATA | token | ruleref
  278.                               | item | one-of | tag ">
  279. <!ELEMENT ruleref EMPTY>
  280. <!ATTLIST ruleref
  281. uri %uri; #IMPLIED
  282. type CDATA #IMPLIED
  283. special (NULL | VOID | GARBAGE) #IMPLIED
  284. >
  285. <!ELEMENT token (#PCDATA)>
  286. <!ATTLIST token
  287. xml:lang NMTOKEN #IMPLIED
  288. >
  289. <!ELEMENT tag (#PCDATA)>
  290. <!ELEMENT one-of (item)+>
  291. <!ATTLIST one-of
  292. xml:lang NMTOKEN #IMPLIED
  293. >
  294. <!ELEMENT item (%rule-expansion;)*>
  295. <!ATTLIST item
  296. repeat NMTOKEN #IMPLIED
  297. repeat-prob NMTOKEN #IMPLIED
  298. weight NMTOKEN #IMPLIED
  299. xml:lang NMTOKEN #IMPLIED
  300. >
  301. <!ELEMENT rule (%rule-expansion; | example)*>
  302. <!ATTLIST rule
  303. id ID #REQUIRED
  304. scope (private | public) "private"
  305. >
  306. <!ELEMENT example (#PCDATA)>
  307. <!ELEMENT lexicon EMPTY>
  308. <!ATTLIST lexicon
  309. uri %uri; #REQUIRED
  310. type CDATA #IMPLIED
  311. >
  312. <!-- Changes to SRGS 1.0 DTD grammar element:
  313. - mixed, unordered content model 
  314. - addition of 'scope', 'src', 'type', 'weight' and caching attributes
  315. - 'version' attribute is optional
  316. - removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
  317. -->
  318. <!ELEMENT grammar (#PCDATA | meta | metadata | lexicon | rule | tag)*>
  319. <!ATTLIST grammar
  320. scope %scope; #IMPLIED
  321. src %uri; #IMPLIED
  322. srcexpr %expression; #IMPLIED
  323. type CDATA #IMPLIED
  324. weight CDATA #IMPLIED
  325. %cache.attrs; 
  326. tag-format %uri; #IMPLIED
  327. xml:base %uri; #IMPLIED
  328. version NMTOKEN #IMPLIED
  329. xml:lang NMTOKEN #IMPLIED
  330. root IDREF #IMPLIED
  331. mode (voice | dtmf) "voice"
  332. >
  333. <!--============================= Audio Input =============================-->
  334. <!ELEMENT record (%audio; | %event.handler; | filled | %input; | prompt | 
  335.                   property)*>
  336. <!ATTLIST record
  337. %item.attrs; 
  338. type CDATA #IMPLIED
  339. beep %boolean; "false"
  340. maxtime %duration; #IMPLIED
  341. modal %boolean; "true"
  342. finalsilence %duration; #IMPLIED
  343. dtmfterm %boolean; "true"
  344. >
  345. <!--============================ Call Control ============================-->
  346. <!ELEMENT disconnect EMPTY>
  347. <!ATTLIST disconnect
  348. namelist %variable.names; #IMPLIED
  349. >
  350. <!ELEMENT transfer (%audio; | %event.handler; | filled | %input; | prompt | 
  351.                     property)*>
  352. <!ATTLIST transfer
  353. %item.attrs; 
  354. dest %uri; #IMPLIED
  355. destexpr %expression; #IMPLIED
  356. bridge %boolean; #IMPLIED
  357. type (blind | bridge | consultation) #IMPLIED
  358. connecttimeout %duration; #IMPLIED
  359. maxtime %duration; #IMPLIED
  360. transferaudio %uri; #IMPLIED
  361. aai CDATA #IMPLIED
  362. aaiexpr %expression; #IMPLIED
  363. >
  364. <!--============================ Control Flow ============================-->
  365. <!ENTITY % if.attrs "cond %expression; #REQUIRED">
  366. <!ELEMENT if (%executable.content; | elseif | else)*>
  367. <!ATTLIST if
  368. %if.attrs; 
  369. >
  370. <!ELEMENT elseif EMPTY>
  371. <!ATTLIST elseif
  372. %if.attrs; 
  373. >
  374. <!ELEMENT else EMPTY>
  375. <!ELEMENT exit EMPTY>
  376. <!ATTLIST exit
  377. expr %expression; #IMPLIED
  378. namelist %variable.names; #IMPLIED
  379. >
  380. <!ELEMENT filled (%executable.content;)*>
  381. <!ATTLIST filled
  382. mode (any | all) #IMPLIED
  383. namelist %restrictedvariable.names; #IMPLIED
  384. >
  385. <!ELEMENT foreach (%foreach.content; | %sentence-elements; | 
  386.     %structure; | metadata)*
  387. >
  388. <!ATTLIST foreach
  389.     item %restrictedvariable.name; #REQUIRED
  390.     array CDATA #REQUIRED
  391. >
  392. <!ELEMENT goto EMPTY>
  393. <!ATTLIST goto
  394. %cache.attrs; 
  395. %next.attrs; 
  396. fetchaudio %uri; #IMPLIED
  397. expritem %expression; #IMPLIED
  398. nextitem %restrictedvariable.name; #IMPLIED
  399. >
  400. <!ELEMENT param EMPTY>
  401. <!ATTLIST param
  402. name NMTOKEN #REQUIRED
  403. expr %expression; #IMPLIED
  404. value CDATA #IMPLIED
  405. valuetype (data | ref) "data"
  406. type CDATA #IMPLIED
  407. >
  408. <!ELEMENT return EMPTY>
  409. <!ATTLIST return
  410. namelist %variable.names; #IMPLIED
  411. %throw.attrs; 
  412. >
  413. <!ELEMENT subdialog (%audio; | %event.handler; | filled | param | prompt | 
  414.                      property)*>
  415. <!ATTLIST subdialog
  416. %item.attrs; 
  417. src %uri; #IMPLIED
  418. srcexpr %expression; #IMPLIED
  419. %cache.attrs; 
  420. fetchaudio %uri; #IMPLIED
  421. %submit.attrs; 
  422. >
  423. <!ELEMENT submit EMPTY>
  424. <!ATTLIST submit
  425. %cache.attrs; 
  426. %next.attrs; 
  427. fetchaudio %uri; #IMPLIED
  428. %submit.attrs; 
  429. >
  430. <!--========================== Miscellaneous ==============================-->
  431. <!ELEMENT data EMPTY >
  432. <!ATTLIST data
  433.     name %restrictedvariable.name; #REQUIRED
  434.     src %uri; #IMPLIED
  435.     srcexpr %expression; #IMPLIED 
  436.     fetchaudio  %uri;       #IMPLIED
  437.     %submit.attrs;
  438.     %cache.attrs;
  439. >
  440. <!ELEMENT log (#PCDATA | value)*>
  441. <!ATTLIST log
  442. label CDATA #IMPLIED
  443. expr %expression; #IMPLIED
  444. >
  445. <!ELEMENT object (%audio; | %event.handler; | filled | param | prompt | 
  446.                   property)*>
  447. <!ATTLIST object
  448. %item.attrs; 
  449. %cache.attrs; 
  450. classid %uri; #IMPLIED
  451. codebase %uri; #IMPLIED
  452. data %uri; #IMPLIED
  453. type CDATA #IMPLIED
  454. codetype CDATA #IMPLIED
  455. archive %uri; #IMPLIED
  456. >
  457. <!ELEMENT property EMPTY>
  458. <!ATTLIST property
  459. name NMTOKEN #REQUIRED
  460. value CDATA #REQUIRED
  461. >
  462. <!ELEMENT script (#PCDATA)>
  463. <!ATTLIST script
  464. src %uri; #IMPLIED
  465. srcexpr %expression; #IMPLIED
  466. charset CDATA #IMPLIED
  467. %cache.attrs; 
  468. >