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

Hi,

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,

Dave

-----------------------------------------------------------------
David Burke BE MEngSc

Chief Architect
Voxpilot Ltd
Quantum House
Temple Road
Blackrock, Co. Dublin

Mobile: +353 86 6055086
Office: +353 1 2091922
email: david.burke@voxpilot.com
-----------------------------------------------------------------

Issue 1
=======

+ Synopsis: 

The files, grammar-adapter.xsd and synthesis-adapter.xsd, should not <include> the schemas they 
redefine. 

+ 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 schemas.


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 undefined.

+ Suggested solution:

Omit - not required if doing an <extension> or <restriction> of base grammar


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 Monday, 19 August 2002 16:29:57 UTC