Transforming XML file: NeuroMLFiles/Schemata/v1.8.1/Level3/NetworkML_v1.8.1.xsd using XSL file: NeuroMLFiles/Schemata/XSDtoRNG.xsl

View original file before transform

Converting the file: NetworkML_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/networkml/schema" xmlns:meta="http://morphml.org/metadata/schema" xmlns:mml="http://morphml.org/morphml/schema" xmlns:bio="http://morphml.org/biophysics/schema" ns="http://morphml.org/networkml/schema" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">

<!--
    This file specifies a number of elements needed by NeuroML Level 3 compliant files

    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" xmlns=""/>
    

    
<rng:include href="../Level2/Biophysics_v1.8.1.rng" ns="http://morphml.org/biophysics/schema" xmlns=""/>


      
<a:documentation>
        The specification of populations and projections which allows network connections to be encoded in NeuroML
        
</a:documentation>

        
<rng:start combine="choice" xmlns="">
<rng:ref name="networkml"/>
</rng:start>
<rng:define xmlns="" combine="choice" name="networkml">
<rng:element name="networkml">
<rng:ref name="NetworkML"/>
            
<a:documentation>
                    The root element.
                    Note: this element will only be present in a standalone NetworkML file (i.e. no cells or channels defined in the file).
                    For files covering many levels, neuroml will be the root element
            
</a:documentation>
        
</rng:element>
</rng:define>

        
<rng:define xmlns="" combine="choice" name="NetworkML">
            
<a:documentation>
                    The main elements which make up a NetworkML compliant document.
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
<rng:ref name="CoreNetworkElements"/>
            

            
<rng:optional>
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>
</rng:optional>

        
        
<rng:optional>
<rng:attribute name="lengthUnits">
<rng:ref name="LengthUnits"/>
            
<a:documentation>
                Unit of all length measurements. Usually has the value &lt;b&gt;micrometer&lt;/b&gt;. Note: length_units will be the preferred form in v2.0
            
</a:documentation>
        
</rng:attribute>
</rng:optional>
        
        
<rng:optional>
<rng:attribute name="length_units">
<rng:ref name="LengthUnits"/>
            
<a:documentation>
                Unit of all length measurements. Usually has the value &lt;b&gt;micrometer&lt;/b&gt;. Note: length_units will be the preferred form in v2.0
            
</a:documentation>
        
</rng:attribute>
</rng:optional>

            
<rng:optional>
<a:documentation>
                                                default value is : cubic_millimeter
</a:documentation>
<rng:attribute name="volumeUnits">
<rng:ref name="VolumeUnits"/>  <!-- Note: changed to the American English spelling in v1.8.1...-->
                    
<a:documentation>
                            Unit of all volume measurements.
                    
</a:documentation>
            
</rng:attribute>
</rng:optional>

        
</rng:define>




        
<rng:define xmlns="" combine="choice" name="CoreNetworkElements">
            
<a:documentation>
                The elements needed to specify a network connection
            
</a:documentation>

            

                
<rng:element name="populations">
<rng:ref name="Populations"/>
                    
<a:documentation>
                        The least that's needed in a network is a population of cells...
                    
</a:documentation>
                
</rng:element>

                
<rng:optional>
<rng:element name="projections">
<rng:ref name="Projections"/>
                    
<a:documentation>
                        In theory there can be no projections, if the file is intended only to specify positions
                    
</a:documentation>
                
</rng:element>
</rng:optional>

                
<rng:optional>
<rng:element name="inputs">
<rng:ref name="Inputs"/>
                    
<a:documentation>
                        No inputs need be specified
                    
</a:documentation>
                
</rng:element>
</rng:optional>

            
            
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="Populations">
            
<a:documentation>
                The list of cell populations
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="population">
<rng:ref name="Population"/>
</rng:element>
</rng:oneOrMore>
            
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="Projections">
            
<a:documentation>
                The list of projections from one cell population to another
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="projection">
<rng:ref name="Projection"/>
</rng:element>
</rng:oneOrMore>
            

            
<rng:attribute name="units">
<rng:ref name="Units"/>
                
