<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MetadataSet [

  <!-- The outer tag of any metadata set. Contains some number of elements.             -->
  <!-- @param contact     A contact address for the creator.                            -->
  <!-- @param creator     The name of the entity resposibly for this set.               -->
  <!-- @param family      The name of this sets family.                                 -->
  <!-- @param lastchanged The full date, user name and machine name of the last editor. --> 
  <!--   uses the form:                                                                 -->
  <!--   Day Mon(th) dd hh:mm:ss yyyy '-' <username> on <machine>                       -->
  <!-- @param namespace   The namespace of this metadata set.                           -->
  <!ELEMENT MetadataSet ((Name|Description|SetLanguage|Element)+)>
  <!ATTLIST MetadataSet
	    contact            CDATA #REQUIRED
	    creator            CDATA #REQUIRED
	    description        CDATA #REQUIRED
            family             CDATA #REQUIRED
	    lastchanged        CDATA #REQUIRED
            name               CDATA #REQUIRED
	    namespace          CDATA #REQUIRED
	    language_dependent CDATA "">

  <!-- The name of a metadata set. Is language specific. -->
  <!ELEMENT Name (#PCDATA)>
  <!ATTLIST Name
            language CDATA "en">

  <!-- The description of a metadata set. Is language specific. -->
  <!ELEMENT Description (#PCDATA)>
  <!ATTLIST Description
            language CDATA "en">

  <!-- When used in conjuction with defer-node-expansion, allows for better memory use when dealing with several or more languages. -->
  <!ELEMENT SetLanguage (Name, Description?)>
  <!ATTLIST Language
	    code CDATA #REQUIRED>

  <!-- An element in the metadata set. -->
  <!-- Note that the name attribute isn't really Dublin Core compliant - it was just the first thing I came up with. -->
  <!ELEMENT Element (Attribute*,Language*,OptionList?)>
  <!ATTLIST Element
            name       CDATA #REQUIRED
	    occurances CDATA "0">

  <!-- Each element has several attribute children. -->	
  <!-- Given that name was already used for an Element, I decided to use identifier for the language specific 'name', which I've been told isn't really compliant with Dublin Core. -->
  <!ELEMENT Attribute (#PCDATA)>
  <!ATTLIST Attribute
            name CDATA "">

  <!-- When used in conjuction with defer-node-expansion, allows for better memory use when dealing with several or more languages. -->
  <!ELEMENT Language (Attribute*)>
  <!ATTLIST Language
	    code CDATA #REQUIRED>

  <!-- For listing predefined values for this element. -->
  <!ELEMENT OptionList (Value+)>
  <!ATTLIST OptionList
            restricted (true|false) "false">
]>

<MetadataSet 
contact     = "marsull@uflib.ufl.edu"
creator     = "University of Florida Digital Library"
family      = "oral"
lastchanged = "Wed Aug 17 10:35:30 2005"
namespace   = "oral" 
>

  <SetLanguage code="en">
    <Name language="en"> UFDC Oral History Custom Metadata </Name>
    <Description language="en">Custom metadata for Greenstone is used with oral interviews</Description>
  </SetLanguage>

  <Element name="Interviewee" remember_values="false" occurances="0">
      <Attribute name="identifier" language="en">Interviewee</Attribute>
      <Attribute name="definition" language="en">The person who was interviewed</Attribute>
      <Attribute name="comment" language="en">Name of the person who was interviewed in this interview.</Attribute>
  </Element>
  
  <Element name="Interviewer" remember_values="false" occurances="0">
      <Attribute name="identifier" language="en">Interviewer</Attribute>
      <Attribute name="definition" language="en">Interviewer</Attribute>
      <Attribute name="comment" language="en">Name of the person who asked the questions in the interview.</Attribute>
  </Element>
  
  <Element name="InterviewDate" remember_values="false" occurances="0">
      <Attribute name="identifier" language="en">InterviewDate</Attribute>
      <Attribute name="definition" language="en">Date of the Interview</Attribute>
      <Attribute name="comment" language="en">Date the interview took place.</Attribute>
  </Element>

</MetadataSet>