Viewing XML file: NeuroMLFiles/Schemata/v1.4/Level1/Metadata_v1.4.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/metadata/schema"
xmlns="http://morphml.org/metadata/schema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="unqualified">

  
<!--

    This file specifies a number of basic elements which can be used by NeuroML v1.4 compliant files
    
    Authors: Sharon Crook, Joe Svitak, Padraig Gleeson and members of the NeuroML project
    
-->

      
<xs:annotation>
        
<xs:documentation>Definition of elements common to a number of NeuroML files.</xs:documentation>
        
</xs:annotation>
    
    
    
<xs:complexType name="Point">
        
<xs:annotation>
            
<xs:documentation>A 3D point with optional diameter. Note: the units for these values
                        will be specified in the file in which the element is used, e.g.
            in a MorphML file with &lt;b&gt;lengthUnits="micron"&lt;/b&gt; in the morphml element
</xs:documentation>
        
</xs:annotation>
        
<xs:attribute name="x" type="xs:double" use="required"/>
        
<xs:attribute name="y" type="xs:double" use="required"/>
        
<xs:attribute name="z" type="xs:double" use="required"/>
        
<xs:attribute name="diameter" type="xs:double" use="optional"/>
    
</xs:complexType>
        
    
<!-- Definition of Points follows. -->
    
<xs:complexType name="Points">
        
<xs:annotation>
            
<xs:documentation>A collection of points.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="point" type="Point" maxOccurs="unbounded"/>
        
</xs:sequence>
        
<xs:attribute name="name" type="xs:string" use="optional"/>
    
</xs:complexType>
        
    
    
<!-- Definition of Sphere follows. -->
    
<xs:complexType name="Sphere">
        
<xs:annotation>
            
<xs:documentation>A spherical structure such as a cell body or cell.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="center" type="Point">
                
<xs:annotation>
                    
<xs:documentation>Diameter of sphere is obtained from center Point.</xs:documentation>
                
</xs:annotation>
            
</xs:element>
        
</xs:sequence>
        
<xs:attribute name="name" type="xs:string" use="optional"/>
    
</xs:complexType>
    
    
<!-- Definition of RectangularBox follows. -->
    
<xs:complexType name="RectangularBox">
        
<xs:annotation>
            
<xs:documentation>A Rectangular Box for locating cells in 3D.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="corner" type="Point">
                
<xs:annotation>
                    
<xs:documentation>Location of vertex with lowest x, y, z coords.</xs:documentation>
                
</xs:annotation>
            
</xs:element>
            
<xs:element name="size">
                
<xs:annotation>
                    
<xs:documentation>Size of box. Note if width, height or depth is zero, implies a lower dimension box, e.g. 2D plane.</xs:documentation>
                
</xs:annotation>
                                
<xs:complexType>
                                    
<xs:attribute name="width" type="xs:double"/>
                                    
<xs:attribute name="height" type="xs:double"/>
                                    
<xs:attribute name="depth" type="xs:double"/>
                                
</xs:complexType>
            
</xs:element>
        
</xs:sequence>
        
<xs:attribute name="name" type="xs:string" use="optional"/>
    
</xs:complexType>
        
    
        
        
    
<!-- Definition of Manifold follows. -->
    
<xs:complexType name="Manifold">
        
<xs:annotation>
            
<xs:documentation>A surface.</xs:documentation>
        
</xs:annotation>
        
<xs:complexContent>
            
<xs:extension base="Points"/>
        
</xs:complexContent>
    
</xs:complexType>
        

        
        
    
<!-- Definition of Polygon follows. -->
    
<xs:complexType name="Polygon">
        
<xs:annotation>
            
<xs:documentation>A closed structure represented by a list of points where the first point connects with the last point.</xs:documentation>
        
</xs:annotation>
        
<xs:complexContent>
            
<xs:extension base="Points"/>
        
</xs:complexContent>
    
</xs:complexType>
        
        
    
<!-- Definition of Polyhedron follows. -->
    
<xs:complexType name="Polyhedron">
        
<xs:annotation>
            
<xs:documentation>A 3d surface to represent the cell body or histological structure.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="polygons">
                
<xs:annotation>
                    
<xs:documentation>Collection of polygons defining the polyhedron.</xs:documentation>
                
</xs:annotation>
                
<xs:complexType>
                    
<xs:sequence>
                        
