Hi ,
I am trying to do a schema validation using Xerces(version 2.2.1).The xml I have is
 
<getCustomerID xmlns="http://www.vordel.com/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xsi:schemaLocation="http://www.vordel.com/ file:///E:/TMobile/samplemessages/new/test/tony/test.xsd"
xsi:type="xsd:string">Error
</getCustomerID>
 
 
and the schema I have is
 
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.vordel.com/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:tns="http://www.vordel.com/">
 
<xsd:element name="getCustomerID">
     <xsd:simpleType>
        <xsd:restriction>
                   <xsd:simpleType>
                     <xsd:union memberTypes="xsd:string"/>
                   </xsd:simpleType>
                   <xsd:enumeration value="JK" />
                   <xsd:enumeration value="DAVE" />
        </xsd:restriction>
      </xsd:simpleType> 
</xsd:element>
 
<xsd:simpleType name="derived_string">
   <xsd:restriction base="xsd:string">
     <xsd:enumeration value="JK" />
     <xsd:enumeration value="DAVE" />
   </xsd:restriction>
</xsd:simpleType>
</xsd:schema> 
 
Now what i want my schema to achieve is to restrict the value to either "DAVE" or "JK".Also note the xsi:type attrbute in the schema.
Even if the value is different I am still able to validate the schema. Is this the expected beahaviour?
 
Now if I take away the xsi:type="xsd:string" from the xml.Then it will try to validate the content and gives me the correct exception.
Now I need to have  type attribute as the Web service rquires it.So I want to build up a schema for the same.
 
I changed the schema to use <xsd:union memberTypes="tns:derived_string"/>
then it gives me a error
org.xml.sax.SAXParseException: cvc-elt.4.3: Type 'xsd:string' is not validly derived from the type definition of element 'getCustomerID'.
 
Can someone help me out.I want to know how does schema validation differ when there is xsi:type attribute in xml itself.
 
Thanks,
JK

 
 

Reply via email to