blob: b5bf70f4110f76f79051987702aa5391623eec33 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.7">
<xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore" schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd"/>
<xsd:annotation>
<xsd:documentation>*
*******************************************************************************
Copyright (c) 2015-2020 Robert Bosch GmbH and others.
This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
*******************************************************************************</xsd:documentation>
</xsd:annotation>
<xsd:element ecore:ignore="true" name="Amalthea" type="am:Amalthea"/>
<xsd:element ecore:ignore="true" name="CommonElements" type="am:CommonElements"/>
<xsd:element ecore:ignore="true" name="BaseObject" type="am:BaseObject"/>
<xsd:element ecore:ignore="true" name="ReferableObject" type="am:ReferableObject"/>
<xsd:element ecore:ignore="true" name="ReferableBaseObject" type="am:ReferableBaseObject"/>
<xsd:element ecore:ignore="true" name="IAnnotatable" type="am:IAnnotatable"/>
<xsd:element ecore:ignore="true" name="ITaggable" type="am:ITaggable"/>
<xsd:element ecore:ignore="true" name="INamed" type="am:INamed"/>
<xsd:element ecore:ignore="true" name="IReferable" type="am:IReferable"/>
<xsd:element ecore:ignore="true" name="IDisplayName" type="am:IDisplayName"/>
<xsd:element ecore:ignore="true" name="IDescription" type="am:IDescription"/>
<xsd:element ecore:ignore="true" name="INamespaceMember" type="am:INamespaceMember"/>
<xsd:element ecore:ignore="true" name="Tag" type="am:Tag"/>
<xsd:element ecore:ignore="true" name="Namespace" type="am:Namespace"/>
<xsd:element ecore:ignore="true" name="Classifier" type="am:Classifier"/>
<xsd:element ecore:ignore="true" name="CoreClassifier" type="am:CoreClassifier"/>
<xsd:element ecore:ignore="true" name="MemoryClassifier" type="am:MemoryClassifier"/>
<xsd:element ecore:ignore="true" name="TransmissionPolicy" type="am:TransmissionPolicy"/>
<xsd:element ecore:ignore="true" name="Quantity" type="am:Quantity"/>
<xsd:element ecore:ignore="true" name="TimeComparable" type="am:TimeComparable"/>
<xsd:element ecore:ignore="true" name="Time" type="am:Time"/>
<xsd:element ecore:ignore="true" name="Frequency" type="am:Frequency"/>
<xsd:element ecore:ignore="true" name="Voltage" type="am:Voltage"/>
<xsd:element ecore:ignore="true" name="DataSize" type="am:DataSize"/>
<xsd:element ecore:ignore="true" name="DataRateComparable" type="am:DataRateComparable"/>
<xsd:element ecore:ignore="true" name="DataRate" type="am:DataRate"/>
<xsd:element ecore:ignore="true" name="CustomProperty" type="am:CustomProperty"/>
<xsd:element ecore:ignore="true" name="Value" type="am:Value"/>
<xsd:element ecore:ignore="true" name="ListObject" type="am:ListObject"/>
<xsd:element ecore:ignore="true" name="StringObject" type="am:StringObject"/>
<xsd:element ecore:ignore="true" name="BigIntegerObject" type="am:BigIntegerObject"/>
<xsd:element ecore:ignore="true" name="ReferenceObject" type="am:ReferenceObject"/>
<xsd:element ecore:ignore="true" name="IntegerObject" type="am:IntegerObject"/>
<xsd:element ecore:ignore="true" name="LongObject" type="am:LongObject"/>
<xsd:element ecore:ignore="true" name="FloatObject" type="am:FloatObject"/>
<xsd:element ecore:ignore="true" name="DoubleObject" type="am:DoubleObject"/>
<xsd:element ecore:ignore="true" name="BooleanObject" type="am:BooleanObject"/>
<xsd:element ecore:ignore="true" name="NumericStatistic" type="am:NumericStatistic"/>
<xsd:element ecore:ignore="true" name="MinAvgMaxStatistic" type="am:MinAvgMaxStatistic"/>
<xsd:element ecore:ignore="true" name="SingleValueStatistic" type="am:SingleValueStatistic"/>
<xsd:element ecore:ignore="true" name="ITimeDeviation" type="am:ITimeDeviation"/>
<xsd:element ecore:ignore="true" name="TimeInterval" type="am:TimeInterval"/>
<xsd:element ecore:ignore="true" name="TimeConstant" type="am:TimeConstant"/>
<xsd:element ecore:ignore="true" name="TimeHistogram" type="am:TimeHistogram"/>
<xsd:element ecore:ignore="true" name="TimeHistogramEntry" type="am:TimeHistogramEntry"/>
<xsd:element ecore:ignore="true" name="BoundedTimeDistribution" type="am:BoundedTimeDistribution"/>
<xsd:element ecore:ignore="true" name="TruncatedTimeDistribution" type="am:TruncatedTimeDistribution"/>
<xsd:element ecore:ignore="true" name="TimeBoundaries" type="am:TimeBoundaries"/>
<xsd:element ecore:ignore="true" name="TimeStatistics" type="am:TimeStatistics"/>
<xsd:element ecore:ignore="true" name="TimeUniformDistribution" type="am:TimeUniformDistribution"/>
<xsd:element ecore:ignore="true" name="TimeGaussDistribution" type="am:TimeGaussDistribution"/>
<xsd:element ecore:ignore="true" name="TimeWeibullEstimatorsDistribution" type="am:TimeWeibullEstimatorsDistribution"/>
<xsd:element ecore:ignore="true" name="TimeBetaDistribution" type="am:TimeBetaDistribution"/>
<xsd:element ecore:ignore="true" name="IDiscreteValueDeviation" type="am:IDiscreteValueDeviation"/>
<xsd:element ecore:ignore="true" name="DiscreteValueInterval" type="am:DiscreteValueInterval"/>
<xsd:element ecore:ignore="true" name="DiscreteValueConstant" type="am:DiscreteValueConstant"/>
<xsd:element ecore:ignore="true" name="DiscreteValueHistogram" type="am:DiscreteValueHistogram"/>
<xsd:element ecore:ignore="true" name="DiscreteValueHistogramEntry" type="am:DiscreteValueHistogramEntry"/>
<xsd:element ecore:ignore="true" name="BoundedDiscreteValueDistribution" type="am:BoundedDiscreteValueDistribution"/>
<xsd:element ecore:ignore="true" name="TruncatedDiscreteValueDistribution" type="am:TruncatedDiscreteValueDistribution"/>
<xsd:element ecore:ignore="true" name="DiscreteValueBoundaries" type="am:DiscreteValueBoundaries"/>
<xsd:element ecore:ignore="true" name="DiscreteValueStatistics" type="am:DiscreteValueStatistics"/>
<xsd:element ecore:ignore="true" name="DiscreteValueUniformDistribution" type="am:DiscreteValueUniformDistribution"/>
<xsd:element ecore:ignore="true" name="DiscreteValueGaussDistribution" type="am:DiscreteValueGaussDistribution"/>
<xsd:element ecore:ignore="true" name="DiscreteValueWeibullEstimatorsDistribution" type="am:DiscreteValueWeibullEstimatorsDistribution"/>
<xsd:element ecore:ignore="true" name="DiscreteValueBetaDistribution" type="am:DiscreteValueBetaDistribution"/>
<xsd:element ecore:ignore="true" name="IContinuousValueDeviation" type="am:IContinuousValueDeviation"/>
<xsd:element ecore:ignore="true" name="ContinuousValueInterval" type="am:ContinuousValueInterval"/>
<xsd:element ecore:ignore="true" name="ContinuousValueConstant" type="am:ContinuousValueConstant"/>
<xsd:element ecore:ignore="true" name="ContinuousValueHistogram" type="am:ContinuousValueHistogram"/>
<xsd:element ecore:ignore="true" name="ContinuousValueHistogramEntry" type="am:ContinuousValueHistogramEntry"/>
<xsd:element ecore:ignore="true" name="BoundedContinuousValueDistribution" type="am:BoundedContinuousValueDistribution"/>
<xsd:element ecore:ignore="true" name="TruncatedContinuousValueDistribution" type="am:TruncatedContinuousValueDistribution"/>
<xsd:element ecore:ignore="true" name="ContinuousValueBoundaries" type="am:ContinuousValueBoundaries"/>
<xsd:element ecore:ignore="true" name="ContinuousValueStatistics" type="am:ContinuousValueStatistics"/>
<xsd:element ecore:ignore="true" name="ContinuousValueUniformDistribution" type="am:ContinuousValueUniformDistribution"/>
<xsd:element ecore:ignore="true" name="ContinuousValueGaussDistribution" type="am:ContinuousValueGaussDistribution"/>
<xsd:element ecore:ignore="true" name="ContinuousValueWeibullEstimatorsDistribution" type="am:ContinuousValueWeibullEstimatorsDistribution"/>
<xsd:element ecore:ignore="true" name="ContinuousValueBetaDistribution" type="am:ContinuousValueBetaDistribution"/>
<xsd:element ecore:ignore="true" name="Mode" type="am:Mode"/>
<xsd:element ecore:ignore="true" name="NumericMode" type="am:NumericMode"/>
<xsd:element ecore:ignore="true" name="EnumMode" type="am:EnumMode"/>
<xsd:element ecore:ignore="true" name="ModeLiteral" type="am:ModeLiteral"/>
<xsd:element ecore:ignore="true" name="ComponentsModel" type="am:ComponentsModel"/>
<xsd:element ecore:ignore="true" name="IComponentContainer" type="am:IComponentContainer"/>
<xsd:element ecore:ignore="true" name="IInterfaceContainer" type="am:IInterfaceContainer"/>
<xsd:element ecore:ignore="true" name="ISystem" type="am:ISystem"/>
<xsd:element ecore:ignore="true" name="ComponentInterface" type="am:ComponentInterface"/>
<xsd:element ecore:ignore="true" name="MainInterface" type="am:MainInterface"/>
<xsd:element ecore:ignore="true" name="SubInterface" type="am:SubInterface"/>
<xsd:element ecore:ignore="true" name="ComponentPort" type="am:ComponentPort"/>
<xsd:element ecore:ignore="true" name="ComponentStructure" type="am:ComponentStructure"/>
<xsd:element ecore:ignore="true" name="IComponentStructureMember" type="am:IComponentStructureMember"/>
<xsd:element ecore:ignore="true" name="Component" type="am:Component"/>
<xsd:element ecore:ignore="true" name="Composite" type="am:Composite"/>
<xsd:element ecore:ignore="true" name="System" type="am:System"/>
<xsd:element ecore:ignore="true" name="ComponentInstance" type="am:ComponentInstance"/>
<xsd:element ecore:ignore="true" name="Connector" type="am:Connector"/>
<xsd:element ecore:ignore="true" name="InterfaceChannel" type="am:InterfaceChannel"/>
<xsd:element ecore:ignore="true" name="QualifiedPort" type="am:QualifiedPort"/>
<xsd:element ecore:ignore="true" name="ConfigModel" type="am:ConfigModel"/>
<xsd:element ecore:ignore="true" name="EventConfig" type="am:EventConfig"/>
<xsd:element ecore:ignore="true" name="ConstraintsModel" type="am:ConstraintsModel"/>
<xsd:element ecore:ignore="true" name="RunnableSequencingConstraint" type="am:RunnableSequencingConstraint"/>
<xsd:element ecore:ignore="true" name="AffinityConstraint" type="am:AffinityConstraint"/>
<xsd:element ecore:ignore="true" name="SeparationConstraint" type="am:SeparationConstraint"/>
<xsd:element ecore:ignore="true" name="PairingConstraint" type="am:PairingConstraint"/>
<xsd:element ecore:ignore="true" name="ProcessConstraint" type="am:ProcessConstraint"/>
<xsd:element ecore:ignore="true" name="RunnableConstraint" type="am:RunnableConstraint"/>
<xsd:element ecore:ignore="true" name="DataConstraint" type="am:DataConstraint"/>
<xsd:element ecore:ignore="true" name="RunnableSeparationConstraint" type="am:RunnableSeparationConstraint"/>
<xsd:element ecore:ignore="true" name="ProcessSeparationConstraint" type="am:ProcessSeparationConstraint"/>
<xsd:element ecore:ignore="true" name="DataSeparationConstraint" type="am:DataSeparationConstraint"/>
<xsd:element ecore:ignore="true" name="RunnablePairingConstraint" type="am:RunnablePairingConstraint"/>
<xsd:element ecore:ignore="true" name="ProcessPairingConstraint" type="am:ProcessPairingConstraint"/>
<xsd:element ecore:ignore="true" name="DataPairingConstraint" type="am:DataPairingConstraint"/>
<xsd:element ecore:ignore="true" name="RunnableConstraintTarget" type="am:RunnableConstraintTarget"/>
<xsd:element ecore:ignore="true" name="ProcessConstraintTarget" type="am:ProcessConstraintTarget"/>
<xsd:element ecore:ignore="true" name="DataConstraintTarget" type="am:DataConstraintTarget"/>
<xsd:element ecore:ignore="true" name="TargetMemory" type="am:TargetMemory"/>
<xsd:element ecore:ignore="true" name="TargetCore" type="am:TargetCore"/>
<xsd:element ecore:ignore="true" name="TargetScheduler" type="am:TargetScheduler"/>
<xsd:element ecore:ignore="true" name="LabelGroup" type="am:LabelGroup"/>
<xsd:element ecore:ignore="true" name="RunnableGroup" type="am:RunnableGroup"/>
<xsd:element ecore:ignore="true" name="ProcessGroup" type="am:ProcessGroup"/>
<xsd:element ecore:ignore="true" name="LabelEntityGroup" type="am:LabelEntityGroup"/>
<xsd:element ecore:ignore="true" name="RunnableEntityGroup" type="am:RunnableEntityGroup"/>
<xsd:element ecore:ignore="true" name="ProcessEntityGroup" type="am:ProcessEntityGroup"/>
<xsd:element ecore:ignore="true" name="TagGroup" type="am:TagGroup"/>
<xsd:element ecore:ignore="true" name="AbstractEventChain" type="am:AbstractEventChain"/>
<xsd:element ecore:ignore="true" name="EventChain" type="am:EventChain"/>
<xsd:element ecore:ignore="true" name="SubEventChain" type="am:SubEventChain"/>
<xsd:element ecore:ignore="true" name="EventChainItem" type="am:EventChainItem"/>
<xsd:element ecore:ignore="true" name="EventChainReference" type="am:EventChainReference"/>
<xsd:element ecore:ignore="true" name="EventChainContainer" type="am:EventChainContainer"/>
<xsd:element ecore:ignore="true" name="TimingConstraint" type="am:TimingConstraint"/>
<xsd:element ecore:ignore="true" name="PhysicalSectionConstraint" type="am:PhysicalSectionConstraint"/>
<xsd:element ecore:ignore="true" name="SynchronizationConstraint" type="am:SynchronizationConstraint"/>
<xsd:element ecore:ignore="true" name="EventSynchronizationConstraint" type="am:EventSynchronizationConstraint"/>
<xsd:element ecore:ignore="true" name="EventChainSynchronizationConstraint" type="am:EventChainSynchronizationConstraint"/>
<xsd:element ecore:ignore="true" name="DelayConstraint" type="am:DelayConstraint"/>
<xsd:element ecore:ignore="true" name="EventChainLatencyConstraint" type="am:EventChainLatencyConstraint"/>
<xsd:element ecore:ignore="true" name="RepetitionConstraint" type="am:RepetitionConstraint"/>
<xsd:element ecore:ignore="true" name="DataAgeConstraint" type="am:DataAgeConstraint"/>
<xsd:element ecore:ignore="true" name="DataAge" type="am:DataAge"/>
<xsd:element ecore:ignore="true" name="DataAgeCycle" type="am:DataAgeCycle"/>
<xsd:element ecore:ignore="true" name="DataAgeTime" type="am:DataAgeTime"/>
<xsd:element ecore:ignore="true" name="Requirement" type="am:Requirement"/>
<xsd:element ecore:ignore="true" name="ProcessRequirement" type="am:ProcessRequirement"/>
<xsd:element ecore:ignore="true" name="RunnableRequirement" type="am:RunnableRequirement"/>
<xsd:element ecore:ignore="true" name="ArchitectureRequirement" type="am:ArchitectureRequirement"/>
<xsd:element ecore:ignore="true" name="ProcessChainRequirement" type="am:ProcessChainRequirement"/>
<xsd:element ecore:ignore="true" name="RequirementLimit" type="am:RequirementLimit"/>
<xsd:element ecore:ignore="true" name="CPUPercentageRequirementLimit" type="am:CPUPercentageRequirementLimit"/>
<xsd:element ecore:ignore="true" name="FrequencyRequirementLimit" type="am:FrequencyRequirementLimit"/>
<xsd:element ecore:ignore="true" name="PercentageRequirementLimit" type="am:PercentageRequirementLimit"/>
<xsd:element ecore:ignore="true" name="CountRequirementLimit" type="am:CountRequirementLimit"/>
<xsd:element ecore:ignore="true" name="TimeRequirementLimit" type="am:TimeRequirementLimit"/>
<xsd:element ecore:ignore="true" name="DataCoherencyGroup" type="am:DataCoherencyGroup"/>
<xsd:element ecore:ignore="true" name="DataStabilityGroup" type="am:DataStabilityGroup"/>
<xsd:element ecore:ignore="true" name="DataGroupScope" type="am:DataGroupScope"/>
<xsd:element ecore:ignore="true" name="ProcessScope" type="am:ProcessScope"/>
<xsd:element ecore:ignore="true" name="RunnableScope" type="am:RunnableScope"/>
<xsd:element ecore:ignore="true" name="ComponentScope" type="am:ComponentScope"/>
<xsd:element ecore:ignore="true" name="EventModel" type="am:EventModel"/>
<xsd:element ecore:ignore="true" name="Event" type="am:Event"/>
<xsd:element ecore:ignore="true" name="EventSet" type="am:EventSet"/>
<xsd:element ecore:ignore="true" name="EntityEvent" type="am:EntityEvent"/>
<xsd:element ecore:ignore="true" name="TriggerEvent" type="am:TriggerEvent"/>
<xsd:element ecore:ignore="true" name="CustomEvent" type="am:CustomEvent"/>
<xsd:element ecore:ignore="true" name="StimulusEvent" type="am:StimulusEvent"/>
<xsd:element ecore:ignore="true" name="ProcessEvent" type="am:ProcessEvent"/>
<xsd:element ecore:ignore="true" name="ProcessChainEvent" type="am:ProcessChainEvent"/>
<xsd:element ecore:ignore="true" name="RunnableEvent" type="am:RunnableEvent"/>
<xsd:element ecore:ignore="true" name="LabelEvent" type="am:LabelEvent"/>
<xsd:element ecore:ignore="true" name="ChannelEvent" type="am:ChannelEvent"/>
<xsd:element ecore:ignore="true" name="SemaphoreEvent" type="am:SemaphoreEvent"/>
<xsd:element ecore:ignore="true" name="ComponentEvent" type="am:ComponentEvent"/>
<xsd:element ecore:ignore="true" name="HWModel" type="am:HWModel"/>
<xsd:element ecore:ignore="true" name="HwStructure" type="am:HwStructure"/>
<xsd:element ecore:ignore="true" name="HwModule" type="am:HwModule"/>
<xsd:element ecore:ignore="true" name="HwDomain" type="am:HwDomain"/>
<xsd:element ecore:ignore="true" name="FrequencyDomain" type="am:FrequencyDomain"/>
<xsd:element ecore:ignore="true" name="PowerDomain" type="am:PowerDomain"/>
<xsd:element ecore:ignore="true" name="ProcessingUnit" type="am:ProcessingUnit"/>
<xsd:element ecore:ignore="true" name="Memory" type="am:Memory"/>
<xsd:element ecore:ignore="true" name="Cache" type="am:Cache"/>
<xsd:element ecore:ignore="true" name="HwFeatureCategory" type="am:HwFeatureCategory"/>
<xsd:element ecore:ignore="true" name="HwFeature" type="am:HwFeature"/>
<xsd:element ecore:ignore="true" name="HwPort" type="am:HwPort"/>
<xsd:element ecore:ignore="true" name="ConnectionHandler" type="am:ConnectionHandler"/>
<xsd:element ecore:ignore="true" name="HwConnection" type="am:HwConnection"/>
<xsd:element ecore:ignore="true" name="HwAccessElement" type="am:HwAccessElement"/>
<xsd:element ecore:ignore="true" name="HwDefinition" type="am:HwDefinition"/>
<xsd:element ecore:ignore="true" name="ProcessingUnitDefinition" type="am:ProcessingUnitDefinition"/>
<xsd:element ecore:ignore="true" name="ConnectionHandlerDefinition" type="am:ConnectionHandlerDefinition"/>
<xsd:element ecore:ignore="true" name="MemoryDefinition" type="am:MemoryDefinition"/>
<xsd:element ecore:ignore="true" name="CacheDefinition" type="am:CacheDefinition"/>
<xsd:element ecore:ignore="true" name="HwPath" type="am:HwPath"/>
<xsd:element ecore:ignore="true" name="HwAccessPath" type="am:HwAccessPath"/>
<xsd:element ecore:ignore="true" name="HwPathElement" type="am:HwPathElement"/>
<xsd:element ecore:ignore="true" name="HwDestination" type="am:HwDestination"/>
<xsd:element ecore:ignore="true" name="MappingModel" type="am:MappingModel"/>
<xsd:element ecore:ignore="true" name="SchedulerAllocation" type="am:SchedulerAllocation"/>
<xsd:element ecore:ignore="true" name="TaskAllocation" type="am:TaskAllocation"/>
<xsd:element ecore:ignore="true" name="ISRAllocation" type="am:ISRAllocation"/>
<xsd:element ecore:ignore="true" name="RunnableAllocation" type="am:RunnableAllocation"/>
<xsd:element ecore:ignore="true" name="MemoryMapping" type="am:MemoryMapping"/>
<xsd:element ecore:ignore="true" name="PhysicalSectionMapping" type="am:PhysicalSectionMapping"/>
<xsd:element ecore:ignore="true" name="OSModel" type="am:OSModel"/>
<xsd:element ecore:ignore="true" name="OsDataConsistency" type="am:OsDataConsistency"/>
<xsd:element ecore:ignore="true" name="DataStability" type="am:DataStability"/>
<xsd:element ecore:ignore="true" name="NonAtomicDataCoherency" type="am:NonAtomicDataCoherency"/>
<xsd:element ecore:ignore="true" name="Semaphore" type="am:Semaphore"/>
<xsd:element ecore:ignore="true" name="Scheduler" type="am:Scheduler"/>
<xsd:element ecore:ignore="true" name="TaskScheduler" type="am:TaskScheduler"/>
<xsd:element ecore:ignore="true" name="SchedulerAssociation" type="am:SchedulerAssociation"/>
<xsd:element ecore:ignore="true" name="InterruptController" type="am:InterruptController"/>
<xsd:element ecore:ignore="true" name="SchedulingParameters" type="am:SchedulingParameters"/>
<xsd:element ecore:ignore="true" name="ParameterExtension" type="am:ParameterExtension"/>
<xsd:element ecore:ignore="true" name="Algorithm" type="am:Algorithm"/>
<xsd:element ecore:ignore="true" name="InterruptSchedulingAlgorithm" type="am:InterruptSchedulingAlgorithm"/>
<xsd:element ecore:ignore="true" name="TaskSchedulingAlgorithm" type="am:TaskSchedulingAlgorithm"/>
<xsd:element ecore:ignore="true" name="FixedPriority" type="am:FixedPriority"/>
<xsd:element ecore:ignore="true" name="FixedPriorityPreemptive" type="am:FixedPriorityPreemptive"/>
<xsd:element ecore:ignore="true" name="FixedPriorityPreemptiveWithBudgetEnforcement" type="am:FixedPriorityPreemptiveWithBudgetEnforcement"/>
<xsd:element ecore:ignore="true" name="OSEK" type="am:OSEK"/>
<xsd:element ecore:ignore="true" name="DeadlineMonotonic" type="am:DeadlineMonotonic"/>
<xsd:element ecore:ignore="true" name="RateMonotonic" type="am:RateMonotonic"/>
<xsd:element ecore:ignore="true" name="Pfair" type="am:Pfair"/>
<xsd:element ecore:ignore="true" name="PfairPD2" type="am:PfairPD2"/>
<xsd:element ecore:ignore="true" name="PartlyPFairPD2" type="am:PartlyPFairPD2"/>
<xsd:element ecore:ignore="true" name="EarlyReleaseFairPD2" type="am:EarlyReleaseFairPD2"/>
<xsd:element ecore:ignore="true" name="PartlyEarlyReleaseFairPD2" type="am:PartlyEarlyReleaseFairPD2"/>
<xsd:element ecore:ignore="true" name="DynamicPriority" type="am:DynamicPriority"/>
<xsd:element ecore:ignore="true" name="LeastLocalRemainingExecutionTimeFirst" type="am:LeastLocalRemainingExecutionTimeFirst"/>
<xsd:element ecore:ignore="true" name="EarliestDeadlineFirst" type="am:EarliestDeadlineFirst"/>
<xsd:element ecore:ignore="true" name="PriorityBasedRoundRobin" type="am:PriorityBasedRoundRobin"/>
<xsd:element ecore:ignore="true" name="ReservationBasedServer" type="am:ReservationBasedServer"/>
<xsd:element ecore:ignore="true" name="DeferrableServer" type="am:DeferrableServer"/>
<xsd:element ecore:ignore="true" name="PollingPeriodicServer" type="am:PollingPeriodicServer"/>
<xsd:element ecore:ignore="true" name="SporadicServer" type="am:SporadicServer"/>
<xsd:element ecore:ignore="true" name="ConstantBandwidthServer" type="am:ConstantBandwidthServer"/>
<xsd:element ecore:ignore="true" name="ConstantBandwidthServerWithCASH" type="am:ConstantBandwidthServerWithCASH"/>
<xsd:element ecore:ignore="true" name="Grouping" type="am:Grouping"/>
<xsd:element ecore:ignore="true" name="UserSpecificSchedulingAlgorithm" type="am:UserSpecificSchedulingAlgorithm"/>
<xsd:element ecore:ignore="true" name="PriorityBased" type="am:PriorityBased"/>
<xsd:element ecore:ignore="true" name="OperatingSystem" type="am:OperatingSystem"/>
<xsd:element ecore:ignore="true" name="VendorOperatingSystem" type="am:VendorOperatingSystem"/>
<xsd:element ecore:ignore="true" name="OsOverhead" type="am:OsOverhead"/>
<xsd:element ecore:ignore="true" name="OsAPIOverhead" type="am:OsAPIOverhead"/>
<xsd:element ecore:ignore="true" name="OsISROverhead" type="am:OsISROverhead"/>
<xsd:element ecore:ignore="true" name="PropertyConstraintsModel" type="am:PropertyConstraintsModel"/>
<xsd:element ecore:ignore="true" name="CoreAllocationConstraint" type="am:CoreAllocationConstraint"/>
<xsd:element ecore:ignore="true" name="MemoryMappingConstraint" type="am:MemoryMappingConstraint"/>
<xsd:element ecore:ignore="true" name="ProcessAllocationConstraint" type="am:ProcessAllocationConstraint"/>
<xsd:element ecore:ignore="true" name="ProcessPrototypeAllocationConstraint" type="am:ProcessPrototypeAllocationConstraint"/>
<xsd:element ecore:ignore="true" name="RunnableAllocationConstraint" type="am:RunnableAllocationConstraint"/>
<xsd:element ecore:ignore="true" name="AbstractElementMappingConstraint" type="am:AbstractElementMappingConstraint"/>
<xsd:element ecore:ignore="true" name="Classification" type="am:Classification"/>
<xsd:element ecore:ignore="true" name="CoreClassification" type="am:CoreClassification"/>
<xsd:element ecore:ignore="true" name="MemoryClassification" type="am:MemoryClassification"/>
<xsd:element ecore:ignore="true" name="StimuliModel" type="am:StimuliModel"/>
<xsd:element ecore:ignore="true" name="Stimulus" type="am:Stimulus"/>
<xsd:element ecore:ignore="true" name="ModeValueList" type="am:ModeValueList"/>
<xsd:element ecore:ignore="true" name="ModeValueMapEntry" type="am:ModeValueMapEntry"/>
<xsd:element ecore:ignore="true" name="ModeValue" type="am:ModeValue"/>
<xsd:element ecore:ignore="true" name="ModeAssignment" type="am:ModeAssignment"/>
<xsd:element ecore:ignore="true" name="ModeConditionDisjunction" type="am:ModeConditionDisjunction"/>
<xsd:element ecore:ignore="true" name="ModeConditionDisjunctionEntry" type="am:ModeConditionDisjunctionEntry"/>
<xsd:element ecore:ignore="true" name="ModeCondition" type="am:ModeCondition"/>
<xsd:element ecore:ignore="true" name="ModeValueCondition" type="am:ModeValueCondition"/>
<xsd:element ecore:ignore="true" name="ModeLabelCondition" type="am:ModeLabelCondition"/>
<xsd:element ecore:ignore="true" name="ModeConditionConjunction" type="am:ModeConditionConjunction"/>
<xsd:element ecore:ignore="true" name="FixedPeriodic" type="am:FixedPeriodic"/>
<xsd:element ecore:ignore="true" name="PeriodicStimulus" type="am:PeriodicStimulus"/>
<xsd:element ecore:ignore="true" name="RelativePeriodicStimulus" type="am:RelativePeriodicStimulus"/>
<xsd:element ecore:ignore="true" name="VariableRateStimulus" type="am:VariableRateStimulus"/>
<xsd:element ecore:ignore="true" name="Scenario" type="am:Scenario"/>
<xsd:element ecore:ignore="true" name="PeriodicSyntheticStimulus" type="am:PeriodicSyntheticStimulus"/>
<xsd:element ecore:ignore="true" name="CustomStimulus" type="am:CustomStimulus"/>
<xsd:element ecore:ignore="true" name="SingleStimulus" type="am:SingleStimulus"/>
<xsd:element ecore:ignore="true" name="InterProcessStimulus" type="am:InterProcessStimulus"/>
<xsd:element ecore:ignore="true" name="PeriodicBurstStimulus" type="am:PeriodicBurstStimulus"/>
<xsd:element ecore:ignore="true" name="EventStimulus" type="am:EventStimulus"/>
<xsd:element ecore:ignore="true" name="ArrivalCurveStimulus" type="am:ArrivalCurveStimulus"/>
<xsd:element ecore:ignore="true" name="ArrivalCurveEntry" type="am:ArrivalCurveEntry"/>
<xsd:element ecore:ignore="true" name="Clock" type="am:Clock"/>
<xsd:element ecore:ignore="true" name="ClockFunction" type="am:ClockFunction"/>
<xsd:element ecore:ignore="true" name="ClockStepList" type="am:ClockStepList"/>
<xsd:element ecore:ignore="true" name="ClockStep" type="am:ClockStep"/>
<xsd:element ecore:ignore="true" name="SWModel" type="am:SWModel"/>
<xsd:element ecore:ignore="true" name="AbstractMemoryElement" type="am:AbstractMemoryElement"/>
<xsd:element ecore:ignore="true" name="AbstractProcess" type="am:AbstractProcess"/>
<xsd:element ecore:ignore="true" name="CustomEntity" type="am:CustomEntity"/>
<xsd:element ecore:ignore="true" name="ProcessChain" type="am:ProcessChain"/>
<xsd:element ecore:ignore="true" name="Process" type="am:Process"/>
<xsd:element ecore:ignore="true" name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/>
<xsd:element ecore:ignore="true" name="ActivityGraph" type="am:ActivityGraph"/>
<xsd:element ecore:ignore="true" name="ActivityGraphItem" type="am:ActivityGraphItem"/>
<xsd:element ecore:ignore="true" name="ModeSwitch" type="am:ModeSwitch"/>
<xsd:element ecore:ignore="true" name="ModeSwitchEntry" type="am:ModeSwitchEntry"/>
<xsd:element ecore:ignore="true" name="ModeSwitchDefault" type="am:ModeSwitchDefault"/>
<xsd:element ecore:ignore="true" name="ProbabilitySwitch" type="am:ProbabilitySwitch"/>
<xsd:element ecore:ignore="true" name="ProbabilitySwitchEntry" type="am:ProbabilitySwitchEntry"/>
<xsd:element ecore:ignore="true" name="Counter" type="am:Counter"/>
<xsd:element ecore:ignore="true" name="WaitEvent" type="am:WaitEvent"/>
<xsd:element ecore:ignore="true" name="SetEvent" type="am:SetEvent"/>
<xsd:element ecore:ignore="true" name="ClearEvent" type="am:ClearEvent"/>
<xsd:element ecore:ignore="true" name="EventMask" type="am:EventMask"/>
<xsd:element ecore:ignore="true" name="OsEvent" type="am:OsEvent"/>
<xsd:element ecore:ignore="true" name="InterProcessTrigger" type="am:InterProcessTrigger"/>
<xsd:element ecore:ignore="true" name="EnforcedMigration" type="am:EnforcedMigration"/>
<xsd:element ecore:ignore="true" name="SchedulePoint" type="am:SchedulePoint"/>
<xsd:element ecore:ignore="true" name="TerminateProcess" type="am:TerminateProcess"/>
<xsd:element ecore:ignore="true" name="Task" type="am:Task"/>
<xsd:element ecore:ignore="true" name="ISR" type="am:ISR"/>
<xsd:element ecore:ignore="true" name="ProcessPrototype" type="am:ProcessPrototype"/>
<xsd:element ecore:ignore="true" name="ChainedProcessPrototype" type="am:ChainedProcessPrototype"/>
<xsd:element ecore:ignore="true" name="GeneralPrecedence" type="am:GeneralPrecedence"/>
<xsd:element ecore:ignore="true" name="AccessPrecedenceSpec" type="am:AccessPrecedenceSpec"/>
<xsd:element ecore:ignore="true" name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/>
<xsd:element ecore:ignore="true" name="IDependsOn" type="am:IDependsOn"/>
<xsd:element ecore:ignore="true" name="DataDependency" type="am:DataDependency"/>
<xsd:element ecore:ignore="true" name="RunnableParameter" type="am:RunnableParameter"/>
<xsd:element ecore:ignore="true" name="Runnable" type="am:Runnable"/>
<xsd:element ecore:ignore="true" name="Label" type="am:Label"/>
<xsd:element ecore:ignore="true" name="Channel" type="am:Channel"/>
<xsd:element ecore:ignore="true" name="ModeLabel" type="am:ModeLabel"/>
<xsd:element ecore:ignore="true" name="Section" type="am:Section"/>
<xsd:element ecore:ignore="true" name="ComputationItem" type="am:ComputationItem"/>
<xsd:element ecore:ignore="true" name="ExecutionNeed" type="am:ExecutionNeed"/>
<xsd:element ecore:ignore="true" name="NeedEntry" type="am:NeedEntry"/>
<xsd:element ecore:ignore="true" name="Ticks" type="am:Ticks"/>
<xsd:element ecore:ignore="true" name="TicksEntry" type="am:TicksEntry"/>
<xsd:element ecore:ignore="true" name="ModeLabelAccess" type="am:ModeLabelAccess"/>
<xsd:element ecore:ignore="true" name="LabelAccess" type="am:LabelAccess"/>
<xsd:element ecore:ignore="true" name="ChannelAccess" type="am:ChannelAccess"/>
<xsd:element ecore:ignore="true" name="ChannelSend" type="am:ChannelSend"/>
<xsd:element ecore:ignore="true" name="ChannelReceive" type="am:ChannelReceive"/>
<xsd:element ecore:ignore="true" name="SemaphoreAccess" type="am:SemaphoreAccess"/>
<xsd:element ecore:ignore="true" name="SenderReceiverCommunication" type="am:SenderReceiverCommunication"/>
<xsd:element ecore:ignore="true" name="SenderReceiverRead" type="am:SenderReceiverRead"/>
<xsd:element ecore:ignore="true" name="SenderReceiverWrite" type="am:SenderReceiverWrite"/>
<xsd:element ecore:ignore="true" name="ServerCall" type="am:ServerCall"/>
<xsd:element ecore:ignore="true" name="SynchronousServerCall" type="am:SynchronousServerCall"/>
<xsd:element ecore:ignore="true" name="AsynchronousServerCall" type="am:AsynchronousServerCall"/>
<xsd:element ecore:ignore="true" name="GetResultServerCall" type="am:GetResultServerCall"/>
<xsd:element ecore:ignore="true" name="Group" type="am:Group"/>
<xsd:element ecore:ignore="true" name="CallArgument" type="am:CallArgument"/>
<xsd:element ecore:ignore="true" name="RunnableCall" type="am:RunnableCall"/>
<xsd:element ecore:ignore="true" name="CustomEventTrigger" type="am:CustomEventTrigger"/>
<xsd:element ecore:ignore="true" name="DataType" type="am:DataType"/>
<xsd:element ecore:ignore="true" name="CompoundType" type="am:CompoundType"/>
<xsd:element ecore:ignore="true" name="Struct" type="am:Struct"/>
<xsd:element ecore:ignore="true" name="StructEntry" type="am:StructEntry"/>
<xsd:element ecore:ignore="true" name="Array" type="am:Array"/>
<xsd:element ecore:ignore="true" name="Pointer" type="am:Pointer"/>
<xsd:element ecore:ignore="true" name="TypeRef" type="am:TypeRef"/>
<xsd:element ecore:ignore="true" name="Alias" type="am:Alias"/>
<xsd:element ecore:ignore="true" name="TypeDefinition" type="am:TypeDefinition"/>
<xsd:element ecore:ignore="true" name="DataTypeDefinition" type="am:DataTypeDefinition"/>
<xsd:element ecore:ignore="true" name="BaseTypeDefinition" type="am:BaseTypeDefinition"/>
<xsd:element ecore:ignore="true" name="Activation" type="am:Activation"/>
<xsd:element ecore:ignore="true" name="PeriodicActivation" type="am:PeriodicActivation"/>
<xsd:element ecore:ignore="true" name="VariableRateActivation" type="am:VariableRateActivation"/>
<xsd:element ecore:ignore="true" name="SporadicActivation" type="am:SporadicActivation"/>
<xsd:element ecore:ignore="true" name="SingleActivation" type="am:SingleActivation"/>
<xsd:element ecore:ignore="true" name="EventActivation" type="am:EventActivation"/>
<xsd:element ecore:ignore="true" name="CustomActivation" type="am:CustomActivation"/>
<xsd:element ecore:ignore="true" name="LabelAccessStatistic" type="am:LabelAccessStatistic"/>
<xsd:element ecore:ignore="true" name="RunEntityCallStatistic" type="am:RunEntityCallStatistic"/>
<xsd:element ecore:ignore="true" name="MeasurementModel" type="am:MeasurementModel"/>
<xsd:element ecore:ignore="true" name="Measurement" type="am:Measurement"/>
<xsd:element ecore:ignore="true" name="EventChainMeasurement" type="am:EventChainMeasurement"/>
<xsd:element ecore:ignore="true" name="TaskMeasurement" type="am:TaskMeasurement"/>
<xsd:element ecore:ignore="true" name="RunnableMeasurement" type="am:RunnableMeasurement"/>
<xsd:complexType name="Amalthea">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element minOccurs="0" name="commonElements" type="am:CommonElements"/>
<xsd:element minOccurs="0" name="swModel" type="am:SWModel"/>
<xsd:element minOccurs="0" name="hwModel" type="am:HWModel"/>
<xsd:element minOccurs="0" name="osModel" type="am:OSModel"/>
<xsd:element minOccurs="0" name="stimuliModel" type="am:StimuliModel"/>
<xsd:element minOccurs="0" name="eventModel" type="am:EventModel"/>
<xsd:element minOccurs="0" name="constraintsModel" type="am:ConstraintsModel"/>
<xsd:element minOccurs="0" name="propertyConstraintsModel" type="am:PropertyConstraintsModel"/>
<xsd:element minOccurs="0" name="mappingModel" type="am:MappingModel"/>
<xsd:element minOccurs="0" name="componentsModel" type="am:ComponentsModel"/>
<xsd:element minOccurs="0" name="configModel" type="am:ConfigModel"/>
<xsd:element minOccurs="0" name="measurementModel" type="am:MeasurementModel"/>
</xsd:sequence>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="version" type="ecore:EString"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CommonElements">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="tags" type="am:Tag"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="namespaces" type="am:Namespace"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="coreClassifiers" type="am:CoreClassifier"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="memoryClassifiers" type="am:MemoryClassifier"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="BaseObject">
<xsd:annotation>
<xsd:documentation>Base classes to be used to provide common functionality for all objects.
Needs to be extended by other classes.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IAnnotatable"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="ReferableObject">
<xsd:complexContent>
<xsd:extension base="am:IReferable"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:implements="am:IReferable" name="ReferableBaseObject">
<xsd:complexContent>
<xsd:extension base="am:IAnnotatable"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IAnnotatable">
<xsd:annotation>
<xsd:documentation>IAnnotatable: Possibility to store custom properties on elements</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="customProperties" type="am:CustomProperty"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="ITaggable">
<xsd:annotation>
<xsd:documentation>ITaggable: Possibility to add tags to an elements</xsd:documentation>
</xsd:annotation>
<xsd:attribute ecore:reference="am:Tag" name="tags">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="INamed">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamedContainer" type="am:INamed" unique="false">
<body>&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _xifexpression = null;
&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;))
{
&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer_1);
}
else
{
_xifexpression = null;
}
return _xifexpression;</body>
</operation>
<operation name="getNamePrefix" type="ecore:EString" unique="false">
<body>&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
boolean _tripleEquals = (_namespace == null);
if (_tripleEquals)
{
return "";
}
else
{
_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
}
return _xifexpression;</body>
</operation>
<operation name="getQualifiedNameSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>final &lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; segments = this.getNamePrefixSegments();
&lt;%java.lang.String%&gt; _name = this.getName();
boolean _tripleNotEquals = (_name != null);
if (_tripleNotEquals)
{
segments.add(this.getName());
}
return segments;</body>
</operation>
<operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
<annotation source="http://www.eclipse.org/emf/2002/GenModel">
<detail key="documentation">Overwrite this method to define a specific name separator.</detail>
</annotation>
<body>return ".";</body>
</operation>
<operation name="getNamespace" type="am:Namespace" unique="false">
<body>return null;</body>
</operation>
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<annotation source="http://www.eclipse.org/emf/2002/GenModel">
<detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail>
</annotation>
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
boolean _tripleEquals = (_namespace == null);
if (_tripleEquals)
{
_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
}
else
{
_xifexpression = this.getNamespace().getQualifiedNameSegments();
}
return _xifexpression;</body>
</operation>
</xsd:appinfo>
<xsd:documentation>INamed: Name attribute</xsd:documentation>
</xsd:annotation>
<xsd:attribute default="" ecore:unsettable="false" name="name" type="ecore:EString"/>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="qualifiedName" type="ecore:EString"/>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IReferable">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getEncodedQualifiedName" type="ecore:EString" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toEncodedString(this.getQualifiedNameSegments());</body>
</operation>
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>IReferable: Computed ID for name based references</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:INamed">
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:id="true" ecore:transient="true" ecore:volatile="true" name="uniqueName" type="ecore:EString"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IDisplayName">
<xsd:attribute name="displayName" type="ecore:EString"/>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IDescription">
<xsd:attribute name="description" type="ecore:EString"/>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="INamespaceMember">
<xsd:attribute ecore:reference="am:Namespace" name="namespace" type="xsd:anyURI"/>
</xsd:complexType>
<xsd:complexType ecore:implements="am:IDescription" name="Tag">
<xsd:annotation>
<xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:attribute name="tagType" type="ecore:EString"/>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ITaggable" ecore:transient="true" ecore:volatile="true" name="taggedObjects">
<xsd:annotation>
<xsd:documentation>
<p>
<b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b>
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="Namespace">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _previousSegment = this.getPreviousSegment();
&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
if (_previousSegment!=null)
{
_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();
}
if (_qualifiedNameSegments != null)
{
_elvis = _qualifiedNameSegments;
} else
{
&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
_elvis = _newBasicEList;
}
return _elvis;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableObject">
<xsd:sequence>
<xsd:element ecore:opposite="previousSegment" maxOccurs="unbounded" minOccurs="0" name="nextSegments" type="am:Namespace"/>
</xsd:sequence>
<xsd:attribute ecore:changeable="false" ecore:opposite="nextSegments" ecore:reference="am:Namespace" name="previousSegment" type="xsd:anyURI"/>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:INamespaceMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
<xsd:annotation>
<xsd:documentation>
<p>
<b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b>
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="RelationalOperator">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="EQUAL"/>
<xsd:enumeration ecore:value="0" value="NOT_EQUAL"/>
<xsd:enumeration ecore:value="0" value="LESS_THAN"/>
<xsd:enumeration ecore:value="0" value="GREATER_THAN"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType abstract="true" ecore:implements="am:IDescription" name="Classifier">
<xsd:annotation>
<xsd:documentation>Classifiers for hardware properties</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="CoreClassifier">
<xsd:complexContent>
<xsd:extension base="am:Classifier"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="MemoryClassifier">
<xsd:complexContent>
<xsd:extension base="am:Classifier"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TransmissionPolicy">
<xsd:annotation>
<xsd:documentation>Data transmission details for communication (e.g. LabelAccesses)</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="chunkSize" type="am:DataSize"/>
</xsd:sequence>
<xsd:attribute default="0" ecore:unsettable="false" name="chunkProcessingTicks" type="ecore:EInt"/>
<xsd:attribute default="1.0" ecore:unsettable="false" name="transmitRatio" type="ecore:EDouble"/>
</xsd:complexType>
<xsd:complexType abstract="true" name="Quantity">
<xsd:annotation>
<xsd:documentation>Abstract class for Quantities (value + unit)</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:simpleType name="TimeUnit">
<xsd:annotation>
<xsd:documentation>Time units (enumeration of available units)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="s"/>
<xsd:enumeration ecore:value="0" value="ms"/>
<xsd:enumeration ecore:value="0" value="us"/>
<xsd:enumeration ecore:value="0" value="ns"/>
<xsd:enumeration ecore:value="0" value="ps"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType abstract="true" ecore:instanceClass="java.lang.Comparable{org.eclipse.app4mc.amalthea.model.Time}" ecore:interface="true" name="TimeComparable"/>
<xsd:complexType ecore:implements="am:Value am:TimeComparable" name="Time">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="toString" type="ecore:EString" unique="false">
<body>&lt;%java.math.BigInteger%&gt; _value = this.getValue();
&lt;%java.lang.String%&gt; _plus = (_value + " ");
&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%&gt; _unit = this.getUnit();
boolean _equals = &lt;%com.google.common.base.Objects%&gt;.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%&gt;._UNDEFINED_);
if (_equals)
{
_xifexpression = "&lt;unit&gt;";
}
else
{
_xifexpression = this.getUnit().getLiteral();
}
return (_plus + _xifexpression);</body>
</operation>
<operation name="compareTo" type="ecore:EInt" unique="false">
<parameter name="t" type="am:Time" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.compareTimes(this, t);</body>
</operation>
<operation name="adjustUnit" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.adjustTimeUnit(this);</body>
</operation>
<operation name="add" type="am:Time" unique="false">
<parameter name="t" type="am:Time" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.addTime(this, t);</body>
</operation>
<operation name="subtract" type="am:Time" unique="false">
<parameter name="t" type="am:Time" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.subtractTime(this, t);</body>
</operation>
<operation name="multiply" type="am:Time" unique="false">
<parameter name="v" type="ecore:ELong" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.multiply(this, v);</body>
</operation>
<operation name="multiply" type="am:Time" unique="false">
<parameter name="v" type="ecore:EDouble" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.multiply(this, v);</body>
</operation>
<operation name="divide" type="ecore:EDouble" unique="false">
<parameter name="t" type="am:Time" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.divideTime(this, t);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>General time class to define time value and unit.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Quantity">
<xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/>
<xsd:attribute ecore:unsettable="false" name="unit" type="am:TimeUnit"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="FrequencyUnit">
<xsd:annotation>
<xsd:documentation>Frequency units (enumeration of available units)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="Hz"/>
<xsd:enumeration ecore:value="0" value="kHz"/>
<xsd:enumeration ecore:value="0" value="MHz"/>
<xsd:enumeration ecore:value="0" value="GHz"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Frequency">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="toString" type="ecore:EString" unique="false">
<body>double _value = this.getValue();
&lt;%java.lang.String%&gt; _plus = (&lt;%java.lang.Double%&gt;.valueOf(_value) + " ");
&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%&gt; _unit = this.getUnit();
boolean _equals = &lt;%com.google.common.base.Objects%&gt;.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%&gt;._UNDEFINED_);
if (_equals)
{
_xifexpression = "&lt;unit&gt;";
}
else
{
_xifexpression = this.getUnit().getLiteral();
}
return (_plus + _xifexpression);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>General frequency class to define frequency value and unit</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Quantity">
<xsd:attribute default="0.0" ecore:unsettable="false" name="value" type="am:NonNegativeDouble"/>
<xsd:attribute ecore:unsettable="false" name="unit" type="am:FrequencyUnit"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="VoltageUnit">
<xsd:annotation>
<xsd:documentation>Voltage units (enumeration of available units)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="uV"/>
<xsd:enumeration ecore:value="0" value="mV"/>
<xsd:enumeration ecore:value="0" value="V"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="Voltage">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="toString" type="ecore:EString" unique="false">
<body>double _value = this.getValue();
&lt;%java.lang.String%&gt; _plus = (&lt;%java.lang.Double%&gt;.valueOf(_value) + " ");
&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%&gt; _unit = this.getUnit();
boolean _equals = &lt;%com.google.common.base.Objects%&gt;.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%&gt;._UNDEFINED_);
if (_equals)
{
_xifexpression = "&lt;unit&gt;";
}
else
{
_xifexpression = this.getUnit().getLiteral();
}
return (_plus + _xifexpression);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>General voltage class to define voltage value and unit</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Quantity">
<xsd:attribute default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble"/>
<xsd:attribute ecore:unsettable="false" name="unit" type="am:VoltageUnit"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="DataSizeUnit">
<xsd:annotation>
<xsd:documentation>Data size units (enumeration of available units)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="bit"/>
<xsd:enumeration ecore:value="0" value="kbit"/>
<xsd:enumeration ecore:value="0" value="Mbit"/>
<xsd:enumeration ecore:value="0" value="Gbit"/>
<xsd:enumeration ecore:value="0" value="Tbit"/>
<xsd:enumeration ecore:value="0" value="Kibit"/>
<xsd:enumeration ecore:value="0" value="Mibit"/>
<xsd:enumeration ecore:value="0" value="Gibit"/>
<xsd:enumeration ecore:value="0" value="Tibit"/>
<xsd:enumeration ecore:value="0" value="B"/>
<xsd:enumeration ecore:value="0" value="kB"/>
<xsd:enumeration ecore:value="0" value="MB"/>
<xsd:enumeration ecore:value="0" value="GB"/>
<xsd:enumeration ecore:value="0" value="TB"/>
<xsd:enumeration ecore:value="0" value="KiB"/>
<xsd:enumeration ecore:value="0" value="MiB"/>
<xsd:enumeration ecore:value="0" value="GiB"/>
<xsd:enumeration ecore:value="0" value="TiB"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="DataSize">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="toString" type="ecore:EString" unique="false">
<body>&lt;%java.math.BigInteger%&gt; _value = this.getValue();
&lt;%java.lang.String%&gt; _plus = (_value + " ");
&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt; _unit = this.getUnit();
boolean _equals = &lt;%com.google.common.base.Objects%&gt;.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt;._UNDEFINED_);
if (_equals)
{
_xifexpression = "&lt;unit&gt;";
}
else
{
_xifexpression = this.getUnit().getLiteral();
}
return (_plus + _xifexpression);</body>
</operation>
<operation name="getNumberBits" type="ecore:ELong" unique="false">
<annotation source="http://www.eclipse.org/emf/2002/GenModel">
<detail key="documentation">Convenience methods to retrieve the size in Bits and Bytes</detail>
</annotation>
<body>long _xblockexpression = (long) 0;
{
&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt; _unit = this.getUnit();
boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt;.BIT);
if (_tripleEquals)
{
return this.getValue().longValue();
}
final &lt;%java.math.BigInteger%&gt; bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.convertToBit(this);
long _xifexpression = (long) 0;
if ((bits == null))
{
_xifexpression = (-1L);
}
else
{
_xifexpression = bits.longValue();
}
_xblockexpression = _xifexpression;
}
return _xblockexpression;</body>
</operation>
<operation name="getNumberBytes" type="ecore:ELong" unique="false">
<body>long _xblockexpression = (long) 0;
{
&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt; _unit = this.getUnit();
boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%&gt;.B);
if (_tripleEquals)
{
return this.getValue().longValue();
}
final &lt;%java.math.BigInteger%&gt; bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.convertToBit(this);
long _xifexpression = (long) 0;
if ((bits == null))
{
_xifexpression = (-1L);
}
else
{
long _longValue = bits.longValue();
long _divide = (_longValue / 8);
_xifexpression = &lt;%java.lang.Double%&gt;.valueOf(&lt;%java.lang.Math%&gt;.ceil(_divide)).longValue();
}
_xblockexpression = _xifexpression;
}
return _xblockexpression;</body>
</operation>
</xsd:appinfo>
<xsd:documentation>General data size class to define size (value and unit)</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Quantity">
<xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/>
<xsd:attribute ecore:unsettable="false" name="unit" type="am:DataSizeUnit"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="DataRateUnit">
<xsd:annotation>
<xsd:documentation>Data rate units (enumeration of available units)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="bitPerSecond"/>
<xsd:enumeration ecore:value="0" value="kbitPerSecond"/>
<xsd:enumeration ecore:value="0" value="MbitPerSecond"/>
<xsd:enumeration ecore:value="0" value="GbitPerSecond"/>
<xsd:enumeration ecore:value="0" value="TbitPerSecond"/>
<xsd:enumeration ecore:value="0" value="KibitPerSecond"/>
<xsd:enumeration ecore:value="0" value="MibitPerSecond"/>
<xsd:enumeration ecore:value="0" value="GibitPerSecond"/>
<xsd:enumeration ecore:value="0" value="TibitPerSecond"/>
<xsd:enumeration ecore:value="0" value="BPerSecond"/>
<xsd:enumeration ecore:value="0" value="kBPerSecond"/>
<xsd:enumeration ecore:value="0" value="MBPerSecond"/>
<xsd:enumeration ecore:value="0" value="GBPerSecond"/>
<xsd:enumeration ecore:value="0" value="TBPerSecond"/>
<xsd:enumeration ecore:value="0" value="KiBPerSecond"/>
<xsd:enumeration ecore:value="0" value="MiBPerSecond"/>
<xsd:enumeration ecore:value="0" value="GiBPerSecond"/>
<xsd:enumeration ecore:value="0" value="TiBPerSecond"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType abstract="true" ecore:instanceClass="java.lang.Comparable{org.eclipse.app4mc.amalthea.model.DataRate}" ecore:interface="true" name="DataRateComparable"/>
<xsd:complexType ecore:implements="am:DataRateComparable" name="DataRate">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="toString" type="ecore:EString" unique="false">
<body>&lt;%java.math.BigInteger%&gt; _value = this.getValue();
&lt;%java.lang.String%&gt; _plus = (_value + " ");
&lt;%java.lang.String%&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%&gt; _unit = this.getUnit();
boolean _equals = &lt;%com.google.common.base.Objects%&gt;.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%&gt;._UNDEFINED_);
if (_equals)
{
_xifexpression = "&lt;unit&gt;";
}
else
{
_xifexpression = this.getUnit().getLiteral().replace("PerSecond", "/s");
}
return (_plus + _xifexpression);</body>
</operation>
<operation name="compareTo" type="ecore:EInt" unique="false">
<parameter name="rate" type="am:DataRate" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%&gt;.compareDataRates(this, rate);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>General data rate class to define rate (value and unit)</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Quantity">
<xsd:attribute default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger"/>
<xsd:attribute ecore:unsettable="false" name="unit" type="am:DataRateUnit"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="CustomProperty">
<xsd:annotation>
<xsd:documentation>custom property container for map</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="value" type="am:Value"/>
</xsd:sequence>
<xsd:attribute name="key" type="ecore:EString" use="required"/>
</xsd:complexType>
<xsd:complexType abstract="true" name="Value">
<xsd:annotation>
<xsd:documentation>Abstract generalization of a value entry.</xsd:documentation>
</xsd:annotation>
</xsd:complexType>
<xsd:complexType name="ListObject">
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="values" type="am:Value"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="StringObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype String as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute name="value" type="ecore:EString" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BigIntegerObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype String as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:EBigInteger" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ReferenceObject">
<xsd:annotation>
<xsd:documentation>Object for using object reference as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:reference="am:IReferable" name="value" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="IntegerObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype integer as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:EInt" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="LongObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype long as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:ELong" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="FloatObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype float as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EFloat" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DoubleObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype double as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="BooleanObject">
<xsd:annotation>
<xsd:documentation>Object for using the elementary datatype boolean as generic parameter</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Value">
<xsd:attribute ecore:default="false" ecore:unsettable="false" name="value" type="ecore:EBoolean" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="NumericStatistic"/>
<xsd:complexType name="MinAvgMaxStatistic">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Statistic to provide capabilities for min, max and avg</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:NumericStatistic">
<xsd:attribute default="0" ecore:unsettable="false" name="min" type="ecore:EInt"/>
<xsd:attribute default="0f" ecore:unsettable="false" name="avg" type="ecore:EFloat"/>
<xsd:attribute default="0" ecore:unsettable="false" name="max" type="ecore:EInt"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SingleValueStatistic">
<xsd:complexContent>
<xsd:extension base="am:NumericStatistic">
<xsd:attribute default="0f" ecore:unsettable="false" name="value" type="ecore:EFloat"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="SamplingType">
<xsd:annotation>
<xsd:documentation>The types of sampling</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="default"/>
<xsd:enumeration ecore:value="0" value="BestCase"/>
<xsd:enumeration ecore:value="0" value="WorstCase"/>
<xsd:enumeration ecore:value="0" value="AverageCase"/>
<xsd:enumeration ecore:value="0" value="CornerCase"/>
<xsd:enumeration ecore:value="0" value="Uniform"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType abstract="true" ecore:interface="true" name="ITimeDeviation">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="am:Time" unique="false"/>
<operation name="getUpperBound" type="am:Time" unique="false"/>
<operation name="getAverage" type="am:Time" unique="false"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:complexType>
<xsd:complexType abstract="true" name="TimeInterval">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage(this.getLowerBound(), this.getUpperBound());</body>
</operation>
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="lowerBound" type="am:Time"/>
<xsd:element name="upperBound" type="am:Time"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TimeConstant">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="am:Time" unique="false">
<body>return this.getValue();</body>
</operation>
<operation name="getUpperBound" type="am:Time" unique="false">
<body>return this.getValue();</body>
</operation>
<operation name="getAverage" type="am:Time" unique="false">
<body>return this.getValue();</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ITimeDeviation">
<xsd:sequence>
<xsd:element name="value" type="am:Time"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeHistogram">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getLowerBound_Time(this.getEntries());</body>
</operation>
<operation name="getUpperBound" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getUpperBound_Time(this.getEntries());</body>
</operation>
<operation name="getAverage" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage_Time(this.getEntries());</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ITimeDeviation">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="entries" type="am:TimeHistogramEntry"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeHistogramEntry">
<xsd:complexContent>
<xsd:extension base="am:TimeInterval">
<xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:implements="am:ITimeDeviation" name="BoundedTimeDistribution">
<xsd:complexContent>
<xsd:extension base="am:TimeInterval"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="TruncatedTimeDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ITimeDeviation">
<xsd:sequence>
<xsd:element minOccurs="0" name="lowerBound" type="am:Time"/>
<xsd:element minOccurs="0" name="upperBound" type="am:Time"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeBoundaries">
<xsd:annotation>
<xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedTimeDistribution">
<xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeStatistics">
<xsd:annotation>
<xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedTimeDistribution">
<xsd:sequence>
<xsd:element name="average" type="am:Time"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeUniformDistribution">
<xsd:annotation>
<xsd:documentation>Uniform distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedTimeDistribution"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeGaussDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), this.getMean(), this.getSd());</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Gauss distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:TruncatedTimeDistribution">
<xsd:sequence>
<xsd:element name="mean" type="am:Time"/>
<xsd:element name="sd" type="am:Time"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeWeibullEstimatorsDistribution">
<xsd:annotation>
<xsd:documentation>Weibull Distribution
The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedTimeDistribution">
<xsd:sequence>
<xsd:element name="average" type="am:Time"/>
</xsd:sequence>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TimeBetaDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="am:Time" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%&gt;.valueOf(this.getAlpha()), &lt;%java.lang.Double%&gt;.valueOf(this.getBeta()));</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Beta distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedTimeDistribution">
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IDiscreteValueDeviation">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:ELongObject" unique="false"/>
<operation name="getUpperBound" type="ecore:ELongObject" unique="false"/>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:complexType>
<xsd:complexType abstract="true" name="DiscreteValueInterval">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage(this.getLowerBound(), this.getUpperBound());</body>
</operation>
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="lowerBound" type="ecore:ELongObject" use="required"/>
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="upperBound" type="ecore:ELongObject" use="required"/>
</xsd:complexType>
<xsd:complexType name="DiscreteValueConstant">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:ELongObject" unique="false">
<body>return &lt;%java.lang.Long%&gt;.valueOf(this.getValue());</body>
</operation>
<operation name="getUpperBound" type="ecore:ELongObject" unique="false">
<body>return &lt;%java.lang.Long%&gt;.valueOf(this.getValue());</body>
</operation>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%java.lang.Double%&gt;.valueOf(&lt;%java.lang.Long%&gt;.valueOf(this.getValue()).doubleValue());</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IDiscreteValueDeviation">
<xsd:attribute ecore:default="0" ecore:unsettable="false" name="value" type="ecore:ELong" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueHistogram">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:ELongObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getLowerBound_DV(this.getEntries());</body>
</operation>
<operation name="getUpperBound" type="ecore:ELongObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getUpperBound_DV(this.getEntries());</body>
</operation>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage_DV(this.getEntries());</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IDiscreteValueDeviation">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="entries" type="am:DiscreteValueHistogramEntry"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueHistogramEntry">
<xsd:complexContent>
<xsd:extension base="am:DiscreteValueInterval">
<xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:implements="am:IDiscreteValueDeviation" name="BoundedDiscreteValueDistribution">
<xsd:complexContent>
<xsd:extension base="am:DiscreteValueInterval"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="TruncatedDiscreteValueDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IDiscreteValueDeviation">
<xsd:attribute name="lowerBound" type="ecore:ELongObject"/>
<xsd:attribute name="upperBound" type="ecore:ELongObject"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueBoundaries">
<xsd:annotation>
<xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedDiscreteValueDistribution">
<xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueStatistics">
<xsd:annotation>
<xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedDiscreteValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueUniformDistribution">
<xsd:annotation>
<xsd:documentation>Uniform distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedDiscreteValueDistribution"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueGaussDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%&gt;.valueOf(this.getMean()), &lt;%java.lang.Double%&gt;.valueOf(this.getSd()));</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Gauss distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:TruncatedDiscreteValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="mean" type="ecore:EDouble" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="sd" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueWeibullEstimatorsDistribution">
<xsd:annotation>
<xsd:documentation>Weibull Distribution
The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedDiscreteValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="DiscreteValueBetaDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%&gt;.valueOf(this.getAlpha()), &lt;%java.lang.Double%&gt;.valueOf(this.getBeta()));</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Beta distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedDiscreteValueDistribution">
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IContinuousValueDeviation">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:EDoubleObject" unique="false"/>
<operation name="getUpperBound" type="ecore:EDoubleObject" unique="false"/>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false"/>
</xsd:appinfo>
</xsd:annotation>
</xsd:complexType>
<xsd:complexType abstract="true" name="ContinuousValueInterval">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage(this.getLowerBound(), this.getUpperBound());</body>
</operation>
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="lowerBound" type="ecore:EDoubleObject" use="required"/>
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="upperBound" type="ecore:EDoubleObject" use="required"/>
</xsd:complexType>
<xsd:complexType name="ContinuousValueConstant">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%java.lang.Double%&gt;.valueOf(this.getValue());</body>
</operation>
<operation name="getUpperBound" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%java.lang.Double%&gt;.valueOf(this.getValue());</body>
</operation>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%java.lang.Double%&gt;.valueOf(this.getValue());</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IContinuousValueDeviation">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="value" type="ecore:EDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueHistogram">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLowerBound" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getLowerBound_CV(this.getEntries());</body>
</operation>
<operation name="getUpperBound" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getUpperBound_CV(this.getEntries());</body>
</operation>
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverage_CV(this.getEntries());</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IContinuousValueDeviation">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="entries" type="am:ContinuousValueHistogramEntry"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueHistogramEntry">
<xsd:complexContent>
<xsd:extension base="am:ContinuousValueInterval">
<xsd:attribute ecore:default="1" ecore:unsettable="false" name="occurrences" type="am:PositiveLong" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:implements="am:IContinuousValueDeviation" name="BoundedContinuousValueDistribution">
<xsd:complexContent>
<xsd:extension base="am:ContinuousValueInterval"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="TruncatedContinuousValueDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="validateInvariants" type="ecore:EBoolean" unique="false">
<parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
<parameter name="context" type="ecore:EMap{ecore:EJavaObject, ecore:EJavaObject}" unique="false"/>
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%&gt;.validateInvariants(this, diagnostics, context);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:IContinuousValueDeviation">
<xsd:attribute name="lowerBound" type="ecore:EDoubleObject"/>
<xsd:attribute name="upperBound" type="ecore:EDoubleObject"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueBoundaries">
<xsd:annotation>
<xsd:documentation>Defines the upper and lower bounds of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedContinuousValueDistribution">
<xsd:attribute ecore:unsettable="false" name="samplingType" type="am:SamplingType"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueStatistics">
<xsd:annotation>
<xsd:documentation>Defines the upper bound, lower bound and mean of a value interval without defining the distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedContinuousValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueUniformDistribution">
<xsd:annotation>
<xsd:documentation>Uniform distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedContinuousValueDistribution"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueGaussDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%&gt;.valueOf(this.getMean()), &lt;%java.lang.Double%&gt;.valueOf(this.getSd()));</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Gauss distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:TruncatedContinuousValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="mean" type="ecore:EDouble" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="sd" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueWeibullEstimatorsDistribution">
<xsd:annotation>
<xsd:documentation>Weibull Distribution
The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedContinuousValueDistribution">
<xsd:attribute ecore:default="0.0" ecore:unsettable="false" name="average" type="ecore:EDoubleObject" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="pRemainPromille" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ContinuousValueBetaDistribution">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getAverage" type="ecore:EDoubleObject" unique="false">
<body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%&gt;.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%&gt;.valueOf(this.getAlpha()), &lt;%java.lang.Double%&gt;.valueOf(this.getBeta()));</body>
</operation>
</xsd:appinfo>
<xsd:documentation>Beta distribution</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:BoundedContinuousValueDistribution">
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="alpha" type="am:PositiveDouble" use="required"/>
<xsd:attribute ecore:default="1.0" ecore:unsettable="false" name="beta" type="am:PositiveDouble" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="Mode">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="NumericMode">
<xsd:complexContent>
<xsd:extension base="am:Mode"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="EnumMode">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getLiteral" type="am:ModeLiteral" unique="false">
<parameter name="literal" type="ecore:EString" unique="false"/>
<body>final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%&gt;, &lt;%java.lang.Boolean%&gt;&gt; _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%&gt;, &lt;%java.lang.Boolean%&gt;&gt;()
{
public &lt;%java.lang.Boolean%&gt; apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%&gt; it)
{
&lt;%java.lang.String%&gt; _name = it.getName();
return &lt;%java.lang.Boolean%&gt;.valueOf(&lt;%com.google.common.base.Objects%&gt;.equal(_name, literal));
}
};
return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%&gt;&gt;findFirst(this.getLiterals(), _function);</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:Mode">
<xsd:sequence>
<xsd:element ecore:opposite="containingMode" maxOccurs="unbounded" minOccurs="0" name="literals" type="am:ModeLiteral"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ModeLiteral">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%&gt; _containingMode = this.getContainingMode();
&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
if (_containingMode!=null)
{
_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();
}
if (_qualifiedNameSegments != null)
{
_elvis = _qualifiedNameSegments;
} else
{
&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
_elvis = _newBasicEList;
}
return _elvis;</body>
</operation>
<operation name="toString" type="ecore:EString" unique="false">
<body>&lt;%java.lang.String%&gt; _xifexpression = null;
boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%&gt;.isNullOrEmpty(this.getName());
if (_isNullOrEmpty)
{
_xifexpression = "&lt;literal&gt;";
}
else
{
_xifexpression = this.getName();
}
return _xifexpression;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:attribute ecore:changeable="false" ecore:opposite="literals" ecore:reference="am:EnumMode" name="containingMode" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType ecore:instanceClass="long" name="Address">
<xsd:annotation>
<xsd:documentation>Hardware Address (long; specified as hexadecimal value)</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="int" name="PositiveInt">
<xsd:restriction base="xsd:string">
<xsd:minExclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="long" name="PositiveLong">
<xsd:restriction base="xsd:string">
<xsd:minExclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="double" name="PositiveDouble">
<xsd:restriction base="xsd:string">
<xsd:minExclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="int" name="NonNegativeInt">
<xsd:restriction base="xsd:string">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="long" name="NonNegativeLong">
<xsd:restriction base="xsd:string">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType ecore:instanceClass="double" name="NonNegativeDouble">
<xsd:restriction base="xsd:string">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType ecore:implements="am:IComponentContainer am:IInterfaceContainer" name="ComponentsModel">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:ComponentStructure"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="systems" type="am:System"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IComponentContainer">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IInterfaceContainer">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="interfaces" type="am:MainInterface"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="ISystem">
<xsd:sequence>
<xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/>
<xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="groundedPorts" type="am:QualifiedPort"/>
</xsd:sequence>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:QualifiedPort" ecore:transient="true" ecore:volatile="true" name="innerPorts">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="ComponentInterface">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:sequence>
<xsd:element ecore:opposite="containingInterface" maxOccurs="unbounded" minOccurs="0" name="subInterfaces" type="am:SubInterface"/>
</xsd:sequence>
<xsd:attribute ecore:reference="am:TypeDefinition" name="datatype" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:INamespaceMember am:IComponentStructureMember" name="MainInterface">
<xsd:complexContent>
<xsd:extension base="am:ComponentInterface">
<xsd:attribute default="1.0" ecore:unsettable="false" name="version" type="ecore:EString"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SubInterface">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%&gt; _containingInterface = this.getContainingInterface();
&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
if (_containingInterface!=null)
{
_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();
}
if (_qualifiedNameSegments != null)
{
_elvis = _qualifiedNameSegments;
} else
{
&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
_elvis = _newBasicEList;
}
return _elvis;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ComponentInterface">
<xsd:attribute ecore:changeable="false" ecore:opposite="subInterfaces" ecore:reference="am:ComponentInterface" name="containingInterface" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ITaggable" name="ComponentPort">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
&lt;%org.eclipse.app4mc.amalthea.model.Component%&gt; _containingComponent = this.getContainingComponent();
&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
if (_containingComponent!=null)
{
_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();
}
if (_qualifiedNameSegments != null)
{
_elvis = _qualifiedNameSegments;
} else
{
&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
_elvis = _newBasicEList;
}
return _elvis;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:attribute ecore:changeable="false" ecore:opposite="ports" ecore:reference="am:Component" name="containingComponent" type="xsd:anyURI"/>
<xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/>
<xsd:attribute ecore:reference="am:ComponentInterface" name="interface" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ComponentStructure">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getContainingStructure" type="am:ComponentStructure" unique="false">
<body>&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _xifexpression = null;
&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;))
{
&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;) _eContainer_1);
}
else
{
_xifexpression = null;
}
return _xifexpression;</body>
</operation>
<operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
<body>return "::";</body>
</operation>
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _containingStructure = this.getContainingStructure();
boolean _tripleEquals = (_containingStructure == null);
if (_tripleEquals)
{
_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
}
else
{
_xifexpression = this.getContainingStructure().getQualifiedNameSegments();
}
return _xifexpression;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="subStructures" type="am:ComponentStructure"/>
</xsd:sequence>
<xsd:attribute default="" ecore:unsettable="false" name="structureType" type="ecore:EString"/>
<xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:IComponentStructureMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
<xsd:annotation>
<xsd:documentation>
<p>
<b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b>
</p>
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" ecore:interface="true" name="IComponentStructureMember">
<xsd:attribute ecore:reference="am:ComponentStructure" name="structure" type="xsd:anyURI"/>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ITaggable am:INamespaceMember am:IComponentStructureMember" name="Component">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:sequence>
<xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:ComponentPort"/>
</xsd:sequence>
<xsd:attribute ecore:reference="am:AbstractProcess" name="processes">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute ecore:reference="am:Runnable" name="runnables">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute ecore:reference="am:Label" name="labels">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute ecore:reference="am:Semaphore" name="semaphores">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute ecore:reference="am:OsEvent" name="osEvents">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ISystem" name="Composite">
<xsd:complexContent>
<xsd:extension base="am:Component"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ITaggable am:ISystem" name="System">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ITaggable" name="ComponentInstance">
<xsd:annotation>
<xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
<operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
<body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
if (_namedContainer!=null)
{
_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
}
if (_qualifiedNameSegments != null)
{
_elvis = _qualifiedNameSegments;
} else
{
&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
_elvis = _newBasicEList;
}
return _elvis;</body>
</operation>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:attribute ecore:opposite="componentInstances" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
<xsd:attribute ecore:reference="am:Component" name="type" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:INamed am:ITaggable" name="Connector">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element minOccurs="0" name="sourcePort" type="am:QualifiedPort"/>
<xsd:element minOccurs="0" name="targetPort" type="am:QualifiedPort"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="implementedInterfaces" type="am:InterfaceChannel"/>
</xsd:sequence>
<xsd:attribute ecore:opposite="connectors" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="InterfaceChannel">
<xsd:attribute ecore:reference="am:ComponentInterface" name="key" type="xsd:anyURI" use="required"/>
<xsd:attribute ecore:reference="am:Channel" name="value" type="xsd:anyURI"/>
</xsd:complexType>
<xsd:complexType name="QualifiedPort">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:attribute ecore:reference="am:ComponentInstance" name="instance" type="xsd:anyURI"/>
<xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="InterfaceKind">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="provides"/>
<xsd:enumeration ecore:value="0" value="requires"/>
<xsd:enumeration ecore:value="0" value="provides_requires"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="ConfigModel">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="eventsToTrace" type="am:EventConfig"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:INamed" name="EventConfig">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:attribute ecore:reference="am:EntityEvent" name="event" type="xsd:anyURI" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="ConstraintsModel">
<xsd:complexContent>
<xsd:extension base="am:BaseObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="eventChains" type="am:EventChain"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="timingConstraints" type="am:TimingConstraint"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="affinityConstraints" type="am:AffinityConstraint"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="runnableSequencingConstraints" type="am:RunnableSequencingConstraint"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="dataAgeConstraints" type="am:DataAgeConstraint"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="requirements" type="am:Requirement"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="dataCoherencyGroups" type="am:DataCoherencyGroup"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="dataStabilityGroups" type="am:DataStabilityGroup"/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="physicalSectionConstraints" type="am:PhysicalSectionConstraint"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="RunnableOrderType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="_undefined_"/>
<xsd:enumeration ecore:value="0" value="successor"/>
<xsd:enumeration ecore:value="0" value="immediateSuccessorStartSequence"/>
<xsd:enumeration ecore:value="0" value="immediateSuccessorAnySequence"/>
<xsd:enumeration ecore:value="0" value="immediateSuccessorEndSequence"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="RunnableSequencingConstraint">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="2" name="runnableGroups" type="am:RunnableEntityGroup"/>
</xsd:sequence>
<xsd:attribute ecore:unsettable="false" name="orderType" type="am:RunnableOrderType"/>
<xsd:attribute ecore:reference="am:AbstractProcess" name="processScope">
<xsd:simpleType>
<xsd:list itemType="xsd:anyURI"/>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="AffinityConstraint">
<xsd:complexContent>
<xsd:extension base="am:ReferableBaseObject"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="SeparationConstraint">
<xsd:annotation>
<xsd:documentation>An abstract superclass for all separation constraints</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:AffinityConstraint"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="PairingConstraint">
<xsd:annotation>
<xsd:documentation>An abstract superclass for all pairing constraints</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:AffinityConstraint"/>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType abstract="true" name="ProcessConstraint">
<xsd:annotation>
<xsd:documentation>An abstract superclass for all process related constraint
The target describes the entity on which the processes can be mapped</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="target" type="am:ProcessConstraintTarget"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType abstract="true" name="RunnableConstraint">
<xsd:annotation>
<xsd:documentation>An abstract superclass for all runnable related constraint
The target describes the entity on which the runnables can be mapped</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="target" type="am:RunnableConstraintTarget"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType abstract="true" name="DataConstraint">
<xsd:annotation>
<xsd:documentation>An abstract superclass for all data related constraint
The target describes the entity on which the data can be mapped</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" name="target" type="am:DataConstraintTarget"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType ecore:implements="am:RunnableConstraint am:BaseObject" name="RunnableSeparationConstraint">
<xsd:annotation>
<xsd:documentation>A runnable-separation-constraint
groups describes the runnable-groups that should be separated from each other on the target
if there is only one group then this means that the runnables of this group are not allowed to be executed on the target</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:SeparationConstraint">
<xsd:sequence>
<xsd:element maxOccurs="2" name="groups" type="am:RunnableGroup"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType ecore:implements="am:ProcessConstraint am:BaseObject" name="ProcessSeparationConstraint">
<xsd:annotation>
<xsd:documentation>A process-separation-constraint
groups describes the process-groups that should be separated from each other on the target
if there is only one group then this means that the processes of this group are not allowed to be executed on the target</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="am:SeparationConstraint">
<xsd:sequence>
<xsd:element maxOccurs="2" name="groups" type="am:ProcessGroup"/>
</xsd:sequence>
</xsd:extension>