<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.0" targetNamespace="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.0">
  <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="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="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:all>
  </xs:complexType>
  <xs:complexType name="Repository">
    <xs:annotation>
      <xs:documentation source="version">1.1.0</xs:documentation>
      <xs:documentation source="description">Defines a Maven repository to be included in the assembly.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="includeMetadata" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.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.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="groupVersionAlignments">
        <xs:annotation>
          <xs:documentation source="version">1.1.0</xs:documentation>
          <xs:documentation source="description">Align a group to a version or an individual artifact.</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;.
          </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.0</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.
          </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.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.
          </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.
            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. 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:all>
  </xs:complexType>
  <xs:complexType name="GroupVersionAlignment">
    <xs:annotation>
      <xs:documentation source="version">1.1.0</xs:documentation>
      <xs:documentation source="description">Defines a Maven repository to be included in the assembly.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element minOccurs="0" name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation source="version">1.1.0</xs:documentation>
          <xs:documentation source="description">The groupId 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.1.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.1.0</xs:documentation>
          <xs:documentation source="description">Artifact Ids of the artifacts you want excluded from version alignment.</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="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.
            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: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="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.
          </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.0</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.
          </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.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.
          </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.
            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. 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: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="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}.
            If the artifact doesn&apos;t have a classifier, that part of the pattern will be left off.
            (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">0.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).
            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.
          </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:element minOccurs="0" name="useStrictFiltering" type="xs:boolean" default="false">
        <xs:annotation>
          <xs:documentation source="version">1.1.0</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.
          </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.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.
          </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.
            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. 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: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.
      </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 patterns for matching items to be included from an archive as it is unpacked.
          </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 patterns for matching items to be excluded from an archive as it is unpacked.
          </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.
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:schema>