- From: Jose Luis Zabalza <jlz.3008@gmail.com>
- Date: Fri, 8 Jun 2007 09:07:53 +0200
- To: xmlschema-dev@w3.org
Hello everybody. It is posible do complex type content dependent of a attribute value without xsi:type? Next, is a example. TYPE content depend of class attribute values. The next schema have two error. First, VINIT element are diferent type on schema and I get one error form Schema validator. After, content TYPE element are "unbounded" to class attribute, so, is valid write a "bool" class atribute with a enum content. Thanks in avance. <!-- ==================FILE================================== --> <?xml version="1.0" encoding="iso-8859-1" ?> <DATATYPES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='datatypes.xsd'> <SYMBOLS> <TYPE id="first" class="bool"> <VINIT>true</VINIT> <TRUE>this is true</TRUE> <FALSE>this is false</FALSE> </TYPE> <TYPE id="second" class="string"> <VINIT>this is a string</VINIT> <MAXLEN>100</MAXLEN> </TYPE> <TYPE id="third" class="enum"> <VINIT>1</VINIT> <OPTIONS> <OPTION value="1">first option</OPTION> <OPTION value="2">second option</OPTION> <OPTION value="3">third option</OPTION> </OPTIONS> </TYPE> <!-- this is a error but good for schema --> <TYPE id="fourth" class="bool"> <VINIT>1</VINIT> <OPTIONS> <OPTION value="1">first option</OPTION> <OPTION value="2">second option</OPTION> <OPTION value="3">third option</OPTION> </OPTIONS> </TYPE> </SYMBOLS> <!-- ..... anothers elements ... --> </DATATYPES> <!-- ============= SCHEMA ============ --> <?xml version="1.0" encoding="ISO-8859-1" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:group name="groupClassString"> <xsd:sequence> <xsd:element name="VINIT" type="xsd:string" /> <xsd:element name="MAXLEN" type="xsd:unsignedInt" minOccurs="0"/> </xsd:sequence> </xsd:group> <xsd:group name="groupClassBool"> <xsd:sequence> <xsd:element name="VINIT" type="xsd:boolean" /> <xsd:element name="TRUE" type="xsd:string"/> <xsd:element name="FALSE" type="xsd:string"/> </xsd:sequence> </xsd:group> <xsd:group name="groupClassEnum"> <xsd:sequence> <xsd:element name="VINIT" type="xsd:unsignedInt" /> <xsd:element name="OPTIONS" > <xsd:complexType> <xsd:sequence> <xsd:element name="OPTION" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="value" type="xsd:unsignedInt" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:group> <xsd:complexType name="ClassSymbol"> <xsd:choice > <xsd:group ref="groupClassString"/> <xsd:group ref="groupClassBool"/> <xsd:group ref="groupClassEnum"/> </xsd:choice> <xsd:attribute name="id" use="required" type="xsd:string"/> <xsd:attribute name="class" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="string"/> <xsd:enumeration value="bool"/> <xsd:enumeration value="enum"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <xsd:element name="DATATYPES"> <xsd:complexType> <xsd:sequence> <xsd:element name="SYMBOLS"> <xsd:complexType > <xsd:sequence> <xsd:element name="TYPE" minOccurs="0" maxOccurs="unbounded" type="ClassSymbol" /> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- ....... Others elements ....... --> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> -- José Luis Zabalza jlz.3008 a t gmail.com Linux Counter 172551
Received on Friday, 8 June 2007 14:16:01 UTC