blob: b377cd8fe5e011d9e5c139c5077e737b10ae3fc7 [file] [log] [blame]
<?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="library"
nsURI="http:///org/eclipse/example/library.ecore" nsPrefix="org.eclipse.example.library">
<eClassifiers xsi:type="ecore:EClass" name="Library">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Diagram element"/>
</eAnnotations>
<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" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
eType="#//Book" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="communities" upperBound="-1"
eType="#//Community" containment="true" eOpposite="#//Community/library"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as node; show name on diagram"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
eType="#//Book" eOpposite="#//Book/author"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="brochures" upperBound="2"
eType="#//Book" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="opinions" upperBound="2"
eType="#//Opinion" containment="true" eOpposite="#//Opinion/writer"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="participates" ordered="false"
upperBound="-1" eType="#//CommunityRole" eOpposite="#//CommunityRole/participants"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Book">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as node; show title on diagram"/>
</eAnnotations>
<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"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1"
eType="#//Writer" eOpposite="#//Writer/books">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as link"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="reviews" upperBound="-1"
eType="#//Review" containment="true" eOpposite="#//Review/book"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="chapters" upperBound="-1"
eType="#//Chapter" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="opinions" upperBound="2"
eType="#//Opinion" eOpposite="#//Opinion/book"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
<eLiterals name="Mystery"/>
<eLiterals name="ScienceFiction" value="1"/>
<eLiterals name="Biography" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Review">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as node inside book compartments"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="positive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="true"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="book" lowerBound="1" eType="#//Book"
eOpposite="#//Book/reviews"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Opinion">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as directed link from writer to book"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="writer" lowerBound="1"
eType="#//Writer" eOpposite="#//Writer/opinions"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="book" lowerBound="1" eType="#//Book"
eOpposite="#//Book/opinions"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Chapter">
<eAnnotations source="http:///org/eclipse/example/library.ecore">
<details key="note" value="Should be modeled as direct child of book without compartments"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Community">
<eStructuralFeatures xsi:type="ecore:EReference" name="roles" ordered="false"
lowerBound="1" upperBound="-1" eType="#//CommunityRole" containment="true"
eOpposite="#//CommunityRole/community"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="library" eType="#//Library"
eOpposite="#//Library/communities"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="CommunityRole">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
defaultValueLiteral="co-author"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="community" eType="#//Community"
eOpposite="#//Community/roles"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="participants" ordered="false"
upperBound="-1" eType="#//Writer" eOpposite="#//Writer/participates"/>
</eClassifiers>
</ecore:EPackage>