Attempting to restrict VXML schema
Posted: Wed May 26, 2004 11:21 am
Hi,
I am currently evaluating oxygen to become our platform for editing/generating VXML files. At the moment, we only support a subset of VXML, so want to redefine portions of the published vxml.xsd schema.
All my attempts to redefine the vxml element have been rejected by oxygen. I'm probably doing it wrong, but maybe it's a problem with oxygen? Basically, I want to restrict the allowed "top level" elements to <form> and <menu>. Here's my attempt:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.w3.org/2001/vxml"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:redefine schemaLocation="http://www.w3.org/TR/voicexml20/vxml.xsd">
<xsd:complexType name="vxml">
<xsd:complexContent>
<xsd:restriction base="vxml">
<xsd:element ref="form"/>
<xsd:element ref="menu"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:redefine>
</xsd:schema>
The errors oxygen gives are:
E src-redefine.5.b.d: 'restriction' does not have a 'base' attribute that refers to the redefined element, 'http://www.w3.org/2001/vxml,vxml'. <complexType> children of <redefine> elements must have <extension> or <restriction> descendants, with 'base' attributes that refer to themselves.
and
E src-resolve.4.1: Error resolving component 'vxml'. It was detected that 'vxml' has no namespace, but components with no target namespace are not referenceable from schema document 'http://192.168.168.200/vxml/symvxml.xsd'. If 'vxml' is intended to have a namespace, perhaps a prefix needs to be provided. If it is intended that 'vxml' has no namespace, then an 'import' without a "namespace" attribute should be added to 'http://192.168.168.200/vxml/symvxml.xsd'.
Am I doing something wrong?
Thanks,
Matt
I am currently evaluating oxygen to become our platform for editing/generating VXML files. At the moment, we only support a subset of VXML, so want to redefine portions of the published vxml.xsd schema.
All my attempts to redefine the vxml element have been rejected by oxygen. I'm probably doing it wrong, but maybe it's a problem with oxygen? Basically, I want to restrict the allowed "top level" elements to <form> and <menu>. Here's my attempt:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.w3.org/2001/vxml"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xsd:redefine schemaLocation="http://www.w3.org/TR/voicexml20/vxml.xsd">
<xsd:complexType name="vxml">
<xsd:complexContent>
<xsd:restriction base="vxml">
<xsd:element ref="form"/>
<xsd:element ref="menu"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:redefine>
</xsd:schema>
The errors oxygen gives are:
E src-redefine.5.b.d: 'restriction' does not have a 'base' attribute that refers to the redefined element, 'http://www.w3.org/2001/vxml,vxml'. <complexType> children of <redefine> elements must have <extension> or <restriction> descendants, with 'base' attributes that refer to themselves.
and
E src-resolve.4.1: Error resolving component 'vxml'. It was detected that 'vxml' has no namespace, but components with no target namespace are not referenceable from schema document 'http://192.168.168.200/vxml/symvxml.xsd'. If 'vxml' is intended to have a namespace, perhaps a prefix needs to be provided. If it is intended that 'vxml' has no namespace, then an 'import' without a "namespace" attribute should be added to 'http://192.168.168.200/vxml/symvxml.xsd'.
Am I doing something wrong?
Thanks,
Matt