<xs:element name="polygon" type="Polygon" maxOccurs="unbounded"/>
                    
</xs:sequence>
                
</xs:complexType>
            
</xs:element>
        
</xs:sequence>
    
</xs:complexType>
        
        
        
    
<!-- Definition of Annotation follows -->
    
<xs:complexType name="Annotation">
        
<xs:annotation>
            
<xs:documentation>Concise processing directives for downstream applications.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
        
</xs:sequence>
    
</xs:complexType>
        
        
    
<!-- Definition of LengthUnits follows. -->
    
<xs:simpleType name="LengthUnits">
        
<xs:annotation>
            
<xs:documentation>Enumeration of length units. Used in MorphML Level 1 files, where length is the only important dimension.</xs:documentation>
        
</xs:annotation>
        
<xs:restriction base="xs:string">
            
<xs:enumeration value="micron"/>
            
<xs:enumeration value="millimetre"/>
            
<xs:enumeration value="metre"/>
        
</xs:restriction>
    
</xs:simpleType>
        
        
    
<!-- Definition of VolumeUnits follows. -->
    
<xs:simpleType name="VolumeUnits">
        
<xs:annotation>
            
<xs:documentation>Enumeration of volume units.</xs:documentation>
        
</xs:annotation>
        
<xs:restriction base="xs:string">
            
<xs:enumeration value="cubic_millimetre"/>
            
<xs:enumeration value="millilitre"/>
            
<xs:enumeration value="litre"/>
        
</xs:restriction>
    
</xs:simpleType>
        
        
    
<!-- Definition of Notes follows. -->
    
<xs:simpleType name="Notes">
        
<xs:annotation>
            
<xs:documentation>Textual human readable notes related to the element in question</xs:documentation>
        
</xs:annotation>
        
<xs:restriction base="xs:string"/>
    
</xs:simpleType>
        
        
    
<!-- Definition of Group follows. -->
    
<xs:simpleType name="Group">
        
<xs:annotation>
            
<xs:documentation>Allows elements to be associated, such as for grouping segments or cables into the basal arbor.</xs:documentation>
        
</xs:annotation>
        
<xs:restriction base="xs:string"/>
    
</xs:simpleType>
        
        
    
<!-- Definition of Property follows. -->
    
<xs:complexType name="Property">
        
<xs:annotation>
            
<xs:documentation>A Tag/Value/Type tuple.</xs:documentation>
        
</xs:annotation>
        
<xs:all>
            
<xs:element name="tag" type="xs:string"/>
            
<xs:element name="value" type="xs:string"/>
        
</xs:all>
    
</xs:complexType>
        
        
    
<!-- Definition of Properties follows. -->
    
<xs:complexType name="Properties">
        
<xs:annotation>
            
<xs:documentation>A collection of Properties</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="property" type="Property" minOccurs="0" maxOccurs="unbounded"/>
        
</xs:sequence>
    
</xs:complexType>
        
        
    
<!-- Definition of PropertyDetail follows. -->
    
<xs:complexType name="PropertyDetail">
        
<xs:annotation>
            
<xs:documentation>Metadata for each Property.</xs:documentation>
        
</xs:annotation>
        
<xs:all>
            
<xs:element name="description" type="xs:string"/>
            
<xs:element name="type" type="xs:anyType"/>
        
</xs:all>
        
<xs:attribute name="property" type="xs:string"/>
    
</xs:complexType>
        
        
    
<!-- Definition of GroupDetail follows. -->
    
<xs:complexType name="GroupDetail">
        
<xs:annotation>
            
<xs:documentation>Metadata for each Group.</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="description" type="xs:string"/>
            
<xs:element name="properties" type="Properties" minOccurs="0" maxOccurs="unbounded"/>
        
</xs:sequence>
        
<xs:attribute name="group" type="xs:string"/>
    
</xs:complexType>
        
    
<!-- Definition of metadata follows. -->        
    
<xs:group name="metadata">
        
<xs:annotation>
            
<xs:documentation>General metadata which can be applied to a number of elements</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="notes" type="Notes" minOccurs="0"/>
            
<xs:element name="properties" type="Properties" minOccurs="0"/>
            
<xs:element name="annotation" type="Annotation" minOccurs="0"/>
            
<xs:element name="group" type="Group" minOccurs="0" maxOccurs="unbounded"/>
        
</xs:sequence>
    