<a:documentation>
                    Unit system of all quantities in the projection descriptions, e.g. synaptic time constants
                
</a:documentation>
            
</rng:attribute>

        
</rng:define>
        
        

        
<rng:define xmlns="" combine="choice" name="Inputs">
            
<a:documentation>
                The list of electrical inputs into the cells. This should be extended to allow voltage clamp inputs...
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="input">
<rng:ref name="Input"/>
</rng:element>
</rng:oneOrMore>
            

            
<rng:attribute name="units">
<rng:ref name="Units"/>
                
<a:documentation>
                    Unit system of all quantities in the input description, e.g. input current amplitudes
                
</a:documentation>
            
</rng:attribute>

        
</rng:define>
        

        
<rng:define xmlns="" combine="choice" name="Input">
            
<a:documentation>
                Description of a single electrical input to a number of cells
            
</a:documentation>

            
                
<rng:ref name="metadata"/>

                
<rng:choice>
                    
<a:documentation>
                        Currently either a pulse input or a random spiking input are allowed
                    
</a:documentation>
                    
<rng:element name="pulse_input">
<rng:ref name="PulseInput"/>
</rng:element>
                    
<rng:element name="random_stim">
<rng:ref name="RandomStim"/>
</rng:element>
                
</rng:choice>
                
                  
<rng:element name="target">
<rng:ref name="InputTarget"/>
</rng:element>
                
            


            
<rng:attribute name="name">
<rng:data type="string"/>
</rng:attribute>

        
</rng:define>

        
<rng:define xmlns="" combine="choice" name="PulseInput">
            
<a:documentation>
                A single input pulse. Note: this should be changed to allow easier specifications of
                                  pulse trains, input protocols, etc.
                
</a:documentation>    
                
                
<rng:attribute name="delay">
<rng:ref name="TimeValue"/>
</rng:attribute>
                
<rng:attribute name="duration">
<rng:ref name="TimeValue"/>
</rng:attribute>
                
<rng:attribute name="amplitude">
<rng:ref name="CurrentValue"/>
</rng:attribute>
                
        
</rng:define>

        
<rng:define xmlns="" combine="choice" name="RandomStim">
            
<a:documentation>
                A random stimulation at a specific frequency. Note: can be interpreted differently by different simulators!!
                
</a:documentation>

                
<rng:attribute name="frequency">
<rng:ref name="FrequencyValue"/>
</rng:attribute>
                
<rng:attribute name="synaptic_mechanism">
<rng:data type="string">
                    
<a:documentation>
                        The name of a synaptic mechanism which will provides the conductance change.
                        This will be fired once every 'spike' at the given frequency
                    
</a:documentation>
                
</rng:data>
</rng:attribute>

        
</rng:define>

        
<rng:define xmlns="" combine="choice" name="RandomStimInstance">
            
<a:documentation>
                Instance/site specific random stimulation at a specific frequency. Note: can be interpreted differently by different simulators!!
                
</a:documentation>

                
<rng:attribute name="frequency">
<rng:ref name="FrequencyValue"/>
</rng:attribute>
              
        
</rng:define>

        
<rng:define xmlns="" combine="choice" name="InputTarget">
            
<a:documentation>
                Specifies the cell group and which cells/segments to apply the stimulation
            
</a:documentation>    
                

            
                
<rng:ref name="metadata"/>
                
<rng:choice>
                    
<a:documentation>
                        As with populations/projections, there are two ways to specify the locations of the
                                          stimulations: a list of cell location instances and a template for choosing the cells.
                    
</a:documentation>

                    
<rng:element name="sites">
<rng:ref name="InputSites"/>
</rng:element>
                    
<rng:element name="site_pattern">
<rng:ref name="InputSitePattern"/>
</rng:element>

                
</rng:choice>
            
            
          
<rng:optional>
<rng:attribute name="cell_group">
<rng:data type="string">
                
<a:documentation>
                    The cell group to which to apply the stimulation. Note for v2.0 population is the preferred name of this attribute (not cell_group).
                
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>
            
            
          
