Transforming XML file: NeuroMLFiles/Schemata/v1.8.1/Level2/Biophysics_v1.8.1.xsd using XSL file: NeuroMLFiles/Schemata/XSDtoRNG.xsl

View original file before transform

Converting the file: Biophysics_v1.8.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<rng:grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns="http://morphml.org/biophysics/schema" xmlns:meta="http://morphml.org/metadata/schema" ns="http://morphml.org/biophysics/schema" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    
<!--
    This file specifies a number of elements needed by NeuroML Level 2 compliant cell description file

    Funding for this work has been received from the Medical Research Council and the
    Wellcome Trust. This file was initially developed as part of the neuroConstruct project
    
    Author: Padraig Gleeson
    Copyright 2009 University College London
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
-->


    
<rng:include href="../Level1/Metadata_v1.8.1.rng" ns="http://morphml.org/metadata/schema"/>
    
      
<a:documentation>
        Definition of the elements needed for specifying the biophysical properties of cells.
     These elements are linked with those in MorphML.xsd and from the ChannelML spec by
     the NeuroML.xsd file
        
</a:documentation>

    
<rng:start combine="choice">
<rng:ref name="biophysics"/>
</rng:start>
<rng:define combine="choice" name="biophysics">
<rng:element name="biophysics">
<rng:ref name="Biophysics"/>
        
<a:documentation>
            The root element. All other complex/simple elements will be children of this.
        
</a:documentation>
    
</rng:element>
</rng:define>
        
    
<rng:define combine="choice" name="Biophysics">
        
<a:documentation>
            Description of biophysical properties of a cell.
        
</a:documentation>
        
            
<rng:oneOrMore>
<rng:element name="mechanism">
<rng:ref name="Mechanism"/>
                
<a:documentation>
                    Definition of placement of a single electrophysiological mechanism (e.g. channel mechanism)
                        on a group of cables of a cell. Note there should be at least one of these to specify the passive membrane conductance.
                        Note: elements spec_capacitance, spec_axial_resistance, ion_props etc. should be used in preference to specificCapacitance etc!
                
</a:documentation>
            
</rng:element>
</rng:oneOrMore>
            
<rng:choice>
                
<rng:element name="specificCapacitance">
<rng:ref name="SpecCapacitance"/>
</rng:element>
                
<rng:element name="spec_capacitance">
<rng:ref name="SpecCapacitance"/>
</rng:element>
            
</rng:choice>
            
<rng:choice>
                
<rng:element name="specificAxialResistance">
<rng:ref name="SpecAxialResistance"/>
</rng:element>
                
<rng:element name="spec_axial_resistance">
<rng:ref name="SpecAxialResistance"/>
</rng:element>
            
</rng:choice>
            
<rng:choice>
                
<rng:optional>
<rng:element name="initialMembPotential">
<rng:ref name="InitialMembPotential"/>
</rng:element>
</rng:optional>
                
<rng:optional>
<rng:element name="init_memb_potential">
<rng:ref name="InitialMembPotential"/>
</rng:element>
</rng:optional>
            
</rng:choice>
            
<rng:choice>
                
<rng:optional>
<rng:element name="ionProperties">
<rng:ref name="IonProperties"/>
</rng:element>
</rng:optional>
                
<rng:zeroOrMore>
<rng:element name="ion_props">
<rng:ref name="IonProperties"/>
</rng:element>
</rng:zeroOrMore>
            
</rng:choice>
        
                
                
<rng:attribute name="units">
<rng:ref name="Units"/>
                    
<a:documentation>
                        Unit system of all quantities.
                    
</a:documentation>
                
</rng:attribute>  
    
</rng:define>
        
          
        
        
        
        
<rng:define combine="choice" name="Mechanism">
        
<a:documentation>
            Definition of placement of a single electrophysiological mechanism (e.g. channel mechanism)
                        on a group of cables of a cell
        
</a:documentation>
        
        
            
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="NamedParameter"/>
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variableParameter">
<rng:ref name="VariableNamedParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variable_parameter">
<rng:ref name="VariableNamedParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
        
        
        
<rng:attribute name="name">
<rng:data type="string">
            
<a:documentation>
                Name of the mechanism. Should refer to a named mechanism in a ChannelML file
            
</a:documentation>
        
</rng:data>
</rng:attribute>
        
<rng:attribute name="type">
<rng:ref name="MechanismType"/>
            
<a:documentation>
                Specifies the type of cellular mechanism (Channel Mechanism/Ion Concentration). Note could be used for any type of electrophysiological property of a section of a cell
            
</a:documentation>
        
</rng:attribute>
        
<rng:optional>
<a:documentation>
                                                default value is : false
</a:documentation>
<rng:attribute name="passive_conductance">
<rng:data type="boolean">
            
