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. > > >

