<!-- Diese Datei enthaelt die DTD des DLmeta Datenmodells.            -->
<!-- Die DTD wurde am                                                 -->
<!-- Zentrum fuer Datenverarbeitung der Universitaet Tuebingen (ZDV)  --> 
<!-- entwickelt.                                                      -->
<!-- Copyright 1999,2000 ZDV                                          -->
<!--                                                                  -->
<!-- Die gewerbliche Nutzung ist untersagt.			      -->
<!--                                                                  -->
<!-- Die kostenfreie Nutzung durch staatliche und nicht kommerzielle  -->
<!-- Wissenschaftliche-Einrichtungen ist erlaubt und ausdruecklich    -->
<!-- erwuenscht.                                                      -->
<!--                                                                  -->
<!-- Diese DTD basiert auf Arbeiten von:                              -->
<!-- Annegret Fiebig (1999, ZDV)                                      -->
<!-- Till Haenisch (2000, LOMI)                                       -->
<!-- Christian Aschoff (2000, LOMI)                                   -->
<!-- Heinrich Abele (2000, ZDV)                                       -->
<!--                                                                  -->
<!-- Der Basis-Entwurf des konzeptuelle Datenmodells wurde im         -->
<!-- Rahmen des Landesprojekt "IBM DB/2 Digital Library" 1998/1999    -->
<!-- erstellt.                                                        -->
<!-- Projektpartner:                                                  -->
<!-- - Bibliotheks Service Zentrum Konstanz (BSZ)                     -->
<!-- - Universitaets Bibliothek Karlsruhe (UB Karlsruhe)              -->
<!-- - Rechenzentrum der Universitaet Karlsruhe (RZ Karlsruhe)        -->
<!-- - Lehrstuhl fuer Organisation und Management von Informations-   -->
<!--   systemen der Universitaet Ulm (LOMI Ulm)                       -->
<!-- - Zentrum fuer Datenverarbeitung der Universitaet Tuebingen      -->
<!--   (ZDV Tuebingen)                                                -->
<!-- - IBM Deutschland (Boeblingen)                                   -->
<!--                                                                  -->
<!--                                                                  -->
<!-- Erstellung:                                                      -->
<!-- **************************************************************** -->
<!-- Vollstaendige Ueberarbeitung mit dem Ziel DC-Konformitaet.       -->
<!-- Das DL-Datenmodell wurde dabei nicht veraendert!                 -->
<!-- Wesentliche Aenderungen:                                         -->
<!-- Elementreihenfolge der DC-Dokumentation angepasst.               -->
<!-- Date Modellierung geaendert.                                     -->
<!-- DC konforme Namensgebung, mit der Ausnahme ResourceID            -->
<!-- Element-Namen-Aenderungen im DL-Objektteil um Namenskonflikte    -->
<!-- mit DC-Element-Namen aufzuloesen.                                -->
<!-- Element Source hinzugefuegt (optional) wg. DC-Konformitaet       -->
<!-- Date-Subelement Available hinzugefuegt (optional) wg. DC-        -->
<!-- Konformitaet.                                                    -->
<!--                                                                  -->
<!-- Autor: Heinrich Abele 2000-07-30T02:51:00+01:00                  -->
<!-- **************************************************************** -->
<!-- Modifikation:                                                    -->
<!-- 2000-08-08                                                       -->
<!--                                                                  -->
<!-- Typequalifier URL                                                -->
<!-- Type Attribute Tokens korrigiert                                 -->
<!-- Cardinalitaet Creator 0..n                                       -->
<!-- Cardinalitaet Language 0..n                                      -->
<!-- ResourceID nach Identifier umbenannt                             -->
<!-- Subelement TOC von Title nach Description                        -->
<!-- Cardinalitaet Subelement DescriptionShort 0..1                   -->
<!-- Cardinalitaet Subelement ValidFrom 0..1                          -->
<!-- Cardinalitaet Subelement ValidTo 0..1                            -->
<!-- Modellierung Subelement Available wie Valid                      -->
<!--                                                                  -->
<!-- Mitarbeit: Stefan Wolf (BSZ), Thomas Frings (BSZ),               -->
<!-- Carina Winter (BSZ), Annabel Feuerstein (BSZ)                    -->
<!--                                                                  -->
<!-- Heinrich Abele (ZDV) 2000-08-09T11:00+01:00                      -->  
<!-- **************************************************************** -->
<!-- Modifikation:                                                    -->
<!-- 2000-08-14                                                       -->
<!--                                                                  -->
<!-- Cardinalitaet AvailableTo 0..1                                   -->
<!-- Aenderung der Modellierung Modified                              -->
<!-- Neues Element History: History der Metadaten                     -->
<!-- Neues Subelement Modification des Elements History               -->
<!-- Elementnamen unterhalb des Elements DLObjectInstance wurden -    -->
<!--   durchgaengig mit dem Prefix DL (DLFile, DLComment ...) -       -->
<!--   versehen.                                                      -->
<!--                                                                  -->
<!-- Christan Aschoff (LOMI)                                          -->
<!-- Till Haenisch (LOMI)                                             -->
<!-- Heinrich Abele (ZDV) 2000-08-14T11:55+01:00                      -->
<!-- **************************************************************** -->
<!-- Modifikation:                                                    -->
<!-- 2000-09-04                                                       -->
<!--                                                                  -->
<!-- bugfix                                                           -->
<!-- Cardinalitaet von Modification 1..n                              -->
<!-- Attribute DateTime REQUIRED                                      -->
<!-- Heinrich Abele (ZDV) 2000-09-04T11:00+01:00                      -->
<!-- **************************************************************** -->
<!-- Modifikation:                                                    -->
<!-- 2000-09-28                                                       -->
<!--                                                                  -->
<!-- Die folgenden Modifikationen und Erweiterungen wurden auf einem  -->
<!-- Meeting am 2000-09-28 am BSZ Konstanz vereinbart.                -->
<!--                                                                  -->
<!-- Die Subelemente von Title (TitleMain, Alternative) werden mit    -->
<!-- den optionalen Attributen LanguageScheme und Language erweitert. -->
<!-- Werden diese Attribute nicht explizit gesetzt, wird davon aus-   -->
<!-- gegangen, dass die Sprache der genannten Elemente durch das      -->
<!-- Element Language festgelegt ist. Fuer das Attribut Language-     -->
<!-- Scheme ist ISO639-2 der einzig zulaessige Wert.                  -->
<!--                                                                  -->
<!-- Die Subelemente von Description (DescriptionShort,Abstract,TOC)  -->
<!-- werden umbenannt in: (DescriptionMain, Abstract, TOC)            -->
<!-- erhalten zusaetzliche LanguageAttribute (s.o)                    -->
<!-- werden in ihrer Kardinalitaet von 0..1 auf 0..n geaendert.       -->
<!--                                                                  -->
<!-- Das Element BSZStatus erhaelt als weiteres optinales Attribut    -->
<!-- swdid                                                            -->
<!--                                                                  -->
<!-- Christian Aschoff (LOMI)                                         -->
<!-- Thomas Frings, Thomas Funk, Carina Winter, Stefan Wolf (BSZ)     -->
<!-- Heinrich Abele (ZDV) 2000-09-28T21:44+01:00                      -->
<!-- **************************************************************** -->

