Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.

Ticket #11878: generalised-dimensions.patch

File generalised-dimensions.patch, 12.9 KB (added by rleigh, 10 years ago)

Example of the type of generalisation I'd like to achieve

  • components/specification/inprogress/ome.xsd

    diff --git a/components/specification/inprogress/ome.xsd b/components/specification/inprogress/ome.xsd
    index 9d1e063..53373b8 100644
    a b  
    317317                                dimension order specified by 'DimensionOrder'. 
    318318 
    319319                                All of the values in the Pixels object when present should match the same value 
    320                                 stored in any associated TIFF format (e.g. SizeX should be the same). Where there 
    321                                 is a mismatch our readers will take the value from the TIFF structure as overriding 
    322                                 the value in the OME-XML. This is simply a pragmatic decision as it increases the 
    323                                 likelihood of reading data from a slightly incorrect file. 
     320                                stored in any associated TIFF format (e.g. the size of the X dimension should be the 
     321                                same). Where there is a mismatch our readers will take the value from the TIFF structure 
     322                                as overriding the value in the OME-XML. This is simply a pragmatic decision as it 
     323                                increases the likelihood of reading data from a slightly incorrect file. 
    324324                        </xsd:documentation> 
    325325                </xsd:annotation> 
    326326                <xsd:complexType> 
     
    343343                                </xsd:element> 
    344344                        </xsd:sequence> 
    345345                        <xsd:attribute name="ID" use="required" type="PixelsID"/> 
    346                         <xsd:attribute name="DimensionOrder" use="required"> 
     346                        <xsd:attribute name="DimensionOrder" use="required" type="xsd:string"> 
    347347                                <xsd:annotation> 
    348348                                        <xsd:documentation> 
    349349                                                The order in which the individual planes of data are interleaved. 
    350350                                        </xsd:documentation> 
    351351                                </xsd:annotation> 
    352352                                <xsd:simpleType> 
    353                                         <xsd:restriction base="xsd:string"> 
    354                                                 <xsd:enumeration value="XYZCT"/> 
    355                                                 <xsd:enumeration value="XYZTC"/> 
    356                                                 <xsd:enumeration value="XYCTZ"/> 
    357                                                 <xsd:enumeration value="XYCZT"/> 
    358                                                 <xsd:enumeration value="XYTCZ"/> 
    359                                                 <xsd:enumeration value="XYTZC"/> 
     353                                        <xsd:restriction base="xsd:string"> 
     354                                                <xs:minLength value="2" /> 
     355                                                <xs:maxLength value="8" /> 
     356                                                <xs:pattern value="XY[ZCTzct]*" /> 
     357                                        </xsd:restriction> 
     358                                </xsd:simpleType> 
     359                        </xsd:attribute> 
     360                        <xsd:attribute name="DimensionExtents" use="required" type="PositiveIntList"> 
     361                                <xsd:annotation> 
     362                                        <xsd:documentation> 
     363                                                The extent (size) of each dimension. 
     364                                        </xsd:documentation> 
     365                                </xsd:annotation> 
     366                                <xsd:simpleType> 
     367                                        <xsd:restriction base="PositiveIntList"> 
     368                                          <xs:minLength value="2" /> 
     369                                          <xs:maxLength value="8" /> 
     370                                        </xsd:restriction> 
     371                                </xsd:simpleType> 
     372                        </xsd:attribute> 
     373                        <xsd:attribute name="DimensionScales" use="required" type="PositiveFloatList"> 
     374                                <xsd:annotation> 
     375                                        <xsd:documentation> 
     376                                                The scale factor for each dimension. 
     377                                        </xsd:documentation> 
     378                                </xsd:annotation> 
     379                                <xsd:simpleType> 
     380                                        <xsd:restriction base="PositiveFloatList"> 
     381                                          <xs:minLength value="2" /> 
     382                                          <xs:maxLength value="8" /> 
     383                                        </xsd:restriction> 
     384                                </xsd:simpleType> 
     385                        </xsd:attribute> 
     386                        <xsd:attribute name="DimensionUnits" use="required" type="StringList"> 
     387                                <xsd:annotation> 
     388                                        <xsd:documentation> 
     389                                                The scale unit for each dimension. 
     390                                        </xsd:documentation> 
     391                                </xsd:annotation> 
     392                                <xsd:simpleType> 
     393                                        <xsd:restriction base="PositiveFloatList"> 
     394                                          <xs:minLength value="2" /> 
     395                                          <xs:maxLength value="8" /> 
    360396                                        </xsd:restriction> 
    361397                                </xsd:simpleType> 
    362398                        </xsd:attribute> 
     
    398434                                        </xsd:documentation> 
    399435                                </xsd:annotation> 
    400436                        </xsd:attribute> 
    401                         <xsd:attribute name="SizeX" use="required" type="PositiveInt"> 
    402                                 <xsd:annotation> 
    403                                         <xsd:documentation>Dimensional size of pixel data array [units:none]</xsd:documentation> 
    404                                 </xsd:annotation> 
    405                         </xsd:attribute> 
    406                         <xsd:attribute name="SizeY" use="required" type="PositiveInt"> 
    407                                 <xsd:annotation> 
    408                                         <xsd:documentation>Dimensional size of pixel data array [units:none]</xsd:documentation> 
    409                                 </xsd:annotation> 
    410                         </xsd:attribute> 
    411                         <xsd:attribute name="SizeZ" use="required" type="PositiveInt"> 
    412                                 <xsd:annotation> 
    413                                         <xsd:documentation>Dimensional size of pixel data array [units:none]</xsd:documentation> 
    414                                 </xsd:annotation> 
    415                         </xsd:attribute> 
    416                         <xsd:attribute name="SizeC" use="required" type="PositiveInt"> 
    417                                 <xsd:annotation> 
    418                                         <xsd:documentation>Dimensional size of pixel data array [units:none]</xsd:documentation> 
    419                                 </xsd:annotation> 
    420                         </xsd:attribute> 
    421                         <xsd:attribute name="SizeT" use="required" type="PositiveInt"> 
    422                                 <xsd:annotation> 
    423                                         <xsd:documentation>Dimensional size of pixel data array [units:none]</xsd:documentation> 
    424                                 </xsd:annotation> 
    425                         </xsd:attribute> 
    426                         <xsd:attribute name="PhysicalSizeX" use="optional" type="PositiveFloat"> 
    427                                 <xsd:annotation> 
    428                                         <xsd:documentation>Physical size of a pixel in microns[µm].</xsd:documentation> 
    429                                 </xsd:annotation> 
    430                         </xsd:attribute> 
    431                         <xsd:attribute name="PhysicalSizeY" use="optional" type="PositiveFloat"> 
    432                                 <xsd:annotation> 
    433                                         <xsd:documentation>Physical size of a pixel in microns[µm].</xsd:documentation> 
    434                                 </xsd:annotation> 
    435                         </xsd:attribute> 
    436                         <xsd:attribute name="PhysicalSizeZ" use="optional" type="PositiveFloat"> 
    437                                 <xsd:annotation> 
    438                                         <xsd:documentation>Physical size of a pixel in microns[µm].</xsd:documentation> 
    439                                 </xsd:annotation> 
    440                         </xsd:attribute> 
    441                         <xsd:attribute name="TimeIncrement" use="optional" type="xsd:float"> 
    442                                 <xsd:annotation> 
    443                                         <xsd:documentation> 
    444                                                 TimeIncrement is used for time series that have a global 
    445                                                 timing specification instead of per-timepoint timing info. 
    446                                                 For example in a video stream.  The unit is seconds[s]. 
    447                                         </xsd:documentation> 
    448                                 </xsd:annotation> 
    449                         </xsd:attribute> 
    450437                </xsd:complexType> 
    451438        </xsd:element> 
    452439        <xsd:element name="Plane"> <!-- top level definition --> 
     
    475462                                        </xsd:annotation> 
    476463                                </xsd:element> 
    477464                        </xsd:sequence> 
    478                         <xsd:attribute name="TheZ" use="required" type="NonNegativeInt"> 
     465                        <xsd:attribute name="Position" use="required" type="NonNegativeIntList"> 
    479466                                <xsd:annotation> 
    480467                                        <xsd:documentation> 
    481                                                 The Z-section this plane is for. [units:none] 
    482                                                 This is numbered from 0. 
    483                                         </xsd:documentation> 
    484                                 </xsd:annotation> 
    485                         </xsd:attribute> 
    486                         <xsd:attribute name="TheT" use="required" type="NonNegativeInt"> 
    487                                 <xsd:annotation> 
    488                                         <xsd:documentation> 
    489                                                 The timepoint this plane is for. [units:none] 
    490                                                 This is numbered from 0. 
    491                                         </xsd:documentation> 
    492                                 </xsd:annotation> 
    493                         </xsd:attribute> 
    494                         <xsd:attribute name="TheC" use="required" type="NonNegativeInt"> 
    495                                 <xsd:annotation> 
    496                                         <xsd:documentation> 
    497                                                 The channel this plane is for. [units:none] 
    498                                                 This is numbered from 0. 
     468                                                Plane dimension coordinate.  Note that X and Y are redundant and could be omitted from the required set here. 
    499469                                        </xsd:documentation> 
    500470                                </xsd:annotation> 
     471                                <xsd:simpleType> 
     472                                        <xsd:restriction base="NonNegativeIntList"> 
     473                                          <xs:minLength value="2" /> 
     474                                          <xs:maxLength value="8" /> 
     475                                        </xsd:restriction> 
     476                                </xsd:simpleType> 
    501477                        </xsd:attribute> 
    502478                        <xsd:attribute name="DeltaT" use="optional" type="xsd:float"> 
    503479                                <xsd:annotation> 
     
    513489                                        </xsd:documentation> 
    514490                                </xsd:annotation> 
    515491                        </xsd:attribute> 
    516                         <xsd:attribute name="PositionX" use="optional" type="xsd:float"> 
     492                        <xsd:attribute name="Position" use="required" type="PositiveFloatList"> 
    517493                                <xsd:annotation> 
    518494                                        <xsd:documentation> 
    519                                                 The X position of the stage. [units are in the microscope reference frame] 
    520                                         </xsd:documentation> 
    521                                 </xsd:annotation> 
    522                         </xsd:attribute> 
    523                         <xsd:attribute name="PositionY" use="optional" type="xsd:float"> 
    524                                 <xsd:annotation> 
    525                                         <xsd:documentation> 
    526                                                 The Y position of the stage. [units are in the microscope reference frame] 
    527                                         </xsd:documentation> 
    528                                 </xsd:annotation> 
    529                         </xsd:attribute> 
    530                         <xsd:attribute name="PositionZ" use="optional" type="xsd:float"> 
    531                                 <xsd:annotation> 
    532                                         <xsd:documentation> 
    533                                                 The Z position of the stage. [units are in the microscope reference frame] 
     495                                                Position of the sample in all dimensions.  Note that X and Y are redundant and could be omitted from the required set here. 
    534496                                        </xsd:documentation> 
    535497                                </xsd:annotation> 
     498                                <xsd:simpleType> 
     499                                        <xsd:restriction base="PositiveFloatList"> 
     500                                          <xs:minLength value="2" /> 
     501                                          <xs:maxLength value="8" /> 
     502                                        </xsd:restriction> 
     503                                </xsd:simpleType> 
    536504                        </xsd:attribute> 
    537505                </xsd:complexType> 
    538506        </xsd:element> 
     
    755723                                        </xsd:documentation> 
    756724                                </xsd:annotation> 
    757725                        </xsd:attribute> 
    758                         <xsd:attribute name="FirstZ" type="NonNegativeInt" default="0" use="optional"> 
    759                                 <xsd:annotation> 
    760                                         <xsd:documentation> 
    761                                                 Gives the Z position of the image plane at the specified IFD. Indexed from 0. 
    762                                                 Default is 0 (the first Z position). [units:none] 
    763                                         </xsd:documentation> 
    764                                 </xsd:annotation> 
    765                         </xsd:attribute> 
    766                         <xsd:attribute name="FirstT" type="NonNegativeInt" default="0" use="optional"> 
     726                        <xsd:attribute name="FirstPosition" use="required" type="NonNegativeIntList"> 
    767727                                <xsd:annotation> 
    768728                                        <xsd:documentation> 
    769                                                 Gives the T position of the image plane at the specified IFD. Indexed from 0. 
    770                                                 Default is 0 (the first T position). [units:none] 
    771                                         </xsd:documentation> 
    772                                 </xsd:annotation> 
    773                         </xsd:attribute> 
    774                         <xsd:attribute name="FirstC" type="NonNegativeInt" default="0" use="optional"> 
    775                                 <xsd:annotation> 
    776                                         <xsd:documentation> 
    777                                                 Gives the C position of the image plane at the specified IFD. Indexed from 0. 
    778                                                 Default is 0 (the first C position). [units:none] 
     729                                                First plane dimension coordinate.  Note that X and Y are redundant and could be omitted from the required set here. 
    779730                                        </xsd:documentation> 
    780731                                </xsd:annotation> 
     732                                <xsd:simpleType> 
     733                                        <xsd:restriction base="NonNegativeIntList"> 
     734                                          <xs:minLength value="2" /> 
     735                                          <xs:maxLength value="8" /> 
     736                                        </xsd:restriction> 
     737                                </xsd:simpleType> 
    781738                        </xsd:attribute> 
    782739                        <xsd:attribute name="PlaneCount" use="optional" type="NonNegativeInt"> 
    783740                                <xsd:annotation> 
     
    13191276                        <xsd:minInclusive value="0"/> 
    13201277                </xsd:restriction> 
    13211278        </xsd:simpleType> 
     1279        <xsd:simpleType name="NonNegativeLongList"> 
     1280                <xsd:annotation> 
     1281                        <xsd:documentation> 
     1282                                A space separated list of NonNegativeLongs 
     1283                        </xsd:documentation> 
     1284                </xsd:annotation> 
     1285                <xsd:list itemType="NonNegativeLong"></xsd:list> 
     1286        </xsd:simpleType> 
    13221287        <xsd:simpleType name="NonNegativeInt"> 
    13231288                <xsd:annotation> 
    13241289                        <xsd:documentation> 
     
    13291294                        <xsd:minInclusive value="0"/> 
    13301295                </xsd:restriction> 
    13311296        </xsd:simpleType> 
     1297        <xsd:simpleType name="NonNegativeIntList"> 
     1298                <xsd:annotation> 
     1299                        <xsd:documentation> 
     1300                                A space separated list of NonNegativeInts 
     1301                        </xsd:documentation> 
     1302                </xsd:annotation> 
     1303                <xsd:list itemType="NonNegativeInt"></xsd:list> 
     1304        </xsd:simpleType> 
    13321305        <xsd:simpleType name="PositiveInt"> 
    13331306                <xsd:annotation> 
    13341307                        <xsd:documentation> 
     
    13391312                        <xsd:minInclusive value="1"/> 
    13401313                </xsd:restriction> 
    13411314        </xsd:simpleType> 
     1315        <xsd:simpleType name="PositiveIntList"> 
     1316                <xsd:annotation> 
     1317                        <xsd:documentation> 
     1318                                A space separated list of PositiveInts 
     1319                        </xsd:documentation> 
     1320                </xsd:annotation> 
     1321                <xsd:list itemType="PositiveInt"></xsd:list> 
     1322        </xsd:simpleType> 
    13421323        <xsd:simpleType name="PositiveFloat"> 
    13431324                <xsd:annotation> 
    13441325                        <xsd:documentation> 
     
    13491330                        <xsd:minExclusive value="0.0"/> 
    13501331                </xsd:restriction> 
    13511332        </xsd:simpleType> 
     1333        <xsd:simpleType name="PositiveFloatList"> 
     1334                <xsd:annotation> 
     1335                        <xsd:documentation> 
     1336                                A space separated list of PositiveFloats 
     1337                        </xsd:documentation> 
     1338                </xsd:annotation> 
     1339                <xsd:list itemType="PositiveFloat"></xsd:list> 
     1340        </xsd:simpleType> 
    13521341        <xsd:simpleType name="PercentFraction"> 
    13531342                <xsd:annotation> 
    13541343                        <xsd:documentation> 
     
    13601349                        <xsd:minInclusive value="0.0"/> 
    13611350                </xsd:restriction> 
    13621351        </xsd:simpleType> 
     1352        <xsd:simpleType name="PositiveIntList"> 
     1353                <xsd:annotation> 
     1354                        <xsd:documentation> 
     1355                                A space separated list of PositiveInts 
     1356                        </xsd:documentation> 
     1357                </xsd:annotation> 
     1358                <xsd:list itemType="PositiveInt"></xsd:list> 
     1359        </xsd:simpleType> 
     1360        <xsd:simpleType name="StringList"> 
     1361                <xsd:annotation> 
     1362                        <xsd:documentation> 
     1363                                A space separated list of Strings 
     1364                        </xsd:documentation> 
     1365                </xsd:annotation> 
     1366                <xsd:list itemType="String"></xsd:list> 
     1367        </xsd:simpleType> 
    13631368        <xsd:simpleType name="UniversallyUniqueIdentifier"> 
    13641369                <xsd:annotation> 
    13651370                        <xsd:documentation> 

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.17453 sec.)

We're Hiring!