<!--

    Copyright (C) 2009 eXo Platform SAS.

    This is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.

    This software is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this software; if not, write to the Free
    Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
    02110-1301 USA, or see the FSF site: http://www.fsf.org.

-->
<nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

   <!-- metadata nodetypes -->
   <nodeType name="exo:metadata" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
      <propertyDefinitions>
         <propertyDefinition name="exo:internalUse" requiredType="Boolean" autoCreated="true" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="false">
            <valueConstraints />
            <defaultValues>
               <defaultValue>false</defaultValue>
            </defaultValues>
         </propertyDefinition>
      </propertyDefinitions>
   </nodeType>

   <!-- Dublin Core Metadata Elemet Set, Version 1.1  -->
   <nodeType name="dc:elementSet" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
      <supertypes>
         <supertype>exo:metadata</supertype>
      </supertypes>
      <propertyDefinitions>
         <propertyDefinition name="dc:title" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:creator" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:subject" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:description" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:publisher" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:contributor" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:date" requiredType="Date" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:resourceType" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:format" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:identifier" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:source" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:language" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:relation" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:coverage" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="dc:rights" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY" protected="false"
            multiple="true">
            <valueConstraints />
         </propertyDefinition>
      </propertyDefinitions>
   </nodeType>

   <!-- audit nodetypes -->

   <nodeType name="nt:resource" isMixin="false" hasOrderableChildNodes="false" primaryItemName="jcr:data">
      <supertypes>
         <supertype>nt:base</supertype>
      </supertypes>
      <propertyDefinitions>
         <propertyDefinition name="jcr:filename" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="false">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="jcr:encoding" requiredType="String" autoCreated="false" mandatory="false" onParentVersion="COPY"
            protected="false" multiple="false">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="jcr:mimeType" requiredType="String" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
            multiple="false">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="jcr:data" requiredType="Binary" autoCreated="false" mandatory="true" onParentVersion="COPY" protected="false"
            multiple="false">
            <valueConstraints />
         </propertyDefinition>
         <propertyDefinition name="jcr:lastModified" requiredType="Date" autoCreated="false" mandatory="true" onParentVersion="IGNORE"
            protected="false" multiple="false">
            <valueConstraints />
         </propertyDefinition>
      </propertyDefinitions>
   </nodeType>

   
    <nodeType name="exo:groovyResourceContainer" isMixin="false" hasOrderableChildNodes="false" primaryItemName="">
     <supertypes>
        <supertype>nt:resource</supertype>
     </supertypes>
     <propertyDefinitions>
       <propertyDefinition name="exo:autoload" requiredType="Boolean" autoCreated="true"  mandatory="true" onParentVersion="COPY" protected="false" multiple="false">
       <valueConstraints/>
       <defaultValues>
          <defaultValue>false</defaultValue>
       </defaultValues>
     </propertyDefinition>
    </propertyDefinitions>
   </nodeType>

  <nodeType name="exo:datetime" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
    <propertyDefinitions>
      <propertyDefinition name="exo:dateCreated" requiredType="Date" autoCreated="true" mandatory="false"
        onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
      <propertyDefinition name="exo:dateModified" requiredType="Date" autoCreated="true" mandatory="false"
        onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
    </propertyDefinitions>
  </nodeType>

  <nodeType name="exo:modify" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
    <propertyDefinitions>
      <propertyDefinition name="exo:lastModifiedDate" requiredType="Date" autoCreated="true" mandatory="false"
        onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
      <propertyDefinition name="exo:lastModifier" requiredType="String" autoCreated="true" mandatory="false"
        onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
    </propertyDefinitions>
  </nodeType>  

  <nodeType name="exo:titleMixin" isMixin="true" hasOrderableChildNodes="false" primaryItemName="">
    <propertyDefinitions>
      <propertyDefinition name="exo:title" requiredType="String" autoCreated="true" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
      <propertyDefinition name="exo:name" requiredType="String" autoCreated="true" mandatory="false" onParentVersion="COPY" protected="false" multiple="false">
        <valueConstraints/>       
      </propertyDefinition>
    </propertyDefinitions>
  </nodeType>

</nodeTypes>