<!-- ================================================================ -->
<!-- Teile der DTD sind separaten Dateien untergebracht.              -->
<!-- Diese werden hier in die DTD eingefuegt.                         -->
<!--                                                                  -->
 
<!--                                                                  -->
<!-- externe Definition des Scheme-Attributs fuer das Element         -->
<!-- Subject gemaess den Empfehlungen des BSZ                         -->
<!--                                                                  -->
<!ENTITY % DL.SubjectScheme SYSTEM "DLSubjectScheme.ent"                >
%DL.SubjectScheme;

<!--                                                                  -->
<!-- externe Definition der Attribute des Elements Language.          -->
<!-- Empfehlung der DCMI: ISO639-2                                    -->
<!--                                                                  -->
<!ENTITY % DL.Lang639 SYSTEM "DLLang639.ent"                            >
%DL.Lang639;
                                    
<!-- ================================================================ -->
<!-- Definition haeufig verwendeter Attribute oder komplexer          -->
<!-- Attribute als ENTITY                                             -->
<!--                                                                  -->

<!-- Als Format fuer Datum und Zeit wird entsprechend der Empfehlung  -->
<!-- der Dublin Core Metadata Initiative (DCMI) vom 2000-07-11        -->
<!-- http://purl.org/dc/documents/rec/dcmes-qualifiers-20000711.htm   -->
<!-- das W3CDTF Format verwendet.                                     -->
<!-- http://www.w3.org/TR/NOTE-datetime                               -->

<!ENTITY % a.date
	 'DateTime	CDATA				#REQUIRED 
	  Scheme	( W3CDTF ) 		        #REQUIRED '     >

