Ok maybe it's a problem related to xsi:type. Sorry I am not really an
expert in schemas and it's sometimes hard for me to catch all the
subtellities.

Here is the schema:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
        elementFormDefault="qualified" targetNamespace="astromodelns"
        xmlns="astromodelns">


        <xs:annotation>
                <xs:documentation xml:lang="en">
                        Author: Frederic Boone Copyright 2005 MPIfR
and Observatoire
                        de Paris All rights reserved.
                </xs:documentation>
                <xs:appinfo>

                </xs:appinfo>

        </xs:annotation>

        <!-- includes -->
        <xs:include schemaLocation="general.xsd" />
        <xs:include schemaLocation="params.xsd" />
        <xs:include schemaLocation="data.xsd" />


        <xs:element name="comment" type="xs:string" />

        <xs:element name="astroModelSchema" type="AstroModelSchemaType" />

        <xs:complexType name="AstroModelSchemaType">
                <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                        <xs:element name="general" type="General" />
                        <xs:element name="algorithmParameters"
                                type="AlgorithmParameters" minOccurs="0" />
                        <xs:element name="dataSection" type="DataSectionType"
                                minOccurs="0" />
                        <xs:element name="distantParametersRequired"
                                type="DistantParametersRequired"
minOccurs="0" maxOccurs="1
0"/>

                        <xs:element name="parametersAttachedToDistantData"
                                type="ParametersAttachedToDistantData"
minOccurs="0" maxOcc
urs="unbounded"/>

                        <xs:element name="section" type="SectionType"
minOccurs="1"
                                maxOccurs="10" />
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
        </xs:complexType>

        <xs:simpleType name="DistantParametersRequired">
                <xs:restriction base="xs:string">
                        <xs:enumeration value="Spectroscopic" />
                        <xs:enumeration value="Other" />
                </xs:restriction>
        </xs:simpleType>

        <xs:complexType name="ParametersAttachedToDistantData">
                <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                    <xs:element name="distantDataType" type="DistantDataType"/>
                    <xs:element name="param" type="ParamType" minOccurs="1"
                                maxOccurs="unbounded" />
                </xs:sequence>
        </xs:complexType>

        <xs:simpleType name="DistantDataType">
                <xs:restriction base="xs:string">
                        <xs:enumeration value="ChemicalSpecies" />
                        <xs:enumeration value="SpectralTransitions" />
                </xs:restriction>
        </xs:simpleType>

        <xs:complexType name="AlgorithmParameters">
                <xs:sequence>
                        <xs:element name="Section" type="SectionType"/>
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
        </xs:complexType>



        <xs:complexType name="SectionType">
                <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                        <xs:element name="subSection" type="SubSectionType"
                                minOccurs="1" maxOccurs="10" />
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="SubSectionType">
                <xs:sequence>
                        <xs:element name="title" type="xs:string" />
                        <xs:choice minOccurs="1" maxOccurs="unbounded">
                                <xs:element name="choiceTree"
type="ChoiceTreeType" />
                                <xs:element name="partable" type="TableType" />
                                <xs:element name="param" type="ParamType" />
                        </xs:choice>
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
        </xs:complexType>


        <xs:complexType name="ChoiceTreeType">
                <xs:sequence>
                        <xs:element name="name" type="xs:string" />
                        <xs:element name="varName" type="xs:string" />
                        <xs:element name="unit" type="xs:string"
minOccurs="0" />
                        <xs:element name="description" type="xs:string" />
                        <xs:element name="choiceGroup" type="ChoiceGroupType"
                                minOccurs="2" maxOccurs="unbounded" />
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="defaultchoice" type="xs:int" default="0" />
        </xs:complexType>

        <xs:complexType name="ChoiceGroupType">
                <xs:sequence>
                        <xs:element name="choiceval" type="xs:string" />
                        <xs:element name="param" type="ParamType" minOccurs="0"
                                maxOccurs="unbounded" />
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="implemented" type="xs:boolean"
                        default="true" />
        </xs:complexType>


        <xs:complexType name="TableType">
                <xs:sequence>
                        <xs:element name="name" type="xs:string" />
                        <xs:element name="description" type="xs:string" />
                        <xs:element name="ncolVarName" type="xs:string" />
                        <xs:element name="colName" type="xs:string" />
                        <xs:element name="param" type="ParamType" minOccurs="1"
                                maxOccurs="unbounded" />
                        <xs:element ref="comment" minOccurs="0" />
                </xs:sequence>
                <xs:attribute name="wrt_1st" type="xs:boolean" default="true" />
                <xs:attribute name="allowfunc" type="xs:boolean"
                        default="false" />
        </xs:complexType>


