Viewing XML file: NeuroMLFiles/Schemata/v1.6/Level3/NetworkML_v1.6.xsd

Download this file

Validate this file against current (v1.8.1) Schema
Validate this file against all Schemata

Edit this file and revalidate it

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema targetNamespace="http://morphml.org/networkml/schema"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    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"
    elementFormDefault="qualified" attributeFormDefault="unqualified">


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

    This file has been developed as part of the neuroConstruct and NeuroML initiatives

    Funding for this work has been received from the Medical Research Council

    Author: Padraig Gleeson
    Copyright 2007 Department of Physiology, UCL

-->


    
<xs:import namespace="http://morphml.org/metadata/schema"
    schemaLocation="../Level1/Metadata_v1.6.xsd"/>

    
    
<xs:import namespace="http://morphml.org/morphml/schema"
    schemaLocation="../Level1/MorphML_v1.6.xsd"/>


    
<xs:import namespace="http://morphml.org/biophysics/schema"
    schemaLocation="../Level2/Biophysics_v1.6.xsd"/>



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

        
<xs:element name="networkml" type="NetworkML">
            
<xs:annotation>
                    
<xs:documentation>The root element.
                    Note: this element will only be present in a standalone NetworkML file.
            For files covering many levels, neuroml will be the root element
</xs:documentation>
            
</xs:annotation>
        
</xs:element>

        
<xs:complexType name="NetworkML">
            
<xs:annotation>
                    
<xs:documentation>The main elements which make up a NetworkML compliant document. </xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:group ref="CoreNetworkElements"/>


            
</xs:sequence>


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


            
<xs:attribute name="lengthUnits" type="meta:LengthUnits" use="required">
                    
<xs:annotation>
                            
<xs:documentation>Unit of all length measurements.</xs:documentation>
                    
</xs:annotation>
            
</xs:attribute>


            
<xs:attribute name="volumeUnits" type="meta:VolumeUnits" use="optional" default="cubic_millimetre">
                    
<xs:annotation>
                            
<xs:documentation>Unit of all volume measurements.</xs:documentation>
                    
</xs:annotation>
            
</xs:attribute>

        
</xs:complexType>




        
<xs:group name="CoreNetworkElements">
            
<xs:annotation>
                
<xs:documentation>The elements needed to specify a network connection</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>

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

                
<xs:element name="projections" type="Projections" minOccurs="0">
                    
<xs:annotation>
                        
<xs:documentation>In theory there can be no projections, if the file is intended only to specify positions</xs:documentation>
                    
</xs:annotation>
                
</xs:element>

                
<xs:element name="inputs" type="Inputs" minOccurs="0">
                    
<xs:annotation>
                        
<xs:documentation>No inputs need be specified</xs:documentation>
                    
</xs:annotation>
                
</xs:element>

            
</xs:sequence>
        
</xs:group>


          
<xs:complexType name="Populations">
            
<xs:annotation>
                
<xs:documentation>The list of cell populations</xs:documentation>
            
</xs:annotation>
            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="population" type="Population" maxOccurs="unbounded"/>
            
</xs:sequence>
        
</xs:complexType>


          
<xs:complexType name="Projections">
            
<xs:annotation>
                
<xs:documentation>The list of projections from one cell population to another</xs:documentation>
            
</xs:annotation>
            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="projection" type="Projection" minOccurs="0" maxOccurs="unbounded"/>
            
</xs:sequence>

            
<xs:attribute name="units" type="meta:Units" use="required">
                
<xs:annotation>
                    
<xs:documentation>Unit system of all quantities in the projection descriptions, e.g. synaptic time constants</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>

        
</xs:complexType>
        
        

          
<xs:complexType name="Inputs">
            
<xs:annotation>
                
<xs:documentation>The list of electrical inputs into the cells. Should this be extended to allow voltage clamp inputs??</xs:documentation>
            
</xs:annotation>
            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="input" type="Input" minOccurs="1" maxOccurs="unbounded"/>
            
</xs:sequence>

            
<xs:attribute name="units" type="meta:Units" use="required">
                
<xs:annotation>
                    
<xs:documentation>Unit system of all quantities in the input description, e.g. input current amplitudes</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>

        
</xs:complexType>
        

        
<xs:complexType name="Input">
            
<xs:annotation>
                
<xs:documentation>Description of a single electrical input to a number of cells</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>

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


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

        
</xs:complexType>

        
<xs:complexType name="PulseInput">
            
