<model name="wca:applicationmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <description>Alfresco WCM Application Model</description>
   <author>Alfresco</author>
   <published>2006-11-27</published>
   <version>1.0</version>

   <imports>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/system/1.0" prefix="sys"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
      <import uri="http://www.alfresco.org/model/wcmmodel/1.0" prefix="wcm"/>
   </imports>
   
   <namespaces>
      <namespace uri="http://www.alfresco.org/model/wcmappmodel/1.0" prefix="wca"/>
   </namespaces>
   
   <constraints>
      <constraint name="wca:deploytypes" type="LIST">
         <parameter name="allowedValues">
            <list>
               <value>alfresco</value>
               <value>file</value>
            </list>
         </parameter>
      </constraint>
      
      <constraint name="wca:deployservertypes" type="LIST">
         <parameter name="allowedValues">
            <list>
               <value>live</value>
               <value>test</value>
            </list>
         </parameter>
      </constraint>
   </constraints>
   
   <types>
   
      <type name="wca:webfolder">
         <title>WCM Web Project Folder</title>
         <parent>wcm:avmfolder</parent>
         <properties>
            <!-- root name of the avm staging stores for this web folder -->
            <property name="wca:avmstore">
               <title>AVM Store Root</title>
               <type>d:text</type>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
            <property name="wca:defaultwebapp">
               <title>Default Webapp</title>
               <type>d:text</type>
            </property>
            <!-- the following properties are deprecated as of v2.2 -->
            <property name="wca:deployto">
               <title>Deploy To</title>
               <type>d:text</type>
               <multiple>true</multiple>
            </property>
            <property name="wca:selecteddeployto">
               <title>Servers Selected For Deployment</title>
               <type>d:text</type>
               <multiple>true</multiple>
            </property>
            <property name="wca:selecteddeployversion">
               <title>Snapshot Version Selected For Deployment</title>
               <type>d:int</type>
            </property>
            <!-- end of deprecation -->
            <property name="wca:issource">
               <title>Used as a template website</title>
               <type>d:boolean</type>
            </property>
            <!-- Preview URI Service Provider Name (since 3.2) -->
            <property name="wca:previewprovidername">
               <title>Preview Provider</title>
               <type>d:text</type>
            </property>
         </properties>
         <associations>
            <child-association name="wca:webuser">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:webuser</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <child-association name="wca:webform">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:webform</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <child-association name="wca:webworkflowdefaults">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:webworkflowdefaults</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <!-- the following association is deprecated as of v2.2 -->
            <child-association name="wca:deploymentreport">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:deploymentreport</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <!-- end of deprecation -->
            <child-association name="wca:deploymentserver">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:deploymentserver</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <child-association name="wca:deploymentattempt">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:deploymentattempt</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
         </associations>
      </type>
      
      <type name="wca:webuser">
         <title>Website User Information</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:username">
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:role">
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
      </type>
      
      <type name="wca:webform">
         <title>Website Web Form</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:formname">
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
         </properties>
         <associations>
            <child-association name="wca:webformtemplate">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:webformtemplate</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
            <child-association name="wca:workflowdefaults">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:workflowdefaults</class>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </target>
            </child-association>
         </associations>
         <mandatory-aspects>
            <aspect>cm:titled</aspect>
            <aspect>wca:outputpathpattern</aspect>
         </mandatory-aspects>
      </type>
      
      <type name="wca:webformtemplate">
         <title>Website Web Form Template</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:baserenderingenginetemplatename">
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
         <mandatory-aspects>
            <aspect>wca:outputpathpattern</aspect>
         </mandatory-aspects>
      </type>
      
      <type name="wca:workflowdefaults">
         <title>Workflow Defaults</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:workflowname">
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:workflowdefaultproperties">
               <type>d:content</type>
               <mandatory>false</mandatory>
               <index enabled="false" />
            </property>
         </properties>
      </type>
      
      <type name="wca:webworkflowdefaults">
         <title>Web Workflow Defaults</title>
         <parent>wca:workflowdefaults</parent>
         <mandatory-aspects>
            <aspect>wca:filenamepattern</aspect>
         </mandatory-aspects>
      </type>
      
      <type name="wca:renditionproperties">
         <title>Properties for renditions</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:mimetypeforrendition">
               <title>Mimetype for generated assets</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
         <mandatory-aspects>
            <aspect>wca:outputpathpattern</aspect>
         </mandatory-aspects>
      </type>

      <type name="wca:formfolder">
         <title>XForms Capture Form Folder</title>
         <parent>cm:folder</parent>
      </type>
      
      <type name="wca:deploymentserver">
         <title>Website Deployment Server</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:deploytype">
               <title>Deployment Type</title>
               <type>d:text</type>
               <constraints>
                  <constraint ref="wca:deploytypes" />
               </constraints>
            </property>
            <property name="wca:deployservertype">
               <title>Deployment Server Type</title>
               <type>d:text</type>
               <constraints>
                  <constraint ref="wca:deployservertypes" />
               </constraints>
            </property>
            <property name="wca:deployserverhost">
               <title>Host</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
            <property name="wca:deployserverport">
               <title>Port</title>
               <type>d:int</type>
            </property>
            <property name="wca:deployservername">
               <title>Display Name</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployservergroup">
               <title>Display Name</title>
               <type>d:text</type>
            </property>
            <property name="wca: deployserveradaptername">
               <title>Deployment Server Adapter Name</title>
               <type>d:text</type>
            </property>          
            <property name="wca:deployserverusername">
               <title>Username</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployserverpassword">
               <title>Password</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployserverurl">
               <title>Runtime URL</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployservertarget">
               <title>Deploy Target</title>
               <type>d:text</type>
            </property>
            <property name="wca:deploysourcepath">
               <title>Source Path</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployexcludes">
               <title>Excludes</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployserverallocatedto">
               <title>Allocated To</title>
               <type>d:text</type>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
            <property name="wca:deployonapproval">
               <title>Deploy On Approval</title>
               <type>d:boolean</type>
            </property>
         </properties>
      </type>
      
      <type name="wca:deploymentattempt">
         <title>Website Deployment Attempt</title>
         <parent>sys:base</parent>
         <properties>
            <property name="wca:deployattemptid">
               <title>Deploy Attempt ID</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
            <property name="wca:deployattempttype">
               <title>Attempt Type</title>
               <type>d:text</type>
               <constraints>
                  <constraint ref="wca:deployservertypes" />
               </constraints>
            </property>
            <property name="wca:deployattemptstore">
               <title>Attempt Type</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
               <index enabled="true">
                  <atomic>true</atomic>
                  <stored>false</stored>
                  <tokenised>false</tokenised>
               </index>
            </property>
            <property name="wca:deployattemptversion">
               <title>Snapshot Version Deployed</title>
               <type>d:int</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:deployattemptservers">
               <title>Servers Deployed To</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
               <multiple>true</multiple>
            </property>
            <property name="wca:deployattempttime">
               <title>Time Of Deploy Attempt</title>
               <type>d:datetime</type>
               <mandatory enforced="true">true</mandatory>
			   <index enabled="true">
				  <atomic>true</atomic>
				  <stored>false</stored> 
                  <tokenised>both</tokenised>
               </index>
            </property>
         </properties>
         <associations>
            <child-association name="wca:deploymentreports">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:deploymentreport</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
            </child-association>
         </associations>
      </type>
      
      <type name="wca:deploymentreport">
         <title>Website Deployment Report</title>
         <parent>cm:content</parent>
         <properties>
            <property name="wca:deployserver">
               <title>Server Deployed To</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:deployversion">
               <title>Snapshot Version Deployed</title>
               <type>d:int</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:deploystarttime">
               <title>Time Deploy Started</title>
               <type>d:datetime</type>
               <mandatory enforced="true">true</mandatory>
			   <index enabled="true">
				  <atomic>true</atomic>
				  <stored>false</stored> 
                  <tokenised>both</tokenised>
               </index>
            </property>
            <property name="wca:deployendtime">
               <title>Time Deploy Finished</title>
               <type>d:datetime</type>
               <mandatory enforced="true">true</mandatory>
			   <index enabled="true">
				  <atomic>true</atomic>
				  <stored>false</stored> 
                  <tokenised>both</tokenised>
               </index>
            </property>
            <property name="wca:deploysuccessful">
               <title>Deployment Successful</title>
               <type>d:boolean</type>
               <default>false</default>
            </property>
            <property name="wca:deployfailedreason">
               <title>Failure Reason</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployservernameused">
               <title>Server Display Name</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployserverusernameused">
               <title>Username Used</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployservertargetused">
               <title>Target Used</title>
               <type>d:text</type>
            </property>
            <property name="wca:deploysourcepathused">
               <title>Source Path Used</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployexcludesused">
               <title>Excludes Used</title>
               <type>d:text</type>
            </property>
            <property name="wca:deployserverurlused">
               <title>Source Path Used</title>
               <type>d:text</type>
            </property>
         </properties>
      </type>
   </types>

   <aspects>
      
      <aspect name="wca:webapp">
         <title>Webapp</title>
      </aspect>
      
      <aspect name="wca:filenamepattern">
         <title>Filename Pattern</title>
         <properties>
            <property name="wca:filenamepattern">
               <type>d:text</type>
            </property>
         </properties>
      </aspect>
      
      <aspect name="wca:outputpathpattern">
         <title>Output Path Pattern</title>
         <properties>
            <property name="wca:outputpathpattern">
               <type>d:text</type>
            </property>
         </properties>
      </aspect>
      
      <!-- An XForms capture form aspect. -->
      <aspect name="wca:form">
         <title>XForms Form</title>
         <properties>
            <property name="wca:xmlschemarootelementname">
               <title>Schema Root Element Name</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:xmlschema">
               <title>Schema</title>
               <type>d:noderef</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
         <associations>
            <association name="wca:renderingenginetemplates">
               <title>Form Data Renderers</title>
               <source>
                  <role>wca:capture</role>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:renderingenginetemplate</class>
                  <role>wca:presentation</role>
                  <mandatory>false</mandatory>
                  <many>true</many>
              </target>
            </association>
            <child-association name="wca:formworkflowdefaults">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:workflowdefaults</class>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </target>
            </child-association>
         </associations>
      </aspect>
      
      <!-- An XML to something else transformer. -->
      <aspect name="wca:renderingenginetemplate">
         <title>A Rendering Engine</title>
         <properties>
            <property name="wca:parentrenderingenginename">
               <title>Type</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:formsource">
               <title>Form Source</title>
               <type>d:noderef</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
         <associations>
            <child-association name="wca:renditionproperties">
               <title>Rendition Properties</title>
               <source>
                  <role>wca:capture</role>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>wca:renditionproperties</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
              </target>
            </child-association>
         </associations>
      </aspect>

      <aspect name="wca:forminstancedata">
         <title>XML file generated by a form</title>
         <properties>
            <property name="wca:parentformname">
               <title>Form that generated this asset</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:originalparentpath">
              <title>The original parent path when this form instance data was created - used for regenerating accurately.</title>
              <type>d:text</type>
              <mandatory>false</mandatory>
            </property>

            <property name="wca:renditions">
               <title>Renditions of this form instance data</title>
               <type>d:text</type>
               <multiple>true</multiple>
            </property>
         </properties>
      </aspect>

      <aspect name="wca:rendition">
         <title>Output file generated by a rendering engine template</title>
         <properties>
            <property name="wca:parentrenderingenginetemplate">
               <title>Form data renderer that generated this asset</title>
               <type>d:noderef</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:parentrenditionproperties">
               <title>Rendition properties used for this rendition</title>
               <type>d:noderef</type>
               <mandatory enforced="true">true</mandatory>
            </property>
            <property name="wca:primaryforminstancedata">
               <title>Primary XML Asset used to generate this asset</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
      </aspect>
      
      <aspect name="wca:expires">
         <title>Content that has or can expire</title>
         <properties>
            <property name="wca:expirationDate">
               <title>Expiration Date</title>
               <type>d:datetime</type>
               <mandatory enforced="true">true</mandatory>
			   <index enabled="true">
				  <atomic>true</atomic>
				  <stored>false</stored> 
                  <tokenised>both</tokenised>
               </index>
            </property>
         </properties>
      </aspect>
      
      <aspect name="wca:deployed">
         <title>Has this content been deployed from wcm</title>
         <properties>
            <property name="wca:guid">
               <title>WCM unique version</title>
               <type>d:text</type>
               <mandatory enforced="true">true</mandatory>
            </property>
         </properties>
      </aspect>
      
   </aspects>

</model>
