Rules for Connections Rules for Path Designation

Copyright © 2014 Open Geospatial Consortium 128 sequence attributeGroup ref = swe:AssociationAttributeGroup complexType From core.xsd: complexType name = DataComponentRefPropertyType attribute name = ref type = sml:DataComponentPathPropertyType use = required complexType simpleType name = DataComponentPathPropertyType restriction base = token pattern value = [a-zA-Z_][a-zA-Z0-9_\-\.][a-zA-Z_][a-zA-Z0-9_\-\.] restriction simpleType

8.3.3.1 Rules for Connections

The Link element may define a data connection between any properties of a process, but it typically connects inputs, outputs, and parameters. However, certain rules apply regarding sources for data provided by the source property of the Link element and destinations for data provided by the destination property of the Link element. Typical data flow is from an aggregate processes input to one or more component’s input, from a component output to another component’s input, or from a component’s output to an output of the aggregate process. Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processinput-connection-restrictions Req 66. The input of an enclosing aggregate process can connect to the input of one or more of its components; otherwise an input cannot connect to another input. Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processoutput-connection-restrictions Req 67. The output of a component can connect to an output of its enclosing aggregate process; otherwise an output cannot connect to another output. Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processmultiple-connections Req 68. An output can connect to multiple destinations, but an input can only have one source connection. SensorML OGC 12-000 Copyright © 2014 Open Geospatial Consortium 129 Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processparameter-connection- restrictions Req 69. A parameter can only be connected as a destination; a parameter cannot serve as a source. Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processproperty-connection- restrictions Req 70. Process properties other than inputs, outputs, or parameters can only serve as sources of data not destinations.

8.3.3.2 Rules for Path Designation

While the use of XPath was considered as a means of designating Link sources and destinations, this protocol was rejected on the grounds that its was too complicated for our needs and because it did not allow continues designation of paths for “byReference” objects. The designation of a path starts at the base element of the aggregate process and only uses property elements. Where the attribute name exists for an element, it is used; otherwise the element name is used. Requirement http:www.opengis.netspecsensorml2.0reqxmlaggregate-processdesignating-link-paths Req 71. The following rules shall be used for designating the source and destination paths within the Linked element. a The path begins at the base of the current process b The path includes only property elements lowerCamelCase and not value objects UpperCamelCase c If the property has an attribute name and it has a value, then it shall be used; otherwise the unqualified name of the property element should be used d The path can follow properties that are byReference As an example, a snippet of the previous example is given below, highlighting the source path parts in yellow and the destination path parts in cyan. The subsequent example shows the appropriate source link path in yellow and the destination link path in cyan. ?xml version=1.0 encoding=UTF-8? sml:AggregateProcess gml:id = scaleAndClip06 Copyright © 2014 Open Geospatial Consortium 130 … deleted for brevity sake … -- ============================= -- -- Aggregate Process Inputs -- -- ============================= -- sml:inputs sml:InputList sml:input name = valueIn swe:Quantity definition = http:sensorml.comontswepropertyDN swe:uom code = any swe:Quantity sml:input sml:InputList sml:inputs … deleted for brevity sake … sml:components sml:ComponentList -- Component 1 - Linear Interpolator -- sml:component name = scale sml:SimpleProcess gml:id = linearInterpolator01 definition = http:sensorml.comontsweprocessLinearInterpolator -- ============================= -- -- Linear Interpolator Descriptions -- -- ============================= -- gml:description A linear interpolator based on equation y = mx + b gml:description gml:identifier codeSpace = uid urn:myCompany:process:8755d73ab gml:identifier gml:name Linear Equation 01 gml:name -- ============================= -- -- Linear Interpolator Inputs -- -- ============================= -- sml:inputs sml:InputList sml:input name = x swe:Quantity definition = http:sensorml.comontswepropertyXCoordinate swe:uom code = any swe:Quantity sml:input sml:InputList sml:inputs … deleted for brevity sake … sml:connections sml:ConnectionList -- Connect AggregateProcess input to LinearInterpolator scale input -- sml:connection sml:Link sml:source ref = inputsvalueIn sml:destination ref = componentsscaleinputsx sml:Link sml:connection … deleted for brevity sake … SensorML OGC 12-000 Copyright © 2014 Open Geospatial Consortium 131

8.4 Requirements Class: Physical Component Schema Requirements Class