Documentation for OME Schemas

Table of Contents

Master schema documentation file: ome.xsd.html

top

Schema Document Properties

Target Namespace http://www.openmicroscopy.org/Schemas/MLI/2008-09
Version 1
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
MLI http://www.openmicroscopy.org/Schemas/MLI/2008-09
xsd http://www.w3.org/2001/XMLSchema
Schema Component Representation
<xsd:schema targetNamespace="http://www.openmicroscopy.org/Schemas/MLI/2008-09" version="1" elementFormDefault="qualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
...
</xsd:schema>
top

Global Declarations

Element: ExecutionInstructions

Name ExecutionInstructions
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Instructions for executing a matlab function.
Logical Diagram
element_FunctionInputs element_FunctionOutputs element_Templates element_VectorDecoder
XML Instance Representation
<MLI:ExecutionInstructions
ExecutionGranularity=" xsd:string (value comes from list: {'G'|'D'|'I'|'F'}) [1]

'Assigns a execution point for the analysis. Refer to the Analysis Engine for more Info. Alternately, plague ome-devel with requests for more documentation.'

"
>
<MLI:FunctionInputs> ... </MLI:FunctionInputs> [1]
<MLI:FunctionOutputs> ... </MLI:FunctionOutputs> [1]
<MLI:Templates> ... </MLI:Templates> [0..1]
<MLI:VectorDecoder> ... </MLI:VectorDecoder> [0..*]
</MLI:ExecutionInstructions>
Diagram
element_FunctionInputs element_FunctionOutputs element_Templates element_VectorDecoder
Schema Component Representation
<xsd:element name="ExecutionInstructions">
<-- top level definition -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" MLI:FunctionInputs " minOccurs="1" maxOccurs="1"/>
<xsd:element ref=" MLI:FunctionOutputs " minOccurs="1" maxOccurs="1"/>
<xsd:element ref=" MLI:Templates " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" MLI:VectorDecoder " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="ExecutionGranularity" use="required">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="G"/>
<xsd:enumeration value="D"/>
<xsd:enumeration value="I"/>
<xsd:enumeration value="F"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
top

Element: FunctionInputs

Name FunctionInputs
Used by (from the same schema document) Element ExecutionInstructions
Type Locally-defined complex type
Nillable no
Abstract no
Documentation An ordered list of the function's inputs
Logical Diagram
element_Input
XML Instance Representation
<MLI:FunctionInputs>
<MLI:Input> ... </MLI:Input> [1..*]
</MLI:FunctionInputs>
Diagram
element_Input
Schema Component Representation
<xsd:element name="FunctionInputs">
<-- top level definition -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" MLI:Input " minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
top

Element: FunctionOutputs

Name FunctionOutputs
Used by (from the same schema document) Element ExecutionInstructions
Type Locally-defined complex type
Nillable no
Abstract no
Documentation An ordered list of the function's outputs
Logical Diagram
element_Output
XML Instance Representation
<MLI:FunctionOutputs>
<MLI:Output> ... </MLI:Output> [1..*]
</MLI:FunctionOutputs>
Diagram
element_Output
Schema Component Representation
<xsd:element name="FunctionOutputs">
<-- top level definition -->
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" MLI:Output " minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
top

Element: Input

Name Input
Used by (from the same schema document) Element FunctionInputs
Type Locally-defined complex type
Nillable no
Abstract no
Logical Diagram
XML Instance Representation
<MLI:Input>
Start Choice [1]
<MLI:PixelsArray
FormalInput=" xsd:string [1]

'References a FormalInput by name'

"

ID=" xsd:string [0..1]

'An input ID. In the future, can be used to establish references.'

"

ConvertToDatatype=" xsd:string (value comes from list: {'uint8'|'uint16'|'uint32'|'uint64'|'int8'|'int16'|'int32'|'int64'|'single'|'double'|'logical'}) [0..1]

'The Pixels array will be converted to the (MATLAB) datatype specified.'

"
/> [1]

'Will pass a numeric matrix into the function. Translates a module input of Semantic Type Pixels (or any psuedo subclass of Pixels) to a numeric matrix. Limits specified by PixelsSlice or its subclasses will be honored.'

<MLI:Scalar
InputLocation=" xsd:string [1]

'Refers to a semantic element of a formal input. Syntax is formal input name, a period, and the semantic elment name. i.e. \"Texture Direction.Direction_Value\"'

"

ConvertToDatatype=" xsd:string (value comes from list: {'uint8'|'uint16'|'uint32'|'uint64'|'int8'|'int16'|'int32'|'int64'|'single'|'double'|'logical'|'char'}) [0..1]

'The MATLAB scalar will be converted to the (MATLAB) datatype specified.'

"
/> [1]

