markup-validator commit: Add VoiceXML 2.0 and 2.1 DTDs.

changeset:   3254:7adf07684133
tag:         tip
user:        Ville Skyttä <ville.skytta@iki.fi>
date:        Sun Oct 30 19:52:52 2011 +0200
files:       htdocs/sgml-lib/REC-voicexml20-20040316/vxml.dtd htdocs/sgml-lib/REC-voicexml21-20070619/vxml.dtd htdocs/sgml-lib/catalog.xml htdocs/sgml-lib/xml.soc htdocs/whatsnew.html
description:
Add VoiceXML 2.0 and 2.1 DTDs.


diff -r b7c87ffc4701 -r 7adf07684133 htdocs/sgml-lib/REC-voicexml20-20040316/vxml.dtd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/sgml-lib/REC-voicexml20-20040316/vxml.dtd	Sun Oct 30 19:52:52 2011 +0200
@@ -0,0 +1,446 @@
+<!-- 
+VoiceXML 2.0 DTD (20031213)
+
+Copyright 1998-2004 W3C (MIT, ERCIM, Keio), All Rights Reserved. 
+
+Permission to use, copy, modify and distribute the VoiceXML DTD and 
+its accompanying documentation for any purpose and without fee is 
+hereby granted in perpetuity, provided that the above copyright 
+notice and this paragraph appear in all copies.  
+
+The copyright holders make no representation about the suitability 
+of the DTD for any purpose. It is provided "as is" without expressed 
+or implied warranty.
+-->
+
+<!ENTITY % audio "#PCDATA | audio | enumerate | value">
+<!ENTITY % bargeintype "( speech | hotword )">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % content.type "CDATA">
+<!ENTITY % duration "CDATA">
+<!ENTITY % event.handler "catch | help | noinput | nomatch | error">
+<!ENTITY % event.name "NMTOKEN">
+<!ENTITY % event.names "NMTOKENS">
+<!ENTITY % executable.content "%audio; | assign | clear | disconnect | 
+                               exit | goto | if | log | prompt | 
+	reprompt | return | script | submit | throw | var ">
+<!ENTITY % expression "CDATA">
+<!ENTITY % restrictedvariable.name "NMTOKEN">
+<!ENTITY % variable.name "CDATA">
+<!ENTITY % restrictedvariable.names "NMTOKENS">
+<!ENTITY % variable.names "CDATA">
+<!ENTITY % integer "CDATA">
+<!ENTITY % item.attrs "name		%restrictedvariable.name; #IMPLIED 
+	cond		%expression;	#IMPLIED
+	expr		%expression;	#IMPLIED ">
+<!ENTITY % uri "CDATA">
+<!ENTITY % cache.attrs "fetchhint	(prefetch|safe)	#IMPLIED
+	fetchtimeout	%duration;	#IMPLIED
+	maxage		%integer;	#IMPLIED
+	maxstale	%integer;	#IMPLIED">
+<!ENTITY % next.attrs "next		%uri;		#IMPLIED
+	expr		%expression;	#IMPLIED ">
+<!ENTITY % submit.attrs "method		(get|post)	'get'
+	enctype		%content.type;	'application/x-www-form-urlencoded'
+	namelist	%variable.names;	#IMPLIED">
+<!ENTITY % throw.attrs "event		%event.name;	#IMPLIED
+	eventexpr	%expression;	#IMPLIED
+	message		CDATA		#IMPLIED
+	messageexpr	%expression;	#IMPLIED">
+<!ENTITY % variable "block | field | var">
+<!--================================= Root ================================-->
+<!ELEMENT vxml (%event.handler; | form | link | menu | meta | metadata | 
+                property | script | var)+>
+<!ATTLIST vxml
+	application %uri; #IMPLIED
+	xml:base %uri; #IMPLIED
+	xml:lang NMTOKEN #IMPLIED
+	xmlns CDATA #FIXED 'http://www.w3.org/2001/vxml' 
+	xmlns:xsi CDATA #IMPLIED
+	xsi:schemaLocation CDATA #IMPLIED
+	version CDATA #REQUIRED
+>
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+	name NMTOKEN #IMPLIED
+	content CDATA #REQUIRED
+	http-equiv NMTOKEN #IMPLIED
+>
+
+<!ELEMENT metadata ANY>
+
+<!--================================ Prompts ==============================-->
+<!-- definitions adapted from SSML 1.0 DTD -->
+<!ENTITY % structure "p | s">
+<!ENTITY % sentence-elements "break | emphasis | mark | phoneme | prosody | 
+                              say-as | voice | sub">
+<!-- addition of enumerate and value elements as 'allowed-within-sentence' 
+     audio elements -->
+<!ENTITY % allowed-within-sentence " %audio; | %sentence-elements; ">
+
+<!-- Prompt is modelled on SSML 1.0 DTD speak element:
+- addition of 'bargein', 'bargeintype', 'cond', 'count' and 'timeout' attributes
+- removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
+- version attribute fixed as "1.0"
+-->
+<!ELEMENT prompt (%allowed-within-sentence; | %structure; | lexicon 
+                  | metadata | meta )*>
+<!ATTLIST prompt
+	bargein %boolean; #IMPLIED
+	bargeintype %bargeintype; #IMPLIED
+	cond %expression; #IMPLIED
+	count %integer; #IMPLIED
+	xml:lang NMTOKEN #IMPLIED
+	timeout %duration; #IMPLIED
+	xml:base %uri; #IMPLIED
+	version CDATA #FIXED "1.0"
+>
+<!ELEMENT enumerate (%allowed-within-sentence; | %structure;)*>
+<!ELEMENT reprompt EMPTY>
+
+<!--================================= Dialogs =============================-->
+<!ENTITY % input "grammar">
+<!ENTITY % scope "(document | dialog)">
+<!ELEMENT form (%input; | %event.handler; | filled | initial | object | link |
+              property | record | script | subdialog | transfer | %variable;)*>
+<!ATTLIST form
+	id ID #IMPLIED
+	scope %scope; "dialog"
+>
+<!ENTITY % accept.attrs "accept		(exact | approximate)	'exact'">
+<!ELEMENT menu (%audio; | choice | %event.handler; | prompt | property)*>
+<!ATTLIST menu
+	id ID #IMPLIED
+	scope %scope; "dialog"
+	%accept.attrs; 
+	dtmf %boolean; "false"
+>
+<!ELEMENT choice ( #PCDATA | %input; )*>
+<!ATTLIST choice
+	%cache.attrs; 
+	accept	(exact | approximate) #IMPLIED
+	dtmf CDATA #IMPLIED
+	%throw.attrs; 
+	fetchaudio %uri; #IMPLIED
+	%next.attrs; 
+>
+<!--================================ Audio Output ==============================-->
+<!-- definitions adapted from SSML 1.0 DTD -->
+<!ELEMENT p (%allowed-within-sentence; | s)*>
+<!ATTLIST p
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT s (%allowed-within-sentence;)*>
+<!ATTLIST s
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT voice (%allowed-within-sentence; | %structure;)*>
+<!ATTLIST voice
+	xml:lang NMTOKEN #IMPLIED
+	gender (male | female | neutral) #IMPLIED
+	age %integer; #IMPLIED
+	variant %integer; #IMPLIED
+	name CDATA #IMPLIED
+>
+<!ELEMENT prosody (%allowed-within-sentence; | %structure;)*>
+<!ATTLIST prosody
+	pitch CDATA #IMPLIED
+	contour CDATA #IMPLIED
+	range CDATA #IMPLIED
+	rate CDATA #IMPLIED
+	duration %duration; #IMPLIED
+	volume CDATA #IMPLIED
+>
+<!-- Changes to SSML 1.0 DTD audio element:
+- src not obligatory, addition of 'expr' and caching attributes
+-->
+<!ELEMENT audio (%allowed-within-sentence; | %structure; | desc)*>
+<!ATTLIST audio
+	src %uri; #IMPLIED
+	expr %expression; #IMPLIED
+	%cache.attrs; 
+>
+<!ELEMENT desc (#PCDATA)>
+<!ATTLIST desc
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT emphasis (%allowed-within-sentence;)*>
+<!ATTLIST emphasis
+	level (strong | moderate | none | reduced) "moderate"
+>
+<!-- Changes to SSML 1.0 DTD say-as element:
+- allows value element as child
+-->
+<!ELEMENT say-as (#PCDATA | value )*>
+<!ATTLIST say-as
+	interpret-as NMTOKEN #REQUIRED
+	format NMTOKEN #IMPLIED
+	detail NMTOKEN #IMPLIED
+>
+<!ELEMENT sub (#PCDATA)>
+<!ATTLIST sub
+	alias CDATA #REQUIRED
+>
+<!ELEMENT phoneme (#PCDATA)>
+<!ATTLIST phoneme
+	ph CDATA #REQUIRED
+	alphabet CDATA #IMPLIED
+>
+<!ELEMENT break EMPTY>
+<!ATTLIST break
+	time CDATA #IMPLIED
+	strength  (none | x-weak | weak  | medium | strong | x-strong) "medium"
+>
+<!ELEMENT mark EMPTY>
+<!ATTLIST mark
+	name CDATA #REQUIRED
+>
+<!--================================ Fields ===============================-->
+<!ELEMENT field (%audio; | %event.handler; | filled | %input; | link | option |
+                 prompt | property)*>
+<!ATTLIST field
+	%item.attrs; 
+	type CDATA #IMPLIED
+	slot NMTOKEN #IMPLIED
+	modal %boolean; "false"
+>
+<!ELEMENT option (#PCDATA)>
+<!ATTLIST option
+	%accept.attrs; 
+	dtmf CDATA #IMPLIED
+	value CDATA #IMPLIED
+>
+<!ELEMENT var EMPTY>
+<!ATTLIST var
+	name %restrictedvariable.name; #REQUIRED
+	expr %expression; #IMPLIED
+>
+<!ELEMENT initial (%audio; | %event.handler; | link | prompt | property)*>
+<!ATTLIST initial
+	%item.attrs; 
+>
+<!ELEMENT block (%executable.content;)*>
+<!ATTLIST block
+	%item.attrs; 
+>
+<!ELEMENT assign EMPTY>
+<!ATTLIST assign
+	name %variable.name; #REQUIRED
+	expr %expression; #REQUIRED
+>
+<!ELEMENT clear EMPTY>
+<!ATTLIST clear
+	namelist %variable.names; #IMPLIED
+>
+<!ELEMENT value EMPTY>
+<!ATTLIST value
+	expr %expression; #REQUIRED
+>
+<!--================================== Events =============================-->
+<!ENTITY % event.handler.attrs "count		%integer;	#IMPLIED
+	cond		%expression;	#IMPLIED">
+<!ELEMENT catch (%executable.content;)*>
+<!ATTLIST catch
+	event %event.names; #IMPLIED
+	%event.handler.attrs; 
+>
+<!ELEMENT error (%executable.content;)*>
+<!ATTLIST error
+	%event.handler.attrs; 
+>
+<!ELEMENT help (%executable.content;)*>
+<!ATTLIST help
+	%event.handler.attrs; 
+>
+<!ELEMENT link (%input;)*>
+<!ATTLIST link
+	%cache.attrs; 
+	%next.attrs; 
+	fetchaudio %uri; #IMPLIED
+	dtmf CDATA #IMPLIED
+	%throw.attrs; 
+>
+<!ELEMENT noinput (%executable.content;)*>
+<!ATTLIST noinput
+	%event.handler.attrs; 
+>
+<!ELEMENT nomatch (%executable.content;)*>
+<!ATTLIST nomatch
+	%event.handler.attrs; 
+>
+<!ELEMENT throw EMPTY>
+<!ATTLIST throw
+	%throw.attrs; 
+>
+<!--============================= Grammar Input =============================-->
+<!-- definitions adapted from SRGS 1.0 DTD -->
+<!ENTITY % rule-expansion "#PCDATA | token | ruleref
+                              | item | one-of | tag ">
+<!ELEMENT ruleref EMPTY>
+<!ATTLIST ruleref
+	uri %uri; #IMPLIED
+	type CDATA #IMPLIED
+	special (NULL | VOID | GARBAGE) #IMPLIED
+>
+<!ELEMENT token (#PCDATA)>
+<!ATTLIST token
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT tag (#PCDATA)>
+<!ELEMENT one-of (item)+>
+<!ATTLIST one-of
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT item (%rule-expansion;)*>
+<!ATTLIST item
+	repeat NMTOKEN #IMPLIED
+	repeat-prob NMTOKEN #IMPLIED
+	weight NMTOKEN #IMPLIED
+	xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT rule (%rule-expansion; | example)*>
+<!ATTLIST rule
+	id ID #REQUIRED
+	scope (private | public) "private"
+>
+<!ELEMENT example (#PCDATA)>
+<!ELEMENT lexicon EMPTY>
+<!ATTLIST lexicon
+	uri %uri; #REQUIRED
+	type CDATA #IMPLIED
+>
+<!-- Changes to SRGS 1.0 DTD grammar element:
+- mixed, unordered content model 
+- addition of 'scope', 'src', 'type', 'weight' and caching attributes
+- 'version' attribute is optional
+- removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
+-->
+<!ELEMENT grammar (#PCDATA | meta | metadata | lexicon | rule | tag)*>
+<!ATTLIST grammar
+	scope %scope; #IMPLIED
+	src %uri; #IMPLIED
+	type CDATA #IMPLIED
+	weight CDATA #IMPLIED
+	%cache.attrs; 
+	tag-format %uri; #IMPLIED
+	xml:base %uri; #IMPLIED
+	version NMTOKEN #IMPLIED
+	xml:lang NMTOKEN #IMPLIED
+	root IDREF #IMPLIED
+	mode (voice | dtmf) "voice"
+>
+<!--============================= Audio Input =============================-->
+<!ELEMENT record (%audio; | %event.handler; | filled | %input; | prompt | 
+                  property)*>
+<!ATTLIST record
+	%item.attrs; 
+	type CDATA #IMPLIED
+	beep %boolean; "false"
+	maxtime %duration; #IMPLIED
+	modal %boolean; "true"
+	finalsilence %duration; #IMPLIED
+	dtmfterm %boolean; "true"
+>
+<!--============================ Call Control ============================-->
+<!ELEMENT disconnect EMPTY>
+<!ELEMENT transfer (%audio; | %event.handler; | filled | %input; | prompt | 
+                    property)*>
+<!ATTLIST transfer
+	%item.attrs; 
+	dest %uri; #IMPLIED
+	destexpr %expression; #IMPLIED
+	bridge %boolean; "false"
+	connecttimeout %duration; #IMPLIED
+	maxtime %duration; #IMPLIED
+	transferaudio %uri; #IMPLIED
+	aai CDATA #IMPLIED
+	aaiexpr %expression; #IMPLIED
+>
+<!--============================ Control Flow ============================-->
+<!ENTITY % if.attrs "cond		%expression;	#REQUIRED">
+<!ELEMENT if (%executable.content; | elseif | else)*>
+<!ATTLIST if
+	%if.attrs; 
+>
+<!ELEMENT elseif EMPTY>
+<!ATTLIST elseif
+	%if.attrs; 
+>
+<!ELEMENT else EMPTY>
+<!ELEMENT exit EMPTY>
+<!ATTLIST exit
+	expr %expression; #IMPLIED
+	namelist %variable.names; #IMPLIED
+>
+<!ELEMENT filled (%executable.content;)*>
+<!ATTLIST filled
+	mode (any | all) #IMPLIED
+	namelist %restrictedvariable.names; #IMPLIED
+>
+<!ELEMENT goto EMPTY>
+<!ATTLIST goto
+	%cache.attrs; 
+	%next.attrs; 
+	fetchaudio %uri; #IMPLIED
+	expritem %expression; #IMPLIED
+	nextitem %restrictedvariable.name; #IMPLIED
+>
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+	name NMTOKEN #REQUIRED
+	expr %expression; #IMPLIED
+	value CDATA #IMPLIED
+	valuetype (data | ref) "data"
+	type CDATA #IMPLIED
+>
+<!ELEMENT return EMPTY>
+<!ATTLIST return
+	namelist %variable.names; #IMPLIED
+	%throw.attrs; 
+>
+<!ELEMENT subdialog (%audio; | %event.handler; | filled | param | prompt | 
+                     property)*>
+<!ATTLIST subdialog
+	%item.attrs; 
+	src %uri; #IMPLIED
+	srcexpr %expression; #IMPLIED
+	%cache.attrs; 
+	fetchaudio %uri; #IMPLIED
+	%submit.attrs; 
+>
+<!ELEMENT submit EMPTY>
+<!ATTLIST submit
+	%cache.attrs; 
+	%next.attrs; 
+	fetchaudio %uri; #IMPLIED
+	%submit.attrs; 
+>
+<!--========================== Miscellaneous ==============================-->
+<!ELEMENT log (#PCDATA | value)*>
+<!ATTLIST log
+	label CDATA #IMPLIED
+	expr %expression; #IMPLIED
+>
+<!ELEMENT object (%audio; | %event.handler; | filled | param | prompt | 
+                  property)*>
+<!ATTLIST object
+	%item.attrs; 
+	%cache.attrs; 
+	classid %uri; #IMPLIED
+	codebase %uri; #IMPLIED
+	data %uri; #IMPLIED
+	type CDATA #IMPLIED
+	codetype CDATA #IMPLIED
+	archive %uri; #IMPLIED
+>
+<!ELEMENT property EMPTY>
+<!ATTLIST property
+	name NMTOKEN #REQUIRED
+	value CDATA #REQUIRED
+>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+	src %uri; #IMPLIED
+	charset CDATA #IMPLIED
+	%cache.attrs; 
+>
diff -r b7c87ffc4701 -r 7adf07684133 htdocs/sgml-lib/REC-voicexml21-20070619/vxml.dtd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/htdocs/sgml-lib/REC-voicexml21-20070619/vxml.dtd	Sun Oct 30 19:52:52 2011 +0200
@@ -0,0 +1,474 @@
+<!-- 
+VoiceXML 2.1 DTD (20060322)
+
+Copyright 1998-2006 W3C (MIT, ERCIM, Keio), All Rights Reserved. 
+
+Permission to use, copy, modify and distribute the VoiceXML DTD and 
+its accompanying documentation for any purpose and without fee is 
+hereby granted in perpetuity, provided that the above copyright 
+notice and this paragraph appear in all copies.  
+
+The copyright holders make no representation about the suitability 
+of the DTD for any purpose. It is provided "as is" without expressed 
+or implied warranty.
+-->
+
+<!ENTITY % audio "#PCDATA | audio | enumerate | value">
+<!ENTITY % bargeintype "( speech | hotword )">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % content.type "CDATA">
+<!ENTITY % duration "CDATA">
+<!ENTITY % event.handler "catch | help | noinput | nomatch | error">
+<!ENTITY % event.name "NMTOKEN">
+<!ENTITY % event.names "NMTOKENS">
+<!ENTITY % executable.content "%audio; | assign | clear | data | disconnect | 
+    exit | foreach |goto | if | log | prompt | 
+    reprompt | return | script | submit | throw | var ">
+<!ENTITY % expression "CDATA">
+<!ENTITY % restrictedvariable.name "CDATA">
+<!ENTITY % variable.name "CDATA">
+<!ENTITY % restrictedvariable.names "CDATA">
+<!ENTITY % variable.names "CDATA">
+<!ENTITY % integer "CDATA">
+<!ENTITY % item.attrs "name     %restrictedvariable.name; #IMPLIED 
+    cond        %expression;    #IMPLIED
+    expr        %expression;    #IMPLIED ">
+<!ENTITY % uri "CDATA">
+<!ENTITY % cache.attrs "fetchhint   (prefetch|safe) #IMPLIED
+    fetchtimeout    %duration;  #IMPLIED
+    maxage      %integer;   #IMPLIED
+    maxstale    %integer;   #IMPLIED">
+<!ENTITY % next.attrs "next     %uri;       #IMPLIED
+    expr        %expression;    #IMPLIED ">
+<!ENTITY % submit.attrs "method     (get|post)  'get'
+    enctype     %content.type;  'application/x-www-form-urlencoded'
+    namelist    %variable.names;    #IMPLIED">
+<!ENTITY % throw.attrs "event       %event.name;    #IMPLIED
+    eventexpr   %expression;    #IMPLIED
+    message     CDATA       #IMPLIED
+    messageexpr %expression;    #IMPLIED">
+<!ENTITY % variable "block | data | field | var">
+<!--================================= Root ================================-->
+<!ELEMENT vxml (%event.handler; | data | form | link | menu | meta | metadata | 
+                property | script | var)+>
+<!ATTLIST vxml
+    application %uri; #IMPLIED
+    xml:base %uri; #IMPLIED
+    xml:lang NMTOKEN #IMPLIED
+    xmlns CDATA #FIXED 'http://www.w3.org/2001/vxml'
+    xmlns:xsi CDATA #IMPLIED
+    xsi:schemaLocation CDATA #IMPLIED
+    version CDATA #REQUIRED
+>
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+    name NMTOKEN #IMPLIED
+    content CDATA #REQUIRED
+    http-equiv NMTOKEN #IMPLIED
+>
+
+<!ELEMENT metadata ANY>
+
+<!--================================ Prompts ==============================-->
+<!-- definitions adapted from SSML 1.0 DTD -->
+<!ENTITY % structure "p | s">
+<!ENTITY % sentence-elements "break | emphasis | mark | phoneme | prosody | 
+                              say-as | voice | sub">
+<!-- addition of enumerate and value elements as 'allowed-within-sentence' 
+     audio elements -->
+<!ENTITY % allowed-within-sentence " %audio; | %sentence-elements; ">
+
+<!-- Prompt is modelled on SSML 1.0 DTD speak element:
+- addition of 'bargein', 'bargeintype', 'cond', 'count' and 'timeout' attributes
+- removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
+- version attribute fixed as "1.0"
+-->
+<!ELEMENT prompt (%allowed-within-sentence; | foreach | %structure; | lexicon 
+                  | metadata | meta )*>
+<!ATTLIST prompt
+    bargein %boolean; #IMPLIED
+    bargeintype %bargeintype; #IMPLIED
+    cond %expression; #IMPLIED
+    count %integer; #IMPLIED
+    xml:lang NMTOKEN #IMPLIED
+    timeout %duration; #IMPLIED
+    xml:base %uri; #IMPLIED
+    version CDATA #FIXED "1.0"
+>
+<!ELEMENT enumerate (%allowed-within-sentence; | %structure;)*>
+<!ELEMENT reprompt EMPTY>
+
+<!--================================= Dialogs =============================-->
+<!ENTITY % input "grammar">
+<!ENTITY % scope "(document | dialog)">
+<!ELEMENT form (%input; | %event.handler; | filled | initial | object | link |
+              property | record | script | subdialog | transfer | %variable;)*>
+<!ATTLIST form
+    id ID #IMPLIED
+    scope %scope; "dialog"
+>
+<!ENTITY % accept.attrs "accept     (exact | approximate)   'exact'">
+<!ELEMENT menu (%audio; | choice | %event.handler; | prompt | property)*>
+<!ATTLIST menu
+    id ID #IMPLIED
+    scope %scope; "dialog"
+    %accept.attrs; 
+    dtmf %boolean; "false"
+>
+<!ELEMENT choice ( #PCDATA | %input; )*>
+<!ATTLIST choice
+    %cache.attrs; 
+    accept  (exact | approximate) #IMPLIED
+    dtmf CDATA #IMPLIED
+    %throw.attrs; 
+    fetchaudio %uri; #IMPLIED
+    %next.attrs; 
+>
+<!--================================ Audio Output ==============================-->
+<!-- definitions adapted from SSML 1.0 DTD -->
+<!ELEMENT p (%allowed-within-sentence; | s)*>
+<!ATTLIST p
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT s (%allowed-within-sentence;)*>
+<!ATTLIST s
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT voice (%allowed-within-sentence; | %structure;)*>
+<!ATTLIST voice
+    xml:lang NMTOKEN #IMPLIED
+    gender (male | female | neutral) #IMPLIED
+    age %integer; #IMPLIED
+    variant %integer; #IMPLIED
+    name CDATA #IMPLIED
+>
+<!ELEMENT prosody (%allowed-within-sentence; | %structure;)*>
+<!ATTLIST prosody
+    pitch CDATA #IMPLIED
+    contour CDATA #IMPLIED
+    range CDATA #IMPLIED
+    rate CDATA #IMPLIED
+    duration %duration; #IMPLIED
+    volume CDATA #IMPLIED
+>
+<!-- Changes to SSML 1.0 DTD audio element:
+- src not obligatory, addition of 'expr' and caching attributes
+-->
+<!ELEMENT audio (%allowed-within-sentence; | %structure; | desc)*>
+<!ATTLIST audio
+    src %uri; #IMPLIED
+    expr %expression; #IMPLIED
+    %cache.attrs; 
+>
+<!ELEMENT desc (#PCDATA)>
+<!ATTLIST desc
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT emphasis (%allowed-within-sentence;)*>
+<!ATTLIST emphasis
+    level (strong | moderate | none | reduced) "moderate"
+>
+<!-- Changes to SSML 1.0 DTD say-as element:
+- allows value element as child
+-->
+<!ELEMENT say-as (#PCDATA | value )*>
+<!ATTLIST say-as
+    interpret-as NMTOKEN #REQUIRED
+    format NMTOKEN #IMPLIED
+    detail NMTOKEN #IMPLIED
+>
+<!ELEMENT sub (#PCDATA)>
+<!ATTLIST sub
+    alias CDATA #REQUIRED
+>
+<!ELEMENT phoneme (#PCDATA)>
+<!ATTLIST phoneme
+    ph CDATA #REQUIRED
+    alphabet CDATA #IMPLIED
+>
+<!ELEMENT break EMPTY>
+<!ATTLIST break
+    time CDATA #IMPLIED
+    strength  (none | x-weak | weak  | medium | strong | x-strong) "medium"
+>
+<!ELEMENT mark EMPTY>
+<!ATTLIST mark
+    name ID #IMPLIED
+    nameexpr %expression; #IMPLIED
+>
+<!--================================ Fields ===============================-->
+<!ELEMENT field (%audio; | %event.handler; | filled | %input; | link | option |
+                 prompt | property)*>
+<!ATTLIST field
+    %item.attrs; 
+    type CDATA #IMPLIED
+    slot NMTOKEN #IMPLIED
+    modal %boolean; "false"
+>
+<!ELEMENT option (#PCDATA)>
+<!ATTLIST option
+    %accept.attrs; 
+    dtmf CDATA #IMPLIED
+    value CDATA #IMPLIED
+>
+<!ELEMENT var EMPTY>
+<!ATTLIST var
+    name %restrictedvariable.name; #REQUIRED
+    expr %expression; #IMPLIED
+>
+<!ELEMENT initial (%audio; | %event.handler; | link | prompt | property)*>
+<!ATTLIST initial
+    %item.attrs; 
+>
+<!ELEMENT block (%executable.content;)*>
+<!ATTLIST block
+    %item.attrs; 
+>
+<!ELEMENT assign EMPTY>
+<!ATTLIST assign
+    name %variable.name; #REQUIRED
+    expr %expression; #REQUIRED
+>
+<!ELEMENT clear EMPTY>
+<!ATTLIST clear
+    namelist %variable.names; #IMPLIED
+>
+<!ELEMENT value EMPTY>
+<!ATTLIST value
+    expr %expression; #REQUIRED
+>
+<!--================================== Events =============================-->
+<!ENTITY % event.handler.attrs "count       %integer;   #IMPLIED
+    cond        %expression;    #IMPLIED">
+<!ELEMENT catch (%executable.content;)*>
+<!ATTLIST catch
+    event %event.names; #IMPLIED
+    %event.handler.attrs; 
+>
+<!ELEMENT error (%executable.content;)*>
+<!ATTLIST error
+    %event.handler.attrs; 
+>
+<!ELEMENT help (%executable.content;)*>
+<!ATTLIST help
+    %event.handler.attrs; 
+>
+<!ELEMENT link (%input;)*>
+<!ATTLIST link
+    %cache.attrs; 
+    %next.attrs; 
+    fetchaudio %uri; #IMPLIED
+    dtmf CDATA #IMPLIED
+    %throw.attrs; 
+>
+<!ELEMENT noinput (%executable.content;)*>
+<!ATTLIST noinput
+    %event.handler.attrs; 
+>
+<!ELEMENT nomatch (%executable.content;)*>
+<!ATTLIST nomatch
+    %event.handler.attrs; 
+>
+<!ELEMENT throw EMPTY>
+<!ATTLIST throw
+    %throw.attrs; 
+>
+<!--============================= Grammar Input =============================-->
+<!-- definitions adapted from SRGS 1.0 DTD -->
+<!ENTITY % rule-expansion "#PCDATA | token | ruleref
+                              | item | one-of | tag ">
+<!ELEMENT ruleref EMPTY>
+<!ATTLIST ruleref
+    uri %uri; #IMPLIED
+    type CDATA #IMPLIED
+    special (NULL | VOID | GARBAGE) #IMPLIED
+>
+<!ELEMENT token (#PCDATA)>
+<!ATTLIST token
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT tag (#PCDATA)>
+<!ELEMENT one-of (item)+>
+<!ATTLIST one-of
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT item (%rule-expansion;)*>
+<!ATTLIST item
+    repeat NMTOKEN #IMPLIED
+    repeat-prob NMTOKEN #IMPLIED
+    weight NMTOKEN #IMPLIED
+    xml:lang NMTOKEN #IMPLIED
+>
+<!ELEMENT rule (%rule-expansion; | example)*>
+<!ATTLIST rule
+    id ID #REQUIRED
+    scope (private | public) "private"
+>
+<!ELEMENT example (#PCDATA)>
+<!ELEMENT lexicon EMPTY>
+<!ATTLIST lexicon
+    uri %uri; #REQUIRED
+    type CDATA #IMPLIED
+>
+<!-- Changes to SRGS 1.0 DTD grammar element:
+- mixed, unordered content model 
+- addition of 'scope', 'src', 'type', 'weight' and caching attributes
+- 'version' attribute is optional
+- removal of xmlns, xmlns:xsi, and xsi:schemaLocation attributes
+-->
+<!ELEMENT grammar (#PCDATA | meta | metadata | lexicon | rule | tag)*>
+<!ATTLIST grammar
+    scope %scope; #IMPLIED
+    src %uri; #IMPLIED
+    srcexpr %expression; #IMPLIED
+    type CDATA #IMPLIED
+    weight CDATA #IMPLIED
+    %cache.attrs; 
+    tag-format %uri; #IMPLIED
+    xml:base %uri; #IMPLIED
+    version NMTOKEN #IMPLIED
+    xml:lang NMTOKEN #IMPLIED
+    root IDREF #IMPLIED
+    mode (voice | dtmf) "voice"
+>
+<!--============================= Audio Input =============================-->
+<!ELEMENT record (%audio; | %event.handler; | filled | %input; | prompt | 
+                  property)*>
+<!ATTLIST record
+    %item.attrs; 
+    type CDATA #IMPLIED
+    beep %boolean; "false"
+    maxtime %duration; #IMPLIED
+    modal %boolean; "true"
+    finalsilence %duration; #IMPLIED
+    dtmfterm %boolean; "true"
+>
+<!--============================ Call Control ============================-->
+<!ELEMENT disconnect EMPTY>
+<!ATTLIST disconnect
+    namelist %variable.names; #IMPLIED
+>
+
+<!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
+>
+<!--============================ Control Flow ============================-->
+<!ENTITY % if.attrs "cond       %expression;    #REQUIRED">
+<!ELEMENT if (%executable.content; | elseif | else)*>
+<!ATTLIST if
+    %if.attrs; 
+>
+<!ELEMENT elseif EMPTY>
+<!ATTLIST elseif
+    %if.attrs; 
+>
+<!ELEMENT else EMPTY>
+<!ELEMENT exit EMPTY>
+<!ATTLIST exit
+    expr %expression; #IMPLIED
+    namelist %variable.names; #IMPLIED
+>
+<!ELEMENT filled (%executable.content;)*>
+<!ATTLIST filled
+    mode (any | all) #IMPLIED
+    namelist %restrictedvariable.names; #IMPLIED
+>
+
+<!-- executable content + contents of prompt  -->
+<!ELEMENT foreach (%executable.content; | %sentence-elements; | 
+    %structure; )*
+>
+<!ATTLIST foreach
+    item %restrictedvariable.name; #REQUIRED
+    array CDATA #REQUIRED
+>
+
+<!ELEMENT goto EMPTY>
+<!ATTLIST goto
+    %cache.attrs; 
+    %next.attrs; 
+    fetchaudio %uri; #IMPLIED
+    expritem %expression; #IMPLIED
+    nextitem %restrictedvariable.name; #IMPLIED
+>
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+    name NMTOKEN #REQUIRED
+    expr %expression; #IMPLIED
+    value CDATA #IMPLIED
+    valuetype (data | ref) "data"
+    type CDATA #IMPLIED
+>
+<!ELEMENT return EMPTY>
+<!ATTLIST return
+    namelist %variable.names; #IMPLIED
+    %throw.attrs; 
+>
+<!ELEMENT subdialog (%audio; | %event.handler; | filled | param | prompt | 
+                     property)*>
+<!ATTLIST subdialog
+    %item.attrs; 
+    src %uri; #IMPLIED
+    srcexpr %expression; #IMPLIED
+    %cache.attrs; 
+    fetchaudio %uri; #IMPLIED
+    %submit.attrs; 
+>
+<!ELEMENT submit EMPTY>
+<!ATTLIST submit
+    %cache.attrs; 
+    %next.attrs; 
+    fetchaudio %uri; #IMPLIED
+    %submit.attrs; 
+>
+<!--========================== Miscellaneous ==============================-->
+<!ELEMENT data EMPTY>
+<!ATTLIST data
+    name %restrictedvariable.name; #IMPLIED
+    src %uri; #IMPLIED
+    srcexpr %expression; #IMPLIED 
+    fetchaudio  %uri;       #IMPLIED
+    %submit.attrs;
+    %cache.attrs;
+>
+
+<!ELEMENT log (#PCDATA | value)*>
+<!ATTLIST log
+    label CDATA #IMPLIED
+    expr %expression; #IMPLIED
+>
+<!ELEMENT object (%audio; | %event.handler; | filled | param | prompt | 
+                  property)*>
+<!ATTLIST object
+    %item.attrs; 
+    %cache.attrs; 
+    classid %uri; #IMPLIED
+    codebase %uri; #IMPLIED
+    data %uri; #IMPLIED
+    type CDATA #IMPLIED
+    codetype CDATA #IMPLIED
+    archive %uri; #IMPLIED
+>
+<!ELEMENT property EMPTY>
+<!ATTLIST property
+    name NMTOKEN #REQUIRED
+    value CDATA #REQUIRED
+>
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+    src %uri; #IMPLIED
+    srcexpr %expression; #IMPLIED
+    charset CDATA #IMPLIED
+    %cache.attrs; 
+>
diff -r b7c87ffc4701 -r 7adf07684133 htdocs/sgml-lib/catalog.xml
--- a/htdocs/sgml-lib/catalog.xml	Thu Oct 27 17:29:23 2011 +0300
+++ b/htdocs/sgml-lib/catalog.xml	Sun Oct 30 19:52:52 2011 +0200
@@ -254,4 +254,6 @@
   <public publicId="-//W3C//ENTITIES Latin for HTML//EN//XML" uri="REC-xml-entity-names-20100401/xhtml1-lat1.ent" />
   <public publicId="-//W3C//ENTITIES Special for HTML//EN//XML" uri="REC-xml-entity-names-20100401/xhtml1-special.ent" />
   <public publicId="-//W3C//ENTITIES Symbol for HTML//EN//XML" uri="REC-xml-entity-names-20100401/xhtml1-symbol.ent" />
+  <public publicId="-//W3C//DTD VOICEXML 2.0//EN" uri="REC-voicexml20-20040316/vxml.dtd" />
+  <public publicId="-//W3C//DTD VOICEXML 2.1//EN" uri="REC-voicexml21-20070619/vxml.dtd" />
 </catalog>
diff -r b7c87ffc4701 -r 7adf07684133 htdocs/sgml-lib/xml.soc
--- a/htdocs/sgml-lib/xml.soc	Thu Oct 27 17:29:23 2011 +0300
+++ b/htdocs/sgml-lib/xml.soc	Sun Oct 30 19:52:52 2011 +0200
@@ -608,6 +608,18 @@
        "REC-xml-entity-names-20100401/xhtml1-symbol.ent"
 
 
+-- VoiceXML 2.0 --
+
+PUBLIC "-//W3C//DTD VOICEXML 2.0//EN"
+       "REC-voicexml20-20040316/vxml.dtd"
+
+
+-- VoiceXML 2.1 --
+
+PUBLIC "-//W3C//DTD VOICEXML 2.1//EN"
+       "REC-voicexml21-20070619/vxml.dtd"
+
+
 -- Do not prefer document type name over a SYSTEM Identifier. --
 
 OVERRIDE NO
diff -r b7c87ffc4701 -r 7adf07684133 htdocs/whatsnew.html
--- a/htdocs/whatsnew.html	Thu Oct 27 17:29:23 2011 +0300
+++ b/htdocs/whatsnew.html	Sun Oct 30 19:52:52 2011 +0200
@@ -40,9 +40,10 @@
             <a href="http://www.w3.org/TR/wai-aria/">WAI-ARIA</a> 1.0
             20110118 candidate recommendation,
             <a href="http://www.w3.org/TR/rdfa-in-html/">HTML+RDFa</a> 1.1
-            20110525 working draft, and
+            20110525 working draft,
             <a href="http://www.w3.org/TR/xhtml-rdfa/">XHTML+RDFa</a> 1.1
-            20110331 working draft.
+            20110331 working draft, and
+            <a href="http://www.w3.org/Voice/">VoiceXML</a> 2.0 and 2.1.
           </li>
           <li>
             Enhancement: update

Received on Sunday, 30 October 2011 17:53:10 UTC