Hi,
I tried to parse and validate the following file (with
Xerces-C++ 2.4 and 2.6):
<?xml version="1.0"?>
<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"> <form>
<block> <prompt> Hello World</prompt> </block> </form> </vxml> I get the following errors:
Error at file "http://www.w3.org/TR/voicexml20/vxml-synthesis-restriction.xsd",
line 30, column 53 Message: Could not find a declaration in the schema to be redefined corresponding to 'say-as' Error at file "http://www.w3.org/TR/voicexml20/vxml-synthesis-restriction.xsd", line 43, column 52 Message: Could not find a declaration in the schema to be redefined corresponding to 'audio' Error at file "http://www.w3.org/TR/voicexml20/vxml-synthesis-extension.xsd", line 30, column 53 Message: Global complexType:'say-as' declared more than once or also declared as simpleType Error at file "http://www.w3.org/TR/voicexml20/vxml-synthesis-extension.xsd", line 43, column 52 Message: Global complexType:'audio' declared more than once or also declared as simpleType I also tried to validate it with XSV (http://www.w3.org/2001/03/webdata/xsv)
and it passed.
Schemas involved are the following:
The schema vxml.xsd includes
vxml-synthesis-extension.xsd:
<xsd:include
schemaLocation="vxml-synthesis-extension.xsd"/>
The schema vxml-synthesis-extension.xsd redefines
vxml-synthesis-restriction.xsd:
<xsd:redefine
schemaLocation="vxml-synthesis-restriction.xsd">
The schema vxml-synthesis-restriction.xsd redefines
synthesis-core.xsd:
<xsd:redefine
schemaLocation="synthesis-core.xsd">
That is, the schema synthesis-core.xsd contains definitions of
types "audio" and "say-as".
The schema vxml-synthesis-restriction.xsd redefines only the
type "speak".
The schema vxml-synthesis-extension.xsd redefines types
"audio" and "say-as".
It seems that the problem is that Xerces parser assumes that
the original
definitions of types "audio" and "say-as" should be present in
vxml-synthesis-restriction.xsd, while they are present in
synthesis-core.xsd.
I am not sure if XML schema specification allows it, but it
seems to me that it
is very unlikely that VoiceXML schema is
not correct.
So, I think this might be a bug in Xerces schema validation.
Am I true?
Regards,
Hrvoje Nezic, Envox Lab
|