<rng:optional>
<rng:attribute name="population">
<rng:data type="string">
                
<a:documentation>
                    The cell group to which to apply the stimulation. Note for v2.0 population is the preferred name of this attribute (not cell_group).
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>
                
        
</rng:define>
        
        

        
<rng:define xmlns="" combine="choice" name="InputSitePattern">
            
<a:documentation>
                Information on the number of cells on which to apply inputs.
                Currently only two, but could be expanded to include other scenarios, e.g. all cells in 3d region.
            
</a:documentation>

            
<rng:choice>
                
<!-- Lots more scenarios could be described here... -->
                
<rng:element name="all_cells">
                    
<a:documentation>
                        Apply input on all cells in group
                    
</a:documentation>
                    
                
</rng:element>
                
<rng:element name="percentage_cells">
                    
<a:documentation>
                        Apply input to a certain percentage of cells in a group
                    
</a:documentation>
                    
                        
<rng:attribute name="percentage">
<rng:ref name="Percentage"/>
</rng:attribute>
                    
                
</rng:element>

            
</rng:choice>

        
</rng:define>
        
        
        

        
<rng:define xmlns="" combine="choice" name="InputSites">
            
<a:documentation>
                The list of input sites
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="site">
<rng:ref name="InputSite"/>
</rng:element>
</rng:oneOrMore>
            
            
            
<rng:optional>
<rng:attribute name="size">
<rng:data type="nonNegativeInteger">
                
<a:documentation>
                    The number of instances of inputs.
                    This is redundant information, but can be useful when the file is being parsed to allocate memory for an array of cells.
                    NOTE: likely to be required from v2.0
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>

        
</rng:define>
        
        
<rng:define xmlns="" combine="choice" name="InputSite">
            
<a:documentation>
                Specifies a location on a cell where input is received
            
</a:documentation>


                
<rng:choice>
                    
<a:documentation>
                        Overrides global settings if there is a different value of pulse amplitude/rate, etc. for this site
                    
</a:documentation>
                    
<rng:optional>
<rng:element name="pulse_input_instance">
<rng:ref name="PulseInput"/>
</rng:element>
</rng:optional>
                    
<rng:optional>
<rng:element name="random_stim_instance">
<rng:ref name="RandomStimInstance"/>
</rng:element>
</rng:optional>
                
</rng:choice>
            
            
<rng:attribute name="cell_id">
<rng:ref name="CellIdInNetwork"/>
</rng:attribute>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="segment_id">
<rng:ref name="SegmentIdInCell"/>
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0.5
</a:documentation>
<rng:attribute name="fraction_along">
<rng:ref name="ZeroToOne"/>
</rng:attribute>
</rng:optional>
                
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="Population">
            
<a:documentation>
                Description of a cell population of the same type
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
              
                
<rng:optional>
<rng:element name="cell_type">
<rng:data type="string">
                    
<a:documentation>
                        The cell type for this population. NOTE: an attribute value for cell_type WILL BE PREFERRED FORMAT IN v2.0. The option for this element will be removed!
                    
</a:documentation>
                
</rng:data>
</rng:element>
</rng:optional>

                
<rng:choice>
                    
<a:documentation>
                        Either instances or a specification of the location
                    
</a:documentation>
                    
<rng:element name="instances">
<rng:ref name="Instances"/>
</rng:element>
                    
<rng:element name="pop_location">
<rng:ref name="PopulationLocation"/>
</rng:element>
                
</rng:choice>
            


            
<rng:attribute name="name">
<rng:data type="string">
                
<a:documentation>
                    The name of the population
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
<rng:optional>
<rng:attribute name="cell_type">
<rng:data type="string">
                
<a:documentation>
                    The cell type for this population. Optional now, but WILL BE PREFERRED FORMAT IN v2.0
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>

        
</rng:define>




        
<rng:define xmlns="" combine="choice" name="Instances">
            
