Re: XSD Prob

<davuluri.hyma@wipro.com> writes:

> Hi all,
> Is there a way to write a xsd which validates a xml which is having
> something like this.
>  
> <a b="c">
> <c1>test c1</c1>
> <c2>test c2</c2>
> </a>

If you are in a position to spell 'b' a different way, namely
'xsi:type', then this is easy:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <a xsi:type="c">
  <c1>test c1</c1>
  <c2>test c2</c2>
 </a>
 <a xsi:type="b">
  <b1>test b1</b1>
  <b2>test b2</b2>
 </a>
</root>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="http://www.example.org/xsit"
           targetNamespace="http://www.example.org/xsit"
           elementFormDefault="qualified">
 
 <xs:element name="a" type="general"/>
 
 <xs:complexType name="general" abstract="true">
  <xs:sequence>
   <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  </xs:sequence>
 </xs:complexType>
 
 <xs:complexType name="b">
  <xs:complexContent>
   <xs:restriction base="general">
    <xs:sequence>
     <xs:element name="b1"/>
     <xs:element name="b2"/>
    </xs:sequence>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>
 
 <xs:complexType name="c">
  <xs:complexContent>
   <xs:restriction base="general">
    <xs:sequence>
     <xs:element name="c1"/>
     <xs:element name="c2"/>
    </xs:sequence>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>
 
</xs:schema>

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
                      Half-time member of W3C Team
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht@cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/
 [mail really from me _always_ has this .sig -- mail without it is forged spam]

Received on Friday, 19 December 2003 10:51:44 UTC