<?xml version="1.0"?>
<!-- =================== DO NOT EDIT THIS FILE ====================         -->
<!-- Generated by Modello 1.4.1 on 2014-02-28 19:31:30,                     -->
<!-- any modifications will be overwritten.                                 -->
<!-- ==============================================================         -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2" targetNamespace="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2">
  <xs:element name="component" type="Component">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Describes the component layout and packaging.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="Component">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">Describes the component layout and packaging.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="moduleSets">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which module files to include in the assembly. A moduleSet
            is specified by providing one or more of &amp;lt;moduleSet&amp;gt;
            subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="moduleSet" minOccurs="0" maxOccurs="unbounded" type="ModuleSet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileSets">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which groups of files to include in the assembly. A
            fileSet is specified by providing one or more of &amp;lt;fileSet&amp;gt;
            subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="fileSet" minOccurs="0" maxOccurs="unbounded" type="FileSet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="files">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which single files to include in the assembly. A file
            is specified by providing one or more of &amp;lt;file&amp;gt;
            subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="file" minOccurs="0" maxOccurs="unbounded" type="FileItem"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="dependencySets">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which dependencies to include in the assembly. A
            dependencySet is specified by providing one or more of
            &amp;lt;dependencySet&amp;gt; subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependencySet" minOccurs="0" maxOccurs="unbounded" type="DependencySet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="repositories">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies a set of repositories to include in the assembly. A
            repository is specified by providing one or more of
            &amp;lt;repository&amp;gt; subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="repository" minOccurs="0" maxOccurs="unbounded" type="Repository"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="containerDescriptorHandlers">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            Set of components which filter various container descriptors out of
            the normal archive stream, so they can be aggregated then added.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="containerDescriptorHandler" minOccurs="0" maxOccurs="unbounded" type="ContainerDescriptorHandlerConfig"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="DependencySet">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A dependencySet allows inclusion and exclusion of project dependencies
        in the assembly.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory,
            directly beneath the root of the archive.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            artifact coordinates to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            dependency artifact coordinates to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the directory mode of the directories
            included. 
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of
            Read = 4, Write = 2, and Execute = 1.  For example, the value
            0755 translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useStrictFiltering" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          When specified as true, any include/exclude patterns which aren&apos;t used to filter an actual
          artifact during assembly creation will cause the build to fail with an error. This is meant
          to highlight obsolete inclusions or exclusions, or else signal that the assembly descriptor
          is incorrectly configured. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputFileNameMapping" type="xs:string" default="${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the mapping pattern for all dependencies included in this
            assembly. Default is ${artifact.artifactId}-${artifact.version}${dashClassifier?}.${artifact.extension}.
            (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension})
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="unpack" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            If set to true, this property will unpack all dependencies
            into the specified output directory. When set to false
            dependencies will be includes as archives (jars). Can only unpack
            jar, zip, tar.gz, and tar.bz archives. Default value is false.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="unpackOptions" type="UnpackOptions">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Allows the specification of includes and excludes, along with filtering options, for items
          unpacked from a dependency artifact. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="scope" type="xs:string" default="runtime">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the dependency scope for this dependencySet.
            Default scope value is &quot;runtime&quot;.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useProjectArtifact" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Determines whether the artifact produced during the current project&apos;s
          build should be included in this dependency set. Default value is true,
          for backward compatibility. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useProjectAttachments" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Determines whether the attached artifacts produced during the current project&apos;s
          build should be included in this dependency set. Default value is false. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useTransitiveDependencies" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Determines whether transitive dependencies will be included in the processing of
          the current dependency set. If true, includes/excludes/useTransitiveFiltering
          will apply to transitive dependency artifacts in addition to the main project
          dependency artifacts. If false, useTransitiveFiltering is meaningless, and 
          includes/excludes only affect the immediate dependencies of the project.
          By default, this value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useTransitiveFiltering" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Determines whether the include/exclude patterns in this dependency set will be applied to
          the transitive path of a given artifact. If true, and the current artifact is a transitive
          dependency brought in by another artifact which matches an inclusion or exclusion pattern, 
          then the current artifact has the same inclusion/exclusion logic applied to it as well. By
          default, this value is false, in order to preserve backward compatibility with version 2.1.
          This means that includes/excludes only apply directly to the current artifact, and not to
          the transitive set of artifacts which brought it in. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="UnpackOptions">
    <xs:annotation>
      <xs:documentation source="version">1.1.0+</xs:documentation>
      <xs:documentation source="description">
      Specifies options for including/excluding/filtering items extracted from an archive. (Since 2.2)
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            Set of file and/or directory patterns for matching items to be included from an archive as it is unpacked. 
            Each item is specified as &amp;lt;include&amp;gt;some/path&amp;lt;/include&amp;gt; (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            
            Set of file and/or directory patterns for matching items to be excluded from an archive as it is unpacked.
            Each item is specified as &amp;lt;exclude&amp;gt;some/path&amp;lt;/exclude&amp;gt; (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="filtered" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Whether to filter symbols in the files as they are unpacked from the archive, using
          properties from the build configuration. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="lineEnding" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Sets the line-endings of the files. (Since 2.2)
            Valid values:
            &lt;ul&gt;
              &lt;li&gt;&lt;b&gt;&quot;keep&quot;&lt;/b&gt; - Preserve all line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;unix&quot;&lt;/b&gt; - Use Unix-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;lf&quot;&lt;/b&gt; - Use a single line-feed line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;dos&quot;&lt;/b&gt; - Use DOS-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;crlf&quot;&lt;/b&gt; - Use Carraige-return, line-feed line endings&lt;/li&gt;
            &lt;/ul&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="useDefaultExcludes" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Whether standard exclusion patterns, such as those matching CVS and Subversion
            metadata files, should be used when calculating the files affected by this set.
            For backward compatibility, the default value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ContainerDescriptorHandlerConfig">
    <xs:annotation>
      <xs:documentation source="version">1.1.0+</xs:documentation>
      <xs:documentation source="description">
        Configures a filter for files headed into the assembly archive, to enable
        aggregation of various types of descriptor fragments, such as components.xml,
        web.xml, etc.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="handlerName" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            The handler&apos;s plexus role-hint, for lookup from the container.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="configuration">
        <xs:annotation>
          <xs:documentation source="version">1.1.1+</xs:documentation>
          <xs:documentation source="description">
            Configuration options for the handler.
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="Repository">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        
        Defines a Maven repository to be included in the assembly. The artifacts
        available to be included in a repository are your project&apos;s dependency
        artifacts. The repository created contains the needed metadata entries
        and also contains both sha1 and md5 checksums. This is useful for creating
        archives which will be deployed to internal repositories.

        &lt;br/&gt;&lt;b&gt;NOTE:&lt;/b&gt; Currently, only artifacts from the central repository
        are allowed.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory,
            directly beneath the root of the archive.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            artifact coordinates to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            dependency artifact coordinates to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the directory mode of the directories
            included. 
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of
            Read = 4, Write = 2, and Execute = 1.  For example, the value
            0755 translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includeMetadata" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            If set to true, this property will trigger the creation of repository
            metadata which will allow the repository to be used as a functional remote
            repository. Default value is false.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="groupVersionAlignments">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies that you want to align a group of artifacts to a specified
            version. A groupVersionAlignment is specified by providing one or
            more of &amp;lt;groupVersionAlignment&amp;gt; subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="groupVersionAlignment" minOccurs="0" maxOccurs="unbounded" type="GroupVersionAlignment"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="scope" type="xs:string" default="runtime">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            Specifies the scope for artifacts included in this repository.
            Default scope value is &quot;runtime&quot;. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="GroupVersionAlignment">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        Allows a group of artifacts to be aligned to a specified version.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            The groupId of the artifacts for which you want to align the
            versions.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="version" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            The version you want to align this group to.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define the
            artifactIds of the artifacts to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions. An exclude is specified
            by providing one or more of &amp;lt;exclude&amp;gt; subelements.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ModuleSet">
    <xs:annotation>
      <xs:documentation source="version">1.1.2+</xs:documentation>
      <xs:documentation source="description">
        
        A moduleSet represent one or more project &amp;lt;module&amp;gt; present inside
        a project&apos;s pom.xml. This allows you to include sources or binaries
        belonging to a project&apos;s &amp;lt;modules&amp;gt;.

        &lt;br/&gt;&lt;b&gt;NOTE:&lt;/b&gt; When using &amp;lt;moduleSets&amp;gt; from the command-line, it
        is required to pass first the package phase by doing: &quot;mvn package
        assembly:assembly&quot;. This bug/issue is scheduled to be addressed by Maven 2.1.
        
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="useAllReactorProjects" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          If set to true, the plugin will include all projects in the current reactor for processing 
          in this ModuleSet. These will be subject to include/exclude rules.
          Default value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includeSubModules" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          If set to false, the plugin will exclude sub-modules from processing in this ModuleSet.
          Otherwise, it will process all sub-modules, each subject to include/exclude rules.
          Default value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            project coordinates to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            project artifact coordinates to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="sources" type="ModuleSources">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            When this is present, the plugin will include the source files of
            the included modules from this set in the resulting assembly.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="binaries" type="ModuleBinaries">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            When this is present, the plugin will include the binaries of the
            included modules from this set in the resulting assembly.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ModuleBinaries">
    <xs:annotation>
      <xs:documentation source="version">1.1.2+</xs:documentation>
      <xs:documentation source="description">
        Contains configuration options for including the binary files of a
        project module in an assembly.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory,
            directly beneath the root of the archive.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            artifact coordinates to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            dependency artifact coordinates to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.

            Artifact coordinates may be given in simple groupId:artifactId form,
            or they may be fully qualified in the form groupId:artifactId:type[:classifier]:version.
            Additionally, wildcards can be used, as in *:maven-*
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the directory mode of the directories
            included. 
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of
            Read = 4, Write = 2, and Execute = 1.  For example, the value
            0755 translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="attachmentClassifier" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          When specified, the attachmentClassifier will cause the assembler to look at artifacts
          attached to the module instead of the main project artifact. If it can find an attached
          artifact matching the specified classifier, it will use it; otherwise, it will throw an
          exception. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includeDependencies" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          If set to true, the plugin will include the direct and transitive dependencies of
          of the project modules included here.  Otherwise, it will only include the module
          packages only. Default value is true.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="dependencySets">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which dependencies of the module to include in the assembly. A
            dependencySet is specified by providing one or more of
            &amp;lt;dependencySet&amp;gt; subelements. (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dependencySet" minOccurs="0" maxOccurs="unbounded" type="DependencySet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="unpack" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            If set to true, this property will unpack all module packages
            into the specified output directory. When set to false
            module packages will be included as archives (jars).
            Default value is true.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="unpackOptions" type="UnpackOptions">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
          Allows the specification of includes and excludes, along with filtering options, for items
          unpacked from a module artifact. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputFileNameMapping" type="xs:string" default="${module.artifactId}-${module.version}${dashClassifier?}.${module.extension}">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Sets the mapping pattern for all NON-UNPACKED dependencies included
            in this assembly.
            Default is ${module.artifactId}-${module.version}${dashClassifier?}.${module.extension}.
            (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension}) NOTE: If the 
            dependencySet specifies unpack == true, outputFileNameMapping WILL NOT BE USED; in these cases, use outputDirectory.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="ModuleSources">
    <xs:annotation>
      <xs:documentation source="version">1.1.2+</xs:documentation>
      <xs:documentation source="description">
        Contains configuration options for including the source files of a
        project module in an assembly.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="useDefaultExcludes" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Whether standard exclusion patterns, such as those matching CVS and Subversion
            metadata files, should be used when calculating the files affected by this set.
            For backward compatibility, the default value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            files and directory to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            files and directory to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the directory mode of the directories
            included. 
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of
            Read = 4, Write = 2, and Execute = 1.  For example, the value
            0755 translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="fileSets">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies which groups of files from each included module to include in the assembly. A
            fileSet is specified by providing one or more of &amp;lt;fileSet&amp;gt; subelements. (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="fileSet" minOccurs="0" maxOccurs="unbounded" type="FileSet"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="includeModuleDirectory" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies whether the module&apos;s finalName should be prepended to the outputDirectory 
            values of any fileSets applied to it. Default value is true. (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="excludeSubModuleDirectories" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            
            Specifies whether sub-module directories below the current module should be excluded
            from fileSets applied to that module. This might be useful if you only mean to copy
            the sources for the exact module list matched by this ModuleSet, ignoring (or processing
            separately) the modules which exist in directories below the current one. 
            Default value is true. (Since 2.2)
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectoryMapping" type="xs:string" default="${module.artifactId}">
        <xs:annotation>
          <xs:documentation source="version">1.1.2+</xs:documentation>
          <xs:documentation source="description">
            Sets the mapping pattern for all module base-directories included in this assembly.
            NOTE: This field is only used if includeModuleDirectory == true.
            Default is the module&apos;s ${artifactId} in 2.2-beta-1, and ${module.artifactId} in subsequent versions. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="FileSet">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A fileSet allows the inclusion of groups of files into the assembly.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="useDefaultExcludes" type="xs:boolean" default="true">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
            Whether standard exclusion patterns, such as those matching CVS and Subversion
            metadata files, should be used when calculating the files affected by this set.
            For backward compatibility, the default value is true. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="includes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;include&amp;gt; subelements are present, they define a set of
            files and directory to include. If none is present, then
            &amp;lt;includes&amp;gt; represents all valid values.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="include" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="excludes">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            When &amp;lt;exclude&amp;gt; subelements are present, they define a set of
            files and directory to exclude. If none is present, then
            &amp;lt;excludes&amp;gt; represents no exclusions.
            
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:sequence>
            <xs:element name="exclude" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directoryMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the directory mode of the directories
            included. 
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of
            Read = 4, Write = 2, and Execute = 1.  For example, the value
            0755 translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="directory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the absolute or relative location from the module&apos;s
            directory. For example, &quot;src/main/bin&quot; would select this
            subdirectory of the project in which this dependency is defined.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="lineEnding" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Sets the line-endings of the files in this fileSet.
            Valid values:
            &lt;ul&gt;
              &lt;li&gt;&lt;b&gt;&quot;keep&quot;&lt;/b&gt; - Preserve all line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;unix&quot;&lt;/b&gt; - Use Unix-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;lf&quot;&lt;/b&gt; - Use a single line-feed line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;dos&quot;&lt;/b&gt; - Use DOS-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;crlf&quot;&lt;/b&gt; - Use Carraige-return, line-feed line endings&lt;/li&gt;
            &lt;/ul&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filtered" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.0+</xs:documentation>
          <xs:documentation source="description">
          Whether to filter symbols in the files as they are copied, using
          properties from the build configuration. (Since 2.2)
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:complexType name="FileItem">
    <xs:annotation>
      <xs:documentation source="version">1.0.0+</xs:documentation>
      <xs:documentation source="description">
        A file allows individual file inclusion with the option to change
        the destination filename not supported by fileSets.
      </xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="source" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the absolute or relative path from the module&apos;s directory
            of the file to be included in the assembly.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="outputDirectory" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the output directory relative to the root
            of the root directory of the assembly. For example,
            &quot;log&quot; will put the specified files in the log directory.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="destName" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets the destination filename in the outputDirectory.
            Default is the same name as the source&apos;s file.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="fileMode" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Similar to a UNIX permission, sets the file mode of the files included.
            THIS IS AN OCTAL VALUE.
            Format: (User)(Group)(Other) where each component is a sum of Read = 4,
            Write = 2, and Execute = 1.  For example, the value 0644
            translates to User read-write, Group and Other read-only.
            &lt;a href=&quot;http://www.onlamp.com/pub/a/bsd/2000/09/06/FreeBSD_Basics.html&quot;&gt;(more on unix-style permissions)&lt;/a&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="lineEnding" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            
            Sets the line-endings of the files in this file.
            Valid values are:
            &lt;ul&gt;
              &lt;li&gt;&lt;b&gt;&quot;keep&quot;&lt;/b&gt; - Preserve all line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;unix&quot;&lt;/b&gt; - Use Unix-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;lf&quot;&lt;/b&gt; - Use a single line-feed line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;dos&quot;&lt;/b&gt; - Use DOS-style line endings&lt;/li&gt;
              &lt;li&gt;&lt;b&gt;&quot;crlf&quot;&lt;/b&gt; - Use Carraige-return, line-feed line endings&lt;/li&gt;
            &lt;/ul&gt;
            
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="filtered" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.0.0+</xs:documentation>
          <xs:documentation source="description">
            Sets whether to determine if the file is filtered.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>