<a:documentation>
                Cell Instance position information
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="instance">
<rng:ref name="CellInstance"/>
</rng:element>
</rng:oneOrMore>
            
            
            
            
<rng:attribute name="size">
<rng:data type="nonNegativeInteger">
                
<a:documentation>
                    The number of instances of cells for this population.
                    This is redundant information, but can be useful when the file is being parsed to allocate memory for an array of cells.
                    NOTE: required from v1.7.3
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="Projection">
            
<a:documentation>
                Description of how one cell population makes synaptic connections with another
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
                
<rng:optional>
<rng:element name="source">
<rng:data type="string">
                    
<a:documentation>
                        Cell population where synaptic connection begins. NOTE: attribute values for source and target WILL BE THE PREFERRED FORMAT IN v2.0. The option for this element will be removed!
                    
</a:documentation>
                
</rng:data>
</rng:element>
</rng:optional>
                
<rng:optional>
<rng:element name="target">
<rng:data type="string">
                    
<a:documentation>
                        Cell population where synaptic connection terminates. NOTE: attribute values for source and target WILL BE THE PREFERRED FORMAT IN v2.0. The option for this element will be removed!
                    
</a:documentation>
                
</rng:data>
</rng:element>
</rng:optional>

                
<rng:oneOrMore>
<rng:element name="synapse_props">
<rng:ref name="GlobalSynapticProperties"/>
                    
<a:documentation>
                        Properties of a synapse associated with this connection.
                    
</a:documentation>
                
</rng:element>
</rng:oneOrMore>

                
<rng:choice>
                    
<a:documentation>
                        Either an explicit list of the connections or a description of how to create the connections
                    
</a:documentation>

                    
<rng:element name="connections">
<rng:ref name="Connections"/>
</rng:element>
                    
<rng:element name="connectivity_pattern">
<rng:ref name="ConnectivityPattern"/>
</rng:element>

                
</rng:choice>

            

            
<rng:attribute name="name">
<rng:data type="string">
                
<a:documentation>
                    String reference for the projection
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
<rng:optional>
<rng:attribute name="source">
<rng:data type="string">
                
<a:documentation>
                    Cell population where synaptic connection begins. Optional now, but WILL BE PREFERRED FORMAT IN v2.0
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>
            
<rng:optional>
<rng:attribute name="target">
<rng:data type="string">
                
<a:documentation>
                    Cell population where synaptic connection terminates. Optional now, but WILL BE PREFERRED FORMAT IN v2.0
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>
        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="SynapseProperties">
            
<a:documentation>
                Pre v1.7.1 format for global synapse properties. Preferred format is GlobalSynapticProperties. This option will be disabled in v2.0
            
</a:documentation>

            

                
<rng:ref name="metadata"/>

                
<rng:element name="synapse_type">
<rng:data type="string"/>
</rng:element>
                
<rng:element name="default_values">
<rng:ref name="SynapseInternalProperties"/>
</rng:element>
            

        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="GlobalSynapticProperties">
            
<a:documentation>
                Information on synapse type and default values for weight, delay, threshold, etc.
            
</a:documentation>

            
                
<rng:ref name="SynapseInternalProperties"/>  
                    
                
                    
<rng:optional>
<rng:element name="synapse_type">
<rng:data type="string">
                        
<a:documentation>
                            For compatability to pre v1.7.1. Will be removed in v2.0.
                        
</a:documentation>
                    
</rng:data>
</rng:element>
</rng:optional>
                    
<rng:optional>
<rng:element name="default_values">
<rng:ref name="SynapseInternalProperties"/>
                        
<a:documentation>
                            For compatability to pre v1.7.1. Will be removed in v2.0.
                        
</a:documentation>
                    
</rng:element>
</rng:optional>
                
            
                    
<rng:optional>
<rng:attribute name="synapse_type">
<rng:data type="string">
                        
<a:documentation>
                            Including synapse_type as attribute in synapse_props will be required in v2.0
                        
</a:documentation>
                    
</rng:data>
</rng:attribute>
</rng:optional>

                
              

        
</rng:define>
        
        
        

        
<rng:define xmlns="" combine="choice" name="LocalSynapticProperties">
            
