Changeset 2977


Ignore:
Timestamp:
01/11/07 12:00:38 (12 years ago)
Author:
lawrence
Message:

Version 10-01 of NumSim - major syntax changes, minor semantic changes!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery/trunk/schema/numsim/NumSim.xsd

    r2824 r2977  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" 
    3     xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" 
    4     xmlns:moles="http://ndg.nerc.ac.uk/moles" xmlns:xhtml="http://www.w3.org/1999/xhtml"> 
     2<xs:schema xmlns:moles="http://ndg.nerc.ac.uk/moles" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     3    xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:numsim="http://ndg.nerc.ac.uk/numsim" 
     4    targetNamespace="http://ndg.nerc.ac.uk/numsim" attributeFormDefault="unqualified" 
     5    elementFormDefault="qualified"> 
     6    <!-- Note the change to elementFormDefault, and consequences throughout. Should simplify validation! --> 
    57    <xs:annotation> 
    6         <xs:documentation> V009b BNL, August 17, 2007:  
    7            Adding xhtml support in some places.</xs:documentation> 
    8         <xs:documentation> V009 Author: Bryan Lawrence; Version Date: Jun 28, 2007</xs:documentation> 
    9         <xs:documentation> Previous Version: Bryan Lawrence, Feb 20 2007, May 10th, 2006 </xs:documentation> 
     8        <xs:documentation>This is V010-01 (BNL, 2007-10-29) Substantial changes at V009 have mostly 
     9            been backed out. V010 changes are noted with respect to V00805.</xs:documentation> 
     10        <xs:documentation>Revision History: v00801, 2007-04-25, Phil Bentley, Proposed syntax 
     11            changes to follow GML 'in-house' style. v00802, 2007-05-31, Phil Bentley, Inserted 
     12            comments and prettified. v00803, 2007-07-06, Phil Bentley, Added version attribute to 
     13            CodeBaseType definition. v00804, 2007-07-18, Phil Bentley, Added IPCC SRES A1FI to 
     14            BoundaryConditionCodelist. v00805, 2007-07-30, Phil Bentley, Added mandatory name 
     15            element to ExperimentType.</xs:documentation> 
     16        <xs:documentation>Previous Version: Bryan Lawrence, Feb 20 2007, May 10th, 2006</xs:documentation> 
    1017        <xs:documentation>The expectation is that this schema will be used initially by import into 
    1118            discovery records (ideally ISO19115 based). While such discovery records already include 
     
    2128            metadata schema will exist, such as the Numerical Model Metadata Suite (hereafter the 
    2229            NMM). Where such schema and instances exist, it is desirable that the NumSim instances 
    23             are automatically generated from the more detailed metadata. </xs:documentation> 
     30            are automatically generated from the more detailed metadata.</xs:documentation> 
    2431        <xs:documentation>The NumSim schema exists in a context where NumSim compliant xml metadata 
    2532            is to included in a document conforming to an (extensible) parent schema. That parent 
     
    4249            consists of multiple realizations of the phenomena (an ensemble), and (3) Where the 
    4350            dataset consists of a single realization of the simulated phenomena, but where that 
    44             realization has been generated from an ensemble average (an ensemble “climatology”). </xs:documentation> 
     51            realization has been generated from an ensemble average (an ensemble “climatology”).</xs:documentation> 
    4552        <xs:documentation>There are a number of schema which are imported here, copies of which are 
    4653            loaded into a directory of schema. These include xlinks.xsd and a number of draft 
    47             ISO19139 schema components. </xs:documentation> 
     54            ISO19139 schema components.</xs:documentation> 
    4855    </xs:annotation> 
    49     <xs:import namespace="http://www.w3.org/1999/xlink" 
    50         schemaLocation="../schemas.opengis.net/xlink/1.0.0/xlinks.xsd"/> 
    51     <xs:import namespace="http://www.isotc211.org/2005/gco" 
    52         schemaLocation="../iso19139/gml3.1.1version/gco/gco.xsd"/> 
    53     <xs:import namespace="http://www.isotc211.org/2005/gmd" 
    54         schemaLocation="../iso19139/gml3.1.1version/gmd/citation.xsd"/> 
     56    <xs:import namespace="http://www.w3.org/1999/xlink"/> 
    5557    <xs:import namespace="http://ndg.nerc.ac.uk/moles" 
    5658        schemaLocation="http://ndg.nerc.ac.uk/schema/ndgmetadata1.3.3.xsd"/> 
    57     <xs:attributeGroup name="NS_xlink"> 
    58         <xs:annotation> 
    59             <xs:documentation> The attributes are those of a hyperlink, with the addition of a role 
    60                 which we might later want to control in a vocabulary</xs:documentation> 
     59    <!-- --> 
     60    <!-- Definition of the xlink attribute group. --> 
     61    <!-- --> 
     62    <xs:attributeGroup name="xlink"> 
     63        <xs:annotation> 
     64            <xs:documentation>The attributes are those of a hyperlink, with the addition of a role 
     65                which we might later want to control in a vocabulary.</xs:documentation> 
     66            <!--Modified in V010-01 to use xs:date--> 
    6167        </xs:annotation> 
    6268        <xs:attribute ref="xlink:href" use="required"/> 
    6369        <xs:attribute ref="xlink:title" use="required"/> 
    6470        <xs:attribute ref="xlink:role" use="optional"/> 
    65         <xs:attribute name="dateOfCitation" type="gco:Date_Type" use="optional"/> 
     71        <xs:attribute name="dateOfCitation" type="xs:date" use="optional"/> 
    6672    </xs:attributeGroup> 
    67     <xs:complexType name="NS_Link"> 
    68         <xs:attributeGroup ref="NS_xlink"/> 
    69     </xs:complexType> 
    70     <xs:complexType name="NS_RelatedTo"> 
    71         <xs:annotation> 
    72             <xs:documentation> Used for any relationships.</xs:documentation> 
    73         </xs:annotation> 
    74         <xs:sequence> 
    75             <xs:element name="NS_Relationship" minOccurs="1" maxOccurs="1" type="xs:string"/> 
    76         </xs:sequence> 
    77         <xs:attributeGroup ref="NS_xlink"/> 
    78     </xs:complexType> 
    79     <xs:complexType name="NS_Description" mixed="true"> 
    80         <xs:sequence> 
    81             <xs:any namespace="xhtml" minOccurs="0" maxOccurs="unbounded" processContents="lax"/> 
    82             <xs:element name="NS_RelatedURI" type="NS_RelatedTo" minOccurs="0" maxOccurs="unbounded" 
    83             /> 
    84         </xs:sequence> 
    85     </xs:complexType> 
    86     <xs:complexType name="NS_ReferenceList"> 
     73    <!-- --> 
     74    <!-- Definition of the dictionaryEntryType --> 
     75    <!-- New in V010-01 --> 
     76    <!--  --> 
     77    <xs:complexType name="dictionaryEntryType" mixed="true"> 
     78        <xs:annotation> 
     79            <xs:documentation>Provides a comma separated list of keywords from an external 
     80                controlled vocabulary</xs:documentation> 
     81        </xs:annotation> 
     82        <xs:all> 
     83            <xs:element name="dictionary" type="xs:anyURI" minOccurs="1" maxOccurs="1"/> 
     84        </xs:all> 
     85    </xs:complexType> 
     86    <!-- --> 
     87    <!-- Definition of the RelationshipType. --> 
     88    <!-- --> 
     89    <xs:complexType name="RelationshipType"> 
     90        <xs:annotation> 
     91            <xs:documentation>Used for any relationships.</xs:documentation> 
     92            <!-- Modified in V010-01 to provide alternative controlled vocabulary to a description type which has 
     93            been decremented to a simple textstring. Strongly prefer using the controlled vocabulary! --> 
     94        </xs:annotation> 
    8795        <xs:choice> 
    88             <xs:sequence> 
    89                 <xs:annotation> 
    90                     <xs:documentation> An URI can be provided to allow an index of references to be 
    91                         constructed. This is included to allow strings which reference publications 
    92                         differently to, for example, share the same DOI, and be indexed on these 
    93                         strings rather than (or as well as) the reference string content itself. 
    94                     </xs:documentation> 
    95                 </xs:annotation> 
    96                 <xs:element name="NS_Reference" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> 
    97                 <xs:sequence minOccurs="0"> 
    98                     <xs:element name="NS_URI" type="xs:string" minOccurs="1" maxOccurs="1"/> 
    99                     <xs:element name="NS_URIScheme" type="xs:string" minOccurs="1" maxOccurs="1"/> 
    100                 </xs:sequence> 
    101             </xs:sequence> 
    102             <xs:element name="NS_Citation" type="gmd:CI_Citation_Type" minOccurs="1" 
    103                 maxOccurs="unbounded"/> 
     96            <xs:element name="description" minOccurs="1" maxOccurs="1" type="xs:string"/> 
     97            <xs:element name="relationship" minOccurs="1" maxOccurs="unbounded" 
     98                type="numsim:RelatedToCodelist"/> 
    10499        </xs:choice> 
    105     </xs:complexType> 
    106     <xs:complexType name="NS_ControlledParameters"> 
    107         <xs:sequence> 
    108             <xs:element name="NS_NamespaceURI" type="xs:anyURI"> 
     100        <xs:attributeGroup ref="numsim:xlink"/> 
     101    </xs:complexType> 
     102    <!-- --> 
     103    <!-- Definition of the RelatedToCodelist --> 
     104    <!-- All new in V010 --> 
     105    <!-- --> 
     106    <xs:simpleType name="RelatedToCodelist"> 
     107        <xs:annotation> 
     108            <xs:documentation>This the controlled vocabulary for the various relationships encoded 
     109                in links. It should correspond to the content at C601 in the vocab server, where 
     110                full definitions exist. See http://vocab.ndg.nerc.ac.uk. .</xs:documentation> 
     111        </xs:annotation> 
     112        <xs:restriction base="xs:string"> 
     113            <xs:enumeration value="earlierVersionOf"/> 
     114            <xs:enumeration value="derivedVersionOf"/> 
     115            <xs:enumeration value="componentOf"/> 
     116            <xs:enumeration value="subcomponentOf"/> 
     117            <xs:enumeration value="variantOf"/> 
     118            <xs:enumeration value="similarTo"/> 
     119            <xs:enumeration value="activityOf"/> 
     120            <xs:enumeration value="successorTo"/> 
     121        </xs:restriction> 
     122    </xs:simpleType> 
     123    <!-- --> 
     124    <!-- Definition of the ContentType --> 
     125    <!-- ContentType introduced at V010-01 to bundle xhtml children into one element for easier parsing to html --> 
     126    <!-- --> 
     127    <xs:complexType name="ContentType" mixed="true"> 
     128        <xs:annotation> 
     129            <xs:documentation>Intended to allow mixed text and xhtml</xs:documentation> 
     130        </xs:annotation> 
     131        <xs:sequence> 
     132            <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded" 
     133                processContents="lax"/> 
     134        </xs:sequence> 
     135    </xs:complexType> 
     136    <!-- Definition of the DescriptionType. --> 
     137    <!-- Note the addition of optional keywords at V010-01 --> 
     138    <!-- --> 
     139    <xs:complexType name="DescriptionType" mixed="false"> 
     140        <xs:annotation> 
     141            <xs:documentation>Modified in V010-01 to use the new RelationshipType, and to ensure 
     142                that the content was split out (to make handling the xhtml 
     143            easier.</xs:documentation> 
     144        </xs:annotation> 
     145        <xs:sequence> 
     146            <xs:element name="contents" type="numsim:ContentType" minOccurs="0" maxOccurs="1"/> 
     147            <xs:element name="keywords" type="numsim:dictionaryEntryType" minOccurs="0" 
     148                maxOccurs="1"/> 
     149            <xs:element name="relatedTo" type="numsim:RelationshipType" minOccurs="0" 
     150                maxOccurs="unbounded"/> 
     151        </xs:sequence> 
     152    </xs:complexType> 
     153    <!-- --> 
     154    <!-- Definition of the ReferenceListType. --> 
     155    <!-- --> 
     156    <xs:complexType name="ReferenceListType"> 
     157        <!-- Modified in V010-01 to remove gmd:citation for the sake of validation etc, in doing so, we've introduced 
     158            a referenceType which can have an explicit URLs via an xlink and which uses mixed content --> 
     159        <xs:sequence> 
     160            <xs:element name="reference" type="numsim:ReferenceType" minOccurs="1" 
     161                maxOccurs="unbounded"/> 
     162        </xs:sequence> 
     163    </xs:complexType> 
     164    <!--- --> 
     165    <!-- Definition of the reference type --> 
     166    <!-- Basically the same as the content type, but with attributes of a link and a link type attribute --> 
     167    <!--  --> 
     168    <xs:complexType name="ReferenceType" mixed="true"> 
     169        <xs:annotation> 
     170            <xs:documentation>Used for a human readable reference string. The attributes can be used 
     171                to provide a clickable link where appropriate (and identify the type uri/url as 
     172                well). Supports mixed text and xhtml</xs:documentation> 
     173        </xs:annotation> 
     174        <xs:sequence> 
     175            <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="0" maxOccurs="unbounded" 
     176                processContents="lax"/> 
     177        </xs:sequence> 
     178        <xs:attribute name="uriScheme"/> 
     179        <xs:attributeGroup ref="numsim:xlink"/> 
     180    </xs:complexType> 
     181 
     182    <!-- --> 
     183    <!-- Definition of the ControlledParameterListType. --> 
     184    <!-- --> 
     185    <xs:complexType name="ControlledParameterListType"> 
     186        <!-- Modified at V010-01 to make explicit the notion that controlled parameters can be assembled from multiple lists (it was always implicit)--> 
     187        <xs:sequence> 
     188            <xs:element name="namespaceURI" type="xs:anyURI" minOccurs="1" maxOccurs="unbounded"> 
    109189                <xs:annotation> 
    110190                    <xs:documentation>Rather than rely on including xml namespaces, which can be 
     
    114194                </xs:annotation> 
    115195            </xs:element> 
    116             <xs:element name="NS_Value" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> 
    117         </xs:sequence> 
    118     </xs:complexType> 
    119     <xs:simpleType name="NS_InitialConditionTypes" id="NumSim_InitialConditionTypes_007"> 
     196            <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="unbounded"/> 
     197        </xs:sequence> 
     198    </xs:complexType> 
     199    <!-- --> 
     200    <!-- Definition of the InitialConditionCodelist. --> 
     201    <!-- Extended at V010-01 --> 
     202    <!-- --> 
     203    <xs:simpleType name="InitialConditionCodelist"> 
    120204        <xs:restriction base="xs:string"> 
    121205            <xs:enumeration value="Objective Analysis"/> 
     
    124208            <xs:enumeration value="Climatology"/> 
    125209            <xs:enumeration value="Random"/> 
    126         </xs:restriction> 
    127     </xs:simpleType> 
    128     <xs:simpleType name="NS_ModelComponents"> 
     210            <!-- New in V010-01--> 
     211            <xs:enumeration value="PreviousIntegration"/> 
     212        </xs:restriction> 
     213    </xs:simpleType> 
     214    <!-- --> 
     215    <!-- Definition of the ModelComponentCodelist. --> 
     216    <!-- --> 
     217    <xs:simpleType name="ModelComponentCodelist"> 
    129218        <xs:annotation> 
    130219            <xs:documentation>This the controlled vocabulary for the various model sub components 
    131                 which might be able to run independently but could be coupled</xs:documentation> 
    132         </xs:annotation> 
    133         <xs:restriction base="xs:string" id="NumSIm_ModelComponents_007"> 
     220                which might be able to run independently but could be coupled.</xs:documentation> 
     221        </xs:annotation> 
     222        <xs:restriction base="xs:string"> 
    134223            <xs:enumeration value="Atmosphere"/> 
    135224            <xs:enumeration value="Ocean"/> 
     
    139228            <xs:enumeration value="Aerosol"/> 
    140229            <xs:enumeration value="Coupler"/> 
    141         </xs:restriction> 
    142     </xs:simpleType> 
    143     <xs:simpleType name="NS_ModelCategories"> 
     230            <!-- New in V010-01--> 
     231            <xs:enumeration value="CarbonCycle"/> 
     232            <xs:enumeration value="RadiationScheme"/> 
     233            <xs:enumeration value="BoundaryLayer"/> 
     234            <xs:enumeration value="ConvectionScheme"/> 
     235            <xs:enumeration value="GravityWaves"/> 
     236            <xs:enumeration value="CloudScheme"/> 
     237            <xs:enumeration value="PrecipitationScheme"/> 
     238            <xs:enumeration value="AdvectionScheme"/> 
     239            <xs:enumeration value="DiffusionScheme"/> 
     240            <xs:enumeration value="AerosolScheme"/> 
     241            <xs:enumeration value="RiverScheme"/> 
     242            <xs:enumeration value="Filtering"/> 
     243            <xs:enumeration value="MixedLayerScheme"/> 
     244            <xs:enumeration value="OceanStraitScheme"/> 
     245        </xs:restriction> 
     246    </xs:simpleType> 
     247 
     248    <!-- --> 
     249    <!-- Definition of the ModelCategoryCodelist. --> 
     250    <!-- --> 
     251    <xs:simpleType name="ModelCategoryCodelist"> 
    144252        <xs:annotation> 
    145253            <xs:documentation>This the controlled vocabulary that categorises how the model is set 
     
    157265            <xs:enumeration value="Slab"/> 
    158266            <xs:enumeration value="Trajectory"/> 
    159         </xs:restriction> 
    160     </xs:simpleType> 
    161     <xs:simpleType name="NS_BoundaryConditionNames"> 
     267            <!-- New in V010-01--> 
     268            <xs:enumeration value="hydrostatic"/> 
     269            <xs:enumeration value="non-hydrostatic"/> 
     270        </xs:restriction> 
     271    </xs:simpleType> 
     272    <!-- --> 
     273    <!-- Definition of the BoundaryConditionCodelist. --> 
     274    <!-- --> 
     275    <xs:simpleType name="BoundaryConditionCodelist"> 
    162276        <xs:annotation> 
    163277            <xs:documentation>This the controlled vocabulary for Forcing 
     
    169283            <xs:enumeration value="IPCC SRES B1"/> 
    170284            <xs:enumeration value="IPCC SRES B2"/> 
     285            <xs:enumeration value="IPCC SRES A1FI"/> 
    171286            <xs:enumeration value="IS92A"/> 
    172287            <xs:enumeration value="Preindustrial"/> 
     
    181296        </xs:restriction> 
    182297    </xs:simpleType> 
    183     <xs:simpleType name="NS_EnsembleTypes"> 
     298    <!-- --> 
     299    <!-- Definition of the EnsembleTypeCodelist. --> 
     300    <!-- --> 
     301    <xs:simpleType name="EnsembleTypeCodelist"> 
    184302        <xs:annotation> 
    185303            <xs:documentation>This the controlled vocabulary for the types of ensemble. Note that a 
     
    187305            types.</xs:documentation> 
    188306        </xs:annotation> 
    189         <xs:restriction base="xs:string" id="NumSim_EnsembleTypes_007"> 
     307        <xs:restriction base="xs:string"> 
    190308            <xs:enumeration value="Initial Condition"/> 
    191309            <xs:enumeration value="Perturbed Physics"/> 
     
    197315        </xs:restriction> 
    198316    </xs:simpleType> 
    199     <xs:complexType name="NS_InitialCondition" mixed="false"> 
    200         <xs:annotation> 
    201             <xs:documentation> Multiple initial condition elements can appear to cover how different 
     317 
     318    <!-- --> 
     319    <!-- Definition of the InitialConditionType. --> 
     320    <!-- --> 
     321    <xs:complexType name="InitialConditionType" mixed="false"> 
     322        <xs:annotation> 
     323            <xs:documentation>Multiple initial condition elements can appear to cover how different 
    202324                parts of the model system were initialized. If present, the main requirement is that 
    203325                the initial condition be described in the description element and those parameters 
     
    205327                description (or as well as) the type attribute can identify the sort of initial 
    206328                condition from the InitialConditionTypes controlled vocabulary.</xs:documentation> 
    207             <xs:documentation> Where the initial condition is in fact a perturbed version of the 
     329            <xs:documentation>Where the initial condition is in fact a perturbed version of the 
    208330                “real” values for the starting time (perhaps as part of an ensemble), the perturbed 
    209331                Boolean attribute can be set true (the default is false). Where the perturbation is 
    210332                physically meaningful (for example, using singular vectors), this can be indicated 
    211                 in the description. </xs:documentation> 
    212         </xs:annotation> 
    213         <xs:sequence> 
    214             <xs:element name="NS_Description" type="NS_Description" minOccurs="0" maxOccurs="1"/> 
    215             <xs:element name="NS_ControlledParameters" type="NS_ControlledParameters" minOccurs="0" 
    216                 maxOccurs="unbounded"/> 
    217             <xs:element name="NS_References" type="NS_ReferenceList" minOccurs="0" maxOccurs="1"/> 
    218         </xs:sequence> 
    219         <xs:attribute name="NS_Type" type="NS_InitialConditionTypes"/> 
    220         <xs:attribute name="NS_Perturbed" type="xs:boolean"/> 
    221     </xs:complexType> 
    222     <xs:complexType name="NS_BoundaryCondition"> 
    223         <xs:sequence> 
    224             <xs:element name="NS_Description" type="NS_Description" minOccurs="1"/> 
    225             <xs:element name="NS_ControlledParameters" type="NS_ControlledParameters" minOccurs="0" 
    226                 maxOccurs="unbounded"/> 
    227             <xs:element name="NS_References" type="NS_ReferenceList" minOccurs="0" maxOccurs="1"/> 
    228             <xs:element name="NS_BoundaryDataset" type="NS_RelatedTo" minOccurs="0" maxOccurs="1"/> 
    229         </xs:sequence> 
    230         <xs:attribute name="NS_Type" type="NS_BoundaryConditionNames"/> 
    231     </xs:complexType> 
    232     <xs:complexType name="NS_EnsembleDetails"> 
     333                in the description.</xs:documentation> 
     334        </xs:annotation> 
     335        <xs:sequence> 
     336            <xs:element name="description" type="numsim:DescriptionType" minOccurs="0" maxOccurs="1"/> 
     337            <xs:element name="controlledParameters" type="numsim:ControlledParameterListType" 
     338                minOccurs="0" maxOccurs="unbounded"/> 
     339            <xs:element name="references" type="numsim:ReferenceListType" minOccurs="0" 
     340                maxOccurs="1"/> 
     341        </xs:sequence> 
     342        <xs:attribute name="type" type="numsim:InitialConditionCodelist"/> 
     343        <xs:attribute name="perturbed" type="xs:boolean"/> 
     344    </xs:complexType> 
     345 
     346    <!-- --> 
     347    <!-- Definition of the BoundaryConditionType. --> 
     348    <!-- --> 
     349    <xs:complexType name="BoundaryConditionType"> 
     350        <xs:sequence> 
     351            <xs:element name="description" type="numsim:DescriptionType" minOccurs="1"/> 
     352            <xs:element name="controlledParameters" type="numsim:ControlledParameterListType" 
     353                minOccurs="0" maxOccurs="unbounded"/> 
     354            <xs:element name="references" type="numsim:ReferenceListType" minOccurs="0" 
     355                maxOccurs="1"/> 
     356            <xs:element name="boundaryDataset" type="numsim:RelationshipType" minOccurs="0" 
     357                maxOccurs="1"/> 
     358        </xs:sequence> 
     359        <xs:attribute name="type" type="numsim:BoundaryConditionCodelist"/> 
     360    </xs:complexType> 
     361 
     362    <!-- --> 
     363    <!-- Definition of the EnsembleDetailsType. --> 
     364    <!-- --> 
     365    <xs:complexType name="EnsembleDetailsType"> 
    233366        <xs:annotation> 
    234367            <xs:documentation>If not present, the default assumption should be that the simulation 
     
    250383                distribution functions, are likely to be more fully described by the data 
    251384                attributes, this attribute is simply used to aid users in finding ensemble averages 
    252                 and avoid them being mistaken for instances and used inappropriately). 
    253             </xs:documentation> 
    254         </xs:annotation> 
    255         <xs:sequence> 
    256             <xs:element name="NS_EnsembleDescription" type="NS_Description" minOccurs="0" 
    257                 maxOccurs="1"/> 
    258             <xs:element name="NS_EnsembleType" type="NS_EnsembleTypes" minOccurs="1" 
    259                 maxOccurs="unbounded"/> 
    260         </xs:sequence> 
    261         <xs:attribute name="NS_EnsembleStatistics" type="xs:boolean" default="0"/> 
    262     </xs:complexType> 
    263     <xs:complexType name="NS_Model"> 
    264         <xs:annotation> 
    265             <xs:documentation> The NS_Model complex type is used to both as the type of the overall 
     385                and avoid them being mistaken for instances and used 
     386            inappropriately).</xs:documentation> 
     387        </xs:annotation> 
     388        <xs:sequence> 
     389            <xs:element name="description" type="numsim:DescriptionType" minOccurs="0" maxOccurs="1"/> 
     390            <!-- Note name change from type to ensembleType at V010-01 --> 
     391            <xs:element name="ensembleType" type="numsim:EnsembleTypeCodelist" minOccurs="1" 
     392                maxOccurs="unbounded"/> 
     393        </xs:sequence> 
     394        <xs:attribute name="ensembleStatistics" type="xs:boolean" default="0"/> 
     395    </xs:complexType> 
     396 
     397    <!-- --> 
     398    <!-- Definition of the ModelType. --> 
     399    <!-- --> 
     400    <xs:complexType name="ModelType"> 
     401        <xs:annotation> 
     402            <xs:documentation>The NS_Model complex type is used to both as the type of the overall 
    266403                model description (forming a compulsory element within the NumSIm element itself), 
    267                 and as the type of any sub component of that model. </xs:documentation> 
    268         </xs:annotation> 
    269         <xs:sequence> 
    270             <xs:element name="NS_Name" type="xs:string" minOccurs="1" maxOccurs="1"/> 
    271             <xs:element name="NS_Category" type="NS_ModelCategories" minOccurs="0" 
    272             maxOccurs="unbounded"/> 
    273             <xs:element name="NS_ComponentType" type="NS_ModelComponents" minOccurs="0" 
    274                 maxOccurs="unbounded"/> 
    275             <xs:element name="NS_Description" type="NS_Description" minOccurs="0" maxOccurs="1"/> 
    276             <xs:element name="NS_Resolution" type="NS_Description" minOccurs="0" maxOccurs="1"/> 
    277             <xs:element name="NS_RelatedModel" type="NS_RelatedTo" minOccurs="0" 
    278                 maxOccurs="unbounded"/> 
    279             <xs:element name="NS_References" type="NS_ReferenceList" minOccurs="0" maxOccurs="1"/> 
    280             <xs:element name="NS_Component" type="NS_Model" minOccurs="0" maxOccurs="unbounded"/> 
    281         </xs:sequence> 
    282     </xs:complexType> 
    283     <xs:complexType name="NS_CodeBase"> 
    284         <xs:choice> 
    285             <xs:sequence> 
    286                 <xs:element name="NS_ID" type="moles:dgMetadataIDType"/> 
    287                 <xs:element name="NS_Description" type="NS_Description"/> 
    288                 <xs:element name="NS_Model" type="NS_Model" minOccurs="1" maxOccurs="unbounded"/> 
    289             </xs:sequence> 
    290             <xs:element name="NS_ExternalCodeBase" type="NS_Link"> 
     404                and as the type of any sub component of that model.</xs:documentation> 
     405        </xs:annotation> 
     406        <xs:sequence> 
     407            <xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/> 
     408            <xs:element name="id" type="moles:dgMetadataIDType" minOccurs="0" maxOccurs="1"/> 
     409            <xs:element name="category" type="numsim:ModelCategoryCodelist" minOccurs="0" 
     410                maxOccurs="unbounded"/> 
     411            <xs:element name="componentType" type="numsim:ModelComponentCodelist" minOccurs="0" 
     412                maxOccurs="unbounded"/> 
     413            <xs:element name="description" type="numsim:DescriptionType" minOccurs="0" maxOccurs="1"/> 
     414            <xs:element name="resolution" type="numsim:DescriptionType" minOccurs="0" maxOccurs="1"/> 
     415            <xs:element name="relatedModel" type="numsim:RelationshipType" minOccurs="0" 
     416                maxOccurs="unbounded"/> 
     417            <xs:element name="references" type="numsim:ReferenceListType" minOccurs="0" 
     418                maxOccurs="1"/> 
     419            <xs:element name="component" type="numsim:ModelType" minOccurs="0" maxOccurs="unbounded" 
     420            /> 
     421        </xs:sequence> 
     422    </xs:complexType> 
     423 
     424    <!-- --> 
     425    <!-- Definition of the ExperimentType. --> 
     426    <!-- --> 
     427    <xs:complexType name="ExperimentType"> 
     428        <xs:annotation> 
     429            <xs:documentation>Used to define how the model has been used. Note that the 
     430                NS_ParentEnsemble can be used when an integration is available as in independant 
     431                dataset to point back to the parent ensemble dataset.</xs:documentation> 
     432        </xs:annotation> 
     433        <xs:sequence> 
     434            <xs:element name="name" type="xs:string"/> 
     435            <xs:element name="id" type="moles:dgMetadataIDType" minOccurs="1" maxOccurs="1"/> 
     436            <xs:element name="baseModel" type="numsim:RelationshipType"> 
    291437                <xs:annotation> 
    292438                    <xs:documentation>It is assumed that the consumer of this document can parse 
     
    295441                </xs:annotation> 
    296442            </xs:element> 
    297         </xs:choice> 
    298     </xs:complexType> 
    299     <xs:complexType name="NS_Experiment"> 
    300         <xs:annotation> 
    301             <xs:documentation>Used to define how the codebase has been used. Note that the 
    302                 NS_ParentEnsemble can be used when an integration is available as in independant 
    303                 dataset to point back to the parent ensemble dataset.</xs:documentation> 
    304         </xs:annotation> 
    305         <xs:sequence> 
    306             <xs:element name="NS_ID" type="moles:dgMetadataIDType"/> 
    307             <xs:element name="NS_Description" type="NS_Description"/> 
    308             <xs:element name="NS_BoundaryCondition" type="NS_BoundaryCondition" minOccurs="0" 
    309                 maxOccurs="unbounded"/> 
    310             <xs:element name="NS_InitialCondition" type="NS_InitialCondition" minOccurs="0" 
    311                 maxOccurs="unbounded"/> 
    312             <xs:element name="NS_Ensemble" type="NS_EnsembleDetails" minOccurs="0" maxOccurs="1"/> 
    313             <xs:element name="NS_ParentEnsemble" type="NS_RelatedTo" minOccurs="0" 
    314                 maxOccurs="unbounded"/> 
    315         </xs:sequence> 
    316     </xs:complexType> 
    317     <xs:complexType name="NS_NumSim"> 
    318         <xs:all> 
    319             <xs:element name="NS_CodeBase" type="NS_CodeBase"/> 
    320             <xs:element name="NS_Experiment" type="NS_Experiment"/> 
    321         </xs:all> 
    322         <xs:attribute name="Version"/> 
    323     </xs:complexType> 
    324     <xs:element name="NS_Simulated" type="NS_NumSim"/> 
     443            <xs:element name="description" type="numsim:DescriptionType"/> 
     444            <xs:element name="boundaryCondition" type="numsim:BoundaryConditionType" minOccurs="0" 
     445                maxOccurs="unbounded"/> 
     446            <xs:element name="initialCondition" type="numsim:InitialConditionType" minOccurs="0" 
     447                maxOccurs="unbounded"/> 
     448            <xs:element name="ensemble" type="numsim:EnsembleDetailsType" minOccurs="0" 
     449                maxOccurs="1"/> 
     450            <xs:element name="parentEnsemble" type="numsim:RelationshipType" minOccurs="0" 
     451                maxOccurs="unbounded"/> 
     452        </xs:sequence> 
     453    </xs:complexType> 
     454    <!-- --> 
     455    <!-- Definition of the NumSimType. --> 
     456    <!-- --> 
     457    <xs:complexType name="NumSimType"> 
     458        <!-- Note that the CodeBase concept was removed at V010-01 in favour of the model envelop which makes things a bit  
     459            clearer both in producing and consuming NumSim documents.  
     460            The name of document element has changed to make this obvious! --> 
     461        <xs:annotation> 
     462            <xs:documentation>Anything from Dublin Core may be included here, with the intention of 
     463                identifying, in particular, the authorship of the NumSim document itself. However, 
     464                note that the existing ndg code to consume document instances will only look for the 
     465                dc:creator elements</xs:documentation> 
     466        </xs:annotation> 
     467        <xs:sequence> 
     468            <xs:choice> 
     469                <xs:element name="model" type="numsim:ModelType"/> 
     470                <xs:element name="experiment" type="numsim:ExperimentType"/> 
     471            </xs:choice> 
     472            <xs:any namespace="http://purl.org/dc/elements/1.1/dc" minOccurs="0" 
     473                maxOccurs="unbounded" processContents="lax"/> 
     474        </xs:sequence> 
     475        <xs:attribute name="version"/> 
     476    </xs:complexType> 
     477    <!-- --> 
     478    <!-- simulationMetadata is the document element. --> 
     479    <!-- --> 
     480    <xs:element name="simulationMetadata" type="numsim:NumSimType"/> 
    325481</xs:schema> 
Note: See TracChangeset for help on using the changeset viewer.