<a:documentation>
                Whether this is a passive/leak conductance. In this case, 2 params, gmax and e should be sufficient to fully specify the
            mechanism, independent of any implementation. Useful e.g. for mapping to and from inbuilt mechanisms in simulators (e.g. pas in NEURON, Em/Rm in GENESIS).
        NOTE: this attribute will be required in v2.0!! Don't use passiveConductance anymore.
            Changed for consistency with ChannelML and NetworkML naming conventions.
            
</a:documentation>
        
</rng:data>
</rng:attribute>
</rng:optional>
        
<rng:optional>
<a:documentation>
                                                default value is : false
</a:documentation>
<rng:attribute name="passiveConductance">
<rng:data type="boolean">
            
<a:documentation>
                Whether this is a passive/leak conductance. NOTE: this attribute will be removed in v2.0!! Use passive_conductance instead.
            Changed for consistency with ChannelML and NetworkML naming conventions.
            
</a:documentation>
        
</rng:data>
</rng:attribute>
</rng:optional>
    
</rng:define>  
        
        
        
        
<rng:define combine="choice" name="SpecCapacitance">
        
<a:documentation>
                    
                        
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">F/m2</meta:units>
                    
                    Capacitance per unit area of a group of sections
        
</a:documentation>
        
            
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="UnnamedParameter"/>
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variableParameter">
<rng:ref name="VariableParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variable_parameter">
<rng:ref name="VariableParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
        
    
</rng:define>  
        
        
        
<rng:define combine="choice" name="SpecAxialResistance">
        
<a:documentation>
                    
                        
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">ohm m</meta:units>
                    
            Specific axial resistance of a group of sections
        
</a:documentation>
        
            
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="UnnamedParameter"/>
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variableParameter">
<rng:ref name="VariableParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variable_parameter">
<rng:ref name="VariableParameter"/>
                
<a:documentation>
                    Note variable_parameter will be the preferred form in v2.0
                
</a:documentation>
            
</rng:element>
</rng:zeroOrMore>
        
    
</rng:define>  
        
        
        
<rng:define combine="choice" name="InitialMembPotential">
        
<a:documentation>
                    
                        
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">V</meta:units>
                    
            This quantity is often required for computational simulations and specifies the potential
                difference across the membrane at the start of the simulation. This is an optional field
        
</a:documentation>
        
            
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="UnnamedParameter"/>
</rng:element>
</rng:zeroOrMore>
            
<rng:zeroOrMore>
<rng:element name="variableParameter">
<rng:ref name="VariableParameter"/>
</rng:element>
</rng:zeroOrMore>
        
    
</rng:define>  
        
        
        
        
<rng:define combine="choice" name="IonProperties">
        
<a:documentation>
            Some properties accociated with an ion type which takes part in the mechanisms on the cell
        
</a:documentation>
        
            
<rng:zeroOrMore>
<rng:element name="parameter">
<rng:ref name="NamedParameter"/>
</rng:element>
</rng:zeroOrMore>
        
        
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
    
</rng:define>  
        
        
        
        
<rng:define combine="choice" name="NamedParameter">
        
<a:documentation>
            Definition of a value for a quantity and the associated groups of cables
                        which have this value. Can have any name, but gmax and e are special...
        
</a:documentation>
        
          
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string"/>
</rng:element>
</rng:oneOrMore>
        
        
<rng:attribute name="name">
<rng:data type="string">
            
<a:documentation>
                2 names have special meaning: gmax for the maximum conductance density, and e for the reversal potential of a passive channel
            
</a:documentation>
        
</rng:data>
</rng:attribute>
        
<rng:attribute name="value">
<rng:data type="double"/>
</rng:attribute>
    
</rng:define>  
        
        
<rng:define combine="choice" name="VariableParameter">
        
<a:documentation>
            Definition of a value for a quantity which varies over a given group of cables
        
</a:documentation>
        
                            
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string"/>
</rng:element>
</rng:oneOrMore>
                            
<rng:oneOrMore>
<rng:element name="inhomogeneous_value">
<rng:ref name="InhomogeneousValue"/>
</rng:element>
</rng:oneOrMore>
        
        
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
    
</rng:define>  
        
        
<rng:define combine="choice" name="VariableNamedParameter">
        
<a:documentation>
            Definition of a value for a quantity which varies over a given group of cables
        
</a:documentation>
        
                            
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string"/>
</rng:element>
</rng:oneOrMore>
                            
<rng:oneOrMore>
<rng:element name="inhomogeneous_value">
<rng:ref name="InhomogeneousValue"/>
</rng:element>
</rng:oneOrMore>
        
        
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
    
</rng:define>  
        
        
        
<rng:define combine="choice" name="InhomogeneousValue">
        
<a:documentation>
            How a value changes over the cable group. Implementation here based on NEURON inhomogeneous parameter specification.
            See example for usage of this element
        
</a:documentation>
        
<rng:attribute name="param_name">
<rng:data type="string">
                    
<a:documentation>
                        Name used in the inhomogeneous_param element in the cable group
                    
</a:documentation>
        
</rng:data>
</rng:attribute>
        
<rng:attribute name="value">
<rng:data type="string">
                    
