diff --git a/content/resources/xsd/assembly-2.1.0.xsd b/content/resources/xsd/assembly-2.1.0.xsd
new file mode 100644
index 0000000..d13a8e3
--- /dev/null
+++ b/content/resources/xsd/assembly-2.1.0.xsd
@@ -0,0 +1,1407 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 1.9.1,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" targetNamespace="http://maven.apache.org/ASSEMBLY/2.1.0">
+  <xs:element name="assembly" type="Assembly">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</xs:documentation>
+      <xs:documentation source="description">
+        
+        An assembly defines a collection of files usually distributed in an
+        archive format such as zip, tar, or tar.gz that is generated from a
+        project.  For example, a project could produce a ZIP assembly which
+        contains a project&apos;s JAR artifact in the root directory, the
+        runtime dependencies in a lib/ directory, and a shell script to launch
+        a stand-alone application.
+        
+      </xs:documentation>
+    </xs:annotation>
+  </xs:element>
+  <xs:complexType name="Assembly">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</xs:documentation>
+      <xs:documentation source="description">
+        
+        An assembly defines a collection of files usually distributed in an
+        archive format such as zip, tar, or tar.gz that is generated from a
+        project.  For example, a project could produce a ZIP assembly which
+        contains a project&apos;s JAR artifact in the root directory, the
+        runtime dependencies in a lib/ directory, and a shell script to launch
+        a stand-alone application.
+        
+      </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">
+            Sets the id of this assembly. This is a symbolic name for a
+            particular assembly of files from this project. Also, aside from
+            being used to distinctly name the assembled package by attaching
+            its value to the generated archive, the id is used as your
+            artifact&apos;s classifier when deploying.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="formats">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            
+            Specifies the formats of the assembly.
+
+            It is often better to specify the formats via the goal parameter rather
+            than here. For example, that allows different profiles to generate
+            different types of archives.
+
+            Multiple formats can be
+            supplied and the Assembly Plugin will generate an archive for each
+            of the desired formats. When deploying your project, all file formats
+            specified will also be deployed. A format is specified by supplying
+            one of the following values in a &amp;lt;format&amp;gt; subelement:
+            &lt;ul&gt;
+              &lt;li&gt;&lt;b&gt;&quot;zip&quot;&lt;/b&gt; - Creates a ZIP file format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;tar&quot;&lt;/b&gt; - Creates a TAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;tar.gz&quot;&lt;/b&gt; or &lt;b&gt;&quot;tgz&quot;&lt;/b&gt; - Creates a gzip&apos;d TAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;tar.bz2&quot;&lt;/b&gt; or &lt;b&gt;&quot;tbz2&quot;&lt;/b&gt; - Creates a bzip&apos;d TAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;tar.snappy&quot;&lt;/b&gt; - Creates a snappy&apos;d TAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;tar.xz&quot;&lt;/b&gt; or &lt;b&gt;&quot;txz&quot;&lt;/b&gt; - Creates a xz&apos;d TAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;jar&quot;&lt;/b&gt; - Creates a JAR format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;dir&quot;&lt;/b&gt; - Creates an exploded directory format&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;war&quot;&lt;/b&gt; - Creates a WAR format&lt;/li&gt;
+            &lt;/ul&gt;
+            
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="format" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+          </xs:sequence>
+        </xs:complexType>
+      </xs:element>
+      <xs:element minOccurs="0" name="includeBaseDirectory" type="xs:boolean" default="true">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            Includes a base directory in the final archive. For example,
+            if you are creating an assembly named &quot;your-app&quot;, setting
+            includeBaseDirectory to true will create an archive that
+            includes this base directory. If this option is set to false
+            the archive created will unzip its content to the current
+            directory.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="baseDirectory" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.1.0+</xs:documentation>
+          <xs:documentation source="description">
+            Sets the base directory of the resulting assembly archive. If this is not
+            set and includeBaseDirectory == true, ${project.build.finalName} will be used instead.
+            (Since 2.2-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="includeSiteDirectory" type="xs:boolean" default="false">
+        <xs:annotation>
+          <xs:documentation source="version">0.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            Includes a site directory in the final archive. The site directory
+            location of a project is determined by the siteDirectory parameter
+            of the Assembly Plugin.
+          </xs:documentation>
+        </xs:annotation>
+      </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:element minOccurs="0" name="moduleSets">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</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.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            
+            Specifies which repository files 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="componentDescriptors">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            
+            Specifies the shared components xml file locations to include in the
+            assembly. The locations specified must be relative to the base location
+            of the descriptor. If the descriptor was found via a &amp;lt;descriptorRef/&amp;gt;
+            element in the
+            classpath, any components it specifies will also be found on the classpath.
+            If it is found by pathname via a &amp;lt;descriptor/&amp;gt; element
+            the value here will be interpreted
+            as a path relative to the project basedir.
+            When multiple componentDescriptors are found, their
+            contents are merged. Check out the &lt;a href=&quot;assembly-component.html&quot;&gt;
+            descriptor components&lt;/a&gt; for more information. A
+            componentDescriptor is specified by providing one or more of
+            &amp;lt;componentDescriptor&amp;gt; subelements.
+            
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="componentDescriptor" 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.
+        Note: either source or sources is required
+      </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="sources">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+            Set of absolute or relative paths from the module&apos;s directory
+            of the files be combined and included in the assembly.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="source" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+          </xs:sequence>
+        </xs:complexType>
+      </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.  The default value is 0644
+            &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 (i.e. &quot;\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;lf&quot;&lt;/b&gt; - Use a single line-feed line endings (i.e. &quot;\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;dos&quot;&lt;/b&gt; - Use DOS-/Windows-style line endings (i.e. &quot;\r\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;windows&quot;&lt;/b&gt; - Use DOS-/Windows-style line endings (i.e. &quot;\r\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;crlf&quot;&lt;/b&gt; - Use carriage-return, line-feed line endings (i.e. &quot;\r\n&quot;)&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="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="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-beta-1)
+          </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. The default value is 0644.
+            &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.  The default value is 0755.
+            &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 (i.e. &quot;\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;lf&quot;&lt;/b&gt; - Use a single line-feed line endings (i.e. &quot;\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;dos&quot;&lt;/b&gt; - Use DOS-/Windows-style line endings (i.e. &quot;\r\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;windows&quot;&lt;/b&gt; - Use DOS-/Windows-style line endings (i.e. &quot;\r\n&quot;)&lt;/li&gt;
+              &lt;li&gt;&lt;b&gt;&quot;crlf&quot;&lt;/b&gt; - Use carriage-return, line-feed line endings (i.e. &quot;\r\n&quot;)&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-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="nonFilteredFileExtensions">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+             Additional file extensions to not apply filtering (Since 3.2.0)
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="nonFilteredFileExtension" 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.0.0+</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;p&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.&lt;/p&gt;
+        
+      </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. (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.0+</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. (Since 2.2-beta-1)
+          </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
+            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.0.0+</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.0.0+</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.0.0+</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="ModuleSources">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</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.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-beta-1)
+          </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. The default value is 0644
+            &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. The default value is 0755.
+            &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.0+</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-beta-1)
+            
+          </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.0+</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. (Since 2.2-beta-1)
+            
+          </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.0+</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. (Since 2.2-beta-1)
+            
+          </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.0+</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-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:all>
+  </xs:complexType>
+  <xs:complexType name="ModuleBinaries">
+    <xs:annotation>
+      <xs:documentation source="version">1.0.0+</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.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. The default value is 0644
+            &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. The default value is 0755.
+            &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.0+</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-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="includeDependencies" type="xs:boolean" default="true">
+        <xs:annotation>
+          <xs:documentation source="version">1.0.0+</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.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="dependencySets">
+        <xs:annotation>
+          <xs:documentation source="version">1.1.0+</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-beta-1)
+            
+          </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.0.0+</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).
+          </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 module artifact. (Since 2.2-beta-1)
+          </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.0.0+</xs:documentation>
+          <xs:documentation source="description">
+            Sets the mapping pattern for all NON-UNPACKED dependencies included
+            in this assembly.
+            (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension} as default value)
+            NOTE: If the dependencySet specifies unpack == true, outputFileNameMapping WILL NOT BE USED; in these cases,
+            use outputDirectory.
+            See the plugin FAQ for more details about entries usable in the outputFileNameMapping parameter.
+          </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-beta-1)
+      </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-beta-1)
+            
+          </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-beta-1)
+            
+          </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-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element minOccurs="0" name="nonFilteredFileExtensions">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+             Additional file extensions to not apply filtering (Since 3.2.0)
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="nonFilteredFileExtension" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+          </xs:sequence>
+        </xs:complexType>
+      </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:element minOccurs="0" name="encoding" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.1.3+</xs:documentation>
+          <xs:documentation source="description">
+            
+            Allows to specify the encoding to use when unpacking archives, for unarchivers
+            that support specifying encoding. If unspecified, archiver default will be used.
+            Archiver defaults generally represent sane (modern) values.
+            
+          </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="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.  The default value is 0644
+            &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. The default value is 0755.
+            &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. (Since 2.2-beta-2; 2.2-beta-1 uses ${artifactId}-${version}${dashClassifier?}.${extension}
+            as default value).
+            See the plugin FAQ for more details about entries usable in the outputFileNameMapping parameter.
+          </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.
+          </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-beta-1)
+          </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.
+          </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. (Since 2.2-beta-1)
+          </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. (Since 2.2-beta-1)
+          </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-beta-1)
+          </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-beta-1)
+          </xs:documentation>
+        </xs:annotation>
+      </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;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Currently, only artifacts from the central repository
+        are allowed.&lt;/p&gt;
+        
+      </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. The default value is 0644
+            &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. The default value is 0755.
+            &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.
+          </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. (Since 2.2-beta-1)
+          </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:schema>
\ No newline at end of file
diff --git a/content/resources/xsd/assembly-component-2.1.0.xsd b/content/resources/xsd/assembly-component-2.1.0.xsd
new file mode 100644
index 0000000..cc2a58e
--- /dev/null
+++ b/content/resources/xsd/assembly-component-2.1.0.xsd
@@ -0,0 +1,1287 @@
+<?xml version="1.0"?>
+<!-- =================== DO NOT EDIT THIS FILE ====================         -->
+<!-- Generated by Modello 1.9.1,                                            -->
+<!-- any modifications will be overwritten.                                 -->
+<!-- ==============================================================         -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://maven.apache.org/ASSEMBLY-COMPONENT/2.1.0" targetNamespace="http://maven.apache.org/ASSEMBLY-COMPONENT/2.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="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="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="sources">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+            Set of absolute or relative paths from the module&apos;s directory
+            of the files be combined and included in the assembly.
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="source" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+          </xs:sequence>
+        </xs:complexType>
+      </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. The default value is 0644.
+            &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="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="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.  The default value is 0644.
+            &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. The default value is 0755.
+            &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:element minOccurs="0" name="nonFilteredFileExtensions">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+             Additional file extensions to not apply filtering (Since 3.2.0)
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="nonFilteredFileExtension" 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;p&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.&lt;/p&gt;
+        
+      </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="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. The default value is 0644.
+            &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. The default value is 0755.
+            &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="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. The default value is 0644.
+            &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. The default value is 0755.
+            &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.
+            See the plugin FAQ for more details about entries usable in the outputFileNameMapping parameter.
+          </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="nonFilteredFileExtensions">
+        <xs:annotation>
+          <xs:documentation source="version">2.1.0+</xs:documentation>
+          <xs:documentation source="description">
+             Additional file extensions to not apply filtering (Since 3.2.0)
+          </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="nonFilteredFileExtension" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
+          </xs:sequence>
+        </xs:complexType>
+      </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:element minOccurs="0" name="encoding" type="xs:string">
+        <xs:annotation>
+          <xs:documentation source="version">1.1.3+</xs:documentation>
+          <xs:documentation source="description">
+              
+              Allows to specify the encoding to use when unpacking archives, for unarchivers
+              that support specifying encoding. If unspecified, archiver default will be used.
+              Archiver defaults generally represent sane (modern) values.
+              
+            </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="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. The default value is 0644.
+            &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. The default value is 0755.
+            &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}).
+            NOTE: If the dependencySet specifies unpack == true, outputFileNameMapping WILL NOT BE USED; in these cases,
+            use outputDirectory.
+            See the plugin FAQ for more details about entries usable in the outputFileNameMapping parameter.
+          </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 included 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="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;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Currently, only artifacts from the central repository
+        are allowed.&lt;/p&gt;
+        
+      </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. The default value is 0644.
+            &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. The default value is 0755.
+            &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:schema>
\ No newline at end of file
