<xsd:schema targetNamespace="http://www.temp.org" xmlns:tmp="http://www.temp.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <!--
      Define a 'paramInstance' element
      NOTE: We use an abstract base to allow for extension
      -->
   <xsd:complexType name="ParamInstanceType" abstract="true" />
   <xsd:element name="paramInstance" type="tmp:ParamInstanceType" />
   <!--
      Specifying a concrete type
     -->
   <xsd:complexType name="ConcreteParamInstance">
      <xsd:complexContent>
         <xsd:extension base="tmp:ParamInstanceType">
            <xsd:attribute name="name" type="xsd:string" use="required" />
         </xsd:extension>
      </xsd:complexContent>
   </xsd:complexType>
   
</xsd:schema>