<a:documentation>
                        Equation showing how parameter changes as function of variable attribute in inhomogeneous_param element
                    
</a:documentation>
        
</rng:data>
</rng:attribute>
                
    
</rng:define>        
        
        
<!--
         <xs:complexType name="IonParameter">

        <xs:annotation>

            <xs:documentation>
NamedParameter restricted to params for ions</xs:documentation>
                </xs:annotation>

                <xs:complexContent>

                    <xs:restriction base="NamedParameter">

                        <xs:sequence>

                        <xs:element name="group">

                            <xs:restriction base="xs:string">

                                <xs:enumeration value="yes"/>

                                <xs:enumeration value="no"/>

                            </xs:restriction>

                        </xs:element>

                        </xs:sequence>

                        <xs:attribute name="name" type="xs:string" use="required"/>

                        <xs:attribute name="value" type="xs:double" use="required"/>

                    </xs:restriction>

                </xs:complexContent>

        </xs:complexType>
-->
        
        
        
        
<rng:define combine="choice" name="UnnamedParameter">
        
<a:documentation>
            Definition of a value for a quantity and the associated groups of cables
                        which have this value. The quantity referred to will be clear from the usage, e.g. InitialMembPotential
        
</a:documentation>

        
            
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string"/>
</rng:element>
</rng:oneOrMore>
        
        
<rng:attribute name="value">
<rng:data type="double"/>
</rng:attribute>
    
</rng:define>  
    
    
          
<!-- Definition of MechanismType follows. -->
        
<rng:define combine="choice" name="MechanismType">
            
<a:documentation>
                Specifies the type of cellular mechanism. Note could be used for any type of electrophysiological
                property of a section of a cell
            
</a:documentation>
            
<rng:choice>
                
<rng:value>Channel Mechanism</rng:value>
                    
<a:documentation>
                        Voltage and/or conductance dependent membrane conductance
                    
</a:documentation>
                
                
<rng:value>Ion Concentration</rng:value>
                    
<a:documentation>
                        Mechanism which alters the oncentration of a specific ion
                    
</a:documentation>
                
            
</rng:choice>
        
</rng:define>
  
        

        
<rng:define combine="choice" name="SynapticDelayValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">s</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">0.005</meta:typical_value>
                
                Units of a delay associated with a synaptic connection
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>
            

        
<rng:define combine="choice" name="TimeConstantValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">s</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">0.005</meta:typical_value>
                
                Units of any time constant, greater than zero
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minExclusive">0</rng:param>
            
</rng:data>  
        
</rng:define>
        
        
<rng:define combine="choice" name="InvTimeConstantValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">s-1</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">100</meta:typical_value>
                
                Units of the inverse of a time constant
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>  
        
</rng:define>
        
        
        
<rng:define combine="choice" name="TimeConstantValueIncZero">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">s</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">0.005</meta:typical_value>
                
                Units of any time constant which can have value zero
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>
            

        
<rng:define combine="choice" name="TimeValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">s</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">0.005</meta:typical_value>
                
                Units of any time value, zero or greater
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>


        
<rng:define combine="choice" name="FrequencyValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">Hz</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">50</meta:typical_value>
                
                Units of any frequency, zero or greater
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>


        
<rng:define combine="choice" name="ConductanceValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">S</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">1e-8</meta:typical_value>
                
                Units of conductance
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>
        
        
        
<rng:define combine="choice" name="ConductanceDensityValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">S m-2</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">100</meta:typical_value>
                
                Units of conductance density
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>
        
        

        
<rng:define combine="choice" name="LengthValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">m</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">1e-6</meta:typical_value>
                
                Units of length
            
</a:documentation>
            
<rng:data type="double">
            
</rng:data>
        
</rng:define>
        
        


        
<rng:define combine="choice" name="CurrentValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">A</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">1e-11</meta:typical_value>
                
                Units of current
            
</a:documentation>
            
<rng:data type="double">
            
</rng:data>
        
</rng:define>


        
<rng:define combine="choice" name="ConcentrationValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">mM</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">1e-5</meta:typical_value>
                
                Units of concentration
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minInclusive">0</rng:param>
            
</rng:data>
        
</rng:define>



        
<rng:define combine="choice" name="VoltageValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">V</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">-0.07</meta:typical_value>
                
                Units of voltage
            
</a:documentation>
            
<rng:data type="double"/>
        
</rng:define>

        
<rng:define combine="choice" name="TemperatureValue">
            
<a:documentation>
                
                    
<meta:units xmlns:xs="http://www.w3.org/2001/XMLSchema">deg C</meta:units>
                    
<meta:typical_value xmlns:xs="http://www.w3.org/2001/XMLSchema">32</meta:typical_value>
                
                Units of temperature
            
</a:documentation>
            
<rng:data type="double">
                
<rng:param name="minExclusive">0</rng:param>
            
</rng:data>
        
</rng:define>
        
</rng:grammar>


Time to transform file: 0.021 secs