<a:documentation>
                Variables specifying a single synapse
            
</a:documentation>

            
                
<rng:ref name="SynapseInternalProperties"/>

                    
<rng:optional>
<rng:attribute name="synapse_type">
<rng:data type="string">
                        
<a:documentation>
                            Optional for a single synaptic connection. Only needed in the case where multiple synapses are
                            present at one connection and there are non default values for each synapse's weights, etc. This field gives the
                            name of the synapse type referred to.
                        
</a:documentation>
                    
</rng:data>
</rng:attribute>
</rng:optional>

                
              

        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="SynapseInternalProperties">
            
<a:documentation>
                Variables specifying a single synapse or default values for a set of connections
            
</a:documentation>
            
            
                
<rng:ref name="metadata"/>
            

            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="internal_delay">
<rng:ref name="SynapticDelayValue"/>
                
<a:documentation>
                    Delay due to diffusion across the synaptic cleft. If only one delay value is known, this can be used
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="pre_delay">
<rng:ref name="SynapticDelayValue"/>
                
<a:documentation>
                    Delay due to presynaptic mechanism
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="post_delay">
<rng:ref name="SynapticDelayValue"/>
                
<a:documentation>
                    Delay due to postsynaptic mechanism
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="prop_delay">
<rng:ref name="SynapticDelayValue"/>
                
<a:documentation>
                    Delay due to simulated AP propagation along an axon
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 1
</a:documentation>
<rng:attribute name="weight">
<rng:ref name="NonNegativeDouble"/>
                
<a:documentation>
                    Multiplicative weighting factor for the synapse
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="threshold">
<rng:ref name="VoltageValue"/>
                
<a:documentation>
                    Presynaptic membrane potential level above which the synapse fires
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="ConnectivityPattern">
            
<a:documentation>
                Information on the number of target cells connected to source cells, etc.
            
</a:documentation>

            
<rng:choice>
                
<!-- Lots more scenarios could be described here... -->
                
<rng:element name="all_to_all">
                    
<a:documentation>
                        Connect every pre cell to every post cell
                    
</a:documentation>
                    
                
</rng:element>
                
<rng:element name="fixed_probability">
                    
<a:documentation>
                        For each pre - post pair, there is a fixed probability of connection
                    
</a:documentation>
                    
                        
<rng:attribute name="probability">
<rng:ref name="ZeroToOne"/>
</rng:attribute>
                    
                
</rng:element>
                
<rng:element name="per_cell_connection">
<rng:ref name="PerCellConnection"/>
                    
<a:documentation>
                        Connection built iteratively from each pre (or post) cell based on a number of parameters
                    
</a:documentation>
                
</rng:element>

            
</rng:choice>

        
</rng:define>
        

        
<rng:define xmlns="" combine="choice" name="PerCellConnection">
            
<a:documentation>
                Connection built iteratively from each pre (or post) cell based on a number of parameters
            
</a:documentation>

                
<a:documentation>
                                                default value is : PreToPost
</a:documentation>
<rng:attribute name="direction">
                    
<a:documentation>
                        Whether the settings below (e.g. number per source cell) refer to PreToPost or PostToPre connections.
                        Note more info could be known about numbers of connections on post synaptic cells, so this possibility should be allowed.
                    
</a:documentation>

                    
                        
<rng:choice>
                            
<rng:value>PreToPost</rng:value>
                            
<rng:value>PostToPre</rng:value>
                        
</rng:choice>
                    
                
</rng:attribute>
                
<rng:attribute name="num_per_source">
<rng:ref name="PositiveDouble"/>
</rng:attribute>
                
<rng:optional>
<rng:attribute name="max_per_target">
<rng:data type="positiveInteger"/>
</rng:attribute>
</rng:optional>
                
<!-- More settings can be put here, e.g. distance dependence of connections-->

        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="Connections">
            