<!-- Entsprechend der Empfehlung der DCMI wird das Vokabular fuer     -->
<!-- DCType normiert.                                                 -->
<!-- http://purl.oclc.org/dc/documents/rec/                           -->
<!--                             dcmi-type-vocabulary-20000711.htm    -->


<!ENTITY % a.Type
        'Scheme         (  DCT1 )                       #REQUIRED
	Type 		(collection|dataset|event|image
			|interactive_resource|service
			|software|sound|text)	#REQUIRED '             >

<!-- Entsprechend der Empfehlung der DCMI wird das Vokabular fuer     -->
<!-- Relation normiert.                                               -->
<!-- http://purl.org/dc/documents/rec/dcmes-qualifiers-20000711.htm   -->

<!ENTITY % a.Relation
        'Scheme		( URI )				#REQUIRED
        Role            ( isVersionOf| hasVersion 
                        | isReplacedBy | replaces 
                        | isRequiredBy | requires
                        | isPartOf | hasPart
                        | isReferencedBy | references
                        | isFormatOf | hasFormat )	#REQUIRED '	>  



<!-- ================================================================ -->
<!--              Modellierung des DL-Daten-Modells                   -->
<!-- ================================================================ -->

<!ELEMENT DLmeta ( Object+ )						>

<!ELEMENT Object (
	Title,
	Creator*, 
	Subject*, 
	Description?, 
	Publisher,
	Contributor*,  
	Date,  
	Type,
	LocalType?,
	Format?,
	Identifier,
	Source?, 
	Language*, 
	Relation*, 
	Coverage*,
	Rights?,
	Collection?,
	Local?,
	BSZStatus?,
	ObjectVersion, 
	History?,
	ObjectType) 							>

<!ATTLIST Object
	Origin			CDATA			#REQUIRED
	ObjectID		ID			#REQUIRED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Title                                        -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Title ( TitleMain, Alternative* )			>