</xs:schema>


2007/4/2, Hussein Shafie <hussein at xmlmind.com>:
> Remainder: in my answer, I assume that you are not talking about setting
> the "xsi:type" attribute of an element.
>
>
>
> Fr?d?ric Boone wrote:
> > In fact with the replace button I have access to the abstract type
> > itself but not to the extensions, ideally I would like to see the
> > abstract type, only its extensions.
>
> The menu displayed by the "Replace" button is automatically built based
> on the content model you have specified in your schema. That is, it
> faithfully reflects the reality of your schema. If you are not satisfied
> with what you see, then the problem lies in your schema.
>
>
>
> > Maybe my schema is special, I copy
> > below the part of the schema (in fact it's made of several xsd) that
> > contains the abstract type ParamType and all its extensions:
> >
> > <xs:schema
> >        xmlns:xs="http://www.w3.org/2001/XMLSchema";
> >        elementFormDefault="qualified"
> >        targetNamespace="astromodelns"
> >        xmlns="astromodelns">
> >
> >  <xs:annotation>
> >    <xs:documentation xml:lang="en">
> >      Parameters for AstroModelSchemas
> >      Author: Frederic Boone
> >      Copyright 2005 All rights reserved.
> >    </xs:documentation>
> >  </xs:annotation>
> >
> >
> >  <xs:complexType name="ParamType" abstract="true">
> >     <xs:sequence>
> >       <xs:element name="name" type="xs:string"/>
> >       <xs:element name="varName" type="xs:string"/>
> >       <xs:element name="unit" type="xs:string"/>
> >       <xs:element name="description" type="xs:string"/>
> >     </xs:sequence>
> >  </xs:complexType>
> >
> >  <xs:complexType name="ParamFloat">
> >    <xs:complexContent>
> >      <xs:extension base="ParamType">
> >        <xs:sequence>
> >           <xs:element name="default" type="xs:float"/>
> >           <!--element name="min" type="xs:float" minOccurs="0"
> > default="-INF"/>
> >           <xs:element name="max" type="xs:float" minOccurs="0"
> > default="INF"/-->
> >        </xs:sequence>
> >      <xs:attribute name="min" type="xs:float" default="-INF"/>
> >      <xs:attribute name="max" type="xs:float" default="INF"/>
> >      </xs:extension>
> >    </xs:complexContent>
> >  </xs:complexType>
> >
> >  <xs:complexType name="ParamInt">
> >    <xs:complexContent>
> >      <xs:extension base="ParamType">
> >        <xs:sequence>
> >           <xs:element name="default" type="xs:int"/>
> >        </xs:sequence>
> >      <xs:attribute name="min" type="xs:int" default="-9999999"/>
> >      <xs:attribute name="max" type="xs:int" default="9999999"/>
> >      </xs:extension>
> >    </xs:complexContent>
> >  </xs:complexType>
> >
> >
> >  <xs:complexType name="ParamString">
> >    <xs:complexContent>
> >      <xs:extension base="ParamType">
> >        <xs:sequence>
> >           <xs:element name="default" type="xs:string"/>
> >        </xs:sequence>
> >       </xs:extension>
> >    </xs:complexContent>
> >  </xs:complexType>
> >
> >  <xs:complexType name="ParamCoor">
> >    <xs:complexContent>
> >      <xs:extension base="ParamType">
> >        <xs:sequence>
> >           <xs:element name="default" type="coordinate"/>
> >        </xs:sequence>
> >      <xs:attribute name="min" type="coordinate" default="-90:00:00"/>
> >      <xs:attribute name="max" type="coordinate" default="90:00:00"/>
> >      <xs:attribute name="varUnit" type="angleunits" default="degree"/>
> >      </xs:extension>
> >    </xs:complexContent>
> >  </xs:complexType>
> >
> > <xs:simpleType name="coordinate">
> >  <xs:restriction base="xs:string">
> >    <xs:pattern value="(\+|\-)?\d{2}:\d{2}:\d{2}(\.\d*)?"/>
> >  </xs:restriction>
> > </xs:simpleType>
> >
> > <xs:simpleType name="angleunits">
> >  <xs:restriction base="xs:string">
> >    <xs:enumeration value="degree"/>
> >    <xs:enumeration value="radian"/>
> >   </xs:restriction>
> > </xs:simpleType>
> >
> > </xs:schema>
>
> [1] Your schema is not special.
>
> [2] Where are the *element* (or attribute) *declarations* making use of
> the ParamFloat, ParamInt, ParamString, etc, types? Types are merely W3C
> XML Schema syntactic sugar. What counts is the elements and the attributes.
>
>
>

Reply via email to