</xs:group>
        
        
        
<!-- Definition of YesNo follows. -->
        
<xs:simpleType name="YesNo">
            
<xs:annotation>
                
<xs:documentation>String with only yes or no allowed</xs:documentation>
            
</xs:annotation>
            
<xs:restriction base="xs:string">
                
<xs:enumeration value="yes"/>
                
<xs:enumeration value="no"/>
            
</xs:restriction>
        
</xs:simpleType>
              
        
        
<!-- Definition of ZeroToOne follows. -->
        
<xs:simpleType name="ZeroToOne">
            
<xs:annotation>
                
<xs:documentation>Double restricted to between 1 and 0</xs:documentation>
            
</xs:annotation>
            
<xs:restriction base="xs:double">      
                
<xs:minInclusive value="0"/>
                
<xs:maxInclusive value="1"/>
            
</xs:restriction>
        
</xs:simpleType>
        
        
<!-- Definition of NonNegativeDouble follows. -->
        
<xs:simpleType name="NonNegativeDouble">
            
<xs:annotation>
                
<xs:documentation>Double restricted to 0 or greater</xs:documentation>
            
</xs:annotation>
            
<xs:restriction base="xs:double">      
                
<xs:minInclusive value="0"/>
            
</xs:restriction>
        
</xs:simpleType>
        
        
        
        
        
        
        
        
<!-- Possible reference extensions. -->
        
        
    
<xs:group name="referencedata">
        
<xs:annotation>
            
<xs:documentation>General metadata about references for the model.
                            Note: This element will most likely change when a new set of schema
                            files is adopted for adding references, authors, citations, etc.
</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="authorList" type="Authors" minOccurs="0"/>
            
<xs:element name="publication" type="Publication" minOccurs="0" maxOccurs="unbounded"/>
            
<xs:element name="neuronDBref" type="NeuronDBReference" minOccurs="0"/>
        
</xs:sequence>
    
</xs:group>        
        
        
    
<xs:complexType name="NeuronDBReference">
        
<xs:annotation>
            
<xs:documentation>A reference to an entity in NeuronDB
                            Note: This element will most likely change when a new set of schema
                            files is adopted for adding references, authors, citations, etc. See
                mailing lists for latest status
</xs:documentation>
        
</xs:annotation>
        
<xs:all>
            
<xs:element name="modelName" type="xs:string"/>
            
<xs:element name="uri" type="xs:string"/>
        
</xs:all>
    
</xs:complexType>  
      
        
          
    
<xs:complexType name="Publication">
        
<xs:annotation>
            
<xs:documentation>A reference to a publication
                            Note: This element will most likely change when a new set of schema
                            files is adopted for adding references, authors, citations, etc. See
                mailing lists for latest status
</xs:documentation>
        
</xs:annotation>
        
<xs:all>
            
<xs:element name="fullTitle" type="xs:string"/>
            
<xs:element name="pubmedRef" type="xs:string"/>
        
</xs:all>
    
</xs:complexType>  
          
    
<xs:complexType name="Authors">
        
<xs:annotation>
            
<xs:documentation>A reference to an author
                            Note: This element will most likely change when a new set of schema
                            files is adopted for adding references, authors, citations, etc. See
                mailing lists for latest status
</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="modelAuthor" type="Person" maxOccurs="unbounded"  minOccurs="0">
                            
<xs:annotation>
                                    
<xs:documentation>Author of the original model</xs:documentation>
                            
</xs:annotation>
            
</xs:element>
            
<xs:element name="modelTranslator" type="Person" maxOccurs="unbounded" minOccurs="0">
                            
<xs:annotation>
                                    
<xs:documentation>Person who translated the model to NeuroML</xs:documentation>
                            
</xs:annotation>
            
</xs:element>
        
</xs:sequence>
    
</xs:complexType>        
        
        
    
<xs:complexType name="Person">
        
<xs:annotation>
            
<xs:documentation>A generic reference to a person, for authorship, etc</xs:documentation>
        
</xs:annotation>
        
<xs:sequence>
            
<xs:element name="name" type="xs:string">
            
</xs:element>
            
<xs:element name="institution" type="xs:string" minOccurs="0">
            
</xs:element>
            
<xs:element name="email" type="xs:string" minOccurs="0">
            
</xs:element>
        
</xs:sequence>
    
</xs:complexType>    
        
        

</xs:schema>