<xs:annotation>
                
<xs:documentation>A single input pulse. Note: this should be changed to allow easier specifications of
                                  pulse trains, input protocols, etc.
</xs:documentation>
                
</xs:annotation>    
                
                
<xs:attribute name="delay" type="bio:TimeValue" use="required"/>
                
<xs:attribute name="duration" type="bio:TimeValue" use="required"/>
                
<xs:attribute name="amplitude" type="bio:CurrentValue" use="required"/>
                
        
</xs:complexType>

        
<xs:complexType name="RandomStim">
            
<xs:annotation>
                
<xs:documentation>A random stimulation at a specific frequency. Note: can be interpreted differently by different simulators!!</xs:documentation>
                
</xs:annotation>    
                
                
<xs:attribute name="frequency" type="bio:FrequencyValue" use="required"/>
                
<xs:attribute name="synaptic_mechanism" type="xs:string" use="required">
                    
<xs:annotation>
                        
<xs:documentation>The name of a synaptic mechanism which will provides the conductance change.
                        This will be fired once every 'spike' at the given frequency
</xs:documentation>
                    
</xs:annotation>
                
</xs:attribute>
                
        
</xs:complexType>

        
<xs:complexType name="InputTarget">
            
<xs:annotation>
                
<xs:documentation>Specifies the cell group and which cells/segments to apply the stimulation</xs:documentation>
            
</xs:annotation>    
                

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:choice>
                    
<xs:annotation>
                        
<xs:documentation>As with populations/projections, there should be two ways to specify the locations of the
                                          stimulations: a list of cell location instances and a template for choosing the cells. Only
                                          the former is currently included...
</xs:documentation>
                    
</xs:annotation>

                    
<xs:element name="site" type="InputSite" minOccurs="1" maxOccurs="unbounded"/>
                    
<!--   <xs:element name="cell_choice" ...    -->

                
</xs:choice>
            
</xs:sequence>
            
          
<xs:attribute name="cell_group" type="xs:string" use="required">
                
<xs:annotation>
                    
<xs:documentation>The cell group to which to apply the stimulation</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>
                
        
</xs:complexType>
        
        
<xs:complexType name="InputSite">
            
<xs:annotation>
                
<xs:documentation>Specifies a location on a cell where input is received</xs:documentation>
            
</xs:annotation>  
            
            
<xs:attribute name="cell_id" type="CellIdInNetwork" use="required"/>
            
<xs:attribute name="segment_id" type="mml:SegmentIdInCell" use="optional" default="0"/>
            
<xs:attribute name="fraction_along" type="meta:ZeroToOne" use="optional" default="0.5"/>
                
        
</xs:complexType>


        
<xs:complexType name="Population">
            
<xs:annotation>
                
<xs:documentation>Description of a cell population of the same type</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="cell_type" type="xs:string"/>

                
<xs:choice>
                    
<xs:annotation>
                        
<xs:documentation>Either instances or a specification of the location</xs:documentation>
                    
</xs:annotation>
                    
<xs:element name="instances" type="Instances"/>
                    
<xs:element name="pop_location" type="PopulationLocation"/>
                
</xs:choice>
            
</xs:sequence>


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

        
</xs:complexType>




        
<xs:complexType name="Instances">
            
<xs:annotation>
                
<xs:documentation>Cell Instance position information</xs:documentation>
            
</xs:annotation>
            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="instance" type="CellInstance" maxOccurs="unbounded"/>
            
</xs:sequence>
        
</xs:complexType>


        
<xs:complexType name="Projection">
            
<xs:annotation>
                
<xs:documentation>Description of how one cell population makes synaptic connections with another</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="source" type="xs:string">
                    
<xs:annotation>
                        
<xs:documentation>Cell population where synaptic connection begins</xs:documentation>
                    
</xs:annotation>
                
</xs:element>
                
<xs:element name="target" type="xs:string">
                    
<xs:annotation>
                        
<xs:documentation>Cell population where synaptic connection terminates</xs:documentation>
                    
</xs:annotation>
                
</xs:element>

                
<xs:element name="synapse_props" type="SynapseProperties" maxOccurs="unbounded">
                    
<xs:annotation>
                        
<xs:documentation>Properties of a synapse associated with this connection.</xs:documentation>
                    
</xs:annotation>
                
</xs:element>

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

                    
<xs:element name="connections" type="Connections"/>
                    