<!ELEMENT TitleMain ( #PCDATA )						>
<!ATTLIST TitleMain
        %a.LanguageAttr;                                                >

<!ELEMENT Alternative ( #PCDATA )					>
<!ATTLIST Alternative
        %a.LanguageAttr;                                                >


<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Creator                                      -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Creator ( Person )						>
<!ATTLIST Creator
	Role			CDATA			#IMPLIED	>

<!ELEMENT Person ( CompleteName, Address? )				>
<!ATTLIST Person
	PersonType	(person|corporation)		#REQUIRED	>

<!ELEMENT CompleteName ( #PCDATA )					>
<!ATTLIST CompleteName
	FirstName		CDATA			#IMPLIED
	LastName		CDATA			#IMPLIED
	NormName		CDATA			#REQUIRED
	Scheme			CDATA			#REQUIRED	>

<!ELEMENT Address ( #PCDATA )						>
<!ATTLIST Address
	Scheme			CDATA			#IMPLIED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Subject                                      -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Subject ( #PCDATA )						>
<!ATTLIST Subject
				%a.SubjectScheme;			>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Description                                  -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Description ( DescriptionMain*, Abstract*, TOC* )             >

<!ELEMENT DescriptionMain ( #PCDATA ) 					>
<!ATTLIST DescriptionMain
        %a.LanguageAttr;                                                >
  
<!ELEMENT Abstract ( #PCDATA )				 		>
<!ATTLIST Abstract
        %a.LanguageAttr;
        Encoding                CDATA                   #IMPLIED        >

<!ELEMENT TOC ( #PCDATA )                                               >
<!ATTLIST TOC
        %a.LanguageAttr;
        Encoding		CDATA			#IMPLIED        >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Publisher                                    -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Publisher ( #PCDATA )						>
<!ATTLIST Publisher
	  Scheme			CDATA		#IMPLIED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Contributor                                  -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Contributor ( Person )					>
<!ATTLIST Contributor
	Role			CDATA			#IMPLIED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Date                                         -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Date (Created, Valid?, Available?, Issued, Modified? )        >

<!ELEMENT Created ( #PCDATA )						>
<!ATTLIST Created
                                %a.date;                                >

<!ELEMENT Valid (ValidFrom?,ValidTo?)					>
<!ELEMENT ValidFrom ( #PCDATA )						>
<!ATTLIST ValidFrom
				%a.date;				>
<!ELEMENT ValidTo ( #PCDATA )						>
<!ATTLIST ValidTo
				%a.date;				>
<!ELEMENT Available ( AvailableFrom?, AvailableTo? )                    >
<!ELEMENT AvailableFrom ( #PCDATA )                                     >
<!ATTLIST AvailableFrom
				%a.date;                                > 
<!ELEMENT AvailableTo ( #PCDATA )                                       >
<!ATTLIST AvailableTo
				%a.date;                                > 

<!ELEMENT Issued ( #PCDATA )					        >
<!ATTLIST Issued
				%a.date;				>

<!ELEMENT Modified ( #PCDATA )	 	                                >
<!ATTLIST Modified
				%a.date;				>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Type                                         -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Type EMPTY                                                    >
<!ATTLIST Type
	  			%a.Type;                                >
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DLmeta ELEMENT LocalType                                         -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT LocalType ( #PCDATA )                                         >
<!ATTLIST LocalType
          Scheme			CDATA		#REQUIRED
          CSep                          CDATA		#IMPLIED        >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Format                                       -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Format ( Extent?,Medium? )					>

<!ELEMENT Extent (#PCDATA)                                              >
<!ATTLIST Extent
	Scheme				CDATA		#REQUIRED	>

<!ELEMENT Medium (#PCDATA)						>
<!ATTLIST Medium
	Scheme		(noScheme|IMT)			#REQUIRED       >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Identifier                                   -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Identifier ( #PCDATA )					>
<!ATTLIST Identifier
	  Scheme			CDATA		#IMPLIED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Source                                       -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Source ( #PCDATA )                                            >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Language                                     -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Language EMPTY						>
<!ATTLIST Language
				%a.Language;				>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Relation                                     -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Relation ( #PCDATA )						>
<!ATTLIST Relation			
					%a.Relation;			>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Coverage                                     -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Coverage ( #PCDATA )						>
<!ATTLIST Coverage
          Role			(Spatial | Temporal )	#REQUIRED
	  Scheme			CDATA		#REQUIRED	>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- Dublin Core ELEMENT Rights                                       -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Rights ( #PCDATA )					        >
<!ATTLIST Rights
	  Scheme                        CDATA           #IMPLIED        >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT Collection                                            -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Collection ( #PCDATA )					>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT Local                                                 -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT Local ANY							>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT BSZStatus                                             -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT BSZStatus ( #PCDATA )						>
<!ATTLIST BSZStatus
          %a.date;				
          swdid                         CDATA           #IMPLIED        >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT ObjectVersion                                         -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT ObjectVersion ( #PCDATA )					>

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT History                                               -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT History ( Modification+ )                                     >

<!ELEMENT Modification ( Person, DLComment? )                           >
<!ATTLIST Modification
                               %a.date;                                 >

<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- DL ELEMENT ObjectType                                            -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!ELEMENT ObjectType ( IsDLObject | NoDLObject )			>

<!ELEMENT IsDLObject ( DLObjectInstance+ )				>

<!ELEMENT NoDLObject EMPTY						>

<!ELEMENT DLObjectInstance ( DLGenerated?, DLPart+ )			>
<!ATTLIST DLObjectInstance
	Application		CDATA			#IMPLIED
	Number			CDATA			#REQUIRED
	InstanceName		CDATA			#REQUIRED
	Persistent		( Y | N )		#REQUIRED	>

<!ELEMENT DLGenerated ( DLGeneratedFrom? )				>

<!ATTLIST DLGenerated
	  Application		CDATA			#IMPLIED 
	  GeneratedBy		CDATA			#IMPLIED	>

<!ELEMENT DLGeneratedFrom ( #PCDATA )					>
<!ATTLIST DLGeneratedFrom
	  Identifier		CDATA                   #IMPLIED        >


<!ELEMENT DLPart ( DLFile, DLFormat ) 					>
<!ATTLIST DLPart
	Number			CDATA			#REQUIRED
        Application		CDATA			#IMPLIED
	PartName		CDATA			#REQUIRED
	PartIndexer		CDATA			#IMPLIED
	Size			CDATA			#REQUIRED	>


<!ELEMENT DLFile	EMPTY						>
<!ATTLIST DLFile
	Name			CDATA			#REQUIRED
	Location		CDATA			#REQUIRED	>

<!ELEMENT DLFormat ( DLAttribute*, DLComment? )				>
<!ATTLIST DLFormat
          MimeType              CDATA                   #REQUIRED
	  FormatVersion		CDATA			#REQUIRED	
	  Application		CDATA			#IMPLIED        >

<!ELEMENT DLAttribute ( DLComment? )					>
<!ATTLIST DLAttribute
	  Name			CDATA			#REQUIRED	
	  Type			CDATA			#REQUIRED	
	  Value			CDATA			#REQUIRED	>

<!ELEMENT DLComment ( #PCDATA )						>

