Variable name type change in VoiceXML 2.1 CR

The type 'RestrictedVariableName.datatype' in vxml-datatypes.xsd changed 
from being

   <xsd:restriction base="xsd:NMTOKEN">
   </xsd:restriction>

(the same as for VoiceXML 2.0) in the VoiceXML 2.1 20040728 working 
draft schema to

  <xsd:restriction base="xsd:token">
   <xsd:pattern value="([a-zA-Z]|[a-zA-Z$][a-zA-Z0-9_$]*[a-zA-Z0-9_])"/>
  </xsd:restriction>

in the VoiceXML 2.1 candidate recommendation schema, but I can find no 
comment about the change.  It seems intended to implement some of the 
additional constraints listed in the accompanying 'xsd:documentation' 
section; but since the VoiceXML 2.0 specification indicates that "the 
variable naming convention is as in ECMAScript", which allows Unicode 
letters in names, while the new pattern apparently restricts variable 
names to a subset of ASCII, it breaks backwards compatibility.

For example, the following document is a conforming VoiceXML 2.0 
document, but the same document with "version='2.1'" (and correct schema 
location) would not be a conforming VoiceXML 2.1 document:

   <?xml version="1.0" encoding="iso8859-1"?>
   <vxml version="2.0" xmlns="http://www.w3.org/2001/vxml"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.w3.org/2001/vxml
     http://www.w3.org/TR/voicexml20/vxml.xsd">

     <var name="café"/>
     <form>
       <block>hello</block>
     </form>

   </vxml>

Could someone clarify this for me?

Thanks.
-- 
David Scarratt
Senior Engineer, Holly Connects
david.scarratt@holly-connects.com

Received on Friday, 20 January 2006 08:19:03 UTC