<xs:element name="connectivity_pattern" type="ConnectivityPattern"/>

                
</xs:choice>

            
</xs:sequence>

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

        
</xs:complexType>





        
<xs:complexType name="SynapseProperties">
            
<xs:annotation>
                
<xs:documentation>Information on the synapse which is used in a connection</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>

                
<xs:group ref="meta:metadata"/>

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

                
<xs:element name="default_values" type="SynapseInternalProperties"/>
            
</xs:sequence>

        
</xs:complexType>



        
<xs:complexType name="SynapseInternalProperties">
            
<xs:annotation>
                
<xs:documentation>Variables specifying a single synapse or default values for a set of connections</xs:documentation>
            
</xs:annotation>
            
            
<xs:attribute name="synapse_type" type="xs:string"  use="optional">
                
<xs:annotation>
                    
<xs:documentation>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.</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>

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



        
<xs:complexType name="ConnectivityPattern">
            
<xs:annotation>
                
<xs:documentation>Information on the number of target cells connected to source cells, etc.</xs:documentation>
            
</xs:annotation>

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



            
</xs:choice>

        
</xs:complexType>

        
<xs:complexType name="PerCellConnection">
            
<xs:annotation>
                
<xs:documentation>Connection built iteratively from each pre (or post) cell based on a number of parameters</xs:documentation>
            
</xs:annotation>

                
<xs:attribute name="direction" default="PreToPost">
                    
<xs:annotation>
                        
<xs: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.
</xs:documentation>
                    
</xs:annotation>

                    
<xs:simpleType>
                        
<xs:restriction base="xs:string">
                            
<xs:enumeration value="PreToPost"/>
                            
<xs:enumeration value="PostToPre"/>
                        
</xs:restriction>
                    
</xs:simpleType>
                
</xs:attribute>
                
<xs:attribute name="num_per_source" type="meta:PositiveDouble" use="required" />
                
<xs:attribute name="max_per_target" type="xs:positiveInteger"  use="optional"/>
                
<!-- More settings can be put here, e.g. distance dependence of connections-->

        
</xs:complexType>



        
<xs:complexType name="Connections">
            
<xs:annotation>
                
<xs:documentation>The list of cell connections</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="connection" type="Connection" maxOccurs="unbounded"/>
            
</xs:sequence>

        
</xs:complexType>

        
<xs:complexType name="CellInstance">
            
<xs:annotation>
                
<xs:documentation>An instance of a cell at a the specified location</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="location" type="meta:Point"/>
            
</xs:sequence>

            
<xs:attribute name="id" type="xs:nonNegativeInteger" use="required">
                
<xs:annotation>
                    
<xs:documentation>A unique non negative integer id for the cell instance</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>
            
            
<xs:attribute name="node_id" type="xs:nonNegativeInteger" use="optional">
                
<xs:annotation>
                    
<xs:documentation>An optional specification of the node id on which this cell should run. This is a preliminary
                                      attempt to allow exchange of neuronal networks partitioned for optimal running in
                                      distributed computing environments.
</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>

        
</xs:complexType>


        
<xs:complexType name="Connection">
            
<xs:annotation>
                
<xs:documentation>A network connection</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:element name="pre" type="SynapticLocation"/>
                
<xs:element name="post" type="SynapticLocation"/>
                
<xs:element name="properties" type="SynapseInternalProperties" minOccurs="0" maxOccurs="unbounded"/>

            
</xs:sequence>


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

        
</xs:complexType>


        
<xs:complexType name="SynapticLocation">

            
<xs:attribute name="cell_id" type="xs:integer" use="required">
                
<xs:annotation>
                    
<xs:documentation>The ID of the cell. Must be listed in populations, so that too must deal with instances</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>
            
<xs:attribute name="segment_id" type="xs:integer" use="optional"  default="0">
                
<xs:annotation>
                    
<xs:documentation>The segment where the synapse is located.</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>
            
<xs:attribute name="fraction_along" type="meta:ZeroToOne" use="optional" default="0.5">
                
<xs:annotation>
                    
<xs:documentation>The fraction along the length of the specified segment where the synapse is located.</xs:documentation>
                
</xs:annotation>
            
</xs:attribute>
        
</xs:complexType>
        
        
        




        
<xs:complexType name="PopulationLocation">
            
<xs:annotation>
                