<a:documentation>
                The list of cell connections
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
<rng:oneOrMore>
<rng:element name="connection">
<rng:ref name="Connection"/>
</rng:element>
</rng:oneOrMore>
            
            
            
            
<rng:optional>
<rng:attribute name="size">
<rng:data type="nonNegativeInteger">
                
<a:documentation>
                    The number of instances of connections.
                    This is redundant information, but can be useful when the file is being parsed to allocate memory for an array of cells.
                    NOTE: likely to be required from v2.0
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>

        
</rng:define>

        
<rng:define xmlns="" combine="choice" name="CellInstance">
            
<a:documentation>
                An instance of a cell at a the specified location
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
<rng:element name="location">
<rng:ref name="Point3D"/>
</rng:element>
            

            
<rng:attribute name="id">
<rng:data type="nonNegativeInteger">
                
<a:documentation>
                    A unique non negative integer id for the cell instance
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
            
<rng:optional>
<rng:attribute name="node_id">
<rng:data type="nonNegativeInteger">
                
<a:documentation>
                    An optional specification of the node id on which this cell should run. This can be used
                    to allow exchange of neuronal networks partitioned for execution in
                    distributed computing environments. A parsing appliction can ignore this inforation and create its own partition.
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>

        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="Connection">
            
<a:documentation>
                A single synaptic connection
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
                
<rng:optional>
<rng:element name="pre">
<rng:ref name="SynapticLocation"/>
                    
<a:documentation>
                        NOTE: Attributes pre_cell_id etc. for WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:element>
</rng:optional>
                
<rng:optional>
<rng:element name="post">
<rng:ref name="SynapticLocation"/>
                    
<a:documentation>
                        NOTE: Attributes post_cell_id etc. for WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:element>
</rng:optional>
                
<rng:zeroOrMore>
<rng:element name="properties">
<rng:ref name="LocalSynapticProperties"/>
</rng:element>
</rng:zeroOrMore>

            


                
<rng:attribute name="id">
<rng:data type="integer">
                    
<a:documentation>
                        The unique ID of the single synaptic connection.
                    
</a:documentation>
                
</rng:data>
</rng:attribute>
                
                
<rng:optional>
<rng:attribute name="pre_cell_id">
<rng:data type="integer">
                    
<a:documentation>
                        The ID of the presynaptic cell. Must be listed in populations, so that too must list instances.
                        Optional now, but attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:data>
</rng:attribute>
</rng:optional>
                
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="pre_segment_id">
<rng:data type="integer">
                    
<a:documentation>
                        The segment on the presynaptic cell where the synapse is located.
                        Attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:data>
</rng:attribute>
</rng:optional>
                
<rng:optional>
<a:documentation>
                                                default value is : 0.5
</a:documentation>
<rng:attribute name="pre_fraction_along">
<rng:ref name="ZeroToOne"/>
                    
<a:documentation>
                        The fraction along the length of the specified segment on the presynaptic cell where the synapse is located.
                        Attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:attribute>
</rng:optional>
                
                
<rng:optional>
<rng:attribute name="post_cell_id">
<rng:data type="integer">
                    
<a:documentation>
                        The ID of the postsynaptic cell. Must be listed in populations, so that too must list instances.
                        Optional now, but attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:data>
</rng:attribute>
</rng:optional>
                
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="post_segment_id">
<rng:data type="integer">
                    
<a:documentation>
                        The segment on the postsynaptic cell where the synapse is located.
                        Attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:data>
</rng:attribute>
</rng:optional>
                
<rng:optional>
<a:documentation>
                                                default value is : 0.5
</a:documentation>
<rng:attribute name="post_fraction_along">
<rng:ref name="ZeroToOne"/>
                    
<a:documentation>
                        The fraction along the length of the specified segment on the postsynaptic cell where the synapse is located.
                        Attributes pre_cell_id, etc. WILL BE PREFERRED FORMAT IN v2.0
                    
</a:documentation>
                
</rng:attribute>
</rng:optional>

        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="SynapticLocation">

            
<rng:attribute name="cell_id">
<rng:data type="integer">
                
