library
Book
title
pages
100
category
author
BookCategory
Mystery
Mystery
ScienceFiction
ScienceFiction
Biography
Biography
Library
reserve
books
name
writers
books
aref
LibraryException
org.eclipse.example.library.LibraryException
org.eclipse.example.library.LibraryException
people
Writer
name
books
car
<?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/multipackage_library.ecore" nsPrefix="org.eclipse.example.library">
  <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
    <details key="documentation" value="This is a single line, non-formatted comment for the library package"/>
  </eAnnotations>
  <eClassifiers xsi:type="ecore:EClass" name="Book">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="This is a multiline, non-formatted comment&#xD;&#xA;for Book"/>
    </eAnnotations>
    <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
      <details key="constraints" value="BookConstraint1 BookConstraint2"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="Book_TitleConstraint1"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="100">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&lt;p>A &lt;i>formatted&lt;/i> comment for book.&lt;tt>pages&lt;/tt>&lt;/p>"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//people/Writer"
        eOpposite="#//people/Writer/books">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A really, really long documentation for book.author. This text is not formatted. And it is written in a single line. We are using it to check if it is properly displayed. It certainly can get ugly but we will try to make it as pretty as possible. Oh my, more than 300 columns of pure mumbling... This should be a new record..."/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="Book_AuthorConstraint1"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="BookCategory">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Enums can have documentaiton (or even &lt;b>formatted&lt;/b> documentation) too!"/>
    </eAnnotations>
    <eLiterals name="Mystery"/>
    <eLiterals name="ScienceFiction" value="1">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="EnumLiteral here ;-)"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="Biography" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Library">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Another &lt;b>formatted&lt;/b> comment, but now for &amp;quot;Library&amp;quot;."/>
    </eAnnotations>
    <eOperations name="reserve" eExceptions="#//LibraryException">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="&lt;p>A &lt;b>formatted&lt;/b> comment that includes &lt;br />&#xD;&#xA;some line&lt;br />&#xD;&#xA;breaks.&lt;/p>&#xD;&#xA;&lt;p>And a paragraph too!&lt;/p>"/>
      </eAnnotations>
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="Library_ReserveConstraint1 Library_ReserveConstraint2 Library_ReserveConstraint3 Library_ReserveConstraint4"/>
      </eAnnotations>
      <eParameters name="books" upperBound="-1" eType="#//Book"/>
    </eOperations>
    <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="#//people/Writer" containment="true" resolveProxies="false" eKeys="#//people/Writer/name"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1"
        eType="#//Book" containment="true" resolveProxies="false" eKeys="#//Book/title #//Book/category"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="aref">
      <eGenericType eClassifier="ecore:EClass GenericsGoCrazy.ecore#//MySubClass">
        <eTypeArguments/>
      </eGenericType>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="LibraryException" instanceClassName="org.eclipse.example.library.LibraryException">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Another &lt;b>formatted&lt;/b> comment, but now for &amp;quot;LibraryException&amp;quot;."/>
    </eAnnotations>
  </eClassifiers>
  <eSubpackages name="people" nsURI="http:///org/eclipse/example/library/people.ecore"
      nsPrefix="org.eclipse.example.library.people">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="One more &lt;i>formatted&lt;/i> comment, but now for &amp;quot;people&amp;quot;."/>
    </eAnnotations>
    <eClassifiers xsi:type="ecore:EClass" name="Writer">
      <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="car" eType="ecore:EClass GenericsGoCrazy.ecore#//Car"/>
    </eClassifiers>
  </eSubpackages>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"org.eclipse.example.library","nsURI":"http:///org/eclipse/example/multipackage_library.ecore","name":"library","id":0,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Book","instanceClass":null,"abstract":false,"id":1,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"instanceClassName":null,"name":"BookCategory","instanceClass":null,"id":2,"serializable":true,"eClass":"EEnum"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Library","instanceClass":null,"abstract":false,"id":3,"interface":false,"eClass":"EClass"},{"instanceTypeName":"org.eclipse.example.library.LibraryException","defaultValue":null,"instanceClassName":"org.eclipse.example.library.LibraryException","name":"LibraryException","instanceClass":null,"id":4,"serializable":true,"eClass":"EDataType"},{"nsPrefix":"org.eclipse.example.library.people","nsURI":"http:///org/eclipse/example/library/people.ecore","name":"people","id":5,"eClass":"EPackage"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"title","changeable":true,"lowerBound":0,"iD":false,"id":6,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":100,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":"100","unsettable":false,"transient":false,"unique":true,"name":"pages","changeable":true,"lowerBound":0,"iD":false,"id":7,"derived":false},{"ordered":true,"upperBound":1,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"category","changeable":true,"lowerBound":0,"iD":false,"id":8,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"author","changeable":true,"resolveProxies":true,"lowerBound":0,"id":9,"derived":false},{"id":10,"eClass":"EGenericType"},{"id":11,"eClass":"EGenericType"},{"id":12,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Writer","instanceClass":null,"abstract":false,"id":13,"interface":false,"eClass":"EClass"},{"id":14,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"books","changeable":true,"resolveProxies":true,"lowerBound":0,"id":15,"derived":false},{"name":"Mystery","id":16,"value":0,"literal":"Mystery","eClass":"EEnumLiteral"},{"name":"ScienceFiction","id":17,"value":1,"literal":"ScienceFiction","eClass":"EEnumLiteral"},{"name":"Biography","id":18,"value":2,"literal":"Biography","eClass":"EEnumLiteral"},{"ordered":true,"upperBound":1,"unique":true,"name":"reserve","lowerBound":0,"id":19,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":20,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"writers","changeable":true,"resolveProxies":false,"lowerBound":0,"id":21,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"books","changeable":true,"resolveProxies":false,"lowerBound":0,"id":22,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"aref","changeable":true,"resolveProxies":true,"lowerBound":0,"id":23,"derived":false},{"ordered":true,"upperBound":-1,"unique":true,"name":"books","lowerBound":0,"id":24,"many":true,"required":false,"eClass":"EParameter"},{"id":25,"eClass":"EGenericType"},{"id":26,"eClass":"EGenericType"},{"id":27,"eClass":"EGenericType"},{"id":28,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":29,"derived":false},{"id":30,"eClass":"EGenericType"},{"id":31,"eClass":"EGenericType"},{"id":32,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"car","changeable":true,"resolveProxies":true,"lowerBound":0,"id":33,"derived":false},{"id":34,"eClass":"EGenericType"},{"id":35,"eClass":"EGenericType"},{"id":36,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":1,"target":0},{"source":1,"target":6},{"source":1,"target":7},{"source":1,"target":8},{"source":1,"target":9},{"source":6,"target":10},{"source":6,"target":1},{"source":7,"target":11},{"source":7,"target":1},{"source":8,"target":2},{"source":8,"target":12},{"source":8,"target":1},{"source":12,"target":2},{"source":9,"target":13},{"source":9,"target":14},{"source":9,"target":1},{"source":9,"target":15},{"source":14,"target":13},{"source":2,"target":0},{"source":2,"target":16},{"source":2,"target":17},{"source":2,"target":18},{"source":16,"target":2},{"source":17,"target":2},{"source":18,"target":2},{"source":3,"target":0},{"source":3,"target":19},{"source":3,"target":20},{"source":3,"target":21},{"source":3,"target":22},{"source":3,"target":23},{"source":19,"target":3},{"source":19,"target":24},{"source":19,"target":4},{"source":19,"target":25},{"source":24,"target":1},{"source":24,"target":26},{"source":24,"target":19},{"source":26,"target":1},{"source":25,"target":4},{"source":20,"target":27},{"source":20,"target":3},{"source":21,"target":13},{"source":21,"target":28},{"source":21,"target":3},{"source":21,"target":29},{"source":28,"target":13},{"source":22,"target":1},{"source":22,"target":30},{"source":22,"target":3},{"source":22,"target":6},{"source":22,"target":8},{"source":30,"target":1},{"source":23,"target":31},{"source":23,"target":3},{"source":31,"target":32},{"source":4,"target":0},{"source":5,"target":13},{"source":5,"target":0},{"source":13,"target":5},{"source":13,"target":29},{"source":13,"target":15},{"source":13,"target":33},{"source":29,"target":34},{"source":29,"target":13},{"source":15,"target":1},{"source":15,"target":35},{"source":15,"target":13},{"source":15,"target":9},{"source":35,"target":1},{"source":33,"target":36},{"source":33,"target":13}],"multigraph":true}