<!-- =================================================================== -->
<!--                                                                     -->
<!-- Object Dependency Exploration Model (ODEM) DTD                      -->
<!--                                                                     -->
<!-- Author  : Manfred Duchrow                                           -->
<!-- Version : 1.1 , 16/08/2007                                          -->
<!--                                                                     -->
<!-- History                                                             -->
<!-- 1.0  19/01/2007 mdu Created                                         -->
<!-- 1.1  16/08/2007 mdu Added visibility isAbstrct and isFinal to type  -->
<!--                                                                     -->
<!-- Copyright (c) 2007, by Manfred Duchrow. All rights reserved.        -->
<!-- =================================================================== -->

<!ELEMENT ODEM (header,context)>
<!ATTLIST ODEM
  version CDATA #REQUIRED>

<!ELEMENT header (created-by)>

<!ELEMENT context (description?, container*)>
<!ATTLIST context
  name CDATA #REQUIRED>

<!ELEMENT description (#PCDATA)>

<!ELEMENT created-by (exporter,provider)>

<!ELEMENT container (namespace*)>
<!ATTLIST container
  name CDATA #REQUIRED
  classification (dir|jar|component|unknown) #IMPLIED>

<!ELEMENT exporter (#PCDATA)>
<!ATTLIST exporter
  version CDATA #REQUIRED>

<!ELEMENT provider (#PCDATA)>

<!ELEMENT namespace (type*)>
<!ATTLIST namespace
  name CDATA #REQUIRED>

<!ELEMENT type (dependencies)>
<!ATTLIST type
  name CDATA  #REQUIRED
  classification (class|interface|annotation|enum|unknown) #IMPLIED
  visibility (public|protected|private|default) #IMPLIED
  isAbstract (yes|no) "no"
  isFinal (yes|no) "no"
>

<!ELEMENT dependencies (depends-on*)>
<!ATTLIST dependencies
  count CDATA #REQUIRED>

<!ELEMENT depends-on EMPTY>
<!ATTLIST depends-on
  name CDATA #REQUIRED
  classification (uses|extends|implements) #IMPLIED>