<a:documentation>
                    The ID of the cell. Must be listed in populations, so that too must list instances
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
<rng:optional>
<a:documentation>
                                                default value is : 0
</a:documentation>
<rng:attribute name="segment_id">
<rng:data type="integer">
                
<a:documentation>
                    The segment where the synapse is located.
                
</a:documentation>
            
</rng:data>
</rng:attribute>
</rng:optional>
            
<rng:optional>
<a:documentation>
                                                default value is : 0.5
</a:documentation>
<rng:attribute name="fraction_along">
<rng:ref name="ZeroToOne"/>
                
<a:documentation>
                    The fraction along the length of the specified segment where the synapse is located.
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
        
</rng:define>
        
        
        




        
<rng:define xmlns="" combine="choice" name="PopulationLocation">
            
<a:documentation>
                Description of the 3D positioning of cells in the population, in place of giving explicit locations for each cell
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
<rng:choice>
                    
<rng:element name="random_arrangement">
<rng:ref name="RandomArrangement"/>
</rng:element>
                    
<rng:element name="grid_arrangement">
<rng:ref name="GridArrangement"/>
</rng:element>
                    
<!-- More should be included... -->
                
</rng:choice>
            


            
<rng:attribute name="reference">
<rng:data type="string"/>
</rng:attribute>

        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="RandomArrangement">
            
<a:documentation>
                A random arrangement of cells in a 3D location. Note other 3D regions besides spheres and rectangles can be added if required.
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
<rng:element name="population_size">
<rng:data type="nonNegativeInteger">
                    
<a:documentation>
                        Number of cells to place randomly in the specified 3D location
                    
</a:documentation>
                
</rng:data>
</rng:element>
                
<rng:choice>
                    
<rng:element name="spherical_location">
<rng:ref name="Sphere"/>
</rng:element>
                    
<rng:element name="rectangular_location">
<rng:ref name="RectangularBox"/>
</rng:element>
                
</rng:choice>
            
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="GridArrangement">
            
<a:documentation>
                A regular placement of the cells in a number of dimensions
            
</a:documentation>
            
                
<rng:ref name="metadata"/>
                
                
<rng:choice>
                
                    
<rng:ref name="SpatialLayout"/>

                    
<rng:element name="non_spatial_grid">
<rng:ref name="NonSpatialGrid"/>
                        
<a:documentation>
                            Specifying this means the precise spatial location of the cells is irrelvant
                        
</a:documentation>
                    
</rng:element>

                
</rng:choice>
                
            
            
        
</rng:define>


        
        
<rng:define xmlns="" combine="choice" name="SpatialLayout">
            
<a:documentation>
                Layout of the cells according to x,y,z spatial coordinates
            
</a:documentation>
            
            
                
<rng:element name="rectangular_location">
<rng:ref name="RectangularBox"/>
                    
<a:documentation>
                        3D box in which the cells are regularly packed. Note if one or two of dimensions of the box is zero it can be a 2D or 1D grid (respectively).
                    
</a:documentation>
                
</rng:element>


                
<rng:element name="spacing">
                    
<a:documentation>
                        Separation of the cells in each dimension
                    
</a:documentation>
                    
                        
<rng:attribute name="x">
<rng:data type="double"/>
</rng:attribute>
                        
<rng:attribute name="y">
<rng:data type="double"/>
</rng:attribute>
                        
<rng:attribute name="z">
<rng:data type="double"/>
</rng:attribute>
                    
                
</rng:element>
            
        
</rng:define>

        
        
<rng:define xmlns="" combine="choice" name="Level3Connectivity">
            
<a:documentation>
                    Biophysics of Level3 cell, including specification for allowable synaptic locations.
                Note: from v1.7.1 the preferred way to specify a potential synaptic location is with a potential_syn_loc element under connectivity under cell, as
                opposed to the potentialSynapticLocation under biophysics under cell. The former will be the only option from v2.0
            
