Skip to content
Snippets Groups Projects
nsd.ecore 129 KiB
Newer Older
<?xml version="1.0" encoding="UTF-8"?>
Dominique Marcadet's avatar
Dominique Marcadet committed
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
    name="nsd" nsURI="http://www.iec.ch/61850/2016/NSD" nsPrefix="nsd">
  <eAnnotations source="http://www.eclipse.org/OCL/Import">
    <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
    <details key="ecore.xml.type" value="http://www.eclipse.org/emf/2003/XMLType"/>
  </eAnnotations>
  <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
    <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
    <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="AppliesToType" eSuperTypes="#//NsdObject #//AgNSIdentification">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="AppliesTo_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNsUsage" ordered="false"
        eType="#//ServiceNsUsage" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//ServiceNsUsage/appliesTo"/>
  <eClassifiers xsi:type="ecore:EClass" name="DependsOn" eSuperTypes="#//NsdObject #//AgNSIdentification">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="DependsOn_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/dependsOn"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToNS" ordered="false"
        eType="#//NS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/referredByDependsOn"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="DocumentRoot">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value=""/>
      <details key="kind" value="mixed"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="elementWildcard"/>
        <details key="name" value=":mixed"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="xMLNSPrefixMap" upperBound="-1"
        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
        transient="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="xmlns:prefix"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="xSISchemaLocation" upperBound="-1"
        eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStringToStringMapEntry"
        transient="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="xsi:schemaLocation"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServiceNS" eType="#//ApplicableServiceNS"
        volatile="true" transient="true" unsettable="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="ApplicableServiceNS"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" eType="#//NS" volatile="true"
        transient="true" unsettable="true" derived="true" containment="true" resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="NS"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nSDoc" eType="#//NSDoc"
        volatile="true" transient="true" unsettable="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="NSDoc"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" eType="#//ServiceNS"
        volatile="true" transient="true" unsettable="true" derived="true" containment="true"
        resolveProxies="false">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="ServiceNS"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ServiceType" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="Service_._type"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//ACSIServicesKind"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false"
        eType="#//ApplicableServices" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//ApplicableServices/service"/>
  <eClassifiers xsi:type="ecore:EClass" name="Abbreviation" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tAbbreviation"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="descID"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviations" ordered="false"
        eType="#//Abbreviations" unsettable="true" resolveProxies="false" eOpposite="#//Abbreviations/abbreviation"/>
  <eClassifiers xsi:type="ecore:EClass" name="Abbreviations" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tAbbreviations"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueAbbreviation"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueAbbreviation" value="Tuple {&#xA;&#x9;message : String = 'There shall not be two Abbreviations elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.abbreviation->isUnique( a : Abbreviation | a.name )&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="abbreviation" ordered="false"
        upperBound="-1" eType="#//Abbreviation" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//Abbreviation/abbreviations">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Abbreviation"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/abbreviations"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
        eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//ServiceNS/abbreviations"/>
  <eClassifiers xsi:type="ecore:EClass" name="AbstractLNClass" eSuperTypes="#//AnyLNClass">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tAbstractLNClass"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="lNClasses" ordered="false"
        eType="#//LNClasses" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//LNClasses/abstractLNClass"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByAnyLNClass" ordered="false"
        upperBound="-1" eType="#//AnyLNClass" transient="true" unsettable="true" eOpposite="#//AnyLNClass/refersToAbstractLNClass"/>
  <eClassifiers xsi:type="ecore:EEnum" name="ACSIServicesKind">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tACSIServicesKind"/>
    </eAnnotations>
    <eLiterals name="Associate"/>
    <eLiterals name="Abort" value="1"/>
    <eLiterals name="Release" value="2"/>
    <eLiterals name="GetServerDirectory" value="3"/>
    <eLiterals name="GetLogicalDeviceDirectory" value="4"/>
    <eLiterals name="GetAllDataValues" value="5"/>
    <eLiterals name="GetDataValues" value="6"/>
    <eLiterals name="SetDataValues" value="7"/>
    <eLiterals name="GetDataDirectory" value="8"/>
    <eLiterals name="GetDataDefinition" value="9"/>
    <eLiterals name="GetDataSetValues" value="10"/>
    <eLiterals name="SetDataSetValues" value="11"/>
    <eLiterals name="CreateDataSet" value="12"/>
    <eLiterals name="DeleteDataSet" value="13"/>
    <eLiterals name="GetDataSetDirectory" value="14"/>
    <eLiterals name="SelectActiveSG" value="15"/>
    <eLiterals name="SelectEditSG" value="16"/>
    <eLiterals name="SetEditSGValue" value="17"/>
    <eLiterals name="ConfirmEditSGValues" value="18"/>
    <eLiterals name="GetEditSGValue" value="19"/>
    <eLiterals name="GetSGCBValues" value="20"/>
    <eLiterals name="Report" value="21"/>
    <eLiterals name="GetBRCBValues" value="22"/>
    <eLiterals name="SetBRCBValues" value="23"/>
    <eLiterals name="GetURCBValues" value="24"/>
    <eLiterals name="SetURCBValues" value="25"/>
    <eLiterals name="GetLCBValues" value="26"/>
    <eLiterals name="SetLCBValues" value="27"/>
    <eLiterals name="QueryLogByTime" value="28"/>
    <eLiterals name="QueryLogAfter" value="29"/>
    <eLiterals name="GetLogStatusValues" value="30"/>
    <eLiterals name="SendGOOSEMessage" value="31"/>
    <eLiterals name="GetGoCBValues" value="32"/>
    <eLiterals name="SetGoCBValues" value="33"/>
    <eLiterals name="GetGoReference" value="34"/>
    <eLiterals name="GetGOOSEElementNumber" value="35"/>
    <eLiterals name="SendMSVMessage" value="36"/>
    <eLiterals name="GetMSVCBValues" value="37"/>
    <eLiterals name="SetMSVCBValues" value="38"/>
    <eLiterals name="SendUSVMessage" value="39"/>
    <eLiterals name="GetUSVCBValues" value="40"/>
    <eLiterals name="SetUSVCBValues" value="41"/>
    <eLiterals name="Select" value="42"/>
    <eLiterals name="SelectWithValue" value="43"/>
    <eLiterals name="Cancel" value="44"/>
    <eLiterals name="Operate" value="45"/>
    <eLiterals name="CommandTermination" value="46"/>
    <eLiterals name="TimeActivatedOperate" value="47"/>
    <eLiterals name="GetFile" value="48"/>
    <eLiterals name="SetFile" value="49"/>
    <eLiterals name="DeleteFile" value="50"/>
    <eLiterals name="GetFileAttributeValues" value="51"/>
    <eLiterals name="TimeSynchronization" value="52"/>
    <eLiterals name="InternalChange" value="53"/>
    <eLiterals name="GetLogicalNodeDirectory" value="54"/>
    <eLiterals name="GetMsvReference" value="55"/>
    <eLiterals name="GetMSVElementNumber" value="56"/>
    <eLiterals name="GetUsvReference" value="57"/>
    <eLiterals name="GetUSVElementNumber" value="58"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="ACSIServicesKindObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tACSIServicesKind:Object"/>
      <details key="baseType" value="tACSIServicesKind"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AnyLNClass" abstract="true" eSuperTypes="#//TitledClass">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tAnyLNClass"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
Dominique Marcadet's avatar
Dominique Marcadet committed
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueDataObject"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueDataObject" value="Tuple {&#xA;&#x9;message : String = 'For an AnyLNClass, there shall not be two DataObject sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: base AbstractLNClass should be taken into account&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;self.dataObject->isUnique( d : DataObject | d.name )&#xA;}.status"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eOperations name="getName" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String"/>
    <eOperations name="getLNClasses" eType="#//LNClasses"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataObject" ordered="false"
        upperBound="-1" eType="#//DataObject" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//DataObject/anyLNClass">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="DataObject"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="base" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="base"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToAbstractLNClass"
        ordered="false" eType="#//AbstractLNClass" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//AbstractLNClass/referredByAnyLNClass"/>
  <eClassifiers xsi:type="ecore:EClass" name="ApplicableServiceNS" eSuperTypes="#//Copyrighted">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tApplicableServiceNS"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="versionAttributeRequired dateAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="versionAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The version attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.version &lt;> null&#xA;}.status"/>
      <details key="dateAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The date attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.date &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNsUsage" ordered="false"
        upperBound="-1" eType="#//ServiceNsUsage" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//ServiceNsUsage/applicableServiceNS">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="ServiceNsUsage"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//DateTime"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="date"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//UnsignedInt"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="version"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ApplicableServices" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tApplicableServices"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
Dominique Marcadet's avatar
Dominique Marcadet committed
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueDataSetMemberOf uniqueService"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueDataSetMemberOf" value="Tuple {&#xA;&#x9;message : String = 'For an ApplicableServices, there shall not be two DataSetMemberOf sub-elements with same cb.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.dataSetMemberOf->isUnique( d : DataSetMemberOf | d.cb )&#xA;}.status"/>
      <details key="uniqueService" value="Tuple {&#xA;&#x9;message : String = 'For an ApplicableServices, there shall not be two ServiceType sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.service->isUnique( s : ServiceType | s.name )&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="service" ordered="false"
        upperBound="-1" eType="#//ServiceType" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//ServiceType/applicableServices">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Service"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataSetMemberOf" ordered="false"
        upperBound="-1" eType="#//DataSetMemberOf" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//DataSetMemberOf/applicableServices">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="DataSetMemberOf"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="functionalConstraint" ordered="false"
        eType="#//FunctionalConstraint" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//FunctionalConstraint/applicableServices"/>
  <eClassifiers xsi:type="ecore:EDataType" name="AttributeTypeKind" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tAttributeTypeKind"/>
      <details key="memberTypes" value="tDefinedAttributeTypeKind tUndefinedAttributeTypeKind"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="BasicType" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tBasicType"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="descID"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="basicTypes" ordered="false"
        eType="#//BasicTypes" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//BasicTypes/basicType"/>
  <eClassifiers xsi:type="ecore:EClass" name="BasicTypes" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tBasicTypes"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="basicType" ordered="false"
        upperBound="-1" eType="#//BasicType" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//BasicType/basicTypes">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="BasicType"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/basicTypes"/>
  <eClassifiers xsi:type="ecore:EEnum" name="CBKind">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCBKind"/>
    </eAnnotations>
    <eLiterals name="RCB"/>
    <eLiterals name="LCB" value="1"/>
    <eLiterals name="GoCB" value="2"/>
    <eLiterals name="SVCB" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="CBKindObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCBKind:Object"/>
      <details key="baseType" value="tCBKind"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CDC" eSuperTypes="#//TitledClass">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCDC"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
Dominique Marcadet's avatar
Dominique Marcadet committed
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueCDCChild nameAttributeRequired"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueCDCChild" value="Tuple {&#xA;&#x9;message : String = 'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;let names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()&#xA;}.status"/>
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subDataObject" ordered="false"
        upperBound="-1" eType="#//SubDataObject" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//SubDataObject/cDC">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="SubDataObject"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="dataAttribute" ordered="false"
        upperBound="-1" eType="#//DataAttribute" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//DataAttribute/cDC">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="DataAttribute"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceParameter" ordered="false"
        eType="#//ServiceParameter" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//ServiceParameter/cDC">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="ServiceParameter"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enumParameterized" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="enumParameterized"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="statistics" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="statistics"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeKindParameterized"
        eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="typeKindParameterized"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="variant" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Token"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="variant"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="cDCs" ordered="false" eType="#//CDCs"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDCs/cDC"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataObject" ordered="false"
        upperBound="-1" eType="#//DataObject" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//DataObject/refersToCDC"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredBySubDataObject"
        ordered="false" upperBound="-1" eType="#//SubDataObject" transient="true"
        unsettable="true" resolveProxies="false" eOpposite="#//SubDataObject/refersToCDC"/>
  <eClassifiers xsi:type="ecore:EClass" name="CDCs" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCDCs"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueCDC"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueCDC" value="Tuple {&#xA;&#x9;message : String = 'Within an NS, there shall not be two CDC sub-elements with same name and (if defined) variant.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: DependsOn NS should be taken into account ?&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;-- Then, may be this constraint should be in NS and not in Enumerations ?&#xA;&#x9;&#x9;&#x9;self.cDC->select( c : CDC | c.variant = null )->isUnique( c : CDC | c.name )&#xA;&#x9;     or self.cDC->select( c : CDC | c.variant &lt;> null )->forAll( c1, c2 : CDC | c1 &lt;> c2 implies c1.name &lt;> c2.name or c1.variant &lt;> c2.variant )&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" upperBound="-1"
        eType="#//CDC" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//CDC/cDCs">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="CDC"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/cDCs"/>
  <eClassifiers xsi:type="ecore:EClass" name="Changes" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tChanges"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="versionAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="versionAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The version attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.version &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="changesID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="changesID"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="date" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Date"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="date"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="revision" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        defaultValueLiteral="A" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="revision"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tissues" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="tissues"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/changes"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNS" ordered="false"
        eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//ServiceNS/changes"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="release" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
        defaultValueLiteral="1" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="release"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="version"/>
      </eAnnotations>
    </eStructuralFeatures>
  <eClassifiers xsi:type="ecore:EClass" name="ConstructedAttribute" eSuperTypes="#//TitledClass">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tConstructedAttribute"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
Dominique Marcadet's avatar
Dominique Marcadet committed
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueSubDataAttribute nameAttributeRequired"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueSubDataAttribute" value="Tuple {&#xA;&#x9;message : String = 'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.subDataAttribute->isUnique( s : SubDataAttribute | s.name )&#xA;}.status"/>
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="subDataAttribute" ordered="false"
        upperBound="-1" eType="#//SubDataAttribute" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//SubDataAttribute/constructedAttribute">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="SubDataAttribute"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttributes"
        ordered="false" eType="#//ConstructedAttributes" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//ConstructedAttributes/constructedAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="serviceTypeRealizations"
        ordered="false" eType="#//ServiceTypeRealizations" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//ServiceTypeRealizations/serviceTypeRealization"/>
  <eClassifiers xsi:type="ecore:EClass" name="ConstructedAttributes" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tConstructedAttributes"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueConstructedAttribute"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueConstructedAttribute" value="Tuple {&#xA;&#x9;message : String = 'Within an NS, there shall not be two ConstructedAttribute sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: DependsOn NS should be taken into account ?&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;-- Then, may be this constraint should be in NS and not in Enumerations ?&#xA;&#x9;&#x9;&#x9;self.constructedAttribute->isUnique( c : ConstructedAttribute | c.name )&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttribute" ordered="false"
        upperBound="-1" eType="#//ConstructedAttribute" unsettable="true" containment="true"
        resolveProxies="false" eOpposite="#//ConstructedAttribute/constructedAttributes">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="ConstructedAttribute"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/constructedAttributes"/>
  <eClassifiers xsi:type="ecore:EClass" name="Copyrighted" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCopyrighted"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="copyright" ordered="false"
        eType="#//CopyrightNotice" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//CopyrightNotice/copyrighted">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Copyright"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="CopyrightNotice" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tCopyrightNotice"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="notice" ordered="false"
        eType="#//Notice" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//Notice/copyrightNotice">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Notice"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="license" ordered="false"
        eType="#//License" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//License/copyrightNotice">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="License"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="copyrighted" ordered="false"
        eType="#//Copyrighted" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//Copyrighted/copyright"/>
  <eClassifiers xsi:type="ecore:EClass" name="DataAttribute" eSuperTypes="#//DocumentedClass #//AgPresenceCondition #//AgArray #//AgTrgOp #//AgAttributeTypeAndValues">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDataAttribute"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired fcAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
      <details key="fcAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The fc attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.fc &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="fc"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="cDC" ordered="false" eType="#//CDC"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/dataAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredBySubDataObjectAsSizeAttribute"
        ordered="false" upperBound="-1" eType="#//SubDataObject" transient="true"
        unsettable="true" resolveProxies="false" eOpposite="#//SubDataObject/refersToSizeAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredBySubDataObjectAsMaxIndexAttribute"
        ordered="false" upperBound="-1" eType="#//SubDataObject" transient="true"
        unsettable="true" resolveProxies="false" eOpposite="#//SubDataObject/refersToMaxIndexAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToFunctionalConstraint"
        ordered="false" eType="#//FunctionalConstraint" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//FunctionalConstraint/referredByDataAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceCondition"
        ordered="false" eType="#//PresenceCondition" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//PresenceCondition/referredByDataAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToSizeAttribute"
        ordered="false" eType="#//DataAttribute" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//DataAttribute/referredByDataAttributeAsSizeAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToMaxIndexAttribute"
        ordered="false" eType="#//DataAttribute" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//DataAttribute/referredByDataAttributeAsMaxIndexAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttributeAsSizeAttribute"
        ordered="false" upperBound="-1" eType="#//DataAttribute" transient="true"
        unsettable="true" resolveProxies="false" eOpposite="#//DataAttribute/refersToSizeAttribute"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttributeAsMaxIndexAttribute"
        ordered="false" upperBound="-1" eType="#//DataAttribute" transient="true"
        unsettable="true" resolveProxies="false" eOpposite="#//DataAttribute/refersToMaxIndexAttribute"/>
  <eClassifiers xsi:type="ecore:EClass" name="DataObject" eSuperTypes="#//DocumentedClass #//AgPresenceCondition #//AgPresenceConditionDerivedStatistics #//AgUnderlyingType">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDataObject"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="nameAttributeRequired typeAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
      <details key="typeAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The type attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.type &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="transient"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="type"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="anyLNClass" ordered="false"
        eType="#//AnyLNClass" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//AnyLNClass/dataObject"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToCDC" ordered="false"
        eType="#//CDC" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//CDC/referredByDataObject"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceCondition"
        ordered="false" eType="#//PresenceCondition" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//PresenceCondition/referredByDataObject"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceConditionDerivedStatistics"
        ordered="false" eType="#//PresenceCondition" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//PresenceCondition/referredByDataObjectForDerivedStatistics"/>
  <eClassifiers xsi:type="ecore:EClass" name="DataSetMemberOf" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDataSetMemberOf"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="cbAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="cbAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The cb attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.cb &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="cb" eType="#//CBKind" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="cb"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false"
        eType="#//ApplicableServices" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//ApplicableServices/dataSetMemberOf"/>
  <eClassifiers xsi:type="ecore:EEnum" name="DefinedAttributeTypeKind">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDefinedAttributeTypeKind"/>
    </eAnnotations>
    <eLiterals name="BASIC">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The type of the data attribute is a basic one (e.g., BOOLEAN, INT32), including CODED ENUMs (e.g., Dbpos, Tcmd) and PACKED LISTs (Timestamp, Quality, OptFlds)."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="ENUMERATED" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The type of the data attribute is an enumeration."/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="CONSTRUCTED" value="2">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The type of the data attribute is a constructed (composed) one."/>
      </eAnnotations>
    </eLiterals>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="DefinedAttributeTypeKindObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDefinedAttributeTypeKind:Object"/>
      <details key="baseType" value="tDefinedAttributeTypeKind"/>
    </eAnnotations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Doc" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDoc"/>
      <details key="kind" value="mixed"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="idAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="idAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The id attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.id &lt;> null&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="elementWildcard"/>
        <details key="name" value=":mixed"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
        volatile="true" transient="true" derived="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="group"/>
        <details key="name" value="group:1"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="any" unique="false" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
        volatile="true" transient="true" derived="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="elementWildcard"/>
        <details key="wildcards" value="##any"/>
        <details key="name" value=":2"/>
        <details key="processing" value="lax"/>
        <details key="group" value="#group:1"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="id"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nSDoc" ordered="false"
        eType="#//NSDoc" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//NSDoc/doc"/>
  <eClassifiers xsi:type="ecore:EClass" name="DocumentedClass" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tDocumentedClass"/>
      <details key="kind" value="empty"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="deprecated" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="deprecated"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="descID"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="informative" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
        defaultValueLiteral="false" unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="informative"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//TitledClass">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tEnumeration"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
Dominique Marcadet's avatar
Dominique Marcadet committed
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueLiteralName uniqueLiteralVal nameAttributeRequired"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueLiteralName" value="Tuple {&#xA;&#x9;message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: inherited literals should be taken into account&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;self.literal->isUnique( l : Literal | l.name )&#xA;}.status"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
      <details key="uniqueLiteralVal" value="Tuple {&#xA;&#x9;message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.literal->isUnique( l : Literal | l.literalVal )&#xA;}.status"/>
      <details key="nameAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The name attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.name &lt;> null&#xA;}.status"/>
Dominique Marcadet's avatar
Dominique Marcadet committed
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="literal" ordered="false"
        upperBound="-1" eType="#//Literal" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//Literal/enumeration">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Literal"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritedFrom" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="inheritedFrom"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
        unsettable="true">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="attribute"/>
        <details key="name" value="name"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumerations" ordered="false"
        eType="#//Enumerations" transient="true" unsettable="true" resolveProxies="false"
        eOpposite="#//Enumerations/enumeration"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="refersToBaseEnumeration"
        ordered="false" eType="#//Enumeration" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//Enumeration/referredByEnumerationAsBase"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referredByEnumerationAsBase"
        ordered="false" upperBound="-1" eType="#//Enumeration" transient="true" unsettable="true"
        resolveProxies="false" eOpposite="#//Enumeration/refersToBaseEnumeration"/>
  <eClassifiers xsi:type="ecore:EClass" name="Enumerations" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tEnumerations"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="uniqueEnumeration"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="uniqueEnumeration" value="Tuple {&#xA;&#x9;message : String = 'Within an NS, there shall not be two Enumeration sub-elements with same name.',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;-- TODO: DependsOn NS should be taken into account ?&#xA;&#x9;&#x9;&#x9;-- For this, explicit links have to be created first&#xA;&#x9;&#x9;&#x9;-- Then, may be this constraint should be in NS and not in Enumerations ?&#xA;&#x9;&#x9;&#x9;self.enumeration->isUnique( e : Enumeration | e.name )&#xA;}.status"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" upperBound="-1"
        eType="#//Enumeration" unsettable="true" containment="true" resolveProxies="false"
        eOpposite="#//Enumeration/enumerations">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="kind" value="element"/>
        <details key="name" value="Enumeration"/>
        <details key="namespace" value="##targetNamespace"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="nS" ordered="false" eType="#//NS"
        transient="true" unsettable="true" resolveProxies="false" eOpposite="#//NS/enumerations"/>
  <eClassifiers xsi:type="ecore:EClass" name="FunctionalConstraint" eSuperTypes="#//NsdObject">
    <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
      <details key="name" value="tFunctionalConstraint"/>
      <details key="kind" value="elementOnly"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="abbreviationAttributeRequired"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
      <details key="abbreviationAttributeRequired" value="Tuple {&#xA;&#x9;message : String = 'The abbreviation attribute is required',&#xA;&#x9;status : Boolean = &#xA;&#x9;&#x9;&#x9;self.abbreviation &lt;> null&#xA;}.status"/>