'A 1x1 numeric or logical matrix -OR- a char matrix. Used only with inputs of arity 1 (i.e. Count=\'!\')'

<MLI:ConstantScalar
Value=" xsd:string [1]"/> [1]

'Specifies a constant scalar input.'

End Choice
</MLI:Input>
Diagram
Schema Component Representation
<xsd:element name="Input">
<-- top level definition -->
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element name="PixelsArray" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="FormalInput" type=" xsd:string " use="required"/>
<xsd:attribute name="ID" type=" xsd:string " use="optional"/>
<xsd:attribute name="ConvertToDatatype" use="optional">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="uint8"/>
<xsd:enumeration value="uint16"/>
<xsd:enumeration value="uint32"/>
<xsd:enumeration value="uint64"/>
<xsd:enumeration value="int8"/>
<xsd:enumeration value="int16"/>
<xsd:enumeration value="int32"/>
<xsd:enumeration value="int64"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="logical"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="Scalar" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="InputLocation" type=" xsd:string " use="required"/>
<xsd:attribute name="ConvertToDatatype" use="optional">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="uint8"/>
<xsd:enumeration value="uint16"/>
<xsd:enumeration value="uint32"/>
<xsd:enumeration value="uint64"/>
<xsd:enumeration value="int8"/>
<xsd:enumeration value="int16"/>
<xsd:enumeration value="int32"/>
<xsd:enumeration value="int64"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="logical"/>
<xsd:enumeration value="char"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="ConstantScalar" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="Value" type=" xsd:string " use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
top

Element: Output

Name Output
Used by (from the same schema document) Element FunctionOutputs
Type Locally-defined complex type
Nillable no
Abstract no
Logical Diagram
XML Instance Representation
<MLI:Output>
Start Choice [1]
<MLI:PixelsArray
FormalOutput=" xsd:string [1]

'References a FormalOutput by name'

"

ID=" xsd:string [0..1]

'An output ID. In the future, can be used to stitch together data from different function outputs into a single module output, or establish references.'

"

ConvertToDatatype=" xsd:string (value comes from list: {'uint8'|'uint16'|'uint32'|'single'|'int8'|'int16'|'int32'}) [0..1]

'Useful when a function outputs a Pixels type that is unsupported by OME. The permitted list is the matlab types supported by OME. Note to perl developers: This list should stay syncronized with the Matlab Class to OME pixel-type mapping hash $self->{ _matlab_class_to_pixel_type } that is defined in OME::Analysis::Handlers::MatlabHandler->new()'

"
/> [1]

'Will translate a numeric array to a Formal Output of Semantic Type Pixels (or any psuedo subclass of Pixels). If PixelsSlice appears in the pseudo inheritance chain, the extents will be set to the extents of the Pixels.'

<MLI:Scalar
UseTemplate=" xsd:string [0..1]

'References a Template this value will be inserted into.'

"

OutputLocation=" xsd:string [1]

'Refers to a semantic element of a formal output. Syntax is formal output name, a period, and the semantic elment name. i.e. \"Angular Second Moment.ASM\"'

"

ConvertToDatatype=" xsd:string (value comes from list: {'uint8'|'uint16'|'uint32'|'int8'|'int16'|'int32'|'int64'|'single'|'double'|'logical'|'char'}) [0..1]

'The MATLAB scalar will be converted to the (MATLAB) datatype specified. The permitted list is the matlab types supported by OME. Note to perl developers: This list should stay syncronized with the Matlab Class to OME SE Type mapping hash $self->{ _matlab_class_to_ome_datatype} that is defined in OME::Analysis::Handlers::MatlabHandler->new()'

"
/> [1]

'A 1x1 numeric or logical matrix -OR- a char matrix.'

<MLI:Struct
FormalOutput=" xsd:string [1]

'References a FormalOutput by name'

"

ID=" xsd:string [0..1]

'An output ID. In the future, can be used to stitch together data from different function outputs into a single module output, or establish references.'

"
/> [1]

'Struct outputs are expected to have the same structure and field names as the STs of their formal outputs. We do not anticipate this to be a widely used feature.'

<MLI:Vector
DecodeWith=" xsd:string [1]

'Specifies decoding instructions. This should match the ID of a VectorDecoder element'

"
/> [1]

'A one dimensional matrix output.'