</a:documentation>
            
                
<rng:zeroOrMore>
<rng:element name="potential_syn_loc">
<rng:ref name="PotentialSynLoc"/>
</rng:element>
</rng:zeroOrMore>
            
        
</rng:define>

        

        
<rng:define xmlns="" combine="choice" name="PotentialSynLoc">
            
<a:documentation>
                Subset of sections on cell where synaptic connection of a particular type is allowed.
                Note: from v1.7.1 the preferred way to specify a potential synaptic location is with a potential_syn_loc element under connectivity under cell, as
            opposed to the potentialSynapticLocation under biophysics under cell. The former will be the only option from v2.0
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
                    
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string">
                        
<a:documentation>
                            List of groups of sections allowing the synapse
                        
</a:documentation>
                    
</rng:data>
</rng:element>
</rng:oneOrMore>
                
            
            
            
<rng:attribute name="synapse_type">
<rng:data type="string">
                
<a:documentation>
                    Which of the synaptic mechanisms can be present
                
</a:documentation>
            
</rng:data>
</rng:attribute>
            
<rng:optional>
<a:documentation>
                                                default value is : preAndOrPost
</a:documentation>
<rng:attribute name="synapse_direction">
<rng:ref name="SynapseDirection"/>
                
<a:documentation>
                    Whether this synapse location allows a presynaptic connection, a postsynaptic
                        connection or either
                
</a:documentation>
            
</rng:attribute>
</rng:optional>
        
</rng:define>
        

        
<rng:define xmlns="" combine="choice" name="PotentialSynapticLocation">
            
<a:documentation>
                Subset of sections on cell where synaptic connection of a particular type is allowed.
                Note: from v1.7.1 the preferred way to specify a potential synaptic location is with a potential_syn_loc element under connectivity under cell, as
            opposed to the potentialSynapticLocation under biophysics under cell. The former will be the only option from v2.0
            
</a:documentation>

            
                
<rng:ref name="metadata"/>
                
                    
<rng:element name="synapse_type">
<rng:data type="string">
                        
<a:documentation>
                            Which of the synaptic mechanisms can be present
                        
</a:documentation>
                    
</rng:data>
</rng:element>
                    
<rng:optional>
<rng:element name="synapse_direction">
<rng:ref name="SynapseDirection"/>
                        
<a:documentation>
                            Whether this synapse location allows a presynaptic connection, a postsynaptic
                                connection or either
                        
</a:documentation>
                    
</rng:element>
</rng:optional>
                    
<rng:oneOrMore>
<rng:element name="group">
<rng:data type="string">
                        
<a:documentation>
                            List of groups of sections allowing the synapse
                        
</a:documentation>
                    
</rng:data>
</rng:element>
</rng:oneOrMore>
                
            
        
</rng:define>



        
<rng:define xmlns="" combine="choice" name="SynapseDirection">
            
<a:documentation>
                Indicated whether a potential synapse location allows a presynaptic connection
                of the specified type, a postsynaptic connection or either.
            
</a:documentation>
            
<rng:choice>
                
<rng:value>pre</rng:value>
                
<rng:value>post</rng:value>
                
<rng:value>preAndOrPost</rng:value>
            
</rng:choice>
        
</rng:define>
        
        

        
<rng:define xmlns="" combine="choice" name="CellIdInNetwork">
            
<a:documentation>
                Id of individual cell in a network
            
</a:documentation>
            
<rng:data type="nonNegativeInteger">
            
</rng:data>
        
</rng:define>


        
<rng:define xmlns="" combine="choice" name="BiophysicsNetworkElements">
            
<a:documentation>
                The elements in biophysics needed to specify a network connection.
                Note: from v1.7.1 the preferred way to specify a potential synaptic location is with a potential_syn_loc element under connectivity under cell, as
            opposed to the potentialSynapticLocation under biophysics under cell. The former will be the only option from v2.0
            
</a:documentation>

            
                
<rng:zeroOrMore>
<rng:element name="potentialSynapticLocation">
<rng:ref name="PotentialSynapticLocation"/>
</rng:element>
</rng:zeroOrMore>
            
        
</rng:define>


</rng:grammar>


Time to transform file: 0.02 secs