<xs:documentation>Description of the 3D positioning of cells in the population, in place of giving explicit locations for each cell</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:choice>
                    
<xs:element name="random_arrangement" type="RandomArrangement"/>
                    
<xs:element name="grid_arrangement" type="GridArrangement"/>
                    
<!-- More should be included... -->
                
</xs:choice>
            
</xs:sequence>


            
<xs:attribute name="reference" type="xs:string"/>

        
</xs:complexType>


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


        
<xs:complexType name="GridArrangement">
            
<xs:annotation>
                
<xs:documentation>A regular placement of the cells in a number of dimensions</xs:documentation>
            
</xs:annotation>
            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
                
<xs:choice>
                
                    
<xs:group ref="SpatialLayout"/>

                    
<xs:element name="non_spatial_grid" type="meta:NonSpatialGrid">
                        
<xs:annotation>
                            
<xs:documentation>Specifying this means the precise spatial location of the cells is irrelvant</xs:documentation>
                        
</xs:annotation>
                    
</xs:element>

                
</xs:choice>
                
            
</xs:sequence>
            
        
</xs:complexType>


        
        
<xs:group name="SpatialLayout">
            
<xs:annotation>
                
<xs:documentation>Layout of the cells according to x,y,z spatial coordinates</xs:documentation>
            
</xs:annotation>
            
            
<xs:sequence>
                
<xs:element name="rectangular_location" type="meta:RectangularBox">
                    
<xs:annotation>
                        
<xs: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).</xs:documentation>
                    
</xs:annotation>
                
</xs:element>


                
<xs:element name="spacing" >
                    
<xs:annotation>
                        
<xs:documentation>Separation of the cells in each dimension</xs:documentation>
                    
</xs:annotation>
                    
<xs:complexType>
                        
<xs:attribute name="x" type="xs:double"/>
                        
<xs:attribute name="y" type="xs:double"/>
                        
<xs:attribute name="z" type="xs:double"/>
                    
</xs:complexType>
                
</xs:element>
            
</xs:sequence>
        
</xs:group>



        
<xs:complexType name="PotentialSynapticLocation">
            
<xs:annotation>
                
<xs:documentation>Subset of sections on cell where synaptic connection of a particular type is allowed</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:group ref="meta:metadata"/>
                
<xs:sequence>
                    
<xs:element name="synapse_type" type="xs:string">
                        
<xs:annotation>
                            
<xs:documentation>Which of the synaptic mechanisms can be present</xs:documentation>
                        
</xs:annotation>
                    
</xs:element>
                    
<xs:element name="synapse_direction" type="SynapseDirection" minOccurs="0">
                        
<xs:annotation>
                            
<xs:documentation>Whether this synapse location allows a presynaptic connection, a postsynaptic
                                connection or either
</xs:documentation>
                        
</xs:annotation>
                    
</xs:element>
                    
<xs:element name="group" type="xs:string" maxOccurs="unbounded">
                        
<xs:annotation>
                            
<xs:documentation>List of groups of sections allowing the synapse</xs:documentation>
                        
</xs:annotation>
                    
</xs:element>
                
</xs:sequence>
            
</xs:sequence>
        
</xs:complexType>



        
<xs:simpleType name="SynapseDirection">
            
<xs:annotation>
                
<xs:documentation>Indicated whether a potential synapse location allows a presynaptic connection
                of the specified type, a postsynaptic connection or either.
</xs:documentation>
            
</xs:annotation>
            
<xs:restriction base="xs:string">
                
<xs:enumeration value="pre"/>
                
<xs:enumeration value="post"/>
                
<xs:enumeration value="preAndOrPost"/>
            
</xs:restriction>
        
</xs:simpleType>
        
        

        
<xs:simpleType name="CellIdInNetwork">
            
<xs:annotation>
                
<xs:documentation>Id of individual cell in a network</xs:documentation>
            
</xs:annotation>
            
<xs:restriction base="xs:nonNegativeInteger">
            
</xs:restriction>
        
</xs:simpleType>


        
<xs:group name="BiophysicsNetworkElements">
            
<xs:annotation>
                
<xs:documentation>The elements in biophysics needed to specify a network connection</xs:documentation>
            
</xs:annotation>

            
<xs:sequence>
                
<xs:element name="potentialSynapticLocation" type="PotentialSynapticLocation" minOccurs="0" maxOccurs="unbounded" />
            
</xs:sequence>
        
</xs:group>


</xs:schema>