RE: Implementation issues with the VoiceXML 2.0 LCWD (20020424) XML Schemas

thank you for your input. Similar problems with the schemas have already
been reported to the group and they will be fixed in the next version. I
will add the issues you note to our change requests.  

 -----Original Message-----
From: Dave Burke []
Sent: Monday, August 19, 2002 22:25
Subject: Implementation issues with the VoiceXML 2.0 LCWD (20020424) XML

I have recently noticed a number of issues with the XML schema strategy
for VoiceXML 2.0 (20020424) and SRGS CR (20020626) and SSML WD
(20020405). Obviously I have missed the LCWD call for comments by a
considerable amount but did not notice any relevant CRs and think my
comments could be of some benefit for a future draft.
I must add the disclaimer that I only have limited Schema experience. In
addition, I should note that the issues outlined below were provoked by
attempting to use Java Xerces 1.4.4 (which only has beta Schema
Recommendation support and is not necessarily a reference implementation
- although in general I find the C++ and Java parsers excellent...). 

Hope this is of some use,
David Burke BE MEngSc
Chief Architect
Voxpilot Ltd
Quantum House
Temple Road
Blackrock, Co. Dublin
Mobile: +353 86 6055086
Office: +353 1 2091922
email: <> 

Issue 1
+ Synopsis: 
The files, grammar-adapter.xsd and synthesis-adapter.xsd, should not
<include> the schemas they 
+ Suggested solution: 
Remove - inclusion is implicit in the <redefine> element.

Issue 2
+ Synopsis:
The prefix vxml: is not required (and undefined) in grammar-adapter.xsd
and synthesis-adapter.xsd 
+ Suggested solution: 
Omit as it is implicit via the default xmlns in each of these documents.

Issue 3
+ Synopsis:
It *seems* the <redefine> element can only employ extension or
restriction of base types - not both.
+ Suggested solution:
Verify this to be true and maybe consider using a
grammar-adapter-extension.xsd and grammar-adapter-restriction.xsd with 
vxml.xsd including the later, which in turn redefines a restiction the
former, which in turn redefines an extension of grammar-core.xsd.
Issue 4
+ Synopsis:
<redefine> can only perform limited redefinition by extension or
restriction. Specifically this 
means that omitting parent elements/attributes is not possible nor is
loosening restrictions
in redefined types. This affects, at least:
- grammar-adapter.xsd attempt to make SRGS 'version' attribute to
optional - not possible as it is not
more restrictive than its base which is 'required'
- synthesis-adapter.xsd attempt to use a union of types for the 'type'
attribute of say-as - again not
more restrictive

+ Suggested solution:
Make base types more general - this might mean changing SRGS and SSML

Issue 5
+ Synopsis:
The grammar-adapter.xsd and synthesis-adapter.xsd files should start
with the usual xml prolog.
+ Suggested solution:
Add the XML prolog and use consistent encoding across all VBWG
specifications e.g. VoiceXML 2.0 LCWD 
and SRGS CR use different encodings (UTF-8 and ISO-8859-1 respectively).

Issue 6
+ Synopsis:
In vxml.xsd the simpleType 'Boolean.datatype' uses enumeration with
xsd:boolean, which is illegal.
(ref. Section 2.1 W3C XML Schema Part 0: Primer)
+ Suggested solution:
Use xsd:string and 'true' and 'false' enumerated values.

Issue 7
+ Synopsis:
In grammar-adapter.xsd 'grammar-header' and 'grammar-body' groups are
+ Suggested solution:
Omit - not required if doing an <extension> or <restriction> of base

Issue 8
+ Synopsis:
The <redefine> element must contain <extension> or <restriction>
grandchildren. This is
a problem with grammar-adapter.xsd and synthesis-adapter.xsd.
(ref. Section 4.2.2 W3C XML Schema Part 1: Structures)
+ Suggested solution:
Add <extension> or <restriction> as necessary.

Issue 9
+ Synopsis:
In vxml.xsd the anonymous complexType child of element should allow
mixed content.
Suggested solution:
Add mixed="true"

Received on Friday, 23 August 2002 07:38:27 UTC