End Choice
</MLI:Output>
Diagram
Schema Component Representation
<xsd:element name="Output">
<-- top level definition -->
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="1">
<xsd:element name="PixelsArray" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="FormalOutput" type=" xsd:string " use="required"/>
<xsd:attribute name="ID" type=" xsd:string " use="optional"/>
<xsd:attribute name="ConvertToDatatype" use="optional">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="uint8"/>
<xsd:enumeration value="uint16"/>
<xsd:enumeration value="uint32"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="int8"/>
<xsd:enumeration value="int16"/>
<xsd:enumeration value="int32"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="Scalar" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="UseTemplate" type=" xsd:string " use="optional"/>
<xsd:attribute name="OutputLocation" type=" xsd:string " use="required"/>
<xsd:attribute name="ConvertToDatatype" use="optional">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="uint8"/>
<xsd:enumeration value="uint16"/>
<xsd:enumeration value="uint32"/>
<xsd:enumeration value="int8"/>
<xsd:enumeration value="int16"/>
<xsd:enumeration value="int32"/>
<xsd:enumeration value="int64"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="logical"/>
<xsd:enumeration value="char"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="Struct" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="FormalOutput" type=" xsd:string " use="required"/>
<xsd:attribute name="ID" type=" xsd:string " use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Vector" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="DecodeWith" type=" xsd:string " use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
top

Element: Templates

Name Templates
Used by (from the same schema document) Element ExecutionInstructions
Type anyType
Nillable no
Abstract no
Documentation Used to add structure & explicit data description to function outputs such as ChannelComponents or LogicalChannels. The contents of this element should follow CustomAttribute syntax and conventions.
Logical Diagram
XML Instance Representation
<MLI:Templates> ... </MLI:Templates>
Diagram
Schema Component Representation
<xsd:element name="Templates">
<-- top level definition -->
</xsd:element>
top

Element: VectorDecoder

Name VectorDecoder
Used by (from the same schema document) Element ExecutionInstructions
Type Locally-defined complex type
Nillable no
Abstract no
Documentation Instructions for extracting data from a one dimensional matlab matrix.
Logical Diagram
XML Instance Representation
<MLI:VectorDecoder
ID=" xsd:string [1]

'An output ID. In the future, can be used to stitch together data from different function outputs into a single module output, or establish references.'

"
>
<MLI:Element
OutputLocation=" xsd:string [1]

'Refers to a semantic element of a formal output. Syntax is formal output name, a period, and the semantic elment name. i.e. \"Angular Second Moment.ASM\"'

"

Index=" xsd:string [1]

'A numeric index into the matlab vector. Numbering starts at 1 to follow matlab convention.'

"

UseTemplate=" xsd:string [0..1]

'References a Template this value will be inserted into.'

"

ID=" xsd:string [0..1]

'An output ID. In the future, can be used to stitch together data from different function outputs into a single module output, or establish references.'

"

ConvertToDatatype=" xsd:string (value comes from list: {'uint8'|'uint16'|'uint32'|'int8'|'int16'|'int32'|'int64'|'single'|'double'|'logical'|'char'}) [0..1]

'The MATLAB scalar that is part of a MATLAB vector will be converted to the (MATLAB) datatype specified. The permitted list is the matlab types supported by OME. Note to perl developers: This list should stay syncronized with the Matlab Class to OME SE Type mapping hash $self->{ _matlab_class_to_ome_datatype} that is defined in OME::Analysis::Handlers::MatlabHandler->new()'

"
/> [1..*]

'Maps a location on the Vector to an output data location. Can be used in conjuction with Templates.'

</MLI:VectorDecoder>
Diagram
Schema Component Representation
<xsd:element name="VectorDecoder">
<-- top level definition -->
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Element" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="OutputLocation" type=" xsd:string " use="required"/>
<xsd:attribute name="Index" type=" xsd:string " use="required"/>
<xsd:attribute name="UseTemplate" type=" xsd:string " use="optional"/>
<xsd:attribute name="ID" type=" xsd:string " use="optional"/>
<xsd:attribute name="ConvertToDatatype" use="optional">
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="uint8"/>
<xsd:enumeration value="uint16"/>
<xsd:enumeration value="uint32"/>
<xsd:enumeration value="int8"/>
<xsd:enumeration value="int16"/>
<xsd:enumeration value="int32"/>
<xsd:enumeration value="int64"/>
<xsd:enumeration value="single"/>
<xsd:enumeration value="double"/>
<xsd:enumeration value="logical"/>
<xsd:enumeration value="char"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="ID" type=" xsd:string " use="required"/>
</xsd:complexType>
</xsd:element>
top

Legend

Complex Type:

Schema Component Type

AusAddress

Schema Component Name
Super-types: Address < AusAddress (by extension)
Sub-types:
  • QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name AusAddress
Abstract no
The table above displays the properties of this schema component.
XML Instance Representation
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1] ?
</...>

The XML Instance Representation table above shows the schema component's content as an XML instance.

Schema Component Representation
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
top

Glossary

Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.

All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.

Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.

Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.

Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.

Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.

Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.

Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.

Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.

Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.

Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.

Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).

Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.

Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.

Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.

Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.

Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

top