Newer
Older
<?xml version="1.0" encoding="UTF-8"?>
<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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.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 {
	message : String = 'There shall not be two Abbreviations elements with same name.',
	status : Boolean = 
			self.abbreviation->isUnique( a : Abbreviation | a.name )
}.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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.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">
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
<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>
<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 {
	message : String = 'For an AnyLNClass, there shall not be two DataObject sub-elements with same name.',
	status : Boolean = 
			-- TODO: base AbstractLNClass should be taken into account
			-- For this, explicit links have to be created first
			self.dataObject->isUnique( d : DataObject | d.name )
}.status"/>
<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 {
	message : String = 'The version attribute is required',
	status : Boolean = 
			self.version <> null
}.status"/>
<details key="dateAttributeRequired" value="Tuple {
	message : String = 'The date attribute is required',
	status : Boolean = 
			self.date <> null
}.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>
<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 {
	message : String = 'For an ApplicableServices, there shall not be two DataSetMemberOf sub-elements with same cb.',
	status : Boolean = 
			self.dataSetMemberOf->isUnique( d : DataSetMemberOf | d.cb )
}.status"/>
<details key="uniqueService" value="Tuple {
	message : String = 'For an ApplicableServices, there shall not be two ServiceType sub-elements with same name.',
	status : Boolean = 
			self.service->isUnique( s : ServiceType | s.name )
}.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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.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>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uniqueCDCChild nameAttributeRequired"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uniqueCDCChild" value="Tuple {
	message : String = 'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.',
	status : Boolean = 
			let names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()
}.status"/>
<details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/>
<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 {
	message : String = 'Within an NS, there shall not be two CDC sub-elements with same name and (if defined) variant.',
	status : Boolean = 
			-- TODO: DependsOn NS should be taken into account ?
			-- For this, explicit links have to be created first
			-- Then, may be this constraint should be in NS and not in Enumerations ?
			self.cDC->select( c : CDC | c.variant = null )->isUnique( c : CDC | c.name )
	 or self.cDC->select( c : CDC | c.variant <> null )->forAll( c1, c2 : CDC | c1 <> c2 implies c1.name <> c2.name or c1.variant <> c2.variant )
}.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 {
	message : String = 'The version attribute is required',
	status : Boolean = 
			self.version <> null
}.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>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uniqueSubDataAttribute nameAttributeRequired"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uniqueSubDataAttribute" value="Tuple {
	message : String = 'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.',
	status : Boolean = 
			self.subDataAttribute->isUnique( s : SubDataAttribute | s.name )
}.status"/>
<details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/>
<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 {
	message : String = 'Within an NS, there shall not be two ConstructedAttribute sub-elements with same name.',
	status : Boolean = 
			-- TODO: DependsOn NS should be taken into account ?
			-- For this, explicit links have to be created first
			-- Then, may be this constraint should be in NS and not in Enumerations ?
			self.constructedAttribute->isUnique( c : ConstructedAttribute | c.name )
}.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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/>
<details key="fcAttributeRequired" value="Tuple {
	message : String = 'The fc attribute is required',
	status : Boolean = 
			self.fc <> null
}.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 {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/>
<details key="typeAttributeRequired" value="Tuple {
	message : String = 'The type attribute is required',
	status : Boolean = 
			self.type <> null
}.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 {
	message : String = 'The cb attribute is required',
	status : Boolean = 
			self.cb <> null
}.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 {
	message : String = 'The id attribute is required',
	status : Boolean = 
			self.id <> null
}.status"/>
</eAnnotations>
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
<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>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
<details key="constraints" value="uniqueLiteralName uniqueLiteralVal nameAttributeRequired"/>
</eAnnotations>
<eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
<details key="uniqueLiteralName" value="Tuple {
	message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same name.',
	status : Boolean = 
			-- TODO: inherited literals should be taken into account
			-- For this, explicit links have to be created first
			self.literal->isUnique( l : Literal | l.name )
}.status"/>
<details key="uniqueLiteralVal" value="Tuple {
	message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.',
	status : Boolean = 
			self.literal->isUnique( l : Literal | l.literalVal )
}.status"/>
<details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/>
<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 {
	message : String = 'Within an NS, there shall not be two Enumeration sub-elements with same name.',
	status : Boolean = 
			-- TODO: DependsOn NS should be taken into account ?
			-- For this, explicit links have to be created first
			-- Then, may be this constraint should be in NS and not in Enumerations ?
			self.enumeration->isUnique( e : Enumeration | e.name )
}.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 {
	message : String = 'The abbreviation attribute is required',
	status : Boolean = 
			self.abbreviation <> null
}.status"/>