<?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="extlibrary" nsURI="http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0" | |
nsPrefix="extlib"> | |
<eClassifiers xsi:type="ecore:EClass" name="Book" eSuperTypes="#//CirculatingItem"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | |
defaultValueLiteral="100"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory" | |
unsettable="true"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1" | |
eType="#//Writer" eOpposite="#//Writer/books"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Addressable"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1" | |
eType="#//Writer" volatile="true" transient="true" derived="true" containment="true" | |
resolveProxies="false"> | |
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | |
<details key="group" value="#people"/> | |
</eAnnotations> | |
</eStructuralFeatures> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="employees" upperBound="-1" | |
eType="#//Employee" volatile="true" transient="true" derived="true" containment="true" | |
resolveProxies="false"> | |
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | |
<details key="group" value="#people"/> | |
</eAnnotations> | |
</eStructuralFeatures> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" upperBound="-1" | |
eType="#//Borrower" volatile="true" transient="true" derived="true" containment="true" | |
resolveProxies="false"> | |
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> | |
<details key="group" value="#people"/> | |
</eAnnotations> | |
</eStructuralFeatures> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="stock" ordered="false" | |
upperBound="-1" eType="#//Item" containment="true" resolveProxies="false"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="books" ordered="false" | |
upperBound="-1" eType="#//Book" transient="true" derived="true"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="branches" upperBound="-1" | |
eType="#//Library" containment="true" eOpposite="#//Library/parentBranch"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="parentBranch" eType="#//Library" | |
eOpposite="#//Library/branches"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="people" 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="group"/> | |
</eAnnotations> | |
</eStructuralFeatures> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Writer" eSuperTypes="#//Person"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" | |
volatile="true" transient="true"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1" | |
eType="#//Book" eOpposite="#//Book/author"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EEnum" name="BookCategory"> | |
<eLiterals name="Mystery"/> | |
<eLiterals name="ScienceFiction" value="1"/> | |
<eLiterals name="Biography" value="2"/> | |
<eLiterals name="Encyclopedia" value="3" literal="Encyclopedia"/> | |
<eLiterals name="Dictionary" value="4"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Item" abstract="true"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Borrowable" abstract="true" interface="true"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="copies" lowerBound="1" | |
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" ordered="false" | |
upperBound="-1" eType="#//Borrower" eOpposite="#//Borrower/borrowed"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="CirculatingItem" abstract="true" eSuperTypes="#//Item #//Borrowable"/> | |
<eClassifiers xsi:type="ecore:EClass" name="AudioVisualItem" abstract="true" eSuperTypes="#//CirculatingItem"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="length" lowerBound="1" | |
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="damaged" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="BookOnTape" eSuperTypes="#//AudioVisualItem"> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="VideoCassette" eSuperTypes="#//AudioVisualItem"> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="cast" upperBound="-1" eType="#//Person"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Borrower" eSuperTypes="#//Person"> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="borrowed" upperBound="-1" | |
eType="#//Borrowable" eOpposite="#//Borrowable/borrowers"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//Addressable"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="fullName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Employee" eSuperTypes="#//Person"> | |
<eStructuralFeatures xsi:type="ecore:EReference" name="manager" eType="#//Employee"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Addressable" abstract="true" interface="true"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
</eClassifiers> | |
<eClassifiers xsi:type="ecore:EClass" name="Magazine" eSuperTypes="#//CirculatingItem"> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | |
<eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | |
</eClassifiers> | |
</ecore:EPackage> |