[jboss-cvs] JBossAS SVN: r95416 - in projects/metadata/web/tags: 2.0.0.Alpha6 and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Oct 22 10:55:31 EDT 2009


Author: remy.maucherat at jboss.com
Date: 2009-10-22 10:55:28 -0400 (Thu, 22 Oct 2009)
New Revision: 95416

Added:
   projects/metadata/web/tags/2.0.0.Alpha6/
   projects/metadata/web/tags/2.0.0.Alpha6/.classpath
   projects/metadata/web/tags/2.0.0.Alpha6/pom.xml
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/jboss/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/binding/
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties
Removed:
   projects/metadata/web/tags/2.0.0.Alpha6/.classpath
   projects/metadata/web/tags/2.0.0.Alpha6/pom.xml
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/jboss/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/binding/
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml
   projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties
Log:
[maven-release-plugin]  copy for tag 2.0.0.Alpha6

Copied: projects/metadata/web/tags/2.0.0.Alpha6 (from rev 93709, projects/metadata/web/trunk)

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/.classpath
===================================================================
--- projects/metadata/web/trunk/.classpath	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/.classpath	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,50 +0,0 @@
-<classpath>
-  <classpathentry kind="src" path="src/test/java" output="target/tests-classes" including="**/*.java"/>
-  <classpathentry kind="src" path="src/test/resources" output="target/tests-classes" excluding="**/*.java"/>
-  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
-  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1.1/activation-1.1.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/gnu-getopt/getopt/1.0.13/getopt-1.0.13.jar"/>
-  <classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.1.4/jaxb-api-2.1.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.14.GA/jboss-common-core-2.2.14.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.14.GA/jboss-common-core-2.2.14.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/1.0.0/jboss-ejb3-ext-api-1.0.0.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/1.0.0/jboss-ejb3-ext-api-1.0.0-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxrpc/1.0.4.GA/jboss-jaxrpc-1.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxws/3.0.1-native-2.0.4.GA/jboss-jaxws-3.0.1-native-2.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.GA/jboss-jms-api-1.1.0.GA.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.GA/jboss-jms-api-1.1.0.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-mdr/2.0.0.GA/jboss-mdr-2.0.0.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/profiler/jvmti/jboss-profiler-jvmti/1.0.0.CR5/jboss-profiler-jvmti-1.0.0.CR5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-reflect/2.0.2.GA/jboss-reflect-2.0.2.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-reflect/2.0.2.GA/jboss-reflect-2.0.2.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.3.SP1/jboss-security-spi-2.0.3.SP1.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi/2.0.3.SP1/jboss-security-spi-2.0.3.SP1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jbossas/jboss-server-manager/1.0.2.GA/jboss-server-manager-1.0.2.GA.jar" sourcepath="M2_REPO/org/jboss/jbossas/jboss-server-manager/1.0.2.GA/jboss-server-manager-1.0.2.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/test/jboss-test/1.1.4.GA/jboss-test-1.1.4.GA.jar" sourcepath="M2_REPO/org/jboss/test/jboss-test/1.1.4.GA/jboss-test-1.1.4.GA-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.CR1/jboss-transaction-api-1.0.1.CR1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.CR1/jboss-vfs-2.0.0.CR1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1.jar" sourcepath="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.6.GA/jbossws-spi-1.0.6.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/jboss/web/servlet-api/3.0.0.alpha-3/servlet-api-3.0.0.alpha-3.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1-sources.jar">
-    <attributes>
-      <attribute value="jar:file:/C:/Users/avoka/.m2/repository/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1-javadoc.jar!/" name="javadoc_location"/>
-    </attributes>
-  </classpathentry>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnp-client/5.0.1.GA/jnp-client-5.0.1.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-tests.jar" sourcepath="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-test-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-</classpath>

Copied: projects/metadata/web/tags/2.0.0.Alpha6/.classpath (from rev 94608, projects/metadata/web/trunk/.classpath)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/.classpath	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/.classpath	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry including="**/*.java" kind="src" output="target/tests-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" kind="src" output="target/tests-classes" path="src/test/resources"/>
+	<classpathentry including="**/*.java" kind="src" path="src/main/java"/>
+	<classpathentry excluding="**/*.java" kind="src" path="src/main/resources"/>
+	<classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1.1/activation-1.1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant/1.7.0/ant-1.7.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-junit/1.7.0/ant-junit-1.7.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/apache/ant/ant-launcher/1.7.0/ant-launcher-1.7.0.jar"/>
+	<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/wutka-dtdparser/dtdparser121/1.2.1/dtdparser121-1.2.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA.jar" sourcepath="M2_REPO/org/hibernate/ejb3-persistence/1.0.2.GA/ejb3-persistence-1.0.2.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/gnu-getopt/getopt/1.0.13/getopt-1.0.13.jar"/>
+	<classpathentry kind="var" path="M2_REPO/sun-jaxb/jaxb-api/2.1.4/jaxb-api-2.1.4.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.14.GA/jboss-common-core-2.2.14.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-common-core/2.2.14.GA/jboss-common-core-2.2.14.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-ejb-api/3.0.0.CR1/jboss-ejb-api-3.0.0.CR1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/1.0.0/jboss-ejb3-ext-api-1.0.0.jar" sourcepath="M2_REPO/org/jboss/ejb3/jboss-ejb3-ext-api/1.0.0/jboss-ejb3-ext-api-1.0.0-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxrpc/1.0.4.GA/jboss-jaxrpc-1.0.4.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/jbossws/jboss-jaxws/3.0.1-native-2.0.4.GA/jboss-jaxws-3.0.1-native-2.0.4.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.GA/jboss-jms-api-1.1.0.GA.jar" sourcepath="M2_REPO/org/jboss/javaee/jboss-jms-api/1.1.0.GA/jboss-jms-api-1.1.0.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-log4j/2.0.5.GA/jboss-logging-log4j-2.0.5.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA.jar" sourcepath="M2_REPO/org/jboss/logging/jboss-logging-spi/2.0.5.GA/jboss-logging-spi-2.0.5.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-mdr/2.0.0.GA/jboss-mdr-2.0.0.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/profiler/jvmti/jboss-profiler-jvmti/1.0.0.CR5/jboss-profiler-jvmti-1.0.0.CR5.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-reflect/2.0.2.GA/jboss-reflect-2.0.2.GA.jar" sourcepath="M2_REPO/org/jboss/jboss-reflect/2.0.2.GA/jboss-reflect-2.0.2.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi/2.0.3.SP1/jboss-security-spi-2.0.3.SP1.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi/2.0.3.SP1/jboss-security-spi-2.0.3.SP1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jbossas/jboss-server-manager/1.0.2.GA/jboss-server-manager-1.0.2.GA.jar" sourcepath="M2_REPO/org/jboss/jbossas/jboss-server-manager/1.0.2.GA/jboss-server-manager-1.0.2.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/test/jboss-test/1.1.4.GA/jboss-test-1.1.4.GA.jar" sourcepath="M2_REPO/org/jboss/test/jboss-test/1.1.4.GA/jboss-test-1.1.4.GA-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-transaction-api/1.0.1.CR1/jboss-transaction-api-1.0.1.CR1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/2.0.0.CR1/jboss-vfs-2.0.0.CR1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1.jar" sourcepath="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.6.GA/jbossws-spi-1.0.6.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/web/servlet-api/3.0.0.alpha-6/servlet-api-3.0.0.alpha-6.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1-sources.jar">
+		<attributes>
+			<attribute name="javadoc_location" value="jar:file:/C:/Users/avoka/.m2/repository/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1-javadoc.jar!/"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnp-client/5.0.1.GA/jnp-client-5.0.1.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
+	<classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+	<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar" sourcepath="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-tests.jar" sourcepath="M2_REPO/org/jboss/metadata/metadata-common/2.0.0-SNAPSHOT/metadata-common-2.0.0-SNAPSHOT-test-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/pom.xml
===================================================================
--- projects/metadata/web/trunk/pom.xml	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/pom.xml	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,144 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss</groupId>
-    <artifactId>jboss-parent</artifactId>
-    <version>4.0.CR1</version>
-  </parent>
-  <groupId>org.jboss.metadata</groupId>
-  <artifactId>jboss-metadata-war</artifactId>
-  <packaging>jar</packaging>
-  <version>2.0.0-SNAPSHOT</version>
-  <name>JBoss Metadata WAR</name>
-  <url>http://www.jboss.org</url>
-  <description>The common JavaEE metadata classes</description>
-  <scm>
-    <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/metadata/web/trunk/</connection>
-    <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/metadata/web/trunk/</developerConnection>
-  </scm>
-
-  <build>
-    <outputDirectory>${profile.outputDirectory}</outputDirectory>
-    <testOutputDirectory>${profile.testOutputDirectory}</testOutputDirectory>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.4.3</version>
-        <configuration>
-          <printSummary>true</printSummary>
-          <disableXmlReport>false</disableXmlReport>
-          <redirectTestOutputToFile>true</redirectTestOutputToFile>
-           <testFailureIgnore>false</testFailureIgnore>
-          <includes>
-            <include>**/*TestCase.java</include>
-          </includes>
-        </configuration>
-      </plugin>      
-    </plugins>
-  </build>
-
-  <repositories>
-    <repository>
-      <id>repository.jboss.org</id>
-      <name>JBoss Repository</name>
-      <layout>default</layout>
-      <url>http://repository.jboss.org/maven2/</url>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>snapshots.jboss.org</id>
-      <name>JBoss Snapshot Repository</name>
-      <layout>default</layout>
-      <url>http://snapshots.jboss.org/maven2/</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <!-- 
-    Eclipse settings have been removed from parent. This needs to be
-    done via an eclipse profile.
-    http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085896#4085896 
-    -->
-  <profiles>
-    <profile>
-      <id>default</id>
-      <activation>
-        <activeByDefault>true</activeByDefault>
-      </activation>
-      <properties>
-        <profile.outputDirectory>target/classes</profile.outputDirectory>
-        <profile.testOutputDirectory>target/tests-classes</profile.testOutputDirectory>
-      </properties>
-    </profile>
-    
-    <profile>
-      <id>eclipse</id>
-      <properties>
-        <profile.outputDirectory>eclipse-target/classes</profile.outputDirectory>
-        <profile.testOutputDirectory>eclipse-target/tests-classes</profile.testOutputDirectory>
-      </properties>
-    </profile>
-  </profiles>
-
-  <!-- Compile Dependencies -->
-  <dependencies>
-
-    <dependency>
-      <groupId>org.jboss.metadata</groupId>
-      <artifactId>jboss-metadata-common</artifactId>
-      <version>2.0.0.Alpha</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.metadata</groupId>
-      <artifactId>jboss-metadata-common</artifactId>
-      <version>2.0.0.Alpha</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.jboss.ejb3</groupId>
-      <artifactId>jboss-ejb3-ext-api</artifactId>
-      <version>1.0.0</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jboss.metadata</groupId>
-          <artifactId>jboss-metadata</artifactId>
-        </exclusion>          
-      </exclusions>       
-    </dependency>
-    
-    <dependency>
-      <groupId>jboss.web</groupId>
-      <artifactId>servlet-api</artifactId>
-      <version>3.0.0.alpha-3</version>
-    </dependency>
-      
-    
-    <!-- Test Dependencies -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.4</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.jboss.test</groupId>
-      <artifactId>jboss-test</artifactId>
-      <version>1.1.4.GA</version>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-
-</project>
\ No newline at end of file

Copied: projects/metadata/web/tags/2.0.0.Alpha6/pom.xml (from rev 95415, projects/metadata/web/trunk/pom.xml)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/pom.xml	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/pom.xml	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,144 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss</groupId>
+    <artifactId>jboss-parent</artifactId>
+    <version>4.0.CR1</version>
+  </parent>
+  <groupId>org.jboss.metadata</groupId>
+  <artifactId>jboss-metadata-war</artifactId>
+  <packaging>jar</packaging>
+  <version>2.0.0.Alpha6</version>
+  <name>JBoss Metadata WAR</name>
+  <url>http://www.jboss.org</url>
+  <description>The common JavaEE metadata classes</description>
+  <scm>
+    <connection>scm:svn:http://anonsvn.jboss.org/repos/jbossas/projects/metadata/web/tags/2.0.0.Alpha6</connection>
+    <developerConnection>scm:svn:https://svn.jboss.org/repos/jbossas/projects/metadata/web/tags/2.0.0.Alpha6</developerConnection>
+  </scm>
+
+  <build>
+    <outputDirectory>${profile.outputDirectory}</outputDirectory>
+    <testOutputDirectory>${profile.testOutputDirectory}</testOutputDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <version>2.4.3</version>
+        <configuration>
+          <printSummary>true</printSummary>
+          <disableXmlReport>false</disableXmlReport>
+          <redirectTestOutputToFile>true</redirectTestOutputToFile>
+           <testFailureIgnore>false</testFailureIgnore>
+          <includes>
+            <include>**/*TestCase.java</include>
+          </includes>
+        </configuration>
+      </plugin>      
+    </plugins>
+  </build>
+
+  <repositories>
+    <repository>
+      <id>repository.jboss.org</id>
+      <name>JBoss Repository</name>
+      <layout>default</layout>
+      <url>http://repository.jboss.org/maven2/</url>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+    <repository>
+      <id>snapshots.jboss.org</id>
+      <name>JBoss Snapshot Repository</name>
+      <layout>default</layout>
+      <url>http://snapshots.jboss.org/maven2/</url>
+      <releases>
+        <enabled>false</enabled>
+      </releases>
+      <snapshots>
+        <enabled>true</enabled>
+      </snapshots>
+    </repository>
+  </repositories>
+
+  <!-- 
+    Eclipse settings have been removed from parent. This needs to be
+    done via an eclipse profile.
+    http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4085896#4085896 
+    -->
+  <profiles>
+    <profile>
+      <id>default</id>
+      <activation>
+        <activeByDefault>true</activeByDefault>
+      </activation>
+      <properties>
+        <profile.outputDirectory>target/classes</profile.outputDirectory>
+        <profile.testOutputDirectory>target/tests-classes</profile.testOutputDirectory>
+      </properties>
+    </profile>
+    
+    <profile>
+      <id>eclipse</id>
+      <properties>
+        <profile.outputDirectory>eclipse-target/classes</profile.outputDirectory>
+        <profile.testOutputDirectory>eclipse-target/tests-classes</profile.testOutputDirectory>
+      </properties>
+    </profile>
+  </profiles>
+
+  <!-- Compile Dependencies -->
+  <dependencies>
+
+    <dependency>
+      <groupId>org.jboss.metadata</groupId>
+      <artifactId>jboss-metadata-common</artifactId>
+      <version>2.0.0.Alpha2</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.metadata</groupId>
+      <artifactId>jboss-metadata-common</artifactId>
+      <version>2.0.0.Alpha2</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-ext-api</artifactId>
+      <version>1.0.0</version>
+      <exclusions>
+        <exclusion>
+          <groupId>org.jboss.metadata</groupId>
+          <artifactId>jboss-metadata</artifactId>
+        </exclusion>          
+      </exclusions>       
+    </dependency>
+    
+    <dependency>
+      <groupId>jboss.web</groupId>
+      <artifactId>servlet-api</artifactId>
+      <version>3.0.0.alpha-6</version>
+    </dependency>
+      
+    
+    <!-- Test Dependencies -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.4</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.test</groupId>
+      <artifactId>jboss-test</artifactId>
+      <version>1.1.4.GA</version>
+      <scope>test</scope>
+    </dependency>
+
+  </dependencies>
+
+</project>
\ No newline at end of file

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web (from rev 94608, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/annotation/creator/web)

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,154 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.annotation.creator.web;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.AnnotatedElement;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.annotation.WebInitParam;
-
-import org.jboss.metadata.annotation.creator.AbstractFinderUser;
-import org.jboss.metadata.annotation.creator.Creator;
-import org.jboss.metadata.annotation.creator.Processor;
-import org.jboss.metadata.annotation.creator.ProcessorUtils;
-import org.jboss.metadata.annotation.finder.AnnotationFinder;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.spec.DispatcherType;
-import org.jboss.metadata.web.spec.FilterMappingMetaData;
-import org.jboss.metadata.web.spec.FilterMetaData;
-import org.jboss.metadata.web.spec.FiltersMetaData;
-import org.jboss.metadata.web.spec.WebMetaData;
-
-/**
- * Processor for filter @WebFilter
- * @author Remy Maucherat
- * @version $Revision: 67218 $
- */
-public class WebFilterProcessor extends AbstractFinderUser
-   implements Creator<Class<?>, WebMetaData>, Processor<WebMetaData, Class<?>>
-{
-   /**
-    * @param finder
-    */
-   public WebFilterProcessor(AnnotationFinder<AnnotatedElement> finder)
-   {
-      super(finder);
-   }
-
-   public WebMetaData create(Class<?> element)
-   {
-      WebFilter webFilter = finder.getAnnotation(element, WebFilter.class);
-      if (webFilter == null)
-         return null;
-
-      WebMetaData metaData = new WebMetaData();
-      FiltersMetaData filters = new FiltersMetaData();
-      FilterMetaData filter = new FilterMetaData();
-      filter.setName(webFilter.filterName());
-      filter.setAsyncSupported(webFilter.asyncSupported());
-      if (webFilter.initParams() != null)
-      {
-         List<ParamValueMetaData> initParams = new ArrayList<ParamValueMetaData>();
-         for (WebInitParam webInitParam : webFilter.initParams())
-         {
-            ParamValueMetaData paramValue = new ParamValueMetaData();
-            paramValue.setParamName(webInitParam.name());
-            paramValue.setParamValue(webInitParam.value());
-            initParams.add(paramValue);
-         }
-         filter.setInitParam(initParams);
-      }
-      // TODO: description group ?
-      filters.add(filter);
-      metaData.setFilters(filters);
-      if (webFilter.urlPatterns() != null || webFilter.servletNames() != null)
-      {
-         List<FilterMappingMetaData> filterMappings = new ArrayList<FilterMappingMetaData>();
-         FilterMappingMetaData filterMapping = new FilterMappingMetaData();
-         if (webFilter.urlPatterns() != null)
-         {
-            List<String> urlPatterns = new ArrayList<String>();
-            for (String urlPattern : webFilter.urlPatterns())
-            {
-               urlPatterns.add(urlPattern);
-            }
-            filterMapping.setUrlPatterns(urlPatterns);
-         }
-         if (webFilter.servletNames() != null)
-         {
-            List<String> servletNames = new ArrayList<String>();
-            for (String servletName : webFilter.servletNames())
-            {
-               servletNames.add(servletName);
-            }
-            filterMapping.setServletNames(servletNames);
-         }
-         if (webFilter.dispatcherTypes() != null)
-         {
-            List<DispatcherType> dispatcherTypes = new ArrayList<DispatcherType>();
-            for (javax.servlet.DispatcherType dispatcherType : webFilter.dispatcherTypes())
-            {
-               dispatcherTypes.add(DispatcherType.valueOf(dispatcherType.toString()));
-            }
-            filterMapping.setDispatchers(dispatcherTypes);
-         }
-         filterMappings.add(filterMapping);
-         metaData.setFilterMappings(filterMappings);
-      }
-      return metaData;
-   }
-
-   public void process(WebMetaData metaData, Class<?> type)
-   {
-      WebFilter annotation = finder.getAnnotation(type, WebFilter.class);
-      if(annotation == null)
-         return;
-
-      WebMetaData filterMetaData = create(type);
-      if (metaData.getFilters() == null)
-      {
-         metaData.setFilters(filterMetaData.getFilters());
-      }
-      else
-      {
-         metaData.getFilters().addAll(filterMetaData.getFilters());
-      }
-      if (metaData.getFilterMappings() == null)
-      {
-         metaData.setFilterMappings(filterMetaData.getFilterMappings());
-      }
-      else if (filterMetaData.getFilterMappings() != null)
-      {
-         metaData.getFilterMappings().addAll(filterMetaData.getFilterMappings());
-      }
-   }
-
-   public Collection<Class<? extends Annotation>> getAnnotationTypes()
-   {
-      return ProcessorUtils.createAnnotationSet(WebFilter.class);
-   }
-   
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java (from rev 95029, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebFilterProcessor.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,171 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator.web;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.annotation.WebInitParam;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Creator;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.spec.DispatcherType;
+import org.jboss.metadata.web.spec.FilterMappingMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
+import org.jboss.metadata.web.spec.FiltersMetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+
+/**
+ * Processor for filter @WebFilter
+ * @author Remy Maucherat
+ * @version $Revision: 67218 $
+ */
+public class WebFilterProcessor extends AbstractFinderUser
+   implements Creator<Class<?>, WebMetaData>, Processor<WebMetaData, Class<?>>
+{
+   /**
+    * @param finder
+    */
+   public WebFilterProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public WebMetaData create(Class<?> element)
+   {
+      WebFilter webFilter = finder.getAnnotation(element, WebFilter.class);
+      if (webFilter == null)
+         return null;
+
+      WebMetaData metaData = new WebMetaData();
+      FiltersMetaData filters = new FiltersMetaData();
+      FilterMetaData filter = new FilterMetaData();
+      filter.setFilterClass(element.getName());
+      String filterName = null;
+      if (webFilter.filterName().length() == 0)
+         filterName = element.getName();
+      else
+         filterName = webFilter.filterName();
+      filter.setFilterName(filterName);
+      filter.setAsyncSupported(webFilter.asyncSupported());
+      if (webFilter.initParams() != null)
+      {
+         List<ParamValueMetaData> initParams = new ArrayList<ParamValueMetaData>();
+         for (WebInitParam webInitParam : webFilter.initParams())
+         {
+            ParamValueMetaData paramValue = new ParamValueMetaData();
+            paramValue.setParamName(webInitParam.name());
+            paramValue.setParamValue(webInitParam.value());
+            initParams.add(paramValue);
+         }
+         filter.setInitParam(initParams);
+      }
+      // TODO: description group ?
+      filters.add(filter);
+      metaData.setFilters(filters);
+      if (webFilter.urlPatterns() != null || webFilter.value() != null || webFilter.servletNames() != null)
+      {
+         List<FilterMappingMetaData> filterMappings = new ArrayList<FilterMappingMetaData>();
+         FilterMappingMetaData filterMapping = new FilterMappingMetaData();
+         filterMapping.setFilterName(filterName);
+         if (webFilter.urlPatterns() != null || webFilter.value() != null)
+         {
+            List<String> urlPatterns = new ArrayList<String>();
+            if (webFilter.urlPatterns() != null)
+            {
+               for (String urlPattern : webFilter.urlPatterns())
+               {
+                  urlPatterns.add(urlPattern);
+               }
+            }
+            if (webFilter.value() != null)
+            {
+               for (String urlPattern : webFilter.value())
+               {
+                  urlPatterns.add(urlPattern);
+               }
+            }
+            filterMapping.setUrlPatterns(urlPatterns);
+         }
+         if (webFilter.servletNames() != null)
+         {
+            List<String> servletNames = new ArrayList<String>();
+            for (String servletName : webFilter.servletNames())
+            {
+               servletNames.add(servletName);
+            }
+            filterMapping.setServletNames(servletNames);
+         }
+         if (webFilter.dispatcherTypes() != null)
+         {
+            List<DispatcherType> dispatcherTypes = new ArrayList<DispatcherType>();
+            for (javax.servlet.DispatcherType dispatcherType : webFilter.dispatcherTypes())
+            {
+               dispatcherTypes.add(DispatcherType.valueOf(dispatcherType.toString()));
+            }
+            filterMapping.setDispatchers(dispatcherTypes);
+         }
+         filterMappings.add(filterMapping);
+         metaData.setFilterMappings(filterMappings);
+      }
+      return metaData;
+   }
+
+   public void process(WebMetaData metaData, Class<?> type)
+   {
+      WebFilter annotation = finder.getAnnotation(type, WebFilter.class);
+      if(annotation == null)
+         return;
+
+      WebMetaData filterMetaData = create(type);
+      if (metaData.getFilters() == null)
+      {
+         metaData.setFilters(filterMetaData.getFilters());
+      }
+      else
+      {
+         metaData.getFilters().addAll(filterMetaData.getFilters());
+      }
+      if (metaData.getFilterMappings() == null)
+      {
+         metaData.setFilterMappings(filterMetaData.getFilterMappings());
+      }
+      else if (filterMetaData.getFilterMappings() != null)
+      {
+         metaData.getFilterMappings().addAll(filterMetaData.getFilterMappings());
+      }
+   }
+
+   public Collection<Class<? extends Annotation>> getAnnotationTypes()
+   {
+      return ProcessorUtils.createAnnotationSet(WebFilter.class);
+   }
+   
+}

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,135 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.annotation.creator.web;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.AnnotatedElement;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.servlet.annotation.WebInitParam;
-import javax.servlet.annotation.WebServlet;
-
-import org.jboss.metadata.annotation.creator.AbstractFinderUser;
-import org.jboss.metadata.annotation.creator.Creator;
-import org.jboss.metadata.annotation.creator.Processor;
-import org.jboss.metadata.annotation.creator.ProcessorUtils;
-import org.jboss.metadata.annotation.finder.AnnotationFinder;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.spec.ServletMappingMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.metadata.web.spec.ServletsMetaData;
-import org.jboss.metadata.web.spec.WebMetaData;
-
-/**
- * Processor for servlet @WebServlet
- * @author Remy Maucherat
- * @version $Revision: 67218 $
- */
-public class WebServletProcessor extends AbstractFinderUser
-   implements Creator<Class<?>, WebMetaData>, Processor<WebMetaData, Class<?>>
-{
-   /**
-    * @param finder
-    */
-   public WebServletProcessor(AnnotationFinder<AnnotatedElement> finder)
-   {
-      super(finder);
-   }
-
-   public WebMetaData create(Class<?> element)
-   {
-      WebServlet webServlet = finder.getAnnotation(element, WebServlet.class);
-      if (webServlet == null)
-         return null;
-
-      WebMetaData metaData = new WebMetaData();
-      ServletsMetaData servlets = new ServletsMetaData();
-      ServletMetaData servlet = new ServletMetaData();
-      servlet.setName(webServlet.name());
-      if (webServlet.loadOnStartup() > 0)
-         servlet.setLoadOnStartup(webServlet.loadOnStartup());
-      servlet.setAsyncSupported(webServlet.asyncSupported());
-      if (webServlet.initParams() != null)
-      {
-         List<ParamValueMetaData> initParams = new ArrayList<ParamValueMetaData>();
-         for (WebInitParam webInitParam : webServlet.initParams())
-         {
-            ParamValueMetaData paramValue = new ParamValueMetaData();
-            paramValue.setParamName(webInitParam.name());
-            paramValue.setParamValue(webInitParam.value());
-            initParams.add(paramValue);
-         }
-         servlet.setInitParam(initParams);
-      }
-      // TODO: description group ?
-      servlets.add(servlet);
-      metaData.setServlets(servlets);
-      if (webServlet.urlPatterns() != null)
-      {
-         List<ServletMappingMetaData> servletMappings = new ArrayList<ServletMappingMetaData>();
-         ServletMappingMetaData servletMapping = new ServletMappingMetaData();
-         servletMapping.setServletName(webServlet.name());
-         List<String> urlPatterns = new ArrayList<String>();
-         for (String urlPattern : webServlet.urlPatterns())
-         {
-            urlPatterns.add(urlPattern);
-         }
-         servletMapping.setUrlPatterns(urlPatterns);
-         servletMappings.add(servletMapping);
-         metaData.setServletMappings(servletMappings);
-      }
-      return metaData;
-   }
-
-   public void process(WebMetaData metaData, Class<?> type)
-   {
-      WebServlet annotation = finder.getAnnotation(type, WebServlet.class);
-      if(annotation == null)
-         return;
-
-      WebMetaData servletMetaData = create(type);
-      if (metaData.getServlets() == null)
-      {
-         metaData.setServlets(servletMetaData.getServlets());
-      }
-      else
-      {
-         metaData.getServlets().addAll(servletMetaData.getServlets());
-      }
-      if (metaData.getServletMappings() == null)
-      {
-         metaData.setServletMappings(servletMetaData.getServletMappings());
-      }
-      else if (servletMetaData.getServletMappings() != null)
-      {
-         metaData.getServletMappings().addAll(servletMetaData.getServletMappings());
-      }
-   }
-
-   public Collection<Class<? extends Annotation>> getAnnotationTypes()
-   {
-      return ProcessorUtils.createAnnotationSet(WebServlet.class);
-   }
-   
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java (from rev 95029, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/annotation/creator/web/WebServletProcessor.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,151 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.annotation.creator.web;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.servlet.annotation.WebInitParam;
+import javax.servlet.annotation.WebServlet;
+
+import org.jboss.metadata.annotation.creator.AbstractFinderUser;
+import org.jboss.metadata.annotation.creator.Creator;
+import org.jboss.metadata.annotation.creator.Processor;
+import org.jboss.metadata.annotation.creator.ProcessorUtils;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.spec.ServletMappingMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.web.spec.ServletsMetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+
+/**
+ * Processor for servlet @WebServlet
+ * @author Remy Maucherat
+ * @version $Revision: 67218 $
+ */
+public class WebServletProcessor extends AbstractFinderUser
+   implements Creator<Class<?>, WebMetaData>, Processor<WebMetaData, Class<?>>
+{
+   /**
+    * @param finder
+    */
+   public WebServletProcessor(AnnotationFinder<AnnotatedElement> finder)
+   {
+      super(finder);
+   }
+
+   public WebMetaData create(Class<?> element)
+   {
+      WebServlet webServlet = finder.getAnnotation(element, WebServlet.class);
+      if (webServlet == null)
+         return null;
+
+      WebMetaData metaData = new WebMetaData();
+      ServletsMetaData servlets = new ServletsMetaData();
+      ServletMetaData servlet = new ServletMetaData();
+      servlet.setServletClass(element.getName());
+      String servletName = null;
+      if (webServlet.name().length() == 0)
+         servletName = element.getName();
+      else
+         servletName = webServlet.name();
+      servlet.setServletName(servletName);
+      if (webServlet.loadOnStartup() > 0)
+         servlet.setLoadOnStartup(webServlet.loadOnStartup());
+      servlet.setAsyncSupported(webServlet.asyncSupported());
+      if (webServlet.initParams() != null)
+      {
+         List<ParamValueMetaData> initParams = new ArrayList<ParamValueMetaData>();
+         for (WebInitParam webInitParam : webServlet.initParams())
+         {
+            ParamValueMetaData paramValue = new ParamValueMetaData();
+            paramValue.setParamName(webInitParam.name());
+            paramValue.setParamValue(webInitParam.value());
+            initParams.add(paramValue);
+         }
+         servlet.setInitParam(initParams);
+      }
+      // TODO: description group ?
+      servlets.add(servlet);
+      metaData.setServlets(servlets);
+      if (webServlet.urlPatterns() != null || webServlet.value() != null)
+      {
+         List<ServletMappingMetaData> servletMappings = new ArrayList<ServletMappingMetaData>();
+         ServletMappingMetaData servletMapping = new ServletMappingMetaData();
+         servletMapping.setServletName(servletName);
+         List<String> urlPatterns = new ArrayList<String>();
+         if (webServlet.urlPatterns() != null)
+         {
+            for (String urlPattern : webServlet.urlPatterns())
+            {
+               urlPatterns.add(urlPattern);
+            }
+         }
+         if (webServlet.value() != null)
+         {
+            for (String urlPattern : webServlet.value())
+            {
+               urlPatterns.add(urlPattern);
+            }
+         }
+         servletMapping.setUrlPatterns(urlPatterns);
+         servletMappings.add(servletMapping);
+         metaData.setServletMappings(servletMappings);
+      }
+      return metaData;
+   }
+
+   public void process(WebMetaData metaData, Class<?> type)
+   {
+      WebServlet annotation = finder.getAnnotation(type, WebServlet.class);
+      if(annotation == null)
+         return;
+
+      WebMetaData servletMetaData = create(type);
+      if (metaData.getServlets() == null)
+      {
+         metaData.setServlets(servletMetaData.getServlets());
+      }
+      else
+      {
+         metaData.getServlets().addAll(servletMetaData.getServlets());
+      }
+      if (metaData.getServletMappings() == null)
+      {
+         metaData.setServletMappings(servletMetaData.getServletMappings());
+      }
+      else if (servletMetaData.getServletMappings() != null)
+      {
+         metaData.getServletMappings().addAll(servletMetaData.getServletMappings());
+      }
+   }
+
+   public Collection<Class<? extends Annotation>> getAnnotationTypes()
+   {
+      return ProcessorUtils.createAnnotationSet(WebServlet.class);
+   }
+   
+}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/jboss (from rev 94608, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/jboss)

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec (from rev 94608, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec)

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,120 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.web.spec;
-
-import javax.xml.bind.annotation.XmlType;
-
-import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
-import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions;
-
-
-/**
- * taglib/tag-file metadata
- * 
- * @author Remy Maucherat
- * @version $Revision: 75201 $
- */
- at XmlType(name="tld-attributeType",
-      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      propOrder={"descriptions", "name", "required", "rtexprvalue", "type", "deferredValue", "deferredMethod",
-            "fragment", "descriptions"})
-public class AttributeMetaData extends NamedMetaDataWithDescriptions
-{
-   private static final long serialVersionUID = 1;
-   
-   private boolean required = false;
-   private boolean rtexprvalue = false;
-   private String type;
-   private boolean fragment = false;
-   private DeferredValueMetaData deferredValue; 
-   private DeferredMethodMetaData deferredMethod;
-
-   public String getType()
-   {
-      return type;
-   }
-   public void setType(String type)
-   {
-      this.type = type;
-   }
-
-   public boolean getRequired()
-   {
-      return required;
-   }
-   public void setRequired(boolean required)
-   {
-      this.required = required;
-   }
-
-   public boolean getRtexprvalue()
-   {
-      return rtexprvalue;
-   }
-   public void setRtexprvalue(boolean rtexprvalue)
-   {
-      this.rtexprvalue = rtexprvalue;
-   }
-
-   public boolean getFragment()
-   {
-      return fragment;
-   }
-   public void setFragment(boolean fragment)
-   {
-      this.fragment = fragment;
-   }
-
-   public DeferredValueMetaData getDeferredValue()
-   {
-      return deferredValue;
-   }
-   public void setDeferredValue(DeferredValueMetaData deferredValue)
-   {
-      this.deferredValue = deferredValue;
-   }
-
-   public DeferredMethodMetaData getDeferredMethod()
-   {
-      return deferredMethod;
-   }
-   public void setDeferredMethod(DeferredMethodMetaData deferredMethod)
-   {
-      this.deferredMethod = deferredMethod;
-   }
-
-   public String toString()
-   {
-      StringBuilder tmp = new StringBuilder("AttributeMetaData(id=");
-      tmp.append(getId());
-      tmp.append(",required=");
-      tmp.append(required);
-      tmp.append(",rtexprvalue=");
-      tmp.append(rtexprvalue);
-      tmp.append(",fragment=");
-      tmp.append(fragment);
-      tmp.append(",type=");
-      tmp.append(type);
-      tmp.append(')');
-      return tmp.toString();
-   }
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java (from rev 95409, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/AttributeMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,120 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.web.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions;
+
+
+/**
+ * taglib/tag-file metadata
+ * 
+ * @author Remy Maucherat
+ * @version $Revision: 75201 $
+ */
+ at XmlType(name="tld-attributeType",
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      propOrder={"descriptions", "name", "required", "rtexprvalue", "type", "deferredValue", "deferredMethod",
+            "fragment", "descriptions"})
+public class AttributeMetaData extends NamedMetaDataWithDescriptions
+{
+   private static final long serialVersionUID = 1;
+   
+   private String required;
+   private String rtexprvalue;
+   private String type;
+   private String fragment;
+   private DeferredValueMetaData deferredValue; 
+   private DeferredMethodMetaData deferredMethod;
+
+   public String getType()
+   {
+      return type;
+   }
+   public void setType(String type)
+   {
+      this.type = type;
+   }
+
+   public String getRequired()
+   {
+      return required;
+   }
+   public void setRequired(String required)
+   {
+      this.required = required;
+   }
+
+   public String getRtexprvalue()
+   {
+      return rtexprvalue;
+   }
+   public void setRtexprvalue(String rtexprvalue)
+   {
+      this.rtexprvalue = rtexprvalue;
+   }
+
+   public String getFragment()
+   {
+      return fragment;
+   }
+   public void setFragment(String fragment)
+   {
+      this.fragment = fragment;
+   }
+
+   public DeferredValueMetaData getDeferredValue()
+   {
+      return deferredValue;
+   }
+   public void setDeferredValue(DeferredValueMetaData deferredValue)
+   {
+      this.deferredValue = deferredValue;
+   }
+
+   public DeferredMethodMetaData getDeferredMethod()
+   {
+      return deferredMethod;
+   }
+   public void setDeferredMethod(DeferredMethodMetaData deferredMethod)
+   {
+      this.deferredMethod = deferredMethod;
+   }
+
+   public String toString()
+   {
+      StringBuilder tmp = new StringBuilder("AttributeMetaData(id=");
+      tmp.append(getId());
+      tmp.append(",required=");
+      tmp.append(required);
+      tmp.append(",rtexprvalue=");
+      tmp.append(rtexprvalue);
+      tmp.append(",fragment=");
+      tmp.append(fragment);
+      tmp.append(",type=");
+      tmp.append(type);
+      tmp.append(')');
+      return tmp.toString();
+   }
+}

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,146 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.web.spec;
-
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
-import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
-
-/**
- * taglib/tag metadata
- * 
- * @author Remy Maucherat
- * @version $Revision: 75201 $
- */
- at XmlType(name="tagType",
-      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      propOrder={"descriptionGroup", "name", "tagClass", "teiClass", "bodyContent", "descriptionGroup", "variables", "attributes",
-            "dynamicAttributes", "examples", "tagExtensions"})
-public class TagMetaData extends NamedMetaDataWithDescriptionGroup
-{
-   private static final long serialVersionUID = 1;
-   
-   private String tagClass;
-   private String teiClass;
-   private BodyContentType bodyContent;
-   private List<VariableMetaData> variables;
-   private List<AttributeMetaData> attributes;
-   private boolean dynamicAttributes = false;
-   private List<String> examples;
-   private List<TldExtensionMetaData> tagExtensions;
-
-   public String getTagClass()
-   {
-      return tagClass;
-   }
-   public void setTagClass(String tagClass)
-   {
-      this.tagClass = tagClass;
-   }
-
-   public String getTeiClass()
-   {
-      return teiClass;
-   }
-   public void setTeiClass(String teiClass)
-   {
-      this.teiClass = teiClass;
-   }
-
-   public BodyContentType getBodyContent()
-   {
-      return bodyContent;
-   }
-   public void setBodyContent(BodyContentType bodyContent)
-   {
-      this.bodyContent = bodyContent;
-   }
-
-   public boolean getDynamicAttributes()
-   {
-      return dynamicAttributes;
-   }
-   public void setDynamicAttributes(boolean dynamicAttributes)
-   {
-      this.dynamicAttributes = dynamicAttributes;
-   }
-
-   public List<VariableMetaData> getVariables()
-   {
-      return variables;
-   }
-   @XmlElement(name="variable")
-   public void setVariables(List<VariableMetaData> variables)
-   {
-      this.variables = variables;
-   }
-
-   public List<AttributeMetaData> getAttributes()
-   {
-      return attributes;
-   }
-   @XmlElement(name="attribute")
-   public void setAttributes(List<AttributeMetaData> attributes)
-   {
-      this.attributes = attributes;
-   }
-
-   public List<String> getExamples()
-   {
-      return examples;
-   }
-   @XmlElement(name="example")
-   public void setExamples(List<String> examples)
-   {
-      this.examples = examples;
-   }
-
-   public List<TldExtensionMetaData> getTagExtensions()
-   {
-      return tagExtensions;
-   }
-   @XmlElement(name="tag-extension")
-   public void setTagExtensions(List<TldExtensionMetaData> tagExtensions)
-   {
-      this.tagExtensions = tagExtensions;
-   }
-   
-   public String toString()
-   {
-      StringBuilder tmp = new StringBuilder("ServletMetaData(id=");
-      tmp.append(getId());
-      tmp.append(",tagClass=");
-      tmp.append(tagClass);
-      tmp.append(",teiClass=");
-      tmp.append(teiClass);
-      tmp.append(",dynamicAttributes=");
-      tmp.append(dynamicAttributes);
-      tmp.append(",bodyContent=");
-      tmp.append(bodyContent);
-      tmp.append(')');
-      return tmp.toString();
-   }
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java (from rev 95409, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/TagMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,146 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.web.spec;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptionGroup;
+
+/**
+ * taglib/tag metadata
+ * 
+ * @author Remy Maucherat
+ * @version $Revision: 75201 $
+ */
+ at XmlType(name="tagType",
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      propOrder={"descriptionGroup", "name", "tagClass", "teiClass", "bodyContent", "descriptionGroup", "variables", "attributes",
+            "dynamicAttributes", "examples", "tagExtensions"})
+public class TagMetaData extends NamedMetaDataWithDescriptionGroup
+{
+   private static final long serialVersionUID = 1;
+   
+   private String tagClass;
+   private String teiClass;
+   private BodyContentType bodyContent;
+   private List<VariableMetaData> variables;
+   private List<AttributeMetaData> attributes;
+   private String dynamicAttributes;
+   private List<String> examples;
+   private List<TldExtensionMetaData> tagExtensions;
+
+   public String getTagClass()
+   {
+      return tagClass;
+   }
+   public void setTagClass(String tagClass)
+   {
+      this.tagClass = tagClass;
+   }
+
+   public String getTeiClass()
+   {
+      return teiClass;
+   }
+   public void setTeiClass(String teiClass)
+   {
+      this.teiClass = teiClass;
+   }
+
+   public BodyContentType getBodyContent()
+   {
+      return bodyContent;
+   }
+   public void setBodyContent(BodyContentType bodyContent)
+   {
+      this.bodyContent = bodyContent;
+   }
+
+   public String getDynamicAttributes()
+   {
+      return dynamicAttributes;
+   }
+   public void setDynamicAttributes(String dynamicAttributes)
+   {
+      this.dynamicAttributes = dynamicAttributes;
+   }
+
+   public List<VariableMetaData> getVariables()
+   {
+      return variables;
+   }
+   @XmlElement(name="variable")
+   public void setVariables(List<VariableMetaData> variables)
+   {
+      this.variables = variables;
+   }
+
+   public List<AttributeMetaData> getAttributes()
+   {
+      return attributes;
+   }
+   @XmlElement(name="attribute")
+   public void setAttributes(List<AttributeMetaData> attributes)
+   {
+      this.attributes = attributes;
+   }
+
+   public List<String> getExamples()
+   {
+      return examples;
+   }
+   @XmlElement(name="example")
+   public void setExamples(List<String> examples)
+   {
+      this.examples = examples;
+   }
+
+   public List<TldExtensionMetaData> getTagExtensions()
+   {
+      return tagExtensions;
+   }
+   @XmlElement(name="tag-extension")
+   public void setTagExtensions(List<TldExtensionMetaData> tagExtensions)
+   {
+      this.tagExtensions = tagExtensions;
+   }
+   
+   public String toString()
+   {
+      StringBuilder tmp = new StringBuilder("ServletMetaData(id=");
+      tmp.append(getId());
+      tmp.append(",tagClass=");
+      tmp.append(tagClass);
+      tmp.append(",teiClass=");
+      tmp.append(teiClass);
+      tmp.append(",dynamicAttributes=");
+      tmp.append(dynamicAttributes);
+      tmp.append(",bodyContent=");
+      tmp.append(bodyContent);
+      tmp.append(')');
+      return tmp.toString();
+   }
+}

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,93 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.metadata.web.spec;
-
-import javax.xml.bind.annotation.XmlType;
-
-import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
-import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
-
-/**
- * The tag/variable metadata
- * 
- * @author Remy Maucherat
- * @version $Revision: 81768 $
- */
- at XmlType(name="variableType",
-      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      propOrder={"descriptions", "nameGiven", "nameFromAttribute", "variableClass", "declare", "scope", "descriptions"})
-public class VariableMetaData extends IdMetaDataImplWithDescriptions
-{
-   private static final long serialVersionUID = 1;
-
-   private String nameGiven;
-   private String nameFromAttribute;
-   private String variableClass;
-   private boolean declare = true;
-   private VariableScopeType scope = VariableScopeType.NESTED;
-   
-   public String getNameGiven()
-   {
-      return nameGiven;
-   }
-   public void setNameGiven(String nameGiven)
-   {
-      this.nameGiven = nameGiven;
-   }
-
-   public String getNameFromAttribute()
-   {
-      return nameFromAttribute;
-   }
-   public void setNameFromAttribute(String nameFromAttribute)
-   {
-      this.nameFromAttribute = nameFromAttribute;
-   }
-
-   public String getVariableClass()
-   {
-      return variableClass;
-   }
-   public void setVariableClass(String variableClass)
-   {
-      this.variableClass = variableClass;
-   }
-
-   public boolean getDeclare()
-   {
-      return declare;
-   }
-   public void setDeclare(boolean declare)
-   {
-      this.declare = declare;
-   }
-
-   public VariableScopeType getScope()
-   {
-      return scope;
-   }
-   public void setScope(VariableScopeType scope)
-   {
-      this.scope = scope;
-   }
-
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java (from rev 95409, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/VariableMetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.metadata.web.spec;
+
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
+
+/**
+ * The tag/variable metadata
+ * 
+ * @author Remy Maucherat
+ * @version $Revision: 81768 $
+ */
+ at XmlType(name="variableType",
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      propOrder={"descriptions", "nameGiven", "nameFromAttribute", "variableClass", "declare", "scope", "descriptions"})
+public class VariableMetaData extends IdMetaDataImplWithDescriptions
+{
+   private static final long serialVersionUID = 1;
+
+   private String nameGiven;
+   private String nameFromAttribute;
+   private String variableClass;
+   private String declare;
+   private VariableScopeType scope;
+   
+   public String getNameGiven()
+   {
+      return nameGiven;
+   }
+   public void setNameGiven(String nameGiven)
+   {
+      this.nameGiven = nameGiven;
+   }
+
+   public String getNameFromAttribute()
+   {
+      return nameFromAttribute;
+   }
+   public void setNameFromAttribute(String nameFromAttribute)
+   {
+      this.nameFromAttribute = nameFromAttribute;
+   }
+
+   public String getVariableClass()
+   {
+      return variableClass;
+   }
+   public void setVariableClass(String variableClass)
+   {
+      this.variableClass = variableClass;
+   }
+
+   public String getDeclare()
+   {
+      return declare;
+   }
+   public void setDeclare(String declare)
+   {
+      this.declare = declare;
+   }
+
+   public VariableScopeType getScope()
+   {
+      return scope;
+   }
+   public void setScope(VariableScopeType scope)
+   {
+      this.scope = scope;
+   }
+
+}

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java
===================================================================
--- projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,58 +0,0 @@
-package org.jboss.metadata.web.spec;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlNs;
-import javax.xml.bind.annotation.XmlNsForm;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
-import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
-import org.jboss.xb.annotations.JBossXmlSchema;
-
-/**
- * Web application spec metadata.
- *
- * @author Scott.Stark at jboss.org
- * @version $Revision: 81860 $
- */
- at XmlRootElement(name="web-app", namespace=JavaEEMetaDataConstants.JAVAEE_NS)
- at JBossXmlSchema(
-      xmlns={@XmlNs(namespaceURI = JavaEEMetaDataConstants.JAVAEE_NS, prefix = "jee")},
-      ignoreUnresolvedFieldOrClass=false,
-      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      elementFormDefault=XmlNsForm.QUALIFIED,
-      normalizeSpace=true)
- at XmlType(name="web-appType",
-      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
-      propOrder={"absoluteOrdering", "descriptionGroup", "name", "distributable", "contextParams", "filters", "filterMappings", "listeners", "servlets",
-      "servletMappings", "sessionConfig", "mimeMappings", "welcomeFileList", "errorPages", "jspConfig", "securityConstraints",
-      "loginConfig", "securityRoles", "jndiEnvironmentRefsGroup", "messageDestinations", "localEncodings", "absoluteOrdering"})
-public class Web30MetaData extends WebMetaData
-{
-   private static final long serialVersionUID = 1;
-   private boolean metadataComplete;
-   private AbsoluteOrderingMetaData absoluteOrdering;
-
-
-   public boolean isMetadataComplete()
-   {
-      return metadataComplete;
-   }
-   @XmlAttribute(name="metadata-complete")
-   public void setMetadataComplete(boolean metadataComplete)
-   {
-      this.metadataComplete = metadataComplete;
-   }
-
-   public AbsoluteOrderingMetaData getAbsoluteOrdering()
-   {
-      return absoluteOrdering;
-   }
-   @XmlElement(name="absolute-ordering")
-   public void setAbsoluteOrdering(AbsoluteOrderingMetaData absoluteOrdering)
-   {
-      this.absoluteOrdering = absoluteOrdering;
-   }
-
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java (from rev 95409, projects/metadata/web/trunk/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/java/org/jboss/metadata/web/spec/Web30MetaData.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,68 @@
+package org.jboss.metadata.web.spec;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.xb.annotations.JBossXmlSchema;
+
+/**
+ * Web application spec metadata.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: 81860 $
+ */
+ at XmlRootElement(name="web-app", namespace=JavaEEMetaDataConstants.JAVAEE_NS)
+ at JBossXmlSchema(
+      xmlns={@XmlNs(namespaceURI = JavaEEMetaDataConstants.JAVAEE_NS, prefix = "jee")},
+      ignoreUnresolvedFieldOrClass=false,
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      elementFormDefault=XmlNsForm.QUALIFIED,
+      normalizeSpace=true)
+ at XmlType(name="web-appType",
+      namespace=JavaEEMetaDataConstants.JAVAEE_NS,
+      propOrder={"moduleName", "absoluteOrdering", "descriptionGroup", "name", "distributable", "contextParams", "filters", "filterMappings", "listeners", "servlets",
+      "servletMappings", "sessionConfig", "mimeMappings", "welcomeFileList", "errorPages", "jspConfig", "securityConstraints",
+      "loginConfig", "securityRoles", "jndiEnvironmentRefsGroup", "messageDestinations", "localEncodings", "absoluteOrdering"})
+public class Web30MetaData extends WebMetaData
+{
+   private static final long serialVersionUID = 1;
+   private boolean metadataComplete;
+   private AbsoluteOrderingMetaData absoluteOrdering;
+   private String moduleName;
+
+
+   public boolean isMetadataComplete()
+   {
+      return metadataComplete;
+   }
+   @XmlAttribute(name="metadata-complete")
+   public void setMetadataComplete(boolean metadataComplete)
+   {
+      this.metadataComplete = metadataComplete;
+   }
+
+   public AbsoluteOrderingMetaData getAbsoluteOrdering()
+   {
+      return absoluteOrdering;
+   }
+   @XmlElement(name="absolute-ordering")
+   public void setAbsoluteOrdering(AbsoluteOrderingMetaData absoluteOrdering)
+   {
+      this.absoluteOrdering = absoluteOrdering;
+   }
+
+   public String getModuleName()
+   {
+      return moduleName;
+   }
+   public void setModuleName(String moduleName)
+   {
+      this.moduleName = moduleName;
+   }
+
+}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema (from rev 94608, projects/metadata/web/trunk/src/main/resources/schema)

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,307 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
-	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
-	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	    elementFormDefault="qualified"
-	    attributeFormDefault="unqualified"
-	    version="2.0">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)jsp_2_0.xsds	1.17 03/18/03
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      This is the XML Schema for the JSP 2.0 deployment descriptor
-      types.  The JSP 2.0 schema contains all the special
-      structures and datatypes that are necessary to use JSP files
-      from a web application.
-
-      The contents of this schema is used by the web-app_2_4.xsd
-      file to define JSP specific content.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all J2EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-configType is used to provide global configuration
-	information for the JSP files in a web application. It has
-	two subelements, taglib and jsp-property-group.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib"
-		   type="j2ee:taglibType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="jsp-property-group"
-		   type="j2ee:jsp-property-groupType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-fileType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-file element contains the full path to a JSP file
-	within the web application beginning with a `/'.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:pathType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-property-groupType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-property-groupType is used to group a number of
-	files so they can be given global property information.
-	All files so described are deemed to be JSP files.  The
-	following additional properties can be described:
-
-	    - Control whether EL is ignored
-	    - Control whether scripting elements are invalid
-	    - Indicate pageEncoding information.
-	    - Indicate that a resource is a JSP document (XML)
-	    - Prelude and Coda automatic includes.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="url-pattern"
-		   type="j2ee:url-patternType"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="el-ignored"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily set the isELIgnored
-	    property of a group of JSP pages.  By default, the
-	    EL evaluation is enabled for Web Applications using
-	    a Servlet 2.4 or greater web.xml, and disabled
-	    otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="page-encoding"
-		   type="j2ee:string"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The valid values of page-encoding are those of the
-	    pageEncoding page directive.  It is a
-	    translation-time error to name different encodings
-	    in the pageEncoding attribute of the page directive
-	    of a JSP page and in a JSP configuration element
-	    matching the page.  It is also a translation-time
-	    error to name different encodings in the prolog
-	    or text declaration of a document in XML syntax and
-	    in a JSP configuration element matching the document.
-	    It is legal to name the same encoding through
-	    mulitple mechanisms.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="scripting-invalid"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily disable scripting in a
-	    group of JSP pages.  By default, scripting is
-	    enabled.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="is-xml"
-		   type="j2ee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    If true, denotes that the group of resources
-	    that match the URL pattern are JSP documents,
-	    and thus must be interpreted as XML documents.
-	    If false, the resources are assumed to not
-	    be JSP documents, unless there is another
-	    property group that indicates otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-prelude"
-		   type="j2ee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-prelude element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the beginning of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-coda"
-		   type="j2ee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-coda element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the end of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="taglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The taglibType defines the syntax for declaring in
-	the deployment descriptor that a tag library is
-	available to the application.  This can be done
-	to override implicit map entries from TLD files and
-	from the container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib-uri"
-		   type="j2ee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    A taglib-uri element describes a URI identifying a
-	    tag library used in the web application.  The body
-	    of the taglib-uri element may be either an
-	    absolute URI specification, or a relative URI.
-	    There should be no entries in web.xml with the
-	    same taglib-uri value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="taglib-location"
-		   type="j2ee:pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    the taglib-location element contains the location
-	    (as a resource relative to the root of the web
-	    application) where to find the Tag Library
-	    Description file for the tag library.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/jsp_2_0.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.0">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)jsp_2_0.xsds	1.17 03/18/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      This is the XML Schema for the JSP 2.0 deployment descriptor
+      types.  The JSP 2.0 schema contains all the special
+      structures and datatypes that are necessary to use JSP files
+      from a web application.
+
+      The contents of this schema is used by the web-app_2_4.xsd
+      file to define JSP specific content.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-configType is used to provide global configuration
+	information for the JSP files in a web application. It has
+	two subelements, taglib and jsp-property-group.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib"
+		   type="j2ee:taglibType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="jsp-property-group"
+		   type="j2ee:jsp-property-groupType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-fileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-file element contains the full path to a JSP file
+	within the web application beginning with a `/'.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:pathType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-property-groupType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-property-groupType is used to group a number of
+	files so they can be given global property information.
+	All files so described are deemed to be JSP files.  The
+	following additional properties can be described:
+
+	    - Control whether EL is ignored
+	    - Control whether scripting elements are invalid
+	    - Indicate pageEncoding information.
+	    - Indicate that a resource is a JSP document (XML)
+	    - Prelude and Coda automatic includes.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="el-ignored"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily set the isELIgnored
+	    property of a group of JSP pages.  By default, the
+	    EL evaluation is enabled for Web Applications using
+	    a Servlet 2.4 or greater web.xml, and disabled
+	    otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="page-encoding"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The valid values of page-encoding are those of the
+	    pageEncoding page directive.  It is a
+	    translation-time error to name different encodings
+	    in the pageEncoding attribute of the page directive
+	    of a JSP page and in a JSP configuration element
+	    matching the page.  It is also a translation-time
+	    error to name different encodings in the prolog
+	    or text declaration of a document in XML syntax and
+	    in a JSP configuration element matching the document.
+	    It is legal to name the same encoding through
+	    mulitple mechanisms.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scripting-invalid"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily disable scripting in a
+	    group of JSP pages.  By default, scripting is
+	    enabled.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="is-xml"
+		   type="j2ee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    If true, denotes that the group of resources
+	    that match the URL pattern are JSP documents,
+	    and thus must be interpreted as XML documents.
+	    If false, the resources are assumed to not
+	    be JSP documents, unless there is another
+	    property group that indicates otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-prelude"
+		   type="j2ee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-prelude element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the beginning of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-coda"
+		   type="j2ee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-coda element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the end of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="taglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglibType defines the syntax for declaring in
+	the deployment descriptor that a tag library is
+	available to the application.  This can be done
+	to override implicit map entries from TLD files and
+	from the container.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib-uri"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A taglib-uri element describes a URI identifying a
+	    tag library used in the web application.  The body
+	    of the taglib-uri element may be either an
+	    absolute URI specification, or a relative URI.
+	    There should be no entries in web.xml with the
+	    same taglib-uri value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="taglib-location"
+		   type="j2ee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    the taglib-location element contains the location
+	    (as a resource relative to the root of the web
+	    application) where to find the Tag Library
+	    Description file for the tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,342 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-	    targetNamespace="http://java.sun.com/xml/ns/javaee"
-	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
-	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	    elementFormDefault="qualified"
-	    attributeFormDefault="unqualified"
-	    version="2.1">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)jsp_2_1.xsds	1.5 08/11/05
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      Copyright 2003-2006 Sun Microsystems, Inc.
-      4150 Network Circle
-      Santa Clara, California 95054
-      U.S.A
-      All rights reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      This is the XML Schema for the JSP 2.1 deployment descriptor
-      types.  The JSP 2.1 schema contains all the special
-      structures and datatypes that are necessary to use JSP files
-      from a web application.
-
-      The contents of this schema is used by the web-app_2_5.xsd
-      file to define JSP specific content.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all Java EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="javaee_5.xsd"/>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-configType is used to provide global configuration
-	information for the JSP files in a web application. It has
-	two subelements, taglib and jsp-property-group.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib"
-		   type="javaee:taglibType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="jsp-property-group"
-		   type="javaee:jsp-property-groupType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-fileType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-file element contains the full path to a JSP file
-	within the web application beginning with a `/'.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:pathType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="jsp-property-groupType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The jsp-property-groupType is used to group a number of
-	files so they can be given global property information.
-	All files so described are deemed to be JSP files.  The
-	following additional properties can be described:
-
-	    - Control whether EL is ignored.
-	    - Control whether scripting elements are invalid.
-	    - Indicate pageEncoding information.
-	    - Indicate that a resource is a JSP document (XML).
-	    - Prelude and Coda automatic includes.
-            - Control whether the character sequence #{ is allowed
-              when used as a String literal.
-            - Control whether template text containing only
-              whitespaces must be removed from the response output.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="url-pattern"
-		   type="javaee:url-patternType"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="el-ignored"
-		   type="javaee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily set the isELIgnored
-	    property of a group of JSP pages.  By default, the
-	    EL evaluation is enabled for Web Applications using
-	    a Servlet 2.4 or greater web.xml, and disabled
-	    otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="page-encoding"
-		   type="javaee:string"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The valid values of page-encoding are those of the
-	    pageEncoding page directive.  It is a
-	    translation-time error to name different encodings
-	    in the pageEncoding attribute of the page directive
-	    of a JSP page and in a JSP configuration element
-	    matching the page.  It is also a translation-time
-	    error to name different encodings in the prolog
-	    or text declaration of a document in XML syntax and
-	    in a JSP configuration element matching the document.
-	    It is legal to name the same encoding through
-	    mulitple mechanisms.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="scripting-invalid"
-		   type="javaee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    Can be used to easily disable scripting in a
-	    group of JSP pages.  By default, scripting is
-	    enabled.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="is-xml"
-		   type="javaee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    If true, denotes that the group of resources
-	    that match the URL pattern are JSP documents,
-	    and thus must be interpreted as XML documents.
-	    If false, the resources are assumed to not
-	    be JSP documents, unless there is another
-	    property group that indicates otherwise.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-prelude"
-		   type="javaee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-prelude element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the beginning of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="include-coda"
-		   type="javaee:pathType"
-		   minOccurs="0"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The include-coda element is a context-relative
-	    path that must correspond to an element in the
-	    Web Application.  When the element is present,
-	    the given path will be automatically included (as
-	    in an include directive) at the end of each
-	    JSP page in this jsp-property-group.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="deferred-syntax-allowed-as-literal"
-		   type="javaee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-             The character sequence #{ is reserved for EL expressions.
-             Consequently, a translation error occurs if the #{
-             character sequence is used as a String literal, unless
-             this element is enabled (true). Disabled (false) by
-             default.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="trim-directive-whitespaces"
-		   type="javaee:true-falseType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-             Indicates that template text containing only whitespaces
-             must be removed from the response output. It has no
-             effect on JSP documents (XML syntax). Disabled (false)
-             by default.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="taglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The taglibType defines the syntax for declaring in
-	the deployment descriptor that a tag library is
-	available to the application.  This can be done
-	to override implicit map entries from TLD files and
-	from the container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="taglib-uri"
-		   type="javaee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    A taglib-uri element describes a URI identifying a
-	    tag library used in the web application.  The body
-	    of the taglib-uri element may be either an
-	    absolute URI specification, or a relative URI.
-	    There should be no entries in web.xml with the
-	    same taglib-uri value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="taglib-location"
-		   type="javaee:pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    the taglib-location element contains the location
-	    (as a resource relative to the root of the web
-	    application) where to find the Tag Library
-	    Description file for the tag library.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/jsp_2_1.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/jsp_2_1.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.1">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)jsp_2_1.xsds	1.5 08/11/05
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2005 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      This is the XML Schema for the JSP 2.1 deployment descriptor
+      types.  The JSP 2.1 schema contains all the special
+      structures and datatypes that are necessary to use JSP files
+      from a web application.
+
+      The contents of this schema is used by the web-app_2_5.xsd
+      file to define JSP specific content.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-configType is used to provide global configuration
+	information for the JSP files in a web application. It has
+	two subelements, taglib and jsp-property-group.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib"
+		   type="javaee:taglibType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="jsp-property-group"
+		   type="javaee:jsp-property-groupType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-fileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-file element contains the full path to a JSP file
+	within the web application beginning with a `/'.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:pathType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jsp-property-groupType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jsp-property-groupType is used to group a number of
+	files so they can be given global property information.
+	All files so described are deemed to be JSP files.  The
+	following additional properties can be described:
+
+	    - Control whether EL is ignored.
+	    - Control whether scripting elements are invalid.
+	    - Indicate pageEncoding information.
+	    - Indicate that a resource is a JSP document (XML).
+	    - Prelude and Coda automatic includes.
+            - Control whether the character sequence #{ is allowed
+              when used as a String literal.
+            - Control whether template text containing only
+              whitespaces must be removed from the response output.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="url-pattern"
+		   type="javaee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="el-ignored"
+		   type="javaee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily set the isELIgnored
+	    property of a group of JSP pages.  By default, the
+	    EL evaluation is enabled for Web Applications using
+	    a Servlet 2.4 or greater web.xml, and disabled
+	    otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="page-encoding"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The valid values of page-encoding are those of the
+	    pageEncoding page directive.  It is a
+	    translation-time error to name different encodings
+	    in the pageEncoding attribute of the page directive
+	    of a JSP page and in a JSP configuration element
+	    matching the page.  It is also a translation-time
+	    error to name different encodings in the prolog
+	    or text declaration of a document in XML syntax and
+	    in a JSP configuration element matching the document.
+	    It is legal to name the same encoding through
+	    mulitple mechanisms.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scripting-invalid"
+		   type="javaee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Can be used to easily disable scripting in a
+	    group of JSP pages.  By default, scripting is
+	    enabled.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="is-xml"
+		   type="javaee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    If true, denotes that the group of resources
+	    that match the URL pattern are JSP documents,
+	    and thus must be interpreted as XML documents.
+	    If false, the resources are assumed to not
+	    be JSP documents, unless there is another
+	    property group that indicates otherwise.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-prelude"
+		   type="javaee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-prelude element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the beginning of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="include-coda"
+		   type="javaee:pathType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The include-coda element is a context-relative
+	    path that must correspond to an element in the
+	    Web Application.  When the element is present,
+	    the given path will be automatically included (as
+	    in an include directive) at the end of each
+	    JSP page in this jsp-property-group.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="deferred-syntax-allowed-as-literal"
+		   type="javaee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+             The character sequence #{ is reserved for EL expressions.
+             Consequently, a translation error occurs if the #{
+             character sequence is used as a String literal, unless
+             this element is enabled (true). Disabled (false) by
+             default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="trim-directive-whitespaces"
+		   type="javaee:true-falseType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+             Indicates that template text containing only whitespaces
+             must be removed from the response output. It has no
+             effect on JSP documents (XML syntax). Disabled (false)
+             by default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="taglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglibType defines the syntax for declaring in
+	the deployment descriptor that a tag library is
+	available to the application.  This can be done
+	to override implicit map entries from TLD files and
+	from the container.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="taglib-uri"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A taglib-uri element describes a URI identifying a
+	    tag library used in the web application.  The body
+	    of the taglib-uri element may be either an
+	    absolute URI specification, or a relative URI.
+	    There should be no entries in web.xml with the
+	    same taglib-uri value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="taglib-location"
+		   type="javaee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    the taglib-location element contains the location
+	    (as a resource relative to the root of the web
+	    application) where to find the Tag Library
+	    Description file for the tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,1148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://java.sun.com/xml/ns/j2ee" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.4">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)web-app_2_4.xsds	1.61 04/04/16
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-
-      Copyright 2003-2007 Sun Microsystems, Inc. All rights reserved.
-
-      The contents of this file are subject to the terms of either the
-      GNU General Public License Version 2 only ("GPL") or the Common
-      Development and Distribution License("CDDL") (collectively, the
-      "License").  You may not use this file except in compliance with
-      the License. You can obtain a copy of the License at
-      https://glassfish.dev.java.net/public/CDDL+GPL.html or
-      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
-      specific language governing permissions and limitations under the
-      License.
-
-      When distributing the software, include this License Header
-      Notice in each file and include the License file at
-      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
-      particular file as subject to the "Classpath" exception as
-      provided by Sun in the GPL Version 2 section of the License file
-      that accompanied this code.  If applicable, add the following
-      below the License Header, with the fields enclosed by brackets []
-      replaced by your own identifying information:
-      "Portions Copyrighted [year] [name of copyright owner]"
-
-      Contributor(s):
-
-      If you wish your version of this file to be governed by only the
-      CDDL or only the GPL Version 2, indicate your decision by adding
-      "[Contributor] elects to include this software in this
-      distribution under the [CDDL or GPL Version 2] license."  If you
-      don't indicate a single choice of license, a recipient has the
-      option to distribute your version of this file under either the
-      CDDL, the GPL Version 2 or to extend the choice of license to its
-      licensees as provided above.  However, if you add GPL Version 2
-      code and therefore, elected the GPL Version 2 license, then the
-      option applies only if the new code is made subject to such
-      option by the copyright holder.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-      <![CDATA[
-
-	This is the XML Schema for the Servlet 2.4 deployment descriptor.
-	The deployment descriptor must be named "WEB-INF/web.xml" in the
-	web application's war file.  All Servlet deployment descriptors
-	must indicate the web application schema by using the J2EE
-	namespace:
-
-	http://java.sun.com/xml/ns/j2ee
-
-	and by indicating the version of the schema by
-	using the version element as shown below:
-
-	    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
-	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	      xsi:schemaLocation="..."
-	      version="2.4">
-	      ...
-	    </web-app>
-
-	The instance documents may indicate the published version of
-	the schema using the xsi:schemaLocation attribute for J2EE
-	namespace with the following location:
-
-	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
-
-	]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all J2EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-  <xsd:include schemaLocation="jsp_2_0.xsd"/>
-
-
-<!-- **************************************************** -->
-
-
-  <xsd:element name="web-app" type="j2ee:web-appType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-app element is the root of the deployment
-	descriptor for a web application.  Note that the sub-elements
-	of this element can be in the arbitrary order. Because of
-	that, the multiplicity of the elements of distributable,
-	session-config, welcome-file-list, jsp-config, login-config,
-	and locale-encoding-mapping-list was changed from "?" to "*"
-	in this schema.  However, the deployment descriptor instance
-	file must not contain multiple elements of session-config,
-	jsp-config, and login-config. When there are multiple elements of
-	welcome-file-list or locale-encoding-mapping-list, the container
-	must concatinate the element contents.  The multiple occurance
-	of the element distributable is redundant and the container
-	treats that case exactly in the same way when there is only
-	one distributable.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:unique name="web-app-servlet-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The servlet element contains the name of a servlet.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:servlet"/>
-      <xsd:field xpath="j2ee:servlet-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-filter-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The filter element contains the name of a filter.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:filter"/>
-      <xsd:field xpath="j2ee:filter-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-local-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:ejb-local-ref"/>
-      <xsd:field xpath="j2ee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:ejb-ref"/>
-      <xsd:field xpath="j2ee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-resource-env-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The resource-env-ref-name element specifies the name of
-	  a resource environment reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:resource-env-ref"/>
-      <xsd:field xpath="j2ee:resource-env-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-message-destination-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The message-destination-ref-name element specifies the name of
-	  a message destination reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:message-destination-ref"/>
-      <xsd:field xpath="j2ee:message-destination-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-res-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The res-ref-name element specifies the name of a
-	  resource manager connection factory reference.  The name
-	  is a JNDI name relative to the java:comp/env context.
-	  The name must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:resource-ref"/>
-      <xsd:field xpath="j2ee:res-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-env-entry-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The env-entry-name element contains the name of a web
-	  application's environment entry.  The name is a JNDI
-	  name relative to the java:comp/env context.  The name
-	  must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:selector xpath="j2ee:env-entry"/>
-      <xsd:field xpath="j2ee:env-entry-name"/>
-    </xsd:unique>
-
-    <xsd:key name="web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  A role-name-key is specified to allow the references
-	  from the security-role-refs.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:security-role"/>
-      <xsd:field xpath="j2ee:role-name"/>
-    </xsd:key>
-
-    <xsd:keyref name="web-app-role-name-references" refer="j2ee:web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The keyref indicates the references from
-	  security-role-ref to a specified role-name.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:servlet/j2ee:security-role-ref"/>
-      <xsd:field xpath="j2ee:role-link"/>
-    </xsd:keyref>
-  </xsd:element>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-constraintType indicates the user roles that
-	should be permitted access to this resource
-	collection. The role-name used here must either correspond
-	to the role-name of one of the security-role elements
-	defined for this web application, or be the specially
-	reserved role-name "*" that is a compact syntax for
-	indicating all roles in the web application. If both "*"
-	and rolenames appear, the container interprets this as all
-	roles.  If no roles are defined, no user is allowed access
-	to the portion of the web application described by the
-	containing security-constraint.  The container matches
-	role names case sensitively when determining access.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="role-name" type="j2ee:role-nameType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-methodType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-methodType is used to configure the authentication
-	mechanism for the web application. As a prerequisite to
-	gaining access to any web resources which are protected by
-	an authorization constraint, a user must have authenticated
-	using the configured mechanism. Legal values are "BASIC",
-	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
-	authentication scheme.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="dispatcherType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
-	and ERROR. A value of FORWARD means the Filter will be applied
-	under RequestDispatcher.forward() calls.  A value of REQUEST
-	means the Filter will be applied under ordinary client calls to
-	the path or servlet. A value of INCLUDE means the Filter will be
-	applied under RequestDispatcher.include() calls.  A value of
-	ERROR means the Filter will be applied under the error page
-	mechanism.  The absence of any dispatcher elements in a
-	filter-mapping indicates a default of applying filters only under
-	ordinary client calls to the path or servlet.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="FORWARD"/>
-	<xsd:enumeration value="INCLUDE"/>
-	<xsd:enumeration value="REQUEST"/>
-	<xsd:enumeration value="ERROR"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="encodingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The encodingType defines IANA character sets.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[^\s]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-codeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-code contains an HTTP error code, ex: 404
-
-	Used in: error-page
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:xsdPositiveIntegerType">
-	<xsd:pattern value="\d{3}"/>
-	<xsd:attribute name="id" type="xsd:ID"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-pageType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-pageType contains a mapping between an error code
-	or exception type to the path of a resource in the web
-	application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:choice>
-	<xsd:element name="error-code" type="j2ee:error-codeType"/>
-
-	<xsd:element name="exception-type" type="j2ee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The exception-type contains a fully qualified class
-	      name of a Java exception type.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-      </xsd:choice>
-
-      <xsd:element name="location" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The location element contains the location of the
-	    resource in the web application relative to the root of
-	    the web application. The value of the location must have
-	    a leading `/'.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	Declaration of the filter mappings in this web
-	application is done by using filter-mappingType.
-	The container uses the filter-mapping
-	declarations to decide which filters to apply to a request,
-	and in what order. The container matches the request URI to
-	a Servlet in the normal way. To determine which filters to
-	apply it matches filter-mapping declarations either on
-	servlet-name, or on url-pattern for each filter-mapping
-	element, depending on which style is used. The order in
-	which filters are invoked is the order in which
-	filter-mapping declarations that match a request URI for a
-	servlet appear in the list of filter-mapping elements.The
-	filter-name value must be the value of the filter-name
-	sub-elements of one of the filter declarations in the
-	deployment descriptor.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="filter-name" type="j2ee:filter-nameType"/>
-      <xsd:choice>
-	<xsd:element name="url-pattern" type="j2ee:url-patternType"/>
-	<xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      </xsd:choice>
-      <xsd:element name="dispatcher" type="j2ee:dispatcherType" minOccurs="0" maxOccurs="4"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The logical name of the filter is declare
-	by using filter-nameType. This name is used to map the
-	filter.  Each filter name is unique within the web
-	application.
-
-	Used in: filter, filter-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="j2ee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filterType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The filterType is used to declare a filter in the web
-	application. The filter is mapped to either a servlet or a
-	URL pattern in the filter-mapping element, using the
-	filter-name value to reference. Filters can access the
-	initialization parameters declared in the deployment
-	descriptor at runtime via the FilterConfig interface.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="filter-name" type="j2ee:filter-nameType"/>
-      <xsd:element name="filter-class" type="j2ee:fully-qualified-classType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The fully qualified classname of the filter.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="init-param" type="j2ee:param-valueType" minOccurs="0" maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The init-param element contains a name/value pair as
-	    an initialization param of a servlet filter
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="form-login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The form-login-configType specifies the login and error
-	pages that should be used in form based login. If form based
-	authentication is not used, these elements are ignored.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-
-      <xsd:element name="form-login-page" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-login-page element defines the location in the web
-	    app where the page that can be used for login can be
-	    found.  The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="form-error-page" type="j2ee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-error-page element defines the location in
-	    the web app where the error page that is displayed
-	    when login is not successful can be found.
-	    The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="http-methodType">
-    <xsd:annotation>
-
-      <xsd:documentation>
-
-	The http-method contains an HTTP method recognized by the
-	web-app, for example GET, POST, ...
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="GET"/>
-	<xsd:enumeration value="POST"/>
-	<xsd:enumeration value="PUT"/>
-	<xsd:enumeration value="DELETE"/>
-	<xsd:enumeration value="HEAD"/>
-	<xsd:enumeration value="OPTIONS"/>
-	<xsd:enumeration value="TRACE"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mapping-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping-list contains one or more
-	locale-encoding-mapping(s).
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale-encoding-mapping" type="j2ee:locale-encoding-mappingType" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping contains locale name and
-	encoding name. The locale name must be either "Language-code",
-	such as "ja", defined by ISO-639 or "Language-code_Country-code",
-	such as "ja_JP".  "Country code" is defined by ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale" type="j2ee:localeType"/>
-      <xsd:element name="encoding" type="j2ee:encodingType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="localeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The localeType defines valid locale defined by ISO-639-1
-	and ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The login-configType is used to configure the authentication
-	method that should be used, the realm name that should be
-	used for this application, and the attributes that are
-	needed by the form login mechanism.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="auth-method" type="j2ee:auth-methodType" minOccurs="0"/>
-      <xsd:element name="realm-name" type="j2ee:string" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The realm name element specifies the realm name to
-	    use in HTTP Basic authorization.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="form-login-config" type="j2ee:form-login-configType" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-mappingType defines a mapping between an extension
-	and a mime type.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The extension element contains a string describing an
-	  extension. example: "txt"
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:element name="extension" type="j2ee:string"/>
-      <xsd:element name="mime-type" type="j2ee:mime-typeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-typeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-typeType is used to indicate a defined mime type.
-
-	Example:
-	"text/plain"
-
-	Used in: mime-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="nonEmptyStringType">
-    <xsd:annotation>
-      <xsd:documentation>
-	This type defines a string which contains at least one
-	character.
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:minLength value="1"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="security-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The security-constraintType is used to associate
-	security constraints with one or more web resource
-	collections
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="display-name" type="j2ee:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="web-resource-collection" type="j2ee:web-resource-collectionType" maxOccurs="unbounded"/>
-      <xsd:element name="auth-constraint" type="j2ee:auth-constraintType" minOccurs="0"/>
-      <xsd:element name="user-data-constraint" type="j2ee:user-data-constraintType" minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-mappingType defines a mapping between a
-	servlet and a url pattern.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      <xsd:element name="url-pattern" type="j2ee:url-patternType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-name element contains the canonical name of the
-	servlet. Each servlet name is unique within the web
-	application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="j2ee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servletType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servletType is used to declare a servlet.
-	It contains the declarative data of a
-	servlet. If a jsp-file is specified and the load-on-startup
-	element is present, then the JSP should be precompiled and
-	loaded.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="servlet-name" type="j2ee:servlet-nameType"/>
-      <xsd:choice>
-	<xsd:element name="servlet-class" type="j2ee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The servlet-class element contains the fully
-	      qualified class name of the servlet.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-
-	<xsd:element name="jsp-file" type="j2ee:jsp-fileType"/>
-
-      </xsd:choice>
-
-      <xsd:element name="init-param" type="j2ee:param-valueType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="load-on-startup" type="j2ee:xsdIntegerType" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The load-on-startup element indicates that this
-	    servlet should be loaded (instantiated and have
-	    its init() called) on the startup of the web
-	    application. The optional contents of these
-	    element must be an integer indicating the order in
-	    which the servlet should be loaded. If the value
-	    is a negative integer, or the element is not
-	    present, the container is free to load the servlet
-	    whenever it chooses. If the value is a positive
-	    integer or 0, the container must load and
-	    initialize the servlet as the application is
-	    deployed. The container must guarantee that
-	    servlets marked with lower integers are loaded
-	    before servlets marked with higher integers. The
-	    container may choose the order of loading of
-	    servlets with the same load-on-start-up value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="run-as" type="j2ee:run-asType" minOccurs="0"/>
-      <xsd:element name="security-role-ref" type="j2ee:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="session-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The session-configType defines the session parameters
-	for this web application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="session-timeout" type="j2ee:xsdIntegerType" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The session-timeout element defines the default
-	    session timeout interval for all sessions created
-	    in this web application. The specified timeout
-	    must be expressed in a whole number of minutes.
-	    If the timeout is 0 or less, the container ensures
-	    the default behaviour of sessions is never to time
-	    out. If this element is not specified, the container
-	    must set its default timeout period.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="transport-guaranteeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The transport-guaranteeType specifies that the communication
-	between client and server should be NONE, INTEGRAL, or
-	CONFIDENTIAL. NONE means that the application does not
-	require any transport guarantees. A value of INTEGRAL means
-	that the application requires that the data sent between the
-	client and server be sent in such a way that it can't be
-	changed in transit. CONFIDENTIAL means that the application
-	requires that the data be transmitted in a fashion that
-	prevents other entities from observing the contents of the
-	transmission. In most cases, the presence of the INTEGRAL or
-	CONFIDENTIAL flag will indicate that the use of SSL is
-	required.
-
-	Used in: user-data-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:enumeration value="NONE"/>
-	<xsd:enumeration value="INTEGRAL"/>
-	<xsd:enumeration value="CONFIDENTIAL"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="user-data-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The user-data-constraintType is used to indicate how
-	data communicated between the client and container should be
-	protected.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="transport-guarantee" type="j2ee:transport-guaranteeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="war-pathType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The elements that use this type designate a path starting
-	with a "/" and interpreted relative to the root of a WAR
-	file.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-	<xsd:pattern value="/.*"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="web-app-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	This type contains the recognized versions of
-	web-application supported. It is used to designate the
-	version of the web application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="2.4"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-appType">
-
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="distributable" type="j2ee:emptyType"/>
-      <xsd:element name="context-param" type="j2ee:param-valueType">
-
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The context-param element contains the declaration
-	    of a web application's servlet context
-	    initialization parameters.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="filter" type="j2ee:filterType"/>
-      <xsd:element name="filter-mapping" type="j2ee:filter-mappingType"/>
-      <xsd:element name="listener" type="j2ee:listenerType"/>
-      <xsd:element name="servlet" type="j2ee:servletType"/>
-      <xsd:element name="servlet-mapping" type="j2ee:servlet-mappingType"/>
-      <xsd:element name="session-config" type="j2ee:session-configType"/>
-      <xsd:element name="mime-mapping" type="j2ee:mime-mappingType"/>
-      <xsd:element name="welcome-file-list" type="j2ee:welcome-file-listType"/>
-      <xsd:element name="error-page" type="j2ee:error-pageType"/>
-      <xsd:element name="jsp-config" type="j2ee:jsp-configType"/>
-      <xsd:element name="security-constraint" type="j2ee:security-constraintType"/>
-      <xsd:element name="login-config" type="j2ee:login-configType"/>
-      <xsd:element name="security-role" type="j2ee:security-roleType"/>
-      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
-      <xsd:element name="message-destination" type="j2ee:message-destinationType"/>
-      <xsd:element name="locale-encoding-mapping-list" type="j2ee:locale-encoding-mapping-listType"/>
-    </xsd:choice>
-
-    <xsd:attribute name="version" type="j2ee:web-app-versionType" use="required"/>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-resource-collectionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-resource-collectionType is used to identify a subset
-	of the resources and HTTP methods on those resources within
-	a web application to which a security constraint applies. If
-	no HTTP methods are specified, then the security constraint
-	applies to all HTTP methods.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="web-resource-name" type="j2ee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The web-resource-name contains the name of this web
-	    resource collection.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="url-pattern" type="j2ee:url-patternType" maxOccurs="unbounded"/>
-      <xsd:element name="http-method" type="j2ee:http-methodType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="welcome-file-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The welcome-file-list contains an ordered list of welcome
-	files elements.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="welcome-file" type="xsd:string" maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The welcome-file element contains file name to use
-	    as a default welcome file, such as index.html
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
\ No newline at end of file

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/web-app_2_4.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_4.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,1234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.4">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-app_2_4.xsds	1.60 03/08/26
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2004 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the Servlet 2.4 deployment descriptor.
+	The deployment descriptor must be named "WEB-INF/web.xml" in the
+	web application's war file.  All Servlet deployment descriptors
+	must indicate the web application schema by using the J2EE
+	namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.4">
+	      ...
+	    </web-app>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for J2EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+  <xsd:include schemaLocation="jsp_2_0.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="web-app" type="j2ee:web-appType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-app element is the root of the deployment
+	descriptor for a web application.  Note that the sub-elements
+	of this element can be in the arbitrary order. Because of
+	that, the multiplicity of the elements of distributable,
+	session-config, welcome-file-list, jsp-config, login-config,
+	and locale-encoding-mapping-list was changed from "?" to "*"
+	in this schema.  However, the deployment descriptor instance
+	file must not contain multiple elements of session-config,
+	jsp-config, and login-config. When there are multiple elements of
+	welcome-file-list or locale-encoding-mapping-list, the container
+	must concatinate the element contents.  The multiple occurance
+	of the element distributable is redundant and the container
+	treats that case exactly in the same way when there is only
+	one distributable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="web-app-servlet-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The servlet element contains the name of a servlet.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:servlet"/>
+      <xsd:field    xpath="j2ee:servlet-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-filter-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The filter element contains the name of a filter.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:filter"/>
+      <xsd:field    xpath="j2ee:filter-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-local-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:ejb-local-ref"/>
+      <xsd:field    xpath="j2ee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:ejb-ref"/>
+      <xsd:field    xpath="j2ee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-env-ref"/>
+      <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the name of
+	  a message destination reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:message-destination-ref"/>
+      <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The res-ref-name element specifies the name of a
+	  resource manager connection factory reference.  The name
+	  is a JNDI name relative to the java:comp/env context.
+	  The name must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-ref"/>
+      <xsd:field    xpath="j2ee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of a web
+	  application's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name
+	  must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:selector xpath="j2ee:env-entry"/>
+      <xsd:field    xpath="j2ee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:key name="web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:security-role"/>
+      <xsd:field    xpath="j2ee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="web-app-role-name-references"
+		refer="j2ee:web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:servlet/j2ee:security-role-ref"/>
+      <xsd:field    xpath="j2ee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-constraintType indicates the user roles that
+	should be permitted access to this resource
+	collection. The role-name used here must either correspond
+	to the role-name of one of the security-role elements
+	defined for this web application, or be the specially
+	reserved role-name "*" that is a compact syntax for
+	indicating all roles in the web application. If both "*"
+	and rolenames appear, the container interprets this as all
+	roles.  If no roles are defined, no user is allowed access
+	to the portion of the web application described by the
+	containing security-constraint.  The container matches
+	role names case sensitively when determining access.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="role-name"
+		   type="j2ee:role-nameType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-methodType is used to configure the authentication
+	mechanism for the web application. As a prerequisite to
+	gaining access to any web resources which are protected by
+	an authorization constraint, a user must have authenticated
+	using the configured mechanism. Legal values are "BASIC",
+	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+	authentication scheme.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="dispatcherType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
+	and ERROR. A value of FORWARD means the Filter will be applied
+	under RequestDispatcher.forward() calls.  A value of REQUEST
+	means the Filter will be applied under ordinary client calls to
+	the path or servlet. A value of INCLUDE means the Filter will be
+	applied under RequestDispatcher.include() calls.  A value of
+	ERROR means the Filter will be applied under the error page
+	mechanism.  The absence of any dispatcher elements in a
+	filter-mapping indicates a default of applying filters only under
+	ordinary client calls to the path or servlet.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="FORWARD"/>
+	<xsd:enumeration value="INCLUDE"/>
+	<xsd:enumeration value="REQUEST"/>
+	<xsd:enumeration value="ERROR"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="encodingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The encodingType defines IANA character sets.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[^\s]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-codeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-code contains an HTTP error code, ex: 404
+
+	Used in: error-page
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdPositiveIntegerType">
+	<xsd:pattern value="\d{3}"/>
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-pageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-pageType contains a mapping between an error code
+	or exception type to the path of a resource in the web
+	application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="error-code"
+		     type="j2ee:error-codeType"/>
+
+	<xsd:element name="exception-type"
+		     type="j2ee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The exception-type contains a fully qualified class
+	      name of a Java exception type.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+
+      <xsd:element name="location"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The location element contains the location of the
+	    resource in the web application relative to the root of
+	    the web application. The value of the location must have
+	    a leading `/'.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Declaration of the filter mappings in this web
+	application is done by using filter-mappingType.
+	The container uses the filter-mapping
+	declarations to decide which filters to apply to a request,
+	and in what order. The container matches the request URI to
+	a Servlet in the normal way. To determine which filters to
+	apply it matches filter-mapping declarations either on
+	servlet-name, or on url-pattern for each filter-mapping
+	element, depending on which style is used. The order in
+	which filters are invoked is the order in which
+	filter-mapping declarations that match a request URI for a
+	servlet appear in the list of filter-mapping elements.The
+	filter-name value must be the value of the filter-name
+	sub-elements of one of the filter declarations in the
+	deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="filter-name"
+		   type="j2ee:filter-nameType"/>
+      <xsd:choice>
+	<xsd:element name="url-pattern"
+		     type="j2ee:url-patternType"/>
+	<xsd:element name="servlet-name"
+		     type="j2ee:servlet-nameType"/>
+      </xsd:choice>
+      <xsd:element name="dispatcher"
+		   type="j2ee:dispatcherType"
+		   minOccurs="0" maxOccurs="4"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The logical name of the filter is declare
+	by using filter-nameType. This name is used to map the
+	filter.  Each filter name is unique within the web
+	application.
+
+	Used in: filter, filter-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filterType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The filterType is used to declare a filter in the web
+	application. The filter is mapped to either a servlet or a
+	URL pattern in the filter-mapping element, using the
+	filter-name value to reference. Filters can access the
+	initialization parameters declared in the deployment
+	descriptor at runtime via the FilterConfig interface.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="filter-name"
+		   type="j2ee:filter-nameType"/>
+      <xsd:element name="filter-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The fully qualified classname of the filter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as
+	    an initialization param of a servlet filter
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="form-login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The form-login-configType specifies the login and error
+	pages that should be used in form based login. If form based
+	authentication is not used, these elements are ignored.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:element name="form-login-page"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-login-page element defines the location in the web
+	    app where the page that can be used for login can be
+	    found.  The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="form-error-page"
+		   type="j2ee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-error-page element defines the location in
+	    the web app where the error page that is displayed
+	    when login is not successful can be found.
+	    The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="http-methodType">
+    <xsd:annotation>
+
+      <xsd:documentation>
+
+	The http-method contains an HTTP method recognized by the
+	web-app, for example GET, POST, ...
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="GET"/>
+	<xsd:enumeration value="POST"/>
+	<xsd:enumeration value="PUT"/>
+	<xsd:enumeration value="DELETE"/>
+	<xsd:enumeration value="HEAD"/>
+	<xsd:enumeration value="OPTIONS"/>
+	<xsd:enumeration value="TRACE"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mapping-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping-list contains one or more
+	locale-encoding-mapping(s).
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale-encoding-mapping"
+		   type="j2ee:locale-encoding-mappingType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping contains locale name and
+	encoding name. The locale name must be either "Language-code",
+	such as "ja", defined by ISO-639 or "Language-code_Country-code",
+	such as "ja_JP".  "Country code" is defined by ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale"
+		   type="j2ee:localeType"/>
+      <xsd:element name="encoding"
+		   type="j2ee:encodingType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="localeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The localeType defines valid locale defined by ISO-639-1
+	and ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The login-configType is used to configure the authentication
+	method that should be used, the realm name that should be
+	used for this application, and the attributes that are
+	needed by the form login mechanism.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="auth-method"
+		   type="j2ee:auth-methodType"
+		   minOccurs="0"/>
+      <xsd:element name="realm-name"
+		   type="j2ee:string" minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The realm name element specifies the realm name to
+	    use in HTTP Basic authorization.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="form-login-config"
+		   type="j2ee:form-login-configType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-mappingType defines a mapping between an extension
+	and a mime type.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The extension element contains a string describing an
+	  extension. example: "txt"
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:element name="extension"
+		   type="j2ee:string"/>
+      <xsd:element name="mime-type"
+		   type="j2ee:mime-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-typeType is used to indicate a defined mime type.
+
+	Example:
+	"text/plain"
+
+	Used in: mime-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+        <xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="nonEmptyStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+	This type defines a string which contains at least one
+	character.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:minLength value="1"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-constraintType is used to associate
+	security constraints with one or more web resource
+	collections
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="display-name"
+		   type="j2ee:display-nameType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="web-resource-collection"
+		   type="j2ee:web-resource-collectionType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="auth-constraint"
+		   type="j2ee:auth-constraintType"
+		   minOccurs="0"/>
+      <xsd:element name="user-data-constraint"
+		   type="j2ee:user-data-constraintType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-mappingType defines a mapping between a
+	servlet and a url pattern.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="servlet-name"
+		   type="j2ee:servlet-nameType"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-name element contains the canonical name of the
+	servlet. Each servlet name is unique within the web
+	application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="j2ee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servletType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servletType is used to declare a servlet.
+	It contains the declarative data of a
+	servlet. If a jsp-file is specified and the load-on-startup
+	element is present, then the JSP should be precompiled and
+	loaded.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="servlet-name"
+		   type="j2ee:servlet-nameType"/>
+      <xsd:choice>
+	<xsd:element name="servlet-class"
+		     type="j2ee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The servlet-class element contains the fully
+	      qualified class name of the servlet.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="jsp-file"
+		     type="j2ee:jsp-fileType"/>
+
+      </xsd:choice>
+
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="load-on-startup"
+		   type="j2ee:xsdIntegerType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The load-on-startup element indicates that this
+	    servlet should be loaded (instantiated and have
+	    its init() called) on the startup of the web
+	    application. The optional contents of these
+	    element must be an integer indicating the order in
+	    which the servlet should be loaded. If the value
+	    is a negative integer, or the element is not
+	    present, the container is free to load the servlet
+	    whenever it chooses. If the value is a positive
+	    integer or 0, the container must load and
+	    initialize the servlet as the application is
+	    deployed. The container must guarantee that
+	    servlets marked with lower integers are loaded
+	    before servlets marked with higher integers. The
+	    container may choose the order of loading of
+	    servlets with the same load-on-start-up value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="run-as"
+		   type="j2ee:run-asType"
+		   minOccurs="0"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-configType defines the session parameters
+	for this web application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="session-timeout"
+		   type="j2ee:xsdIntegerType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The session-timeout element defines the default
+	    session timeout interval for all sessions created
+	    in this web application. The specified timeout
+	    must be expressed in a whole number of minutes.
+	    If the timeout is 0 or less, the container ensures
+	    the default behaviour of sessions is never to time
+	    out. If this element is not specified, the container
+	    must set its default timeout period.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transport-guaranteeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transport-guaranteeType specifies that the communication
+	between client and server should be NONE, INTEGRAL, or
+	CONFIDENTIAL. NONE means that the application does not
+	require any transport guarantees. A value of INTEGRAL means
+	that the application requires that the data sent between the
+	client and server be sent in such a way that it can't be
+	changed in transit. CONFIDENTIAL means that the application
+	requires that the data be transmitted in a fashion that
+	prevents other entities from observing the contents of the
+	transmission. In most cases, the presence of the INTEGRAL or
+	CONFIDENTIAL flag will indicate that the use of SSL is
+	required.
+
+	Used in: user-data-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NONE"/>
+	<xsd:enumeration value="INTEGRAL"/>
+	<xsd:enumeration value="CONFIDENTIAL"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="user-data-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The user-data-constraintType is used to indicate how
+	data communicated between the client and container should be
+	protected.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="transport-guarantee"
+		   type="j2ee:transport-guaranteeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="war-pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The elements that use this type designate a path starting
+	with a "/" and interpreted relative to the root of a WAR
+	file.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:pattern value="/.*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="web-app-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type contains the recognized versions of
+	web-application supported. It is used to designate the
+	version of the web application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="2.4"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-appType">
+
+    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="distributable"
+		   type="j2ee:emptyType"/>
+      <xsd:element name="context-param"
+		   type="j2ee:param-valueType">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-param element contains the declaration
+	    of a web application's servlet context
+	    initialization parameters.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="filter"
+		   type="j2ee:filterType"/>
+      <xsd:element name="filter-mapping"
+		   type="j2ee:filter-mappingType"/>
+      <xsd:element name="listener"
+		   type="j2ee:listenerType"/>
+      <xsd:element name="servlet"
+		   type="j2ee:servletType"/>
+      <xsd:element name="servlet-mapping"
+		   type="j2ee:servlet-mappingType"/>
+      <xsd:element name="session-config"
+		   type="j2ee:session-configType"/>
+      <xsd:element name="mime-mapping"
+		   type="j2ee:mime-mappingType"/>
+      <xsd:element name="welcome-file-list"
+		   type="j2ee:welcome-file-listType"/>
+      <xsd:element name="error-page"
+		   type="j2ee:error-pageType"/>
+      <xsd:element name="jsp-config"
+		   type="j2ee:jsp-configType"/>
+      <xsd:element name="security-constraint"
+		   type="j2ee:security-constraintType"/>
+      <xsd:element name="login-config"
+		   type="j2ee:login-configType"/>
+      <xsd:element name="security-role"
+		   type="j2ee:security-roleType"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="message-destination"
+		   type="j2ee:message-destinationType"/>
+      <xsd:element name="locale-encoding-mapping-list"
+		   type="j2ee:locale-encoding-mapping-listType"/>
+    </xsd:choice>
+
+    <xsd:attribute name="version"
+		   type="j2ee:web-app-versionType"
+		   use="required"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-resource-collectionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-resource-collectionType is used to identify a subset
+	of the resources and HTTP methods on those resources within
+	a web application to which a security constraint applies. If
+	no HTTP methods are specified, then the security constraint
+	applies to all HTTP methods.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="web-resource-name"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-resource-name contains the name of this web
+	    resource collection.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="url-pattern"
+		   type="j2ee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="http-method"
+		   type="j2ee:http-methodType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="welcome-file-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The welcome-file-list contains an ordered list of welcome
+	files elements.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="welcome-file"
+		   type="xsd:string"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The welcome-file element contains file name to use
+	    as a default welcome file, such as index.html
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,1268 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-	    targetNamespace="http://java.sun.com/xml/ns/javaee"
-	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
-	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-	    elementFormDefault="qualified"
-	    attributeFormDefault="unqualified"
-	    version="2.5">
-  <xsd:annotation>
-    <xsd:documentation>
-      @(#)web-app_2_5.xsds	1.62 05/08/06
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      Copyright 2003-2006 Sun Microsystems, Inc.
-      4150 Network Circle
-      Santa Clara, California 95054
-      U.S.A
-      All rights reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-      <![CDATA[
-
-	This is the XML Schema for the Servlet 2.5 deployment descriptor.
-	The deployment descriptor must be named "WEB-INF/web.xml" in the
-	web application's war file.  All Servlet deployment descriptors
-	must indicate the web application schema by using the Java EE
-	namespace:
-
-	http://java.sun.com/xml/ns/javaee
-
-	and by indicating the version of the schema by
-	using the version element as shown below:
-
-	    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
-	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	      xsi:schemaLocation="..."
-	      version="2.5">
-	      ...
-	    </web-app>
-
-	The instance documents may indicate the published version of
-	the schema using the xsi:schemaLocation attribute for Java EE
-	namespace with the following location:
-
-	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
-
-	]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all Java EE
-      deployment descriptor elements unless indicated otherwise.
-
-      - In elements that specify a pathname to a file within the
-	same JAR file, relative filenames (i.e., those not
-	starting with "/") are considered relative to the root of
-	the JAR file's namespace.  Absolute filenames (i.e., those
-	starting with "/") also specify names in the root of the
-	JAR file's namespace.  In general, relative names are
-	preferred.  The exception is .war files where absolute
-	names are preferred for consistency with the Servlet API.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="javaee_5.xsd"/>
-  <xsd:include schemaLocation="jsp_2_1.xsd"/>
-
-
-<!-- **************************************************** -->
-
-  <xsd:element name="web-app" type="javaee:web-appType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-app element is the root of the deployment
-	descriptor for a web application.  Note that the sub-elements
-	of this element can be in the arbitrary order. Because of
-	that, the multiplicity of the elements of distributable,
-	session-config, welcome-file-list, jsp-config, login-config,
-	and locale-encoding-mapping-list was changed from "?" to "*"
-	in this schema.  However, the deployment descriptor instance
-	file must not contain multiple elements of session-config,
-	jsp-config, and login-config. When there are multiple elements of
-	welcome-file-list or locale-encoding-mapping-list, the container
-	must concatenate the element contents.  The multiple occurence
-	of the element distributable is redundant and the container
-	treats that case exactly in the same way when there is only
-	one distributable.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:unique name="web-app-servlet-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The servlet element contains the name of a servlet.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:servlet"/>
-      <xsd:field    xpath="javaee:servlet-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-filter-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The filter element contains the name of a filter.
-	  The name must be unique within the web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:filter"/>
-      <xsd:field    xpath="javaee:filter-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-local-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:ejb-local-ref"/>
-      <xsd:field    xpath="javaee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The ejb-ref-name element contains the name of an EJB
-	  reference. The EJB reference is an entry in the web
-	  application's environment and is relative to the
-	  java:comp/env context.  The name must be unique within
-	  the web application.
-
-	  It is recommended that name is prefixed with "ejb/".
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:ejb-ref"/>
-      <xsd:field    xpath="javaee:ejb-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-resource-env-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The resource-env-ref-name element specifies the name of
-	  a resource environment reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:resource-env-ref"/>
-      <xsd:field    xpath="javaee:resource-env-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-message-destination-ref-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The message-destination-ref-name element specifies the name of
-	  a message destination reference; its value is the
-	  environment entry name used in the web application code.
-	  The name is a JNDI name relative to the java:comp/env
-	  context and must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:message-destination-ref"/>
-      <xsd:field    xpath="javaee:message-destination-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-res-ref-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The res-ref-name element specifies the name of a
-	  resource manager connection factory reference.  The name
-	  is a JNDI name relative to the java:comp/env context.
-	  The name must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:resource-ref"/>
-      <xsd:field    xpath="javaee:res-ref-name"/>
-    </xsd:unique>
-
-    <xsd:unique name="web-app-env-entry-name-uniqueness">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The env-entry-name element contains the name of a web
-	  application's environment entry.  The name is a JNDI
-	  name relative to the java:comp/env context.  The name
-	  must be unique within a web application.
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:selector xpath="javaee:env-entry"/>
-      <xsd:field    xpath="javaee:env-entry-name"/>
-    </xsd:unique>
-
-    <xsd:key name="web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  A role-name-key is specified to allow the references
-	  from the security-role-refs.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:security-role"/>
-      <xsd:field    xpath="javaee:role-name"/>
-    </xsd:key>
-
-    <xsd:keyref name="web-app-role-name-references"
-		refer="javaee:web-app-role-name-key">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The keyref indicates the references from
-	  security-role-ref to a specified role-name.
-
-	</xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="javaee:servlet/javaee:security-role-ref"/>
-      <xsd:field    xpath="javaee:role-link"/>
-    </xsd:keyref>
-  </xsd:element>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-constraintType indicates the user roles that
-	should be permitted access to this resource
-	collection. The role-name used here must either correspond
-	to the role-name of one of the security-role elements
-	defined for this web application, or be the specially
-	reserved role-name "*" that is a compact syntax for
-	indicating all roles in the web application. If both "*"
-	and rolenames appear, the container interprets this as all
-	roles.  If no roles are defined, no user is allowed access
-	to the portion of the web application described by the
-	containing security-constraint.  The container matches
-	role names case sensitively when determining access.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-		   type="javaee:descriptionType"
-		   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="role-name"
-		   type="javaee:role-nameType"
-		   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-methodType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The auth-methodType is used to configure the authentication
-	mechanism for the web application. As a prerequisite to
-	gaining access to any web resources which are protected by
-	an authorization constraint, a user must have authenticated
-	using the configured mechanism. Legal values are "BASIC",
-	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
-	authentication scheme.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="dispatcherType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
-	and ERROR. A value of FORWARD means the Filter will be applied
-	under RequestDispatcher.forward() calls.  A value of REQUEST
-	means the Filter will be applied under ordinary client calls to
-	the path or servlet. A value of INCLUDE means the Filter will be
-	applied under RequestDispatcher.include() calls.  A value of
-	ERROR means the Filter will be applied under the error page
-	mechanism.  The absence of any dispatcher elements in a
-	filter-mapping indicates a default of applying filters only under
-	ordinary client calls to the path or servlet.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-	<xsd:enumeration value="FORWARD"/>
-	<xsd:enumeration value="INCLUDE"/>
-	<xsd:enumeration value="REQUEST"/>
-	<xsd:enumeration value="ERROR"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="encodingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The encodingType defines IANA character sets.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[^\s]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-codeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-code contains an HTTP error code, ex: 404
-
-	Used in: error-page
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:xsdPositiveIntegerType">
-	<xsd:pattern value="\d{3}"/>
-	<xsd:attribute name="id" type="xsd:ID"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-pageType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The error-pageType contains a mapping between an error code
-	or exception type to the path of a resource in the web
-	application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:choice>
-	<xsd:element name="error-code"
-		     type="javaee:error-codeType"/>
-
-	<xsd:element name="exception-type"
-		     type="javaee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The exception-type contains a fully qualified class
-	      name of a Java exception type.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-      </xsd:choice>
-
-      <xsd:element name="location"
-		   type="javaee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The location element contains the location of the
-	    resource in the web application relative to the root of
-	    the web application. The value of the location must have
-	    a leading `/'.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	Declaration of the filter mappings in this web
-	application is done by using filter-mappingType.
-	The container uses the filter-mapping
-	declarations to decide which filters to apply to a request,
-	and in what order. The container matches the request URI to
-	a Servlet in the normal way. To determine which filters to
-	apply it matches filter-mapping declarations either on
-	servlet-name, or on url-pattern for each filter-mapping
-	element, depending on which style is used. The order in
-	which filters are invoked is the order in which
-	filter-mapping declarations that match a request URI for a
-	servlet appear in the list of filter-mapping elements.The
-	filter-name value must be the value of the filter-name
-	sub-elements of one of the filter declarations in the
-	deployment descriptor.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="filter-name"
-		   type="javaee:filter-nameType"/>
-      <xsd:choice minOccurs="1" maxOccurs="unbounded">
-	<xsd:element name="url-pattern"
-		     type="javaee:url-patternType"/>
-	<xsd:element name="servlet-name"
-		     type="javaee:servlet-nameType"/>
-      </xsd:choice>
-      <xsd:element name="dispatcher"
-		   type="javaee:dispatcherType"
-		   minOccurs="0" maxOccurs="4"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The logical name of the filter is declare
-	by using filter-nameType. This name is used to map the
-	filter.  Each filter name is unique within the web
-	application.
-
-	Used in: filter, filter-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filterType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The filterType is used to declare a filter in the web
-	application. The filter is mapped to either a servlet or a
-	URL pattern in the filter-mapping element, using the
-	filter-name value to reference. Filters can access the
-	initialization parameters declared in the deployment
-	descriptor at runtime via the FilterConfig interface.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="filter-name"
-		   type="javaee:filter-nameType"/>
-      <xsd:element name="filter-class"
-		   type="javaee:fully-qualified-classType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The fully qualified classname of the filter.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="init-param"
-		   type="javaee:param-valueType"
-		   minOccurs="0" maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The init-param element contains a name/value pair as
-	    an initialization param of a servlet filter
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="form-login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The form-login-configType specifies the login and error
-	pages that should be used in form based login. If form based
-	authentication is not used, these elements are ignored.
-
-	Used in: login-config
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-
-      <xsd:element name="form-login-page"
-		   type="javaee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-login-page element defines the location in the web
-	    app where the page that can be used for login can be
-	    found.  The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="form-error-page"
-		   type="javaee:war-pathType">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The form-error-page element defines the location in
-	    the web app where the error page that is displayed
-	    when login is not successful can be found.
-	    The path begins with a leading / and is interpreted
-	    relative to the root of the WAR.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="http-methodType">
-    <xsd:annotation>
-
-      <xsd:documentation>
-
-	A HTTP method type as defined in HTTP 1.1 section 2.2.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-     <xsd:restriction base="xsd:token">
-         <xsd:pattern value="[\p{L}-[\p{Cc}\p{Z}]]+"/>
-     </xsd:restriction>
-
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="load-on-startupType">
-    <xsd:union memberTypes="javaee:null-charType xsd:integer"/>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mapping-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping-list contains one or more
-	locale-encoding-mapping(s).
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale-encoding-mapping"
-		   type="javaee:locale-encoding-mappingType"
-		   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The locale-encoding-mapping contains locale name and
-	encoding name. The locale name must be either "Language-code",
-	such as "ja", defined by ISO-639 or "Language-code_Country-code",
-	such as "ja_JP".  "Country code" is defined by ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="locale"
-		   type="javaee:localeType"/>
-      <xsd:element name="encoding"
-		   type="javaee:encodingType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="localeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The localeType defines valid locale defined by ISO-639-1
-	and ISO-3166.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The login-configType is used to configure the authentication
-	method that should be used, the realm name that should be
-	used for this application, and the attributes that are
-	needed by the form login mechanism.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="auth-method"
-		   type="javaee:auth-methodType"
-		   minOccurs="0"/>
-      <xsd:element name="realm-name"
-		   type="javaee:string" minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The realm name element specifies the realm name to
-	    use in HTTP Basic authorization.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="form-login-config"
-		   type="javaee:form-login-configType"
-		   minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-mappingType defines a mapping between an extension
-	and a mime type.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The extension element contains a string describing an
-	  extension. example: "txt"
-
-	</xsd:documentation>
-      </xsd:annotation>
-
-      <xsd:element name="extension"
-		   type="javaee:string"/>
-      <xsd:element name="mime-type"
-		   type="javaee:mime-typeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-typeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The mime-typeType is used to indicate a defined mime type.
-
-	Example:
-	"text/plain"
-
-	Used in: mime-mapping
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-	<xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="nonEmptyStringType">
-    <xsd:annotation>
-      <xsd:documentation>
-	This type defines a string which contains at least one
-	character.
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-	<xsd:minLength value="1"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="null-charType">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value=""/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="security-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The security-constraintType is used to associate
-	security constraints with one or more web resource
-	collections
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="display-name"
-		   type="javaee:display-nameType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="web-resource-collection"
-		   type="javaee:web-resource-collectionType"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="auth-constraint"
-		   type="javaee:auth-constraintType"
-		   minOccurs="0"/>
-      <xsd:element name="user-data-constraint"
-		   type="javaee:user-data-constraintType"
-		   minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-mappingType defines a mapping between a
-	servlet and a url pattern.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="servlet-name"
-		   type="javaee:servlet-nameType"/>
-      <xsd:element name="url-pattern"
-		   type="javaee:url-patternType"
-           minOccurs="1" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servlet-name element contains the canonical name of the
-	servlet. Each servlet name is unique within the web
-	application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servletType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The servletType is used to declare a servlet.
-	It contains the declarative data of a
-	servlet. If a jsp-file is specified and the load-on-startup
-	element is present, then the JSP should be precompiled and
-	loaded.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="servlet-name"
-		   type="javaee:servlet-nameType"/>
-      <xsd:choice>
-	<xsd:element name="servlet-class"
-		     type="javaee:fully-qualified-classType">
-	  <xsd:annotation>
-	    <xsd:documentation>
-
-	      The servlet-class element contains the fully
-	      qualified class name of the servlet.
-
-	    </xsd:documentation>
-	  </xsd:annotation>
-	</xsd:element>
-
-	<xsd:element name="jsp-file"
-		     type="javaee:jsp-fileType"/>
-
-      </xsd:choice>
-
-      <xsd:element name="init-param"
-		   type="javaee:param-valueType"
-		   minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="load-on-startup"
-		   type="javaee:load-on-startupType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The load-on-startup element indicates that this
-	    servlet should be loaded (instantiated and have
-	    its init() called) on the startup of the web
-	    application. The optional contents of these
-	    element must be an integer indicating the order in
-	    which the servlet should be loaded. If the value
-	    is a negative integer, or the element is not
-	    present, the container is free to load the servlet
-	    whenever it chooses. If the value is a positive
-	    integer or 0, the container must load and
-	    initialize the servlet as the application is
-	    deployed. The container must guarantee that
-	    servlets marked with lower integers are loaded
-	    before servlets marked with higher integers. The
-	    container may choose the order of loading of
-	    servlets with the same load-on-start-up value.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="run-as"
-		   type="javaee:run-asType"
-		   minOccurs="0"/>
-      <xsd:element name="security-role-ref"
-		   type="javaee:security-role-refType"
-		   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="session-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The session-configType defines the session parameters
-	for this web application.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="session-timeout"
-		   type="javaee:xsdIntegerType"
-		   minOccurs="0">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The session-timeout element defines the default
-	    session timeout interval for all sessions created
-	    in this web application. The specified timeout
-	    must be expressed in a whole number of minutes.
-	    If the timeout is 0 or less, the container ensures
-	    the default behaviour of sessions is never to time
-	    out. If this element is not specified, the container
-	    must set its default timeout period.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="transport-guaranteeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The transport-guaranteeType specifies that the communication
-	between client and server should be NONE, INTEGRAL, or
-	CONFIDENTIAL. NONE means that the application does not
-	require any transport guarantees. A value of INTEGRAL means
-	that the application requires that the data sent between the
-	client and server be sent in such a way that it can't be
-	changed in transit. CONFIDENTIAL means that the application
-	requires that the data be transmitted in a fashion that
-	prevents other entities from observing the contents of the
-	transmission. In most cases, the presence of the INTEGRAL or
-	CONFIDENTIAL flag will indicate that the use of SSL is
-	required.
-
-	Used in: user-data-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-	<xsd:enumeration value="NONE"/>
-	<xsd:enumeration value="INTEGRAL"/>
-	<xsd:enumeration value="CONFIDENTIAL"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="user-data-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The user-data-constraintType is used to indicate how
-	data communicated between the client and container should be
-	protected.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-		   type="javaee:descriptionType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="transport-guarantee"
-		   type="javaee:transport-guaranteeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="war-pathType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The elements that use this type designate a path starting
-	with a "/" and interpreted relative to the root of a WAR
-	file.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-	<xsd:pattern value="/.*"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:simpleType name="web-app-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	This type contains the recognized versions of
-	web-application supported. It is used to designate the
-	version of the web application.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="2.5"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-appType">
-
-    <xsd:choice minOccurs="0" maxOccurs="unbounded">
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="distributable"
-		   type="javaee:emptyType"/>
-      <xsd:element name="context-param"
-		   type="javaee:param-valueType">
-
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The context-param element contains the declaration
-	    of a web application's servlet context
-	    initialization parameters.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-
-      <xsd:element name="filter"
-		   type="javaee:filterType"/>
-      <xsd:element name="filter-mapping"
-		   type="javaee:filter-mappingType"/>
-      <xsd:element name="listener"
-		   type="javaee:listenerType"/>
-      <xsd:element name="servlet"
-		   type="javaee:servletType"/>
-      <xsd:element name="servlet-mapping"
-		   type="javaee:servlet-mappingType"/>
-      <xsd:element name="session-config"
-		   type="javaee:session-configType"/>
-      <xsd:element name="mime-mapping"
-		   type="javaee:mime-mappingType"/>
-      <xsd:element name="welcome-file-list"
-		   type="javaee:welcome-file-listType"/>
-      <xsd:element name="error-page"
-		   type="javaee:error-pageType"/>
-      <xsd:element name="jsp-config"
-		   type="javaee:jsp-configType"/>
-      <xsd:element name="security-constraint"
-		   type="javaee:security-constraintType"/>
-      <xsd:element name="login-config"
-		   type="javaee:login-configType"/>
-      <xsd:element name="security-role"
-		   type="javaee:security-roleType"/>
-      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
-      <xsd:element name="message-destination"
-		   type="javaee:message-destinationType"/>
-      <xsd:element name="locale-encoding-mapping-list"
-		   type="javaee:locale-encoding-mapping-listType"/>
-    </xsd:choice>
-
-    <xsd:attribute name="version"
-		   type="javaee:web-app-versionType"
-		   use="required"/>
-    <xsd:attribute name="id" type="xsd:ID"/>
-
-    <xsd:attribute name="metadata-complete" type="xsd:boolean">
-      <xsd:annotation>
-	<xsd:documentation>
-
-	  The metadata-complete attribute defines whether this
-	  deployment descriptor and other related deployment
-	  descriptors for this module (e.g., web service
-	  descriptors) are complete, or whether the class
-	  files available to this module and packaged with
-	  this application should be examined for annotations
-	  that specify deployment information.
-
-	  If metadata-complete is set to "true", the deployment
-	  tool must ignore any annotations that specify deployment
-	  information, which might be present in the class files
-	  of the application.
-
-	  If metadata-complete is not specified or is set to
-	  "false", the deployment tool must examine the class
-	  files of the application for annotations, as
-	  specified by the specifications.
-
-	</xsd:documentation>
-      </xsd:annotation>
-    </xsd:attribute>
-
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-resource-collectionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The web-resource-collectionType is used to identify a subset
-	of the resources and HTTP methods on those resources within
-	a web application to which a security constraint applies. If
-	no HTTP methods are specified, then the security constraint
-	applies to all HTTP methods.
-
-	Used in: security-constraint
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="web-resource-name"
-		   type="javaee:string">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The web-resource-name contains the name of this web
-	    resource collection.
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-      <xsd:element name="description"
-		   type="javaee:descriptionType"
-		   minOccurs="0"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="url-pattern"
-		   type="javaee:url-patternType"
-		   maxOccurs="unbounded"/>
-      <xsd:element name="http-method"
-		   type="javaee:http-methodType"
-		   minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="welcome-file-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-	The welcome-file-list contains an ordered list of welcome
-	files elements.
-
-	Used in: web-app
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="welcome-file"
-		   type="xsd:string"
-		   maxOccurs="unbounded">
-	<xsd:annotation>
-	  <xsd:documentation>
-
-	    The welcome-file element contains file name to use
-	    as a default welcome file, such as index.html
-
-	  </xsd:documentation>
-	</xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd (from rev 95186, projects/metadata/web/trunk/src/main/resources/schema/web-app_2_5.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-app_2_5.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,1271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-app_2_5.xsds	1.62 05/08/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2005 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the Servlet 2.5 deployment descriptor.
+	The deployment descriptor must be named "WEB-INF/web.xml" in the
+	web application's war file.  All Servlet deployment descriptors
+	must indicate the web application schema by using the Java EE
+	namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.5">
+	      ...
+	    </web-app>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+  <xsd:include schemaLocation="jsp_2_1.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="web-app" type="javaee:web-appType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-app element is the root of the deployment
+	descriptor for a web application.  Note that the sub-elements
+	of this element can be in the arbitrary order. Because of
+	that, the multiplicity of the elements of distributable,
+	session-config, welcome-file-list, jsp-config, login-config,
+	and locale-encoding-mapping-list was changed from "?" to "*"
+	in this schema.  However, the deployment descriptor instance
+	file must not contain multiple elements of session-config,
+	jsp-config, and login-config. When there are multiple elements of
+	welcome-file-list or locale-encoding-mapping-list, the container
+	must concatenate the element contents.  The multiple occurence
+	of the element distributable is redundant and the container
+	treats that case exactly in the same way when there is only
+	one distributable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="web-app-servlet-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The servlet element contains the name of a servlet.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:servlet"/>
+      <xsd:field    xpath="javaee:servlet-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-filter-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The filter element contains the name of a filter.
+	  The name must be unique within the web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:filter"/>
+      <xsd:field    xpath="javaee:filter-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-local-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-local-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-local-ref"/>
+      <xsd:field    xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the web
+	  application's environment and is relative to the
+	  java:comp/env context.  The name must be unique within
+	  the web application.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field    xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field    xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the name of
+	  a message destination reference; its value is the
+	  environment entry name used in the web application code.
+	  The name is a JNDI name relative to the java:comp/env
+	  context and must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field    xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The res-ref-name element specifies the name of a
+	  resource manager connection factory reference.  The name
+	  is a JNDI name relative to the java:comp/env context.
+	  The name must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field    xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="web-app-env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of a web
+	  application's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name
+	  must be unique within a web application.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field    xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:key name="web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:security-role"/>
+      <xsd:field    xpath="javaee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="web-app-role-name-references"
+		refer="javaee:web-app-role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:servlet/javaee:security-role-ref"/>
+      <xsd:field    xpath="javaee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-constraintType indicates the user roles that
+	should be permitted access to this resource
+	collection. The role-name used here must either correspond
+	to the role-name of one of the security-role elements
+	defined for this web application, or be the specially
+	reserved role-name "*" that is a compact syntax for
+	indicating all roles in the web application. If both "*"
+	and rolenames appear, the container interprets this as all
+	roles.  If no roles are defined, no user is allowed access
+	to the portion of the web application described by the
+	containing security-constraint.  The container matches
+	role names case sensitively when determining access.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="role-name"
+		   type="javaee:role-nameType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The auth-methodType is used to configure the authentication
+	mechanism for the web application. As a prerequisite to
+	gaining access to any web resources which are protected by
+	an authorization constraint, a user must have authenticated
+	using the configured mechanism. Legal values are "BASIC",
+	"DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+	authentication scheme.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="dispatcherType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The dispatcher has four legal values: FORWARD, REQUEST, INCLUDE,
+	and ERROR. A value of FORWARD means the Filter will be applied
+	under RequestDispatcher.forward() calls.  A value of REQUEST
+	means the Filter will be applied under ordinary client calls to
+	the path or servlet. A value of INCLUDE means the Filter will be
+	applied under RequestDispatcher.include() calls.  A value of
+	ERROR means the Filter will be applied under the error page
+	mechanism.  The absence of any dispatcher elements in a
+	filter-mapping indicates a default of applying filters only under
+	ordinary client calls to the path or servlet.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="FORWARD"/>
+	<xsd:enumeration value="INCLUDE"/>
+	<xsd:enumeration value="REQUEST"/>
+	<xsd:enumeration value="ERROR"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="encodingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The encodingType defines IANA character sets.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[^\s]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-codeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-code contains an HTTP error code, ex: 404
+
+	Used in: error-page
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdPositiveIntegerType">
+	<xsd:pattern value="\d{3}"/>
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-pageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The error-pageType contains a mapping between an error code
+	or exception type to the path of a resource in the web
+	application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="error-code"
+		     type="javaee:error-codeType"/>
+
+	<xsd:element name="exception-type"
+		     type="javaee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The exception-type contains a fully qualified class
+	      name of a Java exception type.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+
+      <xsd:element name="location"
+		   type="javaee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The location element contains the location of the
+	    resource in the web application relative to the root of
+	    the web application. The value of the location must have
+	    a leading `/'.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Declaration of the filter mappings in this web
+	application is done by using filter-mappingType.
+	The container uses the filter-mapping
+	declarations to decide which filters to apply to a request,
+	and in what order. The container matches the request URI to
+	a Servlet in the normal way. To determine which filters to
+	apply it matches filter-mapping declarations either on
+	servlet-name, or on url-pattern for each filter-mapping
+	element, depending on which style is used. The order in
+	which filters are invoked is the order in which
+	filter-mapping declarations that match a request URI for a
+	servlet appear in the list of filter-mapping elements.The
+	filter-name value must be the value of the filter-name
+	sub-elements of one of the filter declarations in the
+	deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="filter-name"
+		   type="javaee:filter-nameType"/>
+      <xsd:choice minOccurs="1" maxOccurs="unbounded">
+	<xsd:element name="url-pattern"
+		     type="javaee:url-patternType"/>
+	<xsd:element name="servlet-name"
+		     type="javaee:servlet-nameType"/>
+      </xsd:choice>
+      <xsd:element name="dispatcher"
+		   type="javaee:dispatcherType"
+		   minOccurs="0" maxOccurs="4"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The logical name of the filter is declare
+	by using filter-nameType. This name is used to map the
+	filter.  Each filter name is unique within the web
+	application.
+
+	Used in: filter, filter-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filterType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The filterType is used to declare a filter in the web
+	application. The filter is mapped to either a servlet or a
+	URL pattern in the filter-mapping element, using the
+	filter-name value to reference. Filters can access the
+	initialization parameters declared in the deployment
+	descriptor at runtime via the FilterConfig interface.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="filter-name"
+		   type="javaee:filter-nameType"/>
+      <xsd:element name="filter-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The fully qualified classname of the filter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as
+	    an initialization param of a servlet filter
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="form-login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The form-login-configType specifies the login and error
+	pages that should be used in form based login. If form based
+	authentication is not used, these elements are ignored.
+
+	Used in: login-config
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:element name="form-login-page"
+		   type="javaee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-login-page element defines the location in the web
+	    app where the page that can be used for login can be
+	    found.  The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="form-error-page"
+		   type="javaee:war-pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The form-error-page element defines the location in
+	    the web app where the error page that is displayed
+	    when login is not successful can be found.
+	    The path begins with a leading / and is interpreted
+	    relative to the root of the WAR.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="http-methodType">
+    <xsd:annotation>
+
+      <xsd:documentation>
+
+	A HTTP method type as defined in HTTP 1.1 section 2.2.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+     <xsd:restriction base="xsd:token">
+         <xsd:pattern value="[&#33;-&#126;-[\(\)&#60;&#62;@,;:&#34;/\[\]?=\{\}\\\p{Z}]]+"/>
+     </xsd:restriction>
+
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="load-on-startupType">
+    <xsd:union memberTypes="javaee:null-charType xsd:integer"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mapping-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping-list contains one or more
+	locale-encoding-mapping(s).
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale-encoding-mapping"
+		   type="javaee:locale-encoding-mappingType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The locale-encoding-mapping contains locale name and
+	encoding name. The locale name must be either "Language-code",
+	such as "ja", defined by ISO-639 or "Language-code_Country-code",
+	such as "ja_JP".  "Country code" is defined by ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="locale"
+		   type="javaee:localeType"/>
+      <xsd:element name="encoding"
+		   type="javaee:encodingType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="localeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The localeType defines valid locale defined by ISO-639-1
+	and ISO-3166.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The login-configType is used to configure the authentication
+	method that should be used, the realm name that should be
+	used for this application, and the attributes that are
+	needed by the form login mechanism.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="auth-method"
+		   type="javaee:auth-methodType"
+		   minOccurs="0"/>
+      <xsd:element name="realm-name"
+		   type="javaee:string" minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The realm name element specifies the realm name to
+	    use in HTTP Basic authorization.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="form-login-config"
+		   type="javaee:form-login-configType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-mappingType defines a mapping between an extension
+	and a mime type.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The extension element contains a string describing an
+	  extension. example: "txt"
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:element name="extension"
+		   type="javaee:string"/>
+      <xsd:element name="mime-type"
+		   type="javaee:mime-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The mime-typeType is used to indicate a defined mime type.
+
+	Example:
+	"text/plain"
+
+	Used in: mime-mapping
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="nonEmptyStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+	This type defines a string which contains at least one
+	character.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:minLength value="1"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="null-charType">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value=""/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-constraintType is used to associate
+	security constraints with one or more web resource
+	collections
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="display-name"
+		   type="javaee:display-nameType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="web-resource-collection"
+		   type="javaee:web-resource-collectionType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="auth-constraint"
+		   type="javaee:auth-constraintType"
+		   minOccurs="0"/>
+      <xsd:element name="user-data-constraint"
+		   type="javaee:user-data-constraintType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-mappingType defines a mapping between a
+	servlet and a url pattern.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="servlet-name"
+		   type="javaee:servlet-nameType"/>
+      <xsd:element name="url-pattern"
+		   type="javaee:url-patternType"
+           minOccurs="1" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servlet-name element contains the canonical name of the
+	servlet. Each servlet name is unique within the web
+	application.
+        The special servlet name of "*" may be used to reference all
+        servlets.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servletType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The servletType is used to declare a servlet.
+	It contains the declarative data of a
+	servlet. If a jsp-file is specified and the load-on-startup
+	element is present, then the JSP should be precompiled and
+	loaded.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="servlet-name"
+		   type="javaee:servlet-nameType"/>
+      <xsd:choice>
+	<xsd:element name="servlet-class"
+		     type="javaee:fully-qualified-classType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The servlet-class element contains the fully
+	      qualified class name of the servlet.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="jsp-file"
+		     type="javaee:jsp-fileType"/>
+
+      </xsd:choice>
+
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="load-on-startup"
+		   type="javaee:load-on-startupType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The load-on-startup element indicates that this
+	    servlet should be loaded (instantiated and have
+	    its init() called) on the startup of the web
+	    application. The optional contents of these
+	    element must be an integer indicating the order in
+	    which the servlet should be loaded. If the value
+	    is a negative integer, or the element is not
+	    present, the container is free to load the servlet
+	    whenever it chooses. If the value is a positive
+	    integer or 0, the container must load and
+	    initialize the servlet as the application is
+	    deployed. The container must guarantee that
+	    servlets marked with lower integers are loaded
+	    before servlets marked with higher integers. The
+	    container may choose the order of loading of
+	    servlets with the same load-on-start-up value.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="run-as"
+		   type="javaee:run-asType"
+		   minOccurs="0"/>
+      <xsd:element name="security-role-ref"
+		   type="javaee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-configType defines the session parameters
+	for this web application.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="session-timeout"
+		   type="javaee:xsdIntegerType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The session-timeout element defines the default
+	    session timeout interval for all sessions created
+	    in this web application. The specified timeout
+	    must be expressed in a whole number of minutes.
+	    If the timeout is 0 or less, the container ensures
+	    the default behaviour of sessions is never to time
+	    out. If this element is not specified, the container
+	    must set its default timeout period.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transport-guaranteeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transport-guaranteeType specifies that the communication
+	between client and server should be NONE, INTEGRAL, or
+	CONFIDENTIAL. NONE means that the application does not
+	require any transport guarantees. A value of INTEGRAL means
+	that the application requires that the data sent between the
+	client and server be sent in such a way that it can't be
+	changed in transit. CONFIDENTIAL means that the application
+	requires that the data be transmitted in a fashion that
+	prevents other entities from observing the contents of the
+	transmission. In most cases, the presence of the INTEGRAL or
+	CONFIDENTIAL flag will indicate that the use of SSL is
+	required.
+
+	Used in: user-data-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="NONE"/>
+	<xsd:enumeration value="INTEGRAL"/>
+	<xsd:enumeration value="CONFIDENTIAL"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="user-data-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The user-data-constraintType is used to indicate how
+	data communicated between the client and container should be
+	protected.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="transport-guarantee"
+		   type="javaee:transport-guaranteeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="war-pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The elements that use this type designate a path starting
+	with a "/" and interpreted relative to the root of a WAR
+	file.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:pattern value="/.*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="web-app-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type contains the recognized versions of
+	web-application supported. It is used to designate the
+	version of the web application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="2.5"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-appType">
+
+    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="distributable"
+		   type="javaee:emptyType"/>
+      <xsd:element name="context-param"
+		   type="javaee:param-valueType">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-param element contains the declaration
+	    of a web application's servlet context
+	    initialization parameters.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="filter"
+		   type="javaee:filterType"/>
+      <xsd:element name="filter-mapping"
+		   type="javaee:filter-mappingType"/>
+      <xsd:element name="listener"
+		   type="javaee:listenerType"/>
+      <xsd:element name="servlet"
+		   type="javaee:servletType"/>
+      <xsd:element name="servlet-mapping"
+		   type="javaee:servlet-mappingType"/>
+      <xsd:element name="session-config"
+		   type="javaee:session-configType"/>
+      <xsd:element name="mime-mapping"
+		   type="javaee:mime-mappingType"/>
+      <xsd:element name="welcome-file-list"
+		   type="javaee:welcome-file-listType"/>
+      <xsd:element name="error-page"
+		   type="javaee:error-pageType"/>
+      <xsd:element name="jsp-config"
+		   type="javaee:jsp-configType"/>
+      <xsd:element name="security-constraint"
+		   type="javaee:security-constraintType"/>
+      <xsd:element name="login-config"
+		   type="javaee:login-configType"/>
+      <xsd:element name="security-role"
+		   type="javaee:security-roleType"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="message-destination"
+		   type="javaee:message-destinationType"/>
+      <xsd:element name="locale-encoding-mapping-list"
+		   type="javaee:locale-encoding-mapping-listType"/>
+    </xsd:choice>
+
+    <xsd:attribute name="version"
+		   type="javaee:web-app-versionType"
+		   use="required"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+    <xsd:attribute name="metadata-complete" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The metadata-complete attribute defines whether this
+	  deployment descriptor and other related deployment
+	  descriptors for this module (e.g., web service
+	  descriptors) are complete, or whether the class
+	  files available to this module and packaged with
+	  this application should be examined for annotations
+	  that specify deployment information.
+
+	  If metadata-complete is set to "true", the deployment
+	  tool must ignore any annotations that specify deployment
+	  information, which might be present in the class files
+	  of the application.
+
+	  If metadata-complete is not specified or is set to
+	  "false", the deployment tool must examine the class
+	  files of the application for annotations, as
+	  specified by the specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-resource-collectionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The web-resource-collectionType is used to identify a subset
+	of the resources and HTTP methods on those resources within
+	a web application to which a security constraint applies. If
+	no HTTP methods are specified, then the security constraint
+	applies to all HTTP methods.
+
+	Used in: security-constraint
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="web-resource-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-resource-name contains the name of this web
+	    resource collection.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="url-pattern"
+		   type="javaee:url-patternType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="http-method"
+		   type="javaee:http-methodType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="welcome-file-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The welcome-file-list contains an ordered list of welcome
+	files elements.
+
+	Used in: web-app
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="welcome-file"
+		   type="xsd:string"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The welcome-file element contains file name to use
+	    as a default welcome file, such as index.html
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,1554 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
-            targetNamespace="http://java.sun.com/xml/ns/javaee"
-            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-            elementFormDefault="qualified"
-            attributeFormDefault="unqualified"
-            version="3.0">
-  <xsd:annotation>
-    <xsd:documentation>
-
-      $Id$
-      
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-      
-      Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
-      
-      The contents of this file are subject to the terms of either the
-      GNU General Public License Version 2 only ("GPL") or the Common
-      Development and Distribution License("CDDL") (collectively, the
-      "License").  You may not use this file except in compliance with
-      the License. You can obtain a copy of the License at
-      https://glassfish.dev.java.net/public/CDDL+GPL.html or
-      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
-      specific language governing permissions and limitations under the
-      License.
-      
-      When distributing the software, include this License Header
-      Notice in each file and include the License file at
-      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
-      particular file as subject to the "Classpath" exception as
-      provided by Sun in the GPL Version 2 section of the License file
-      that accompanied this code.  If applicable, add the following
-      below the License Header, with the fields enclosed by brackets []
-      replaced by your own identifying information:
-      "Portions Copyrighted [year] [name of copyright owner]"
-      
-      Contributor(s):
-      
-      If you wish your version of this file to be governed by only the
-      CDDL or only the GPL Version 2, indicate your decision by adding
-      "[Contributor] elects to include this software in this
-      distribution under the [CDDL or GPL Version 2] license."  If you
-      don't indicate a single choice of license, a recipient has the
-      option to distribute your version of this file under either the
-      CDDL, the GPL Version 2 or to extend the choice of license to its
-      licensees as provided above.  However, if you add GPL Version 2
-      code and therefore, elected the GPL Version 2 license, then the
-      option applies only if the new code is made subject to such
-      option by the copyright holder.
-      
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-<![CDATA[[
-      This is the common XML Schema for the Servlet 3.0 deployment descriptor.
-      This file is in turn used by web.xml and web-fragment.xml
-      web application's war file.  All Servlet deployment descriptors
-      must indicate the web common schema by using the Java EE
-      namespace:
-      
-      http://java.sun.com/xml/ns/javaee 
-      
-      and by indicating the version of the schema by 
-      using the version element as shown below: 
-      
-      <web-app xmlns="http://java.sun.com/xml/ns/javaee"
-      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-      xsi:schemaLocation="..."
-      version="3.0"> 
-      ...
-      </web-app>
-      
-      The instance documents may indicate the published version of
-      the schema using the xsi:schemaLocation attribute for Java EE
-      namespace with the following location:
-      
-      http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd
-      
-]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
-      The following conventions apply to all Java EE
-      deployment descriptor elements unless indicated otherwise.
-      
-      - In elements that specify a pathname to a file within the
-      same JAR file, relative filenames (i.e., those not
-      starting with "/") are considered relative to the root of
-      the JAR file's namespace.  Absolute filenames (i.e., those
-      starting with "/") also specify names in the root of the
-      JAR file's namespace.  In general, relative names are
-      preferred.  The exception is .war files where absolute
-      names are preferred for consistency with the Servlet API.
-      
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="javaee_6.xsd"/>
-
-  <xsd:include schemaLocation="jsp_2_2.xsd"/>
-
-  <xsd:group name="web-commonType">
-    <xsd:choice>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="name"
-                   type="javaee:java-identifierType"/>
-      <xsd:element name="distributable"
-                   type="javaee:emptyType"/>
-      <xsd:element name="context-param"
-                   type="javaee:param-valueType">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The context-param element contains the declaration
-            of a web application's servlet context
-            initialization parameters.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="filter"
-                   type="javaee:filterType"/>
-      <xsd:element name="filter-mapping"
-                   type="javaee:filter-mappingType"/>
-      <xsd:element name="listener"
-                   type="javaee:listenerType"/>
-      <xsd:element name="servlet"
-                   type="javaee:servletType"/>
-      <xsd:element name="servlet-mapping"
-                   type="javaee:servlet-mappingType"/>
-      <xsd:element name="session-config"
-                   type="javaee:session-configType"/>
-      <xsd:element name="mime-mapping"
-                   type="javaee:mime-mappingType"/>
-      <xsd:element name="welcome-file-list"
-                   type="javaee:welcome-file-listType"/>
-      <xsd:element name="error-page"
-                   type="javaee:error-pageType"/>
-      <xsd:element name="jsp-config"
-                   type="javaee:jsp-configType"/>
-      <xsd:element name="security-constraint"
-                   type="javaee:security-constraintType"/>
-      <xsd:element name="login-config"
-                   type="javaee:login-configType"/>
-      <xsd:element name="security-role"
-                   type="javaee:security-roleType"/>
-      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
-      <xsd:element name="message-destination"
-                   type="javaee:message-destinationType"/>
-      <xsd:element name="locale-encoding-mapping-list"
-                   type="javaee:locale-encoding-mapping-listType"/>
-    </xsd:choice>
-  </xsd:group>
-
-  <xsd:attributeGroup name="web-common-attributes">
-    <xsd:attribute name="version"
-                   type="javaee:web-app-versionType"
-                   use="required"/>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-    <xsd:attribute name="metadata-complete"
-                   type="xsd:boolean">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The metadata-complete attribute defines whether this
-          deployment descriptor and other related deployment
-          descriptors for this module (e.g., web service
-          descriptors) are complete, or whether the class
-          files available to this module and packaged with
-          this application should be examined for annotations
-          that specify deployment information.
-          
-          If metadata-complete is set to "true", the deployment
-          tool must ignore any annotations that specify deployment
-          information, which might be present in the class files
-          of the application.
-          
-          If metadata-complete is not specified or is set to
-          "false", the deployment tool must examine the class
-          files of the application for annotations, as
-          specified by the specifications.
-          
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:attribute>
-  </xsd:attributeGroup>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-appType">
-    <xsd:choice minOccurs="0"
-                maxOccurs="unbounded">
-      <xsd:group ref="javaee:web-commonType"/>
-      <xsd:element name="module-name"
-                   type="javaee:string"
-                   minOccurs="0"/>
-      <xsd:element name="absolute-ordering"
-                   type="javaee:absoluteOrderingType"/>
-    </xsd:choice>
-    <xsd:attributeGroup ref="javaee:web-common-attributes"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-fragmentType">
-    <xsd:choice minOccurs="0"
-                maxOccurs="unbounded">
-      <xsd:group ref="javaee:web-commonType"/>
-      <xsd:element name="ordering"
-                   type="javaee:orderingType"/>
-    </xsd:choice>
-    <xsd:attributeGroup ref="javaee:web-common-attributes"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The auth-constraintType indicates the user roles that
-        should be permitted access to this resource
-        collection. The role-name used here must either correspond
-        to the role-name of one of the security-role elements
-        defined for this web application, or be the specially
-        reserved role-name "*" that is a compact syntax for
-        indicating all roles in the web application. If both "*"
-        and rolenames appear, the container interprets this as all
-        roles.  If no roles are defined, no user is allowed access
-        to the portion of the web application described by the
-        containing security-constraint.  The container matches
-        role names case sensitively when determining access.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description"
-                   type="javaee:descriptionType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="role-name"
-                   type="javaee:role-nameType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="auth-methodType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The auth-methodType is used to configure the authentication
-        mechanism for the web application. As a prerequisite to
-        gaining access to any web resources which are protected by
-        an authorization constraint, a user must have authenticated
-        using the configured mechanism. Legal values are "BASIC",
-        "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
-        authentication scheme.
-        
-        Used in: login-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="dispatcherType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The dispatcher has five legal values: FORWARD, REQUEST,
-        INCLUDE, ASYNC, and ERROR.
-        
-        A value of FORWARD means the Filter will be applied under
-        RequestDispatcher.forward() calls.
-        A value of REQUEST means the Filter will be applied under
-        ordinary client calls to the path or servlet.
-        A value of INCLUDE means the Filter will be applied under
-        RequestDispatcher.include() calls.
-        A value of ASYNC means the Filter will be applied under
-        calls dispatched from an AsyncContext.
-        A value of ERROR means the Filter will be applied under the
-        error page mechanism.
-        
-        The absence of any dispatcher elements in a filter-mapping
-        indicates a default of applying filters only under ordinary
-        client calls to the path or servlet.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:enumeration value="FORWARD"/>
-        <xsd:enumeration value="INCLUDE"/>
-        <xsd:enumeration value="REQUEST"/>
-        <xsd:enumeration value="ASYNC"/>
-        <xsd:enumeration value="ERROR"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-codeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The error-code contains an HTTP error code, ex: 404
-        
-        Used in: error-page
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:xsdPositiveIntegerType">
-        <xsd:pattern value="\d{3}"/>
-        <xsd:attribute name="id"
-                       type="xsd:ID"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="error-pageType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The error-pageType contains a mapping between an error code
-        or exception type to the path of a resource in the web
-        application.
-        
-        Error-page declarations using the exception-type element in
-        the deployment descriptor must be unique up to the class name of
-        the exception-type. Similarly, error-page declarations using the
-        status-code element must be unique in the deployment descriptor
-        up to the status code.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:choice minOccurs="0"
-                  maxOccurs="1">
-        <xsd:element name="error-code"
-                     type="javaee:error-codeType"/>
-        <xsd:element name="exception-type"
-                     type="javaee:fully-qualified-classType">
-          <xsd:annotation>
-            <xsd:documentation>
-
-              The exception-type contains a fully qualified class
-              name of a Java exception type.
-              
-            </xsd:documentation>
-          </xsd:annotation>
-        </xsd:element>
-      </xsd:choice>
-      <xsd:element name="location"
-                   type="javaee:war-pathType">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The location element contains the location of the
-            resource in the web application relative to the root of
-            the web application. The value of the location must have
-            a leading `/'.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filterType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The filterType is used to declare a filter in the web
-        application. The filter is mapped to either a servlet or a
-        URL pattern in the filter-mapping element, using the
-        filter-name value to reference. Filters can access the
-        initialization parameters declared in the deployment
-        descriptor at runtime via the FilterConfig interface.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="filter-name"
-                   type="javaee:filter-nameType"/>
-      <xsd:element name="filter-class"
-                   type="javaee:fully-qualified-classType"
-                   minOccurs="0"
-                   maxOccurs="1">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The fully qualified classname of the filter.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="async-supported"
-                   type="javaee:true-falseType"
-                   minOccurs="0"/>
-      <xsd:element name="init-param"
-                   type="javaee:param-valueType"
-                   minOccurs="0"
-                   maxOccurs="unbounded">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The init-param element contains a name/value pair as
-            an initialization param of a servlet filter
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Declaration of the filter mappings in this web
-        application is done by using filter-mappingType. 
-        The container uses the filter-mapping
-        declarations to decide which filters to apply to a request,
-        and in what order. The container matches the request URI to
-        a Servlet in the normal way. To determine which filters to
-        apply it matches filter-mapping declarations either on
-        servlet-name, or on url-pattern for each filter-mapping
-        element, depending on which style is used. The order in
-        which filters are invoked is the order in which
-        filter-mapping declarations that match a request URI for a
-        servlet appear in the list of filter-mapping elements.The
-        filter-name value must be the value of the filter-name
-        sub-elements of one of the filter declarations in the
-        deployment descriptor.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="filter-name"
-                   type="javaee:filter-nameType"/>
-      <xsd:choice minOccurs="1"
-                  maxOccurs="unbounded">
-        <xsd:element name="url-pattern"
-                     type="javaee:url-patternType"/>
-        <xsd:element name="servlet-name"
-                     type="javaee:servlet-nameType"/>
-      </xsd:choice>
-      <xsd:element name="dispatcher"
-                   type="javaee:dispatcherType"
-                   minOccurs="0"
-                   maxOccurs="5"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="nonEmptyStringType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This type defines a string which contains at least one
-        character.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:minLength value="1"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="filter-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The logical name of the filter is declare
-        by using filter-nameType. This name is used to map the
-        filter.  Each filter name is unique within the web
-        application.
-        
-        Used in: filter, filter-mapping
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="form-login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The form-login-configType specifies the login and error
-        pages that should be used in form based login. If form based
-        authentication is not used, these elements are ignored.
-        
-        Used in: login-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="form-login-page"
-                   type="javaee:war-pathType">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The form-login-page element defines the location in the web
-            app where the page that can be used for login can be
-            found.  The path begins with a leading / and is interpreted
-            relative to the root of the WAR.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="form-error-page"
-                   type="javaee:war-pathType">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The form-error-page element defines the location in
-            the web app where the error page that is displayed
-            when login is not successful can be found. 
-            The path begins with a leading / and is interpreted
-            relative to the root of the WAR.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-  <xsd:simpleType name="http-methodType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        A HTTP method type as defined in HTTP 1.1 section 2.2.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:pattern value="[!-~-[\(\)&#60;&#62;@,;:&#34;/\[\]?=\{\}\\\p{Z}]]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="load-on-startupType">
-    <xsd:union memberTypes="javaee:null-charType xsd:integer"/>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="null-charType">
-    <xsd:restriction base="xsd:string">
-      <xsd:enumeration value=""/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="login-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The login-configType is used to configure the authentication
-        method that should be used, the realm name that should be
-        used for this application, and the attributes that are
-        needed by the form login mechanism.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="auth-method"
-                   type="javaee:auth-methodType"
-                   minOccurs="0"/>
-      <xsd:element name="realm-name"
-                   type="javaee:string"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The realm name element specifies the realm name to
-            use in HTTP Basic authorization.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="form-login-config"
-                   type="javaee:form-login-configType"
-                   minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The mime-mappingType defines a mapping between an extension
-        and a mime type.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The extension element contains a string describing an
-          extension. example: "txt"
-          
-        </xsd:documentation>
-      </xsd:annotation>
-      <xsd:element name="extension"
-                   type="javaee:string"/>
-      <xsd:element name="mime-type"
-                   type="javaee:mime-typeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="mime-typeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The mime-typeType is used to indicate a defined mime type.
-        
-        Example:
-        "text/plain"
-        
-        Used in: mime-mapping
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="security-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The security-constraintType is used to associate
-        security constraints with one or more web resource
-        collections
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="display-name"
-                   type="javaee:display-nameType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="web-resource-collection"
-                   type="javaee:web-resource-collectionType"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="auth-constraint"
-                   type="javaee:auth-constraintType"
-                   minOccurs="0"/>
-      <xsd:element name="user-data-constraint"
-                   type="javaee:user-data-constraintType"
-                   minOccurs="0"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servletType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The servletType is used to declare a servlet.
-        It contains the declarative data of a
-        servlet. If a jsp-file is specified and the load-on-startup
-        element is present, then the JSP should be precompiled and
-        loaded.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:group ref="javaee:descriptionGroup"/>
-      <xsd:element name="servlet-name"
-                   type="javaee:servlet-nameType"/>
-      <xsd:choice minOccurs="0"
-                  maxOccurs="1">
-        <xsd:element name="servlet-class"
-                     type="javaee:fully-qualified-classType">
-          <xsd:annotation>
-            <xsd:documentation>
-
-              The servlet-class element contains the fully
-              qualified class name of the servlet.
-              
-            </xsd:documentation>
-          </xsd:annotation>
-        </xsd:element>
-        <xsd:element name="jsp-file"
-                     type="javaee:jsp-fileType"/>
-      </xsd:choice>
-      <xsd:element name="init-param"
-                   type="javaee:param-valueType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="load-on-startup"
-                   type="javaee:load-on-startupType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The load-on-startup element indicates that this
-            servlet should be loaded (instantiated and have
-            its init() called) on the startup of the web
-            application. The optional contents of these
-            element must be an integer indicating the order in
-            which the servlet should be loaded. If the value
-            is a negative integer, or the element is not
-            present, the container is free to load the servlet
-            whenever it chooses. If the value is a positive
-            integer or 0, the container must load and
-            initialize the servlet as the application is
-            deployed. The container must guarantee that
-            servlets marked with lower integers are loaded
-            before servlets marked with higher integers. The
-            container may choose the order of loading of
-            servlets with the same load-on-start-up value.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="enabled"
-                   type="javaee:true-falseType"
-                   minOccurs="0"/>
-      <xsd:element name="async-supported"
-                   type="javaee:true-falseType"
-                   minOccurs="0"/>
-      <xsd:element name="run-as"
-                   type="javaee:run-asType"
-                   minOccurs="0"/>
-      <xsd:element name="security-role-ref"
-                   type="javaee:security-role-refType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="multipart-config"
-                   type="javaee:multipart-configType"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The servlet-mappingType defines a mapping between a
-        servlet and a url pattern. 
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="servlet-name"
-                   type="javaee:servlet-nameType"/>
-      <xsd:element name="url-pattern"
-                   type="javaee:url-patternType"
-                   minOccurs="1"
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="servlet-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The servlet-name element contains the canonical name of the
-        servlet. Each servlet name is unique within the web
-        application.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="session-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The session-configType defines the session parameters
-        for this web application.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="session-timeout"
-                   type="javaee:xsdIntegerType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The session-timeout element defines the default
-            session timeout interval for all sessions created
-            in this web application. The specified timeout
-            must be expressed in a whole number of minutes.
-            If the timeout is 0 or less, the container ensures
-            the default behaviour of sessions is never to time
-            out. If this element is not specified, the container
-            must set its default timeout period.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="cookie-config"
-                   type="javaee:cookie-configType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The cookie-config element defines the configuration of the
-            session tracking cookies created by this web application.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="tracking-mode"
-                   type="javaee:tracking-modeType"
-                   minOccurs="0"
-                   maxOccurs="3">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The tracking-mode element defines the tracking modes
-            for sessions created by this web application
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="cookie-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The cookie-configType defines the configuration for the
-        session tracking cookies of this web application.
-        
-        Used in: session-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="name"
-                   type="javaee:cookie-nameType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The name that will be assigned to any session tracking
-            cookies created by this web application.
-            The default is JSESSIONID
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="domain"
-                   type="javaee:cookie-domainType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The domain name that will be assigned to any session tracking
-            cookies created by this web application.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="path"
-                   type="javaee:cookie-pathType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The path that will be assigned to any session tracking
-            cookies created by this web application.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="comment"
-                   type="javaee:cookie-commentType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The comment that will be assigned to any session tracking
-            cookies created by this web application.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="http-only"
-                   type="javaee:true-falseType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            Specifies whether any session tracking cookies created 
-            by this web application will be marked as HttpOnly
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="secure"
-                   type="javaee:true-falseType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            Specifies whether any session tracking cookies created 
-            by this web application will be marked as secure
-            even if the request that initiated the corresponding session
-            is using plain HTTP instead of HTTPS
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="max-age"
-                   type="javaee:xsdIntegerType"
-                   minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The lifetime (in seconds) that will be assigned to any
-            session tracking cookies created by this web application.
-            Default is -1
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="cookie-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The name that will be assigned to any session tracking
-        cookies created by this web application.
-        The default is JSESSIONID
-        
-        Used in: cookie-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="cookie-domainType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The domain name that will be assigned to any session tracking
-        cookies created by this web application.
-        
-        Used in: cookie-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="cookie-pathType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The path that will be assigned to any session tracking
-        cookies created by this web application.
-        
-        Used in: cookie-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="cookie-commentType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The comment that will be assigned to any session tracking
-        cookies created by this web application.
-        
-        Used in: cookie-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="javaee:nonEmptyStringType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tracking-modeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The tracking modes for sessions created by this web
-        application
-        
-        Used in: session-config
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:enumeration value="COOKIE"/>
-        <xsd:enumeration value="URL"/>
-        <xsd:enumeration value="SSL"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="transport-guaranteeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The transport-guaranteeType specifies that the communication
-        between client and server should be NONE, INTEGRAL, or
-        CONFIDENTIAL. NONE means that the application does not
-        require any transport guarantees. A value of INTEGRAL means
-        that the application requires that the data sent between the
-        client and server be sent in such a way that it can't be
-        changed in transit. CONFIDENTIAL means that the application
-        requires that the data be transmitted in a fashion that
-        prevents other entities from observing the contents of the
-        transmission. In most cases, the presence of the INTEGRAL or
-        CONFIDENTIAL flag will indicate that the use of SSL is
-        required.
-        
-        Used in: user-data-constraint
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:enumeration value="NONE"/>
-        <xsd:enumeration value="INTEGRAL"/>
-        <xsd:enumeration value="CONFIDENTIAL"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="user-data-constraintType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The user-data-constraintType is used to indicate how
-        data communicated between the client and container should be
-        protected.
-        
-        Used in: security-constraint
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description"
-                   type="javaee:descriptionType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="transport-guarantee"
-                   type="javaee:transport-guaranteeType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="war-pathType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The elements that use this type designate a path starting
-        with a "/" and interpreted relative to the root of a WAR
-        file.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:restriction base="javaee:string">
-        <xsd:pattern value="/.*"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-  <xsd:simpleType name="web-app-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This type contains the recognized versions of
-        web-application supported. It is used to designate the
-        version of the web application.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="3.0"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="web-resource-collectionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The web-resource-collectionType is used to identify the
-        resources and HTTP methods on those resources to which a
-        security constraint applies. If no HTTP methods are specified,
-        then the security constraint applies to all HTTP methods.
-        If HTTP methods are specified by http-method-omission
-        elements, the security constraint applies to all methods
-        except those identified in the collection.
-        http-method-omission and http-method elements are never
-        mixed in the same collection. 
-        
-        Used in: security-constraint
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="web-resource-name"
-                   type="javaee:string">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The web-resource-name contains the name of this web
-            resource collection.
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="description"
-                   type="javaee:descriptionType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="url-pattern"
-                   type="javaee:url-patternType"
-                   maxOccurs="unbounded"/>
-      <xsd:choice minOccurs="0"
-                  maxOccurs="1">
-        <xsd:element name="http-method"
-                     type="javaee:http-methodType"
-                     minOccurs="1"
-                     maxOccurs="unbounded">
-          <xsd:annotation>
-            <xsd:documentation>
-
-              Each http-method names an HTTP method to which the
-              constraint applies.
-              
-            </xsd:documentation>
-          </xsd:annotation>
-        </xsd:element>
-        <xsd:element name="http-method-omission"
-                     type="javaee:http-methodType"
-                     minOccurs="1"
-                     maxOccurs="unbounded">
-          <xsd:annotation>
-            <xsd:documentation>
-
-              Each http-method-omission names an HTTP method to
-              which the constraint does not apply.
-              
-            </xsd:documentation>
-          </xsd:annotation>
-        </xsd:element>
-      </xsd:choice>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="welcome-file-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The welcome-file-list contains an ordered list of welcome
-        files elements.
-        
-        Used in: web-app
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="welcome-file"
-                   type="xsd:string"
-                   maxOccurs="unbounded">
-        <xsd:annotation>
-          <xsd:documentation>
-
-            The welcome-file element contains file name to use
-            as a default welcome file, such as index.html
-            
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-  <xsd:simpleType name="localeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The localeType defines valid locale defined by ISO-639-1
-        and ISO-3166.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-  <xsd:simpleType name="encodingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The encodingType defines IANA character sets.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern value="[^\s]+"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mapping-listType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The locale-encoding-mapping-list contains one or more
-        locale-encoding-mapping(s).
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="locale-encoding-mapping"
-                   type="javaee:locale-encoding-mappingType"
-                   maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="locale-encoding-mappingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The locale-encoding-mapping contains locale name and
-        encoding name. The locale name must be either "Language-code",
-        such as "ja", defined by ISO-639 or "Language-code_Country-code",
-        such as "ja_JP".  "Country code" is defined by ISO-3166.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="locale"
-                   type="javaee:localeType"/>
-      <xsd:element name="encoding"
-                   type="javaee:encodingType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="ordering-othersType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element indicates that the ordering sub-element in which
-        it was placed should take special action regarding the ordering
-        of this application resource relative to other application
-        configuration resources.
-        See section 8.2.2 of the specification for details.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="id"
-                   type="xsd:ID"/>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="absoluteOrderingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Please see section 8.2.2 of the specification for details.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:choice minOccurs="0"
-                maxOccurs="unbounded">
-      <xsd:element name="name"
-                   type="javaee:java-identifierType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="others"
-                   type="javaee:ordering-othersType"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-    </xsd:choice>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="orderingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Please see section 8.2.2 of the specification for details.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="after"
-                   type="javaee:ordering-orderingType"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-      <xsd:element name="before"
-                   type="javaee:ordering-orderingType"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="ordering-orderingType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element contains a sequence of "name" elements, each of
-        which
-        refers to an application configuration resource by the "name"
-        declared on its web.xml fragment.  This element can also contain
-        a single "others" element which specifies that this document
-        comes
-        before or after other documents within the application.
-        See section 8.2.2 of the specification for details.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="name"
-                   type="javaee:java-identifierType"
-                   minOccurs="0"
-                   maxOccurs="unbounded"/>
-      <xsd:element name="others"
-                   type="javaee:ordering-othersType"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="multipart-configType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        This element contains a sequence of "name" elements, each of which
-        refers to an application configuration resource by the "name"
-        declared on its web.xml fragment.  This element can also contain
-        a single "others" element which specifies that this document comes
-        before or after other documents within the application.
-        See section 8.2.2 of the specification for details.
-        
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="location"
-                   type="javaee:string"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-      <xsd:element name="max-file-size"
-                   type="xsd:long"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-      <xsd:element name="max-request-size"
-                   type="xsd:long"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-      <xsd:element name="file-size-threshold"
-                   type="xsd:integer"
-                   minOccurs="0"
-                   maxOccurs="1"/>
-    </xsd:sequence>
-  </xsd:complexType>
-
-</xsd:schema>

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/web-common_3_0.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-common_3_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,1583 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://java.sun.com/xml/ns/javaee"
+            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="3.0">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      $Id$
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+      
+      Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
+      
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+      
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Sun in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+      
+      Contributor(s):
+      
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the common XML Schema for the Servlet 3.0 deployment descriptor.
+      This file is in turn used by web.xml and web-fragment.xml
+      web application's war file.  All Servlet deployment descriptors
+      must indicate the web common schema by using the Java EE
+      namespace:
+      
+      http://java.sun.com/xml/ns/javaee 
+      
+      and by indicating the version of the schema by 
+      using the version element as shown below: 
+      
+      <web-app xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="..."
+      version="3.0"> 
+      ...
+      </web-app>
+      
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+      
+      http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd
+      
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - In elements that specify a pathname to a file within the
+      same JAR file, relative filenames (i.e., those not
+      starting with "/") are considered relative to the root of
+      the JAR file's namespace.  Absolute filenames (i.e., those
+      starting with "/") also specify names in the root of the
+      JAR file's namespace.  In general, relative names are
+      preferred.  The exception is .war files where absolute
+      names are preferred for consistency with the Servlet API.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_6.xsd"/>
+
+  <xsd:include schemaLocation="jsp_2_2.xsd"/>
+
+  <xsd:group name="web-commonType">
+    <xsd:choice>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+                   type="javaee:java-identifierType"/>
+      <xsd:element name="distributable"
+                   type="javaee:emptyType"/>
+      <xsd:element name="context-param"
+                   type="javaee:param-valueType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The context-param element contains the declaration
+            of a web application's servlet context
+            initialization parameters.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="filter"
+                   type="javaee:filterType"/>
+      <xsd:element name="filter-mapping"
+                   type="javaee:filter-mappingType"/>
+      <xsd:element name="listener"
+                   type="javaee:listenerType"/>
+      <xsd:element name="servlet"
+                   type="javaee:servletType"/>
+      <xsd:element name="servlet-mapping"
+                   type="javaee:servlet-mappingType"/>
+      <xsd:element name="session-config"
+                   type="javaee:session-configType"/>
+      <xsd:element name="mime-mapping"
+                   type="javaee:mime-mappingType"/>
+      <xsd:element name="welcome-file-list"
+                   type="javaee:welcome-file-listType"/>
+      <xsd:element name="error-page"
+                   type="javaee:error-pageType"/>
+      <xsd:element name="jsp-config"
+                   type="javaee:jsp-configType"/>
+      <xsd:element name="security-constraint"
+                   type="javaee:security-constraintType"/>
+      <xsd:element name="login-config"
+                   type="javaee:login-configType"/>
+      <xsd:element name="security-role"
+                   type="javaee:security-roleType"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"/>
+      <xsd:element name="locale-encoding-mapping-list"
+                   type="javaee:locale-encoding-mapping-listType"/>
+    </xsd:choice>
+  </xsd:group>
+
+  <xsd:attributeGroup name="web-common-attributes">
+    <xsd:attribute name="version"
+                   type="javaee:web-app-versionType"
+                   use="required"/>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+  </xsd:attributeGroup>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-appType">
+    <xsd:choice minOccurs="0"
+                maxOccurs="unbounded">
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:web-commonType"/>
+      <xsd:element name="absolute-ordering"
+                   type="javaee:absoluteOrderingType"/>
+    </xsd:choice>
+    <xsd:attributeGroup ref="javaee:web-common-attributes"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-fragmentType">
+    <xsd:choice minOccurs="0"
+                maxOccurs="unbounded">
+      <xsd:group ref="javaee:web-commonType"/>
+      <xsd:element name="ordering"
+                   type="javaee:orderingType"/>
+    </xsd:choice>
+    <xsd:attributeGroup ref="javaee:web-common-attributes"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The auth-constraintType indicates the user roles that
+        should be permitted access to this resource
+        collection. The role-name used here must either correspond
+        to the role-name of one of the security-role elements
+        defined for this web application, or be the specially
+        reserved role-name "*" that is a compact syntax for
+        indicating all roles in the web application. If both "*"
+        and rolenames appear, the container interprets this as all
+        roles.  If no roles are defined, no user is allowed access
+        to the portion of the web application described by the
+        containing security-constraint.  The container matches
+        role names case sensitively when determining access.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="role-name"
+                   type="javaee:role-nameType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="auth-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The auth-methodType is used to configure the authentication
+        mechanism for the web application. As a prerequisite to
+        gaining access to any web resources which are protected by
+        an authorization constraint, a user must have authenticated
+        using the configured mechanism. Legal values are "BASIC",
+        "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific
+        authentication scheme.
+        
+        Used in: login-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="dispatcherType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The dispatcher has five legal values: FORWARD, REQUEST,
+        INCLUDE, ASYNC, and ERROR.
+        
+        A value of FORWARD means the Filter will be applied under
+        RequestDispatcher.forward() calls.
+        A value of REQUEST means the Filter will be applied under
+        ordinary client calls to the path or servlet.
+        A value of INCLUDE means the Filter will be applied under
+        RequestDispatcher.include() calls.
+        A value of ASYNC means the Filter will be applied under
+        calls dispatched from an AsyncContext.
+        A value of ERROR means the Filter will be applied under the
+        error page mechanism.
+        
+        The absence of any dispatcher elements in a filter-mapping
+        indicates a default of applying filters only under ordinary
+        client calls to the path or servlet.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="FORWARD"/>
+        <xsd:enumeration value="INCLUDE"/>
+        <xsd:enumeration value="REQUEST"/>
+        <xsd:enumeration value="ASYNC"/>
+        <xsd:enumeration value="ERROR"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-codeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The error-code contains an HTTP error code, ex: 404
+        
+        Used in: error-page
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdPositiveIntegerType">
+        <xsd:pattern value="\d{3}"/>
+        <xsd:attribute name="id"
+                       type="xsd:ID"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="error-pageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The error-pageType contains a mapping between an error code
+        or exception type to the path of a resource in the web
+        application.
+        
+        Error-page declarations using the exception-type element in
+        the deployment descriptor must be unique up to the class name of
+        the exception-type. Similarly, error-page declarations using the
+        status-code element must be unique in the deployment descriptor
+        up to the status code.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice minOccurs="0"
+                  maxOccurs="1">
+        <xsd:element name="error-code"
+                     type="javaee:error-codeType"/>
+        <xsd:element name="exception-type"
+                     type="javaee:fully-qualified-classType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The exception-type contains a fully qualified class
+              name of a Java exception type.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+      </xsd:choice>
+      <xsd:element name="location"
+                   type="javaee:war-pathType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The location element contains the location of the
+            resource in the web application relative to the root of
+            the web application. The value of the location must have
+            a leading `/'.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filterType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The filterType is used to declare a filter in the web
+        application. The filter is mapped to either a servlet or a
+        URL pattern in the filter-mapping element, using the
+        filter-name value to reference. Filters can access the
+        initialization parameters declared in the deployment
+        descriptor at runtime via the FilterConfig interface.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="filter-name"
+                   type="javaee:filter-nameType"/>
+      <xsd:element name="filter-class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The fully qualified classname of the filter.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="async-supported"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="init-param"
+                   type="javaee:param-valueType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The init-param element contains a name/value pair as
+            an initialization param of a servlet filter
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Declaration of the filter mappings in this web
+        application is done by using filter-mappingType. 
+        The container uses the filter-mapping
+        declarations to decide which filters to apply to a request,
+        and in what order. The container matches the request URI to
+        a Servlet in the normal way. To determine which filters to
+        apply it matches filter-mapping declarations either on
+        servlet-name, or on url-pattern for each filter-mapping
+        element, depending on which style is used. The order in
+        which filters are invoked is the order in which
+        filter-mapping declarations that match a request URI for a
+        servlet appear in the list of filter-mapping elements.The
+        filter-name value must be the value of the filter-name
+        sub-elements of one of the filter declarations in the
+        deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="filter-name"
+                   type="javaee:filter-nameType"/>
+      <xsd:choice minOccurs="1"
+                  maxOccurs="unbounded">
+        <xsd:element name="url-pattern"
+                     type="javaee:url-patternType"/>
+        <xsd:element name="servlet-name"
+                     type="javaee:servlet-nameType"/>
+      </xsd:choice>
+      <xsd:element name="dispatcher"
+                   type="javaee:dispatcherType"
+                   minOccurs="0"
+                   maxOccurs="5"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="nonEmptyStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This type defines a string which contains at least one
+        character.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:minLength value="1"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="filter-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The logical name of the filter is declare
+        by using filter-nameType. This name is used to map the
+        filter.  Each filter name is unique within the web
+        application.
+        
+        Used in: filter, filter-mapping
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="form-login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The form-login-configType specifies the login and error
+        pages that should be used in form based login. If form based
+        authentication is not used, these elements are ignored.
+        
+        Used in: login-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="form-login-page"
+                   type="javaee:war-pathType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The form-login-page element defines the location in the web
+            app where the page that can be used for login can be
+            found.  The path begins with a leading / and is interpreted
+            relative to the root of the WAR.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="form-error-page"
+                   type="javaee:war-pathType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The form-error-page element defines the location in
+            the web app where the error page that is displayed
+            when login is not successful can be found. 
+            The path begins with a leading / and is interpreted
+            relative to the root of the WAR.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+  <xsd:simpleType name="http-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        A HTTP method type as defined in HTTP 1.1 section 2.2.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="[!-~-[\(\)&#60;&#62;@,;:&#34;/\[\]?=\{\}\\\p{Z}]]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="load-on-startupType">
+    <xsd:union memberTypes="javaee:null-charType xsd:integer"/>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="null-charType">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value=""/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="login-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The login-configType is used to configure the authentication
+        method that should be used, the realm name that should be
+        used for this application, and the attributes that are
+        needed by the form login mechanism.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="auth-method"
+                   type="javaee:auth-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="realm-name"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The realm name element specifies the realm name to
+            use in HTTP Basic authorization.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="form-login-config"
+                   type="javaee:form-login-configType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The mime-mappingType defines a mapping between an extension
+        and a mime type.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The extension element contains a string describing an
+          extension. example: "txt"
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:element name="extension"
+                   type="javaee:string"/>
+      <xsd:element name="mime-type"
+                   type="javaee:mime-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="mime-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The mime-typeType is used to indicate a defined mime type.
+        
+        Example:
+        "text/plain"
+        
+        Used in: mime-mapping
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:pattern value="[^\p{Cc}^\s]+/[^\p{Cc}^\s]+"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The security-constraintType is used to associate
+        security constraints with one or more web resource
+        collections
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="display-name"
+                   type="javaee:display-nameType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="web-resource-collection"
+                   type="javaee:web-resource-collectionType"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="auth-constraint"
+                   type="javaee:auth-constraintType"
+                   minOccurs="0"/>
+      <xsd:element name="user-data-constraint"
+                   type="javaee:user-data-constraintType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servletType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The servletType is used to declare a servlet.
+        It contains the declarative data of a
+        servlet. If a jsp-file is specified and the load-on-startup
+        element is present, then the JSP should be precompiled and
+        loaded.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="servlet-name"
+                   type="javaee:servlet-nameType"/>
+      <xsd:choice minOccurs="0"
+                  maxOccurs="1">
+        <xsd:element name="servlet-class"
+                     type="javaee:fully-qualified-classType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The servlet-class element contains the fully
+              qualified class name of the servlet.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="jsp-file"
+                     type="javaee:jsp-fileType"/>
+      </xsd:choice>
+      <xsd:element name="init-param"
+                   type="javaee:param-valueType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="load-on-startup"
+                   type="javaee:load-on-startupType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The load-on-startup element indicates that this
+            servlet should be loaded (instantiated and have
+            its init() called) on the startup of the web
+            application. The optional contents of these
+            element must be an integer indicating the order in
+            which the servlet should be loaded. If the value
+            is a negative integer, or the element is not
+            present, the container is free to load the servlet
+            whenever it chooses. If the value is a positive
+            integer or 0, the container must load and
+            initialize the servlet as the application is
+            deployed. The container must guarantee that
+            servlets marked with lower integers are loaded
+            before servlets marked with higher integers. The
+            container may choose the order of loading of
+            servlets with the same load-on-start-up value.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="enabled"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="async-supported"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="run-as"
+                   type="javaee:run-asType"
+                   minOccurs="0"/>
+      <xsd:element name="security-role-ref"
+                   type="javaee:security-role-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="multipart-config"
+                   type="javaee:multipart-configType"
+                   minOccurs="0"
+                   maxOccurs="1"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The servlet-mappingType defines a mapping between a
+        servlet and a url pattern. 
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="servlet-name"
+                   type="javaee:servlet-nameType"/>
+      <xsd:element name="url-pattern"
+                   type="javaee:url-patternType"
+                   minOccurs="1"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The servlet-name element contains the canonical name of the
+        servlet. Each servlet name is unique within the web
+        application.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The session-configType defines the session parameters
+        for this web application.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="session-timeout"
+                   type="javaee:xsdIntegerType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The session-timeout element defines the default
+            session timeout interval for all sessions created
+            in this web application. The specified timeout
+            must be expressed in a whole number of minutes.
+            If the timeout is 0 or less, the container ensures
+            the default behaviour of sessions is never to time
+            out. If this element is not specified, the container
+            must set its default timeout period.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cookie-config"
+                   type="javaee:cookie-configType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The cookie-config element defines the configuration of the
+            session tracking cookies created by this web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="tracking-mode"
+                   type="javaee:tracking-modeType"
+                   minOccurs="0"
+                   maxOccurs="3">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The tracking-mode element defines the tracking modes
+            for sessions created by this web application
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cookie-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cookie-configType defines the configuration for the
+        session tracking cookies of this web application.
+        
+        Used in: session-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="name"
+                   type="javaee:cookie-nameType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The name that will be assigned to any session tracking
+            cookies created by this web application.
+            The default is JSESSIONID
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="domain"
+                   type="javaee:cookie-domainType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The domain name that will be assigned to any session tracking
+            cookies created by this web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="path"
+                   type="javaee:cookie-pathType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The path that will be assigned to any session tracking
+            cookies created by this web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="comment"
+                   type="javaee:cookie-commentType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The comment that will be assigned to any session tracking
+            cookies created by this web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="http-only"
+                   type="javaee:true-falseType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Specifies whether any session tracking cookies created 
+            by this web application will be marked as HttpOnly
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="secure"
+                   type="javaee:true-falseType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Specifies whether any session tracking cookies created 
+            by this web application will be marked as secure
+            even if the request that initiated the corresponding session
+            is using plain HTTP instead of HTTPS
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="max-age"
+                   type="javaee:xsdIntegerType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The lifetime (in seconds) that will be assigned to any
+            session tracking cookies created by this web application.
+            Default is -1
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cookie-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The name that will be assigned to any session tracking
+        cookies created by this web application.
+        The default is JSESSIONID
+        
+        Used in: cookie-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cookie-domainType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The domain name that will be assigned to any session tracking
+        cookies created by this web application.
+        
+        Used in: cookie-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cookie-pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The path that will be assigned to any session tracking
+        cookies created by this web application.
+        
+        Used in: cookie-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cookie-commentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The comment that will be assigned to any session tracking
+        cookies created by this web application.
+        
+        Used in: cookie-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:nonEmptyStringType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tracking-modeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The tracking modes for sessions created by this web
+        application
+        
+        Used in: session-config
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="COOKIE"/>
+        <xsd:enumeration value="URL"/>
+        <xsd:enumeration value="SSL"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transport-guaranteeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The transport-guaranteeType specifies that the communication
+        between client and server should be NONE, INTEGRAL, or
+        CONFIDENTIAL. NONE means that the application does not
+        require any transport guarantees. A value of INTEGRAL means
+        that the application requires that the data sent between the
+        client and server be sent in such a way that it can't be
+        changed in transit. CONFIDENTIAL means that the application
+        requires that the data be transmitted in a fashion that
+        prevents other entities from observing the contents of the
+        transmission. In most cases, the presence of the INTEGRAL or
+        CONFIDENTIAL flag will indicate that the use of SSL is
+        required.
+        
+        Used in: user-data-constraint
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="NONE"/>
+        <xsd:enumeration value="INTEGRAL"/>
+        <xsd:enumeration value="CONFIDENTIAL"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="user-data-constraintType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The user-data-constraintType is used to indicate how
+        data communicated between the client and container should be
+        protected.
+        
+        Used in: security-constraint
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="transport-guarantee"
+                   type="javaee:transport-guaranteeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="war-pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The elements that use this type designate a path starting
+        with a "/" and interpreted relative to the root of a WAR
+        file.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:pattern value="/.*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:simpleType name="web-app-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This type contains the recognized versions of
+        web-application supported. It is used to designate the
+        version of the web application.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="3.0"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="web-resource-collectionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The web-resource-collectionType is used to identify the
+        resources and HTTP methods on those resources to which a
+        security constraint applies. If no HTTP methods are specified,
+        then the security constraint applies to all HTTP methods.
+        If HTTP methods are specified by http-method-omission
+        elements, the security constraint applies to all methods
+        except those identified in the collection.
+        http-method-omission and http-method elements are never
+        mixed in the same collection. 
+        
+        Used in: security-constraint
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-resource-name"
+                   type="javaee:string">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The web-resource-name contains the name of this web
+            resource collection.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="url-pattern"
+                   type="javaee:url-patternType"
+                   maxOccurs="unbounded"/>
+      <xsd:choice minOccurs="0"
+                  maxOccurs="1">
+        <xsd:element name="http-method"
+                     type="javaee:http-methodType"
+                     minOccurs="1"
+                     maxOccurs="unbounded">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              Each http-method names an HTTP method to which the
+              constraint applies.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="http-method-omission"
+                     type="javaee:http-methodType"
+                     minOccurs="1"
+                     maxOccurs="unbounded">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              Each http-method-omission names an HTTP method to
+              which the constraint does not apply.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="welcome-file-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The welcome-file-list contains an ordered list of welcome
+        files elements.
+        
+        Used in: web-app
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="welcome-file"
+                   type="xsd:string"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The welcome-file element contains file name to use
+            as a default welcome file, such as index.html
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+  <xsd:simpleType name="localeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The localeType defines valid locale defined by ISO-639-1
+        and ISO-3166.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="encodingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The encodingType defines IANA character sets.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[^\s]+"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mapping-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The locale-encoding-mapping-list contains one or more
+        locale-encoding-mapping(s).
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="locale-encoding-mapping"
+                   type="javaee:locale-encoding-mappingType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="locale-encoding-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The locale-encoding-mapping contains locale name and
+        encoding name. The locale name must be either "Language-code",
+        such as "ja", defined by ISO-639 or "Language-code_Country-code",
+        such as "ja_JP".  "Country code" is defined by ISO-3166.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="locale"
+                   type="javaee:localeType"/>
+      <xsd:element name="encoding"
+                   type="javaee:encodingType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ordering-othersType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element indicates that the ordering sub-element in which
+        it was placed should take special action regarding the ordering
+        of this application resource relative to other application
+        configuration resources.
+        See section 8.2.2 of the specification for details.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="absoluteOrderingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Please see section 8.2.2 of the specification for details.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice minOccurs="0"
+                maxOccurs="unbounded">
+      <xsd:element name="name"
+                   type="javaee:java-identifierType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="others"
+                   type="javaee:ordering-othersType"
+                   minOccurs="0"
+                   maxOccurs="1"/>
+    </xsd:choice>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="orderingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Please see section 8.2.2 of the specification for details.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="after"
+                   type="javaee:ordering-orderingType"
+                   minOccurs="0"
+                   maxOccurs="1"/>
+      <xsd:element name="before"
+                   type="javaee:ordering-orderingType"
+                   minOccurs="0"
+                   maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ordering-orderingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element contains a sequence of "name" elements, each of
+        which
+        refers to an application configuration resource by the "name"
+        declared on its web.xml fragment.  This element can also contain
+        a single "others" element which specifies that this document
+        comes
+        before or after other documents within the application.
+        See section 8.2.2 of the specification for details.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="name"
+                   type="javaee:java-identifierType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="others"
+                   type="javaee:ordering-othersType"
+                   minOccurs="0"
+                   maxOccurs="1"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multipart-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element specifies configuration information related to the
+        handling of multipart/form-data requests.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="location"
+                   type="javaee:string"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The directory location where uploaded files will be stored
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="max-file-size"
+                   type="xsd:long"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The maximum size limit of uploaded files
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="max-request-size"
+                   type="xsd:long"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The maximum size limit of multipart/form-data requests
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="file-size-threshold"
+                   type="xsd:integer"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The size threshold after which an uploaded file will be
+            written to disk
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:complexType>
+
+</xsd:schema>

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,2071 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-
-<xsd:schema
-     targetNamespace="http://java.sun.com/xml/ns/javaee"
-     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace"
-     elementFormDefault="qualified"
-     attributeFormDefault="unqualified"
-     version="1.2">
-
-    <xsd:annotation>
-        <xsd:documentation>
-            $Id: web-facesconfig_1_2.xsd,v 1.11 2006/03/27 00:12:24 rogerk Exp $
-        </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:annotation>
-        <xsd:documentation>
-
-            Copyright 2005 Sun Microsystems, Inc., 
-            901 San Antonio Road, 
-            Palo Alto, California 94303, U.S.A. 
-            All rights reserved.
-
-            Sun Microsystems, Inc. has intellectual property 
-            rights relating to technology described in this document. In
-            particular, and without limitation, these intellectual
-            property rights may include one or more of the U.S. patents
-            listed at http://www.sun.com/patents and one or more
-            additional patents or pending patent applications in the
-            U.S. and other countries.
-
-            This document and the technology which it describes are
-            distributed under licenses restricting their use, copying,
-            distribution, and decompilation. No part of this document
-            may be reproduced in any form by any means without prior
-            written authorization of Sun and its licensors, if any.
-
-            Third-party software, including font technology, is
-            copyrighted and licensed from Sun suppliers.
-
-            Sun, Sun Microsystems, the Sun logo, Solaris, Java, Java EE,
-            JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-            Cup logo are trademarks or registered trademarks of Sun
-            Microsystems, Inc. in the U.S. and other countries.
-
-            Federal Acquisitions: Commercial Software - Government Users
-            Subject to Standard License Terms and Conditions.
-
-        </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:annotation>
-        <xsd:documentation>
-
-            <![CDATA[
-
-            The XML Schema for the JavaServer Faces Application
-            Configuration File (Version 1.2).
-
-            All JavaServer Faces configuration files must indicate
-            the JavaServer Faces schema by indicating the JavaServer
-            Faces namespace:
-
-            http://java.sun.com/xml/ns/javaee
-
-            and by indicating the version of the schema by
-            using the version element as shown below:
-
-            <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
-                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                    xsi:schemaLocation="..."
-                    version="1.2">
-                ...
-            </faces-config>
-
-            The instance documents may indicate the published
-            version of the schema using xsi:schemaLocation attribute
-            for javaee namespace with the following location:
-
-            http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd
-
-            ]]>
-
-        </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:include schemaLocation="javaee_5.xsd"/>
-
-    <!-- **************************************************** -->
-
-    <xsd:element name = "faces-config" type="javaee:faces-configType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "faces-config" element is the root of the configuration
-                information hierarchy, and contains nested elements for all
-                of the other configuration settings.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:unique name="faces-config-converter-ID-uniqueness">
-            <xsd:annotation>
-                <xsd:documentation>
-
-                    Converter IDs must be unique within a document.
-
-                </xsd:documentation>
-            </xsd:annotation>
-
-            <xsd:selector xpath="javaee:converter"/>
-            <xsd:field    xpath="javaee:converter-id"/>
-        </xsd:unique>
-
-        <xsd:unique name="faces-config-converter-for-class-uniqueness">
-            <xsd:annotation>
-                <xsd:documentation>
-
-                    'converter-for-class' element values must be unique
-                    within a document.
-
-                </xsd:documentation>
-            </xsd:annotation>
-
-            <xsd:selector xpath="javaee:converter"/>
-            <xsd:field    xpath="javaee:converter-for-class"/>
-        </xsd:unique>
-
-        <xsd:unique name="faces-config-validator-ID-uniqueness">
-            <xsd:annotation>
-                <xsd:documentation>
-
-                    Validator IDs must be unique within a document.
-
-                </xsd:documentation>
-            </xsd:annotation>
-
-            <xsd:selector xpath="javaee:validator"/>
-            <xsd:field    xpath="javaee:validator-id"/>
-        </xsd:unique>
-
-        <xsd:unique name="faces-config-managed-bean-name-uniqueness">
-            <xsd:annotation>
-                <xsd:documentation>
-
-                    Managed bean names must be unique within a document.
-
-                </xsd:documentation>
-            </xsd:annotation>
-
-            <xsd:selector xpath="javaee:managed-bean"/>
-            <xsd:field    xpath="javaee:managed-bean-name"/>
-        </xsd:unique>
-    </xsd:element>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-configType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "faces-config" element is the root of the configuration
-                information hierarchy, and contains nested elements for all
-                of the other configuration settings.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:choice minOccurs="0" maxOccurs="unbounded">
-            <xsd:element name="application"
-                         type="javaee:faces-config-applicationType"/>
-            <xsd:element name="factory"
-                         type="javaee:faces-config-factoryType"/>
-            <xsd:element name="component"
-                         type="javaee:faces-config-componentType"/>
-            <xsd:element name="converter"
-                         type="javaee:faces-config-converterType"/>
-            <xsd:element name="managed-bean"
-                         type="javaee:faces-config-managed-beanType"/>
-            <xsd:element name="navigation-rule"
-                         type="javaee:faces-config-navigation-ruleType"/>
-            <xsd:element name="referenced-bean"
-                         type="javaee:faces-config-referenced-beanType"/>
-            <xsd:element name="render-kit"
-                         type="javaee:faces-config-render-kitType"/>
-            <xsd:element name="lifecycle"
-                         type="javaee:faces-config-lifecycleType"/>
-            <xsd:element name="validator"
-                         type="javaee:faces-config-validatorType"/>
-            <xsd:element name="faces-config-extension"
-                         type="javaee:faces-config-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:choice>
-            <xsd:attribute name = "id" type = "xsd:ID"/>
-            <xsd:attribute name="version"
-                type="javaee:faces-config-versionType"
-                use="required"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for faces-config.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-applicationType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "application" element provides a mechanism to define the
-                various per-application-singleton implementation artifacts for
-                a particular web application that is utilizing 
-                JavaServer Faces.  For nested elements that are not specified, 
-                the JSF implementation must provide a suitable default.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:choice minOccurs="0" maxOccurs="unbounded">
-            <xsd:element name="action-listener"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "action-listener" element contains the fully 
-                            qualified class name of the concrete 
-                            ActionListener implementation class that will be 
-                            called during the Invoke Application phase of the 
-                            request processing lifecycle.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="default-render-kit-id"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "default-render-kit-id" element allows the 
-                            application to define a renderkit to be used other 
-                            than the standard one. 
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="message-bundle"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The base name of a resource bundle representing 
-                            the message resources for this application.  See 
-                            the JavaDocs for the "java.util.ResourceBundle" 
-                            class for more information on the syntax of 
-                            resource bundle names.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="navigation-handler"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "navigation-handler" element contains the 
-                            fully qualified class name of the concrete 
-                            NavigationHandler implementation class that will 
-                            be called during the Invoke Application phase 
-                            of the request processing lifecycle, if the 
-                            default ActionListener (provided by the JSF 
-                            implementation) is used.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="view-handler"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "view-handler" element contains the fully 
-                            qualified class name of the concrete ViewHandler 
-                            implementation class that will be called during 
-                            the Restore View and Render Response phases of the 
-                            request processing lifecycle.  The faces 
-                            implementation must provide a default 
-                            implementation of this class.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="state-manager"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "state-manager" element contains the fully 
-                            qualified class name of the concrete StateManager 
-                            implementation class that will be called during 
-                            the Restore View and Render Response phases of the 
-                            request processing lifecycle.  The faces 
-                            implementation must provide a default 
-                            implementation of this class.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="el-resolver"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "el-resolver" element contains the fully
-                            qualified class name of the concrete
-                            javax.el.ELResolver implementation class
-                            that will be used during the processing of
-                            EL expressions.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="property-resolver"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                            The "property-resolver" element contains the fully 
-                            qualified class name of the concrete 
-                            PropertyResolver implementation class that will 
-                            be used during the processing of value binding 
-                            expressions.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="variable-resolver"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                            The "variable-resolver" element contains the fully
-                            qualified class name of the concrete 
-                            VariableResolver implementation class that will 
-                            be used during the processing of value binding 
-                            expressions.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element 
-                name="locale-config"
-                type="javaee:faces-config-locale-configType"/>
-            <xsd:element 
-                name="resource-bundle"
-                type="javaee:faces-config-application-resource-bundleType"/>
-            <xsd:element name="application-extension"
-                         type="javaee:faces-config-application-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            </xsd:choice>
-        <xsd:attribute name = "id" type = "xsd:ID"/>
-    </xsd:complexType>
-
-    <xsd:complexType name="faces-config-application-resource-bundleType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-              The resource-bundle element inside the application element
-              references a java.util.ResourceBundle instance by name
-              using the var element.  ResourceBundles referenced in this
-              manner may be returned by a call to
-              Application.getResourceBundle() passing the current
-              FacesContext for this request and the value of the var
-              element below.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="base-name"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The fully qualified class name of the
-                        java.util.ResourceBundle instance.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="var"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The name by which this ResourceBundle instance
-                        is retrieved by a call to
-                        Application.getResourceBundle().
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-application-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for application.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-factoryType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "factory" element provides a mechanism to define the 
-                various Factories that comprise parts of the implementation 
-                of JavaServer Faces.  For nested elements that are not 
-                specified, the JSF implementation must provide a suitable 
-                default.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:choice minOccurs="0" maxOccurs="unbounded">
-            <xsd:element name="application-factory"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                        The "application-factory" element contains the 
-                        fully qualified class name of the concrete 
-                        ApplicationFactory implementation class that will 
-                        be called when 
-                        FactoryFinder.getFactory(APPLICATION_FACTORY) is
-                        called.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="faces-context-factory"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                        The "faces-context-factory" element contains the
-                        fully qualified class name of the concrete
-                        FacesContextFactory implementation class that will
-                        be called when 
-                        FactoryFinder.getFactory(FACES_CONTEXT_FACTORY) 
-                        is called.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="lifecycle-factory"
-                        type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                            
-                        The "lifecycle-factory" element contains the fully
-                        qualified class name of the concrete LifecycleFactory
-                        implementation class that will be called when
-                        FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called.
-                            
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="render-kit-factory"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "render-kit-factory" element contains the fully
-                        qualified class name of the concrete RenderKitFactory
-                        implementation class that will be called when
-                        FactoryFinder.getFactory(RENDER_KIT_FACTORY) is 
-                        called.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="factory-extension"
-                         type="javaee:faces-config-factory-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:choice>
-        <xsd:attribute name = "id" type = "xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-factory-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for factory.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-attributeType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "attribute" element represents a named, typed, value
-                associated with the parent UIComponent via the generic
-                attributes mechanism.
-
-                Attribute names must be unique within the scope of the parent
-                (or related) component.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="attribute-name"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "attribute-name" element represents the name under 
-                        which the corresponding value will be stored, in the 
-                        generic attributes of the UIComponent we are related 
-                        to.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="attribute-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "attribute-class" element represents the Java type
-                        of the value associated with this attribute name.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="default-value"
-                         type="javaee:faces-config-default-valueType"
-                         minOccurs="0"/>
-            <xsd:element name="suggested-value"
-                         type="javaee:faces-config-suggested-valueType"
-                         minOccurs="0"/>
-            <xsd:element name="attribute-extension"
-                         type="javaee:faces-config-attribute-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name = "id" type = "xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-attribute-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for attribute.  It may contain 
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-componentType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "component" element represents a concrete UIComponent
-                implementation class that should be registered under the
-                specified type identifier, along with its associated 
-                properties and attributes.  Component types must be unique 
-                within the entire web application.
-
-                Nested "attribute" elements identify generic attributes that 
-                are recognized by the implementation logic of this component.
-                Nested "property" elements identify JavaBeans properties of 
-                the component class that may be exposed for manipulation 
-                via tools.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="component-type"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "component-type" element represents the name under 
-                        which the corresponding UIComponent class should be 
-                        registered.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="component-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "component-class" element represents the fully 
-                        qualified class name of a concrete UIComponent 
-                        implementation class.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="facet"
-                         type="javaee:faces-config-facetType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element name="attribute"
-                         type="javaee:faces-config-attributeType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element name="property"
-                         type="javaee:faces-config-propertyType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element name="component-extension"
-                         type="javaee:faces-config-component-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-component-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-                Extension element for component.  It may contain 
-                implementation specific content.
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-default-localeType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "default-locale" element declares the default locale 
-                for this application instance.
-
-                It must be specified as :language:[_:country:[_:variant:]]
-                without the colons, for example "ja_JP_SJIS".  The
-                separators between the segments may be '-' or '_'.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:extension base="javaee:faces-config-localeType">
-                <xsd:attribute name="id" type="xsd:ID"/>                
-            </xsd:extension>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-
-    <xsd:complexType name="faces-config-default-valueType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "default-value" contains the value for the property or
-                attribute in which this element resides.  This value differs
-                from the "suggested-value" in that the property or attribute
-                must take the value, whereas in "suggested-value" taking the
-                value is optional.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string"/>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:simpleType name="faces-config-el-expressionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                EL expressions present within a faces config file
-                must start with the character sequence of '#{' and
-                end with '}'.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:restriction base="xsd:string">
-            <xsd:pattern value="#\{.*\}"/>
-        </xsd:restriction>
-    </xsd:simpleType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-facetType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Define the name and other design-time information for a facet
-                that is associated with a renderer or a component.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="facet-name"
-                         type="javaee:java-identifierType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "facet-name" element represents the facet name 
-                        under which a UIComponent will be added to its parent.  
-                        It must be of type "Identifier".
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="facet-extension"
-                         type="javaee:faces-config-facet-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-facet-extensionType">
-         <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for facet.  It may contain implementation
-                specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-from-view-idType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The value of from-view-id must contain one of the following 
-                values:
-
-                  - The exact match for a view identifier that is recognized
-                    by the the ViewHandler implementation being used (such as
-                    "/index.jsp" if you are using the default ViewHandler).
-
-                  - A proper prefix of a view identifier, plus a trailing 
-                    "*" character.  This pattern indicates that all view 
-                    identifiers that match the portion of the pattern up to 
-                    the asterisk will match the surrounding rule.  When more 
-                    than one match exists, the match with the longest pattern 
-                    is selected.
-
-                  - An "*" character, which means that this pattern applies 
-                    to all view identifiers.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string"/>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-from-actionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "from-action" element contains an action reference 
-                expression that must have been executed (by the default 
-                ActionListener for handling application level events) 
-                in order to select the navigation rule.  If not specified, 
-                this rule will be relevant no matter which action reference 
-                was executed (or if no action reference was executed).
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:extension base="javaee:faces-config-el-expressionType">
-                <xsd:attribute name="id" type="xsd:ID"/>
-            </xsd:extension>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-converterType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "converter" element represents a concrete Converter
-                implementation class that should be registered under the
-                specified converter identifier.  Converter identifiers must 
-                be unique within the entire web application.
-
-                Nested "attribute" elements identify generic attributes that
-                may be configured on the corresponding UIComponent in order 
-                to affect the operation of the Converter.  Nested "property"
-                elements identify JavaBeans properties of the Converter
-                implementation class that may be configured to affect the
-                operation of the Converter.  "attribute" and "property" 
-                elements are intended to allow component developers to 
-                more completely describe their components to tools and users.
-                These elements have no required runtime semantics.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:choice>
-                <xsd:element name="converter-id"
-                             type="javaee:string">
-                    <xsd:annotation>
-                        <xsd:documentation>
-
-                            The "converter-id" element represents the 
-                            identifier under which the corresponding 
-                            Converter class should be registered.
-
-                        </xsd:documentation>
-                    </xsd:annotation>
-                </xsd:element>
-                
-                <xsd:element name="converter-for-class"
-                             type="javaee:fully-qualified-classType">
-                    <xsd:annotation>
-                        <xsd:documentation>
-
-                            The "converter-for-class" element represents the 
-                            fully qualified class name for which a Converter 
-                            class will be registered.
-
-                        </xsd:documentation>
-                    </xsd:annotation>
-                </xsd:element>
-            </xsd:choice>
-            
-            <xsd:element name="converter-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "converter-class" element represents the fully
-                        qualified class name of a concrete Converter 
-                        implementation class.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="attribute"
-                         type="javaee:faces-config-attributeType"
-                         minOccurs="0"
-                         maxOccurs="unbounded">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                       Nested "attribute" elements identify generic
-                       attributes that may be configured on the
-                       corresponding UIComponent in order to affect the
-                       operation of the Converter.  This attribute is
-                       primarily for design-time tools and is not
-                       specified to have any meaning at runtime.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="property"
-                         type="javaee:faces-config-propertyType"
-                         minOccurs="0"
-                         maxOccurs="unbounded">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                       Nested "property" elements identify JavaBeans
-                       properties of the Converter implementation class
-                       that may be configured to affect the operation of
-                       the Converter.  This attribute is primarily for
-                       design-time tools and is not specified to have
-                       any meaning at runtime.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="converter-extension"
-                         type="javaee:faces-config-converter-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-converter-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for converter.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-lifecycleType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "lifecycle" element provides a mechanism to specify
-                modifications to the behaviour of the default Lifecycle
-                implementation for this web application.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:element name="phase-listener"
-                         type="javaee:fully-qualified-classType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded">
-                
-                <xsd:annotation>
-                    <xsd:documentation>
-                    
-                        The "phase-listener" element contains the fully 
-                        qualified class name of the concrete PhaseListener 
-                        implementation class that will be registered on 
-                        the Lifecycle.
-                    
-                    </xsd:documentation>
-            </xsd:annotation>                
-            </xsd:element>
-            <xsd:element name="lifecycle-extension"
-                         type="javaee:faces-config-lifecycle-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-lifecycle-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for lifecycle.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    
-    <!-- **************************************************** -->
-    
-    <xsd:simpleType name="faces-config-localeType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The localeType defines valid locale defined by ISO-639-1
-                and ISO-3166.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:restriction base="xsd:string">
-            <xsd:pattern value="[a-z]{2}(_|-)?([\p{L}\-\p{Nd}]{2})?"/>
-        </xsd:restriction>
-  </xsd:simpleType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-locale-configType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "locale-config" element allows the app developer to 
-                declare the supported locales for this application.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        
-        <xsd:sequence>
-            <xsd:element name="default-locale"
-                         type="javaee:faces-config-default-localeType"
-                         minOccurs="0">
-            </xsd:element>
-            <xsd:element name="supported-locale"
-                         type="javaee:faces-config-supported-localeType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded">                
-            </xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-managed-beanType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "managed-bean" element represents a JavaBean, of a 
-                particular class, that will be dynamically instantiated 
-                at runtime (by the default VariableResolver implementation) 
-                if it is referenced as the first element of a value binding 
-                expression, and no corresponding bean can be identified in 
-                any scope.  In addition to the creation of the managed bean, 
-                and the optional storing of it into the specified scope, 
-                the nested managed-property elements can be used to 
-                initialize the contents of settable JavaBeans properties of 
-                the created instance.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="managed-bean-name"
-                         type="javaee:java-identifierType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "managed-bean-name" element represents the 
-                        attribute name under which a managed bean will 
-                        be searched for, as well as stored (unless the 
-                        "managed-bean-scope" value is "none").
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="managed-bean-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "managed-bean-class" element represents the fully
-                        qualified class name of the Java class that will be 
-                        used`to instantiate a new instance if creation of the 
-                        specified`managed bean is requested.
-
-                        The specified class must conform to standard JavaBeans
-                        conventions.  In particular, it must have a public
-                        zero-arguments constructor, and zero or more public
-                        property setters.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element 
-                name="managed-bean-scope"
-                type="javaee:faces-config-managed-bean-scopeOrNoneType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "managed-bean-scope" element represents the scope 
-                        into which a newly created instance of the specified 
-                        managed bean will be stored (unless the value is 
-                        "none").
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:choice>
-                <xsd:element name="managed-property"
-                             type="javaee:faces-config-managed-propertyType"
-                             minOccurs="0"
-                             maxOccurs="unbounded"/>
-                <xsd:element name="map-entries"
-                             type="javaee:faces-config-map-entriesType"/>
-                <xsd:element name="list-entries"
-                             type="javaee:faces-config-list-entriesType"/>
-            </xsd:choice>
-            <xsd:element name="managed-bean-extension"
-                         type="javaee:faces-config-managed-bean-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-managed-bean-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for managed-bean.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-    
-    <xsd:complexType name="faces-config-managed-bean-scopeOrNoneType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                <![CDATA[
-                Defines the legal values for the <managed-bean-scope>
-                element's body content, which includes all of the scopes
-                normally used in a web application, plus the "none" value
-                indicating that a created bean should not be stored into
-                any scope.
-                ]]>
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string">
-                <xsd:enumeration value="request"/>
-                <xsd:enumeration value="session"/>
-                <xsd:enumeration value="application"/>
-                <xsd:enumeration value="none"/>
-            </xsd:restriction>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-managed-propertyType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "managed-property" element represents an individual 
-                property of a managed bean that will be configured to the 
-                specified value (or value set) if the corresponding 
-                managed bean is automatically created.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="property-name"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "property-name" element represents the JavaBeans 
-                        property name under which the corresponding value may 
-                        be stored.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="property-class"
-                         type="javaee:java-typeType"
-                         minOccurs="0">
-                <xsd:annotation>
-                    <xsd:documentation>
-                    
-                        The "property-class" element represents the Java type 
-                        of the value associated with this property name.  
-                        If not specified, it can be inferred from existing 
-                        classes; however, this element should be specified 
-                        if the configuration file is going to be the source 
-                        for generating the corresponding classes.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:choice>
-                <xsd:element name="map-entries"
-                             type="javaee:faces-config-map-entriesType"/>
-                <xsd:element name="null-value"
-                             type="javaee:faces-config-null-valueType">
-                </xsd:element>
-                <xsd:element name="value"
-                             type="javaee:faces-config-valueType"/>
-                <xsd:element name="list-entries"
-                             type="javaee:faces-config-list-entriesType"/>
-            </xsd:choice>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-map-entryType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "map-entry" element reprsents a single key-entry pair 
-                that will be added to the computed value of a managed 
-                property of type java.util.Map.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:element name="key"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "key" element is the String representation of a 
-                        map key that will be stored in a managed property of 
-                        type java.util.Map.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:choice>
-                <xsd:element name="null-value"
-                             type="javaee:faces-config-null-valueType"/>
-                <xsd:element name="value"
-                             type="javaee:faces-config-valueType"/>
-            </xsd:choice>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-map-entriesType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "map-entries' element represents a set of key-entry pairs 
-                that will be added to the computed value of a managed property 
-                of type java.util.Map.  In addition, the Java class types 
-                of the key and entry values may be optionally declared.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:element name="key-class"
-                         type="javaee:fully-qualified-classType"
-                         minOccurs="0">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "key-class" element defines the Java type to which 
-                        each "key" element in a set of "map-entry" elements 
-                        will be converted to.  If omitted, "java.lang.String" 
-                        is assumed.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="value-class"
-                         type="javaee:faces-config-value-classType"
-                         minOccurs="0"/>                
-            <xsd:element name="map-entry"
-                         type="javaee:faces-config-map-entryType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-navigation-caseType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "navigation-case" element describes a particular 
-                combination of conditions that must match for this case to 
-                be executed, and the view id of the component tree that 
-                should be selected next.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="from-action"
-                         type="javaee:faces-config-from-actionType"
-                         minOccurs="0">
-            </xsd:element>
-            <xsd:element name="from-outcome"
-                         type="javaee:string" minOccurs="0">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "from-outcome" element contains a logical outcome
-                        string returned by the execution of an application
-                        action method selected via an "actionRef" property
-                        (or a literal value specified by an "action" property)
-                        of a UICommand component.  If specified, this rule 
-                        will be relevant only if the outcome value matches 
-                        this element's value.  If not specified, this rule 
-                        will be relevant no matter what the outcome value was.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="to-view-id"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "to-view-id" element contains the view identifier 
-                        of the next view that should be displayed if this
-                        navigation rule is matched.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element 
-                name="redirect"
-                type="javaee:faces-config-redirectType" minOccurs="0"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-navigation-ruleType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "navigation-rule" element represents an individual 
-                decision rule that will be utilized by the default 
-                NavigationHandler implementation to make decisions on 
-                what view should be displayed next, based on the 
-                view id being processed.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="from-view-id"
-                         type="javaee:faces-config-from-view-idType"
-                         minOccurs="0"/>
-            <xsd:element name="navigation-case"
-                         type="javaee:faces-config-navigation-caseType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element 
-                name="navigation-rule-extension"
-                type="javaee:faces-config-navigation-rule-extensionType"
-                minOccurs="0"
-                maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-navigation-rule-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for navigation-rule.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-null-valueType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "null-value" element indicates that the managed
-                property in which we are nested will be explicitly
-                set to null if our managed bean is automatically
-                created.  This is different from omitting the managed
-                property element entirely, which will cause no
-                property setter to be called for this property.
-
-                The "null-value" element can only be used when the
-                associated "property-class" identifies a Java class,
-                not a Java primitive.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-    
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-propertyType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "property" element represents a JavaBean property of the 
-                Java class represented by our parent element.
-
-                Property names must be unique within the scope of the Java 
-                class that is represented by the parent element, and must 
-                correspond to property names that will be recognized when 
-                performing introspection against that class via 
-                java.beans.Introspector.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="property-name"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "property-name" element represents the JavaBeans 
-                        property name under which the corresponding value 
-                        may be stored.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="property-class"
-                         type="javaee:java-typeType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "property-class" element represents the Java type 
-                        of the value associated with this property name.  
-                        If not specified, it can be inferred from existing 
-                        classes; however, this element should be specified if 
-                        the configuration file is going to be the source for 
-                        generating the corresponding classes.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="default-value"
-                         type="javaee:faces-config-default-valueType"
-                         minOccurs="0"/>               
-            <xsd:element name="suggested-value"
-                         type="javaee:faces-config-suggested-valueType"
-                         minOccurs="0"/>
-            <xsd:element name="property-extension"
-                         type="javaee:faces-config-property-extensionType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-property-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for property.  It may contain 
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-redirectType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                    The "redirect" element indicates that navigation to the
-                    specified "to-view-id" should be accomplished by 
-                    performing an HTTP redirect rather than the usual 
-                    ViewHandler mechanisms.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-referenced-beanType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "referenced-bean" element represents at design time the 
-                promise that a Java object of the specified type will exist at 
-                runtime in some scope, under the specified key.  This can be 
-                used by design time tools to construct user interface dialogs 
-                based on the properties of the specified class.  The presence 
-                or absence of a referenced bean element has no impact on the 
-                JavaServer Faces runtime environment inside a web application.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="referenced-bean-name"
-                         type="javaee:java-identifierType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "referenced-bean-name" element represents the 
-                        attribute name under which the corresponding 
-                        referenced bean may be assumed to be stored, in one 
-                        of 'request', 'session', or 'application' scopes.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="referenced-bean-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "referenced-bean-class" element represents the 
-                        fully qualified class name of the Java class 
-                        (either abstract or concrete) or Java interface 
-                        implemented by the corresponding referenced bean. 
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-render-kitType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "render-kit" element represents a concrete RenderKit 
-                implementation that should be registered under the specified 
-                render-kit-id.  If no render-kit-id is specified, the 
-                identifier of the default RenderKit 
-                (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="render-kit-id"
-                         type="javaee:string"
-                         minOccurs="0">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "render-kit-id" element represents an identifier 
-                        for the RenderKit represented by the parent 
-                        "render-kit" element.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="render-kit-class"
-                         type="javaee:fully-qualified-classType"
-                         minOccurs="0">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "render-kit-class" element represents the fully 
-                        qualified class name of a concrete RenderKit 
-                        implementation class.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="renderer"
-                         type="javaee:faces-config-rendererType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded"/>
-            <xsd:element name="render-kit-extension"
-                         type="javaee:faces-config-render-kit-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-rendererType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "renderer" element represents a concrete Renderer 
-                implementation class that should be registered under the 
-                specified component family and renderer type identifiers, 
-                in the RenderKit associated with the parent "render-kit" 
-                element.  Combinations of component family and 
-                renderer type must be unique within the RenderKit 
-                associated with the parent "render-kit" element.
-
-                Nested "attribute" elements identify generic component 
-                attributes that are recognized by this renderer.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="component-family"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "component-family" element represents the 
-                        component family for which the Renderer represented 
-                        by the parent "renderer" element will be used.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>                    
-            </xsd:element>
-            <xsd:element name="renderer-type"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "renderer-type" element represents a renderer type 
-                        identifier for the Renderer represented by the parent 
-                        "renderer" element.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="renderer-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                        The "renderer-class" element represents the fully
-                        qualified class name of a concrete Renderer
-                        implementation class.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="facet"
-                         type="javaee:faces-config-facetType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element name="attribute"
-                         type="javaee:faces-config-attributeType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-            <xsd:element name="renderer-extension"
-                         type="javaee:faces-config-renderer-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-renderer-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for renderer.  It may contain implementation
-                specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-render-kit-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for render-kit.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-suggested-valueType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "suggested-value" contains the value for the property or
-                attribute in which this element resides.  This value is 
-                advisory only and is intended for tools to use when 
-                populating pallettes.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string"/>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-supported-localeType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "supported-locale" element allows authors to declare
-                which locales are supported in this application instance.
-
-                It must be specified as :language:[_:country:[_:variant:]]
-                without the colons, for example "ja_JP_SJIS".  The
-                separators between the segments may be '-' or '_'.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:extension base="javaee:faces-config-localeType">
-                <xsd:attribute name="id" type="xsd:ID"/> 
-            </xsd:extension>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-validatorType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "validator" element represents a concrete Validator
-                implementation class that should be registered under the
-                specified validator identifier.  Validator identifiers must 
-                be unique within the entire web application.
-
-                Nested "attribute" elements identify generic attributes that 
-                may be configured on the corresponding UIComponent in order 
-                to affect the operation of the Validator.  Nested "property"
-                elements identify JavaBeans properties of the Validator
-                implementation class that may be configured to affect the
-                operation of the Validator.  "attribute" and "property" 
-                elements are intended to allow component developers to 
-                more completely describe their components to tools and users.
-                These elements have no required runtime semantics.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup"/>
-            <xsd:element name="validator-id"
-                         type="javaee:string">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "validator-id" element represents the identifier 
-                        under which the corresponding Validator class should 
-                        be registered.
-                        
-                    </xsd:documentation>
-                </xsd:annotation>                
-            </xsd:element>
-            <xsd:element name="validator-class"
-                         type="javaee:fully-qualified-classType">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                        The "validator-class" element represents the fully 
-                        qualified class name of a concrete Validator 
-                        implementation class.  
-                        
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="attribute"
-                         type="javaee:faces-config-attributeType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded">
-                <xsd:annotation>
-                    <xsd:documentation>
-                        
-                       Nested "attribute" elements identify generic
-                       attributes that may be configured on the
-                       corresponding UIComponent in order to affect the
-                       operation of the Validator.  This attribute is
-                       primarily for design-time tools and is not
-                       specified to have any meaning at runtime.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-
-            </xsd:element>
-            <xsd:element name="property"
-                         type="javaee:faces-config-propertyType"
-                         minOccurs="0" 
-                         maxOccurs="unbounded">
-                <xsd:annotation>
-                    <xsd:documentation>
-
-                       Nested "property" elements identify JavaBeans
-                       properties of the Validator implementation class
-                       that may be configured to affect the operation of
-                       the Validator.  This attribute is primarily for
-                       design-time tools and is not specified to have
-                       any meaning at runtime.
-
-                    </xsd:documentation>
-                </xsd:annotation>
-            </xsd:element>
-            <xsd:element name="validator-extension"
-                         type="javaee:faces-config-validator-extensionType"
-                         minOccurs="0"
-                         maxOccurs="unbounded"/>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name = "faces-config-validator-extensionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                Extension element for validator.  It may contain
-                implementation specific content.
-
-            </xsd:documentation>
-        </xsd:annotation>
-
-        <xsd:sequence>
-            <xsd:any namespace="##any"
-                     processContents="lax"
-                     minOccurs="0"
-                     maxOccurs="unbounded" />
-         </xsd:sequence>
-         <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:simpleType name="faces-config-valueType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                The "value" element is the String representation of
-                a literal value to which a scalar managed property
-                will be set, or a value binding expression ("#{...}")
-                that will be used to calculate the required value.
-                It will be converted as specified for the actual
-                property type.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:union 
-            memberTypes="javaee:faces-config-el-expressionType xsd:string"/>
-    </xsd:simpleType>
-    
-    <!-- **************************************************** -->
-    
-    <xsd:complexType name="faces-config-value-classType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "value-class" element defines the Java type to which each
-                "value" element's value will be converted to, prior to adding 
-                it to the "list-entries" list for a managed property that is 
-                a java.util.List, or a "map-entries" map for a managed 
-                property that is a java.util.Map.  
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:fully-qualified-classType"/>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:complexType name="faces-config-list-entriesType">
-        <xsd:annotation>
-            <xsd:documentation>
-                
-                The "list-entries" element represents a set of initialization
-                elements for a managed property that is a java.util.List or an
-                array.  In the former case, the "value-class" element can 
-                optionally be used to declare the Java type to which each 
-                value should be converted before adding it to the Collection.
-                
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:sequence>
-            <xsd:element name="value-class"
-                         type="javaee:faces-config-value-classType"
-                         minOccurs="0"/>
-            <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element name="null-value"
-                             type="javaee:faces-config-null-valueType"/>
-                <xsd:element name="value"
-                             type="javaee:faces-config-valueType"/>
-            </xsd:choice>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID"/>
-    </xsd:complexType>
-
-    <!-- **************************************************** -->
-
-    <xsd:simpleType name="faces-config-versionType">
-        <xsd:annotation>
-            <xsd:documentation>
-
-                This type contains the recognized versions of
-                faces-config supported.
-
-            </xsd:documentation>
-        </xsd:annotation>
-        <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="1.2"/>
-        </xsd:restriction>
-    </xsd:simpleType>
-
-    <!-- **************************************************** -->
-
-</xsd:schema>

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/web-facesconfig_1_2.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-facesconfig_1_2.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,2108 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+ Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
+
+ The contents of this file are subject to the terms of either the GNU
+ General Public License Version 2 only ("GPL") or the Common Development
+ and Distribution License("CDDL") (collectively, the "License").  You
+ may not use this file except in compliance with the License. You can obtain
+ a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
+ or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
+ language governing permissions and limitations under the License.
+
+ When distributing the software, include this License Header Notice in each
+ file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
+ Sun designates this particular file as subject to the "Classpath" exception
+ as provided by Sun in the GPL Version 2 section of the License file that
+ accompanied this code.  If applicable, add the following below the License
+ Header, with the fields enclosed by brackets [] replaced by your own
+ identifying information: "Portions Copyrighted [year]
+ [name of copyright owner]"
+
+ Contributor(s):
+
+ If you wish your version of this file to be governed by only the CDDL or
+ only the GPL Version 2, indicate your decision by adding "[Contributor]
+ elects to include this software in this distribution under the [CDDL or GPL
+ Version 2] license."  If you don't indicate a single choice of license, a
+ recipient has the option to distribute your version of this file under
+ either the CDDL, the GPL Version 2 or to extend the choice of license to
+ its licensees as provided above.  However, if you add GPL Version 2 code
+ and therefore, elected the GPL Version 2 license, then the option applies
+ only if the new code is made subject to such option by the copyright
+ holder.
+-->
+
+
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/javaee"
+     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="1.2">
+
+    <xsd:annotation>
+        <xsd:documentation>
+            $Id: web-facesconfig_1_2.xsd,v 1.15 2008/03/26 17:46:42 rlubke Exp $
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:annotation>
+        <xsd:documentation>
+
+            Copyright 2005 Sun Microsystems, Inc., 
+            901 San Antonio Road, 
+            Palo Alto, California 94303, U.S.A. 
+            All rights reserved.
+
+            Sun Microsystems, Inc. has intellectual property 
+            rights relating to technology described in this document. In
+            particular, and without limitation, these intellectual
+            property rights may include one or more of the U.S. patents
+            listed at http://www.sun.com/patents and one or more
+            additional patents or pending patent applications in the
+            U.S. and other countries.
+
+            This document and the technology which it describes are
+            distributed under licenses restricting their use, copying,
+            distribution, and decompilation. No part of this document
+            may be reproduced in any form by any means without prior
+            written authorization of Sun and its licensors, if any.
+
+            Third-party software, including font technology, is
+            copyrighted and licensed from Sun suppliers.
+
+            Sun, Sun Microsystems, the Sun logo, Solaris, Java, Java EE,
+            JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+            Cup logo are trademarks or registered trademarks of Sun
+            Microsystems, Inc. in the U.S. and other countries.
+
+            Federal Acquisitions: Commercial Software - Government Users
+            Subject to Standard License Terms and Conditions.
+
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:annotation>
+        <xsd:documentation>
+
+            <![CDATA[
+
+            The XML Schema for the JavaServer Faces Application
+            Configuration File (Version 1.2).
+
+            All JavaServer Faces configuration files must indicate
+            the JavaServer Faces schema by indicating the JavaServer
+            Faces namespace:
+
+            http://java.sun.com/xml/ns/javaee
+
+            and by indicating the version of the schema by
+            using the version element as shown below:
+
+            <faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                    xsi:schemaLocation="..."
+                    version="1.2">
+                ...
+            </faces-config>
+
+            The instance documents may indicate the published
+            version of the schema using xsi:schemaLocation attribute
+            for javaee namespace with the following location:
+
+            http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd
+
+            ]]>
+
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:include schemaLocation="javaee_5.xsd"/>
+
+    <!-- **************************************************** -->
+
+    <xsd:element name = "faces-config" type="javaee:faces-configType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "faces-config" element is the root of the configuration
+                information hierarchy, and contains nested elements for all
+                of the other configuration settings.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:unique name="faces-config-converter-ID-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    Converter IDs must be unique within a document.
+
+                </xsd:documentation>
+            </xsd:annotation>
+
+            <xsd:selector xpath="javaee:converter"/>
+            <xsd:field    xpath="javaee:converter-id"/>
+        </xsd:unique>
+
+        <xsd:unique name="faces-config-converter-for-class-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    'converter-for-class' element values must be unique
+                    within a document.
+
+                </xsd:documentation>
+            </xsd:annotation>
+
+            <xsd:selector xpath="javaee:converter"/>
+            <xsd:field    xpath="javaee:converter-for-class"/>
+        </xsd:unique>
+
+        <xsd:unique name="faces-config-validator-ID-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    Validator IDs must be unique within a document.
+
+                </xsd:documentation>
+            </xsd:annotation>
+
+            <xsd:selector xpath="javaee:validator"/>
+            <xsd:field    xpath="javaee:validator-id"/>
+        </xsd:unique>
+
+        <xsd:unique name="faces-config-managed-bean-name-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    Managed bean names must be unique within a document.
+
+                </xsd:documentation>
+            </xsd:annotation>
+
+            <xsd:selector xpath="javaee:managed-bean"/>
+            <xsd:field    xpath="javaee:managed-bean-name"/>
+        </xsd:unique>
+    </xsd:element>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-configType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "faces-config" element is the root of the configuration
+                information hierarchy, and contains nested elements for all
+                of the other configuration settings.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:element name="application"
+                         type="javaee:faces-config-applicationType"/>
+            <xsd:element name="factory"
+                         type="javaee:faces-config-factoryType"/>
+            <xsd:element name="component"
+                         type="javaee:faces-config-componentType"/>
+            <xsd:element name="converter"
+                         type="javaee:faces-config-converterType"/>
+            <xsd:element name="managed-bean"
+                         type="javaee:faces-config-managed-beanType"/>
+            <xsd:element name="navigation-rule"
+                         type="javaee:faces-config-navigation-ruleType"/>
+            <xsd:element name="referenced-bean"
+                         type="javaee:faces-config-referenced-beanType"/>
+            <xsd:element name="render-kit"
+                         type="javaee:faces-config-render-kitType"/>
+            <xsd:element name="lifecycle"
+                         type="javaee:faces-config-lifecycleType"/>
+            <xsd:element name="validator"
+                         type="javaee:faces-config-validatorType"/>
+            <xsd:element name="faces-config-extension"
+                         type="javaee:faces-config-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:choice>
+            <xsd:attribute name = "id" type = "xsd:ID"/>
+            <xsd:attribute name="version"
+                type="javaee:faces-config-versionType"
+                use="required"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for faces-config.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-applicationType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "application" element provides a mechanism to define the
+                various per-application-singleton implementation artifacts for
+                a particular web application that is utilizing 
+                JavaServer Faces.  For nested elements that are not specified, 
+                the JSF implementation must provide a suitable default.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:element name="action-listener"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "action-listener" element contains the fully 
+                            qualified class name of the concrete 
+                            ActionListener implementation class that will be 
+                            called during the Invoke Application phase of the 
+                            request processing lifecycle.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="default-render-kit-id"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "default-render-kit-id" element allows the 
+                            application to define a renderkit to be used other 
+                            than the standard one. 
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="message-bundle"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The base name of a resource bundle representing 
+                            the message resources for this application.  See 
+                            the JavaDocs for the "java.util.ResourceBundle" 
+                            class for more information on the syntax of 
+                            resource bundle names.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="navigation-handler"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "navigation-handler" element contains the 
+                            fully qualified class name of the concrete 
+                            NavigationHandler implementation class that will 
+                            be called during the Invoke Application phase 
+                            of the request processing lifecycle, if the 
+                            default ActionListener (provided by the JSF 
+                            implementation) is used.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="view-handler"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "view-handler" element contains the fully 
+                            qualified class name of the concrete ViewHandler 
+                            implementation class that will be called during 
+                            the Restore View and Render Response phases of the 
+                            request processing lifecycle.  The faces 
+                            implementation must provide a default 
+                            implementation of this class.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="state-manager"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "state-manager" element contains the fully 
+                            qualified class name of the concrete StateManager 
+                            implementation class that will be called during 
+                            the Restore View and Render Response phases of the 
+                            request processing lifecycle.  The faces 
+                            implementation must provide a default 
+                            implementation of this class.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="el-resolver"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "el-resolver" element contains the fully
+                            qualified class name of the concrete
+                            javax.el.ELResolver implementation class
+                            that will be used during the processing of
+                            EL expressions.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="property-resolver"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                            The "property-resolver" element contains the fully 
+                            qualified class name of the concrete 
+                            PropertyResolver implementation class that will 
+                            be used during the processing of value binding 
+                            expressions.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="variable-resolver"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                            The "variable-resolver" element contains the fully
+                            qualified class name of the concrete 
+                            VariableResolver implementation class that will 
+                            be used during the processing of value binding 
+                            expressions.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element 
+                name="locale-config"
+                type="javaee:faces-config-locale-configType"/>
+            <xsd:element 
+                name="resource-bundle"
+                type="javaee:faces-config-application-resource-bundleType"/>
+            <xsd:element name="application-extension"
+                         type="javaee:faces-config-application-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            </xsd:choice>
+        <xsd:attribute name = "id" type = "xsd:ID"/>
+    </xsd:complexType>
+
+    <xsd:complexType name="faces-config-application-resource-bundleType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+              The resource-bundle element inside the application element
+              references a java.util.ResourceBundle instance by name
+              using the var element.  ResourceBundles referenced in this
+              manner may be returned by a call to
+              Application.getResourceBundle() passing the current
+              FacesContext for this request and the value of the var
+              element below.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="base-name"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The fully qualified class name of the
+                        java.util.ResourceBundle instance.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="var"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The name by which this ResourceBundle instance
+                        is retrieved by a call to
+                        Application.getResourceBundle().
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-application-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for application.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-factoryType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "factory" element provides a mechanism to define the 
+                various Factories that comprise parts of the implementation 
+                of JavaServer Faces.  For nested elements that are not 
+                specified, the JSF implementation must provide a suitable 
+                default.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:choice minOccurs="0" maxOccurs="unbounded">
+            <xsd:element name="application-factory"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                        The "application-factory" element contains the 
+                        fully qualified class name of the concrete 
+                        ApplicationFactory implementation class that will 
+                        be called when 
+                        FactoryFinder.getFactory(APPLICATION_FACTORY) is
+                        called.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="faces-context-factory"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                        The "faces-context-factory" element contains the
+                        fully qualified class name of the concrete
+                        FacesContextFactory implementation class that will
+                        be called when 
+                        FactoryFinder.getFactory(FACES_CONTEXT_FACTORY) 
+                        is called.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="lifecycle-factory"
+                        type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                            
+                        The "lifecycle-factory" element contains the fully
+                        qualified class name of the concrete LifecycleFactory
+                        implementation class that will be called when
+                        FactoryFinder.getFactory(LIFECYCLE_FACTORY) is called.
+                            
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="render-kit-factory"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "render-kit-factory" element contains the fully
+                        qualified class name of the concrete RenderKitFactory
+                        implementation class that will be called when
+                        FactoryFinder.getFactory(RENDER_KIT_FACTORY) is 
+                        called.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="factory-extension"
+                         type="javaee:faces-config-factory-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:choice>
+        <xsd:attribute name = "id" type = "xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-factory-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for factory.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-attributeType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "attribute" element represents a named, typed, value
+                associated with the parent UIComponent via the generic
+                attributes mechanism.
+
+                Attribute names must be unique within the scope of the parent
+                (or related) component.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="attribute-name"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "attribute-name" element represents the name under 
+                        which the corresponding value will be stored, in the 
+                        generic attributes of the UIComponent we are related 
+                        to.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="attribute-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "attribute-class" element represents the Java type
+                        of the value associated with this attribute name.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="default-value"
+                         type="javaee:faces-config-default-valueType"
+                         minOccurs="0"/>
+            <xsd:element name="suggested-value"
+                         type="javaee:faces-config-suggested-valueType"
+                         minOccurs="0"/>
+            <xsd:element name="attribute-extension"
+                         type="javaee:faces-config-attribute-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name = "id" type = "xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-attribute-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for attribute.  It may contain 
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-componentType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "component" element represents a concrete UIComponent
+                implementation class that should be registered under the
+                specified type identifier, along with its associated 
+                properties and attributes.  Component types must be unique 
+                within the entire web application.
+
+                Nested "attribute" elements identify generic attributes that 
+                are recognized by the implementation logic of this component.
+                Nested "property" elements identify JavaBeans properties of 
+                the component class that may be exposed for manipulation 
+                via tools.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="component-type"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "component-type" element represents the name under 
+                        which the corresponding UIComponent class should be 
+                        registered.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="component-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "component-class" element represents the fully 
+                        qualified class name of a concrete UIComponent 
+                        implementation class.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="facet"
+                         type="javaee:faces-config-facetType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="attribute"
+                         type="javaee:faces-config-attributeType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="property"
+                         type="javaee:faces-config-propertyType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="component-extension"
+                         type="javaee:faces-config-component-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-component-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Extension element for component.  It may contain 
+                implementation specific content.
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-default-localeType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "default-locale" element declares the default locale 
+                for this application instance.
+
+                It must be specified as :language:[_:country:[_:variant:]]
+                without the colons, for example "ja_JP_SJIS".  The
+                separators between the segments may be '-' or '_'.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:extension base="javaee:faces-config-localeType">
+                <xsd:attribute name="id" type="xsd:ID"/>                
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+
+    <xsd:complexType name="faces-config-default-valueType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "default-value" contains the value for the property or
+                attribute in which this element resides.  This value differs
+                from the "suggested-value" in that the property or attribute
+                must take the value, whereas in "suggested-value" taking the
+                value is optional.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:restriction base="javaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:simpleType name="faces-config-el-expressionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                EL expressions present within a faces config file
+                must start with the character sequence of '#{' and
+                end with '}'.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:pattern value="#\{.*\}"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-facetType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Define the name and other design-time information for a facet
+                that is associated with a renderer or a component.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="facet-name"
+                         type="javaee:java-identifierType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "facet-name" element represents the facet name 
+                        under which a UIComponent will be added to its parent.  
+                        It must be of type "Identifier".
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="facet-extension"
+                         type="javaee:faces-config-facet-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-facet-extensionType">
+         <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for facet.  It may contain implementation
+                specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-from-view-idType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The value of from-view-id must contain one of the following 
+                values:
+
+                  - The exact match for a view identifier that is recognized
+                    by the the ViewHandler implementation being used (such as
+                    "/index.jsp" if you are using the default ViewHandler).
+
+                  - A proper prefix of a view identifier, plus a trailing 
+                    "*" character.  This pattern indicates that all view 
+                    identifiers that match the portion of the pattern up to 
+                    the asterisk will match the surrounding rule.  When more 
+                    than one match exists, the match with the longest pattern 
+                    is selected.
+
+                  - An "*" character, which means that this pattern applies 
+                    to all view identifiers.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:restriction base="javaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-from-actionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "from-action" element contains an action reference 
+                expression that must have been executed (by the default 
+                ActionListener for handling application level events) 
+                in order to select the navigation rule.  If not specified, 
+                this rule will be relevant no matter which action reference 
+                was executed (or if no action reference was executed).
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:extension base="javaee:faces-config-el-expressionType">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-converterType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "converter" element represents a concrete Converter
+                implementation class that should be registered under the
+                specified converter identifier.  Converter identifiers must 
+                be unique within the entire web application.
+
+                Nested "attribute" elements identify generic attributes that
+                may be configured on the corresponding UIComponent in order 
+                to affect the operation of the Converter.  Nested "property"
+                elements identify JavaBeans properties of the Converter
+                implementation class that may be configured to affect the
+                operation of the Converter.  "attribute" and "property" 
+                elements are intended to allow component developers to 
+                more completely describe their components to tools and users.
+                These elements have no required runtime semantics.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:choice>
+                <xsd:element name="converter-id"
+                             type="javaee:string">
+                    <xsd:annotation>
+                        <xsd:documentation>
+
+                            The "converter-id" element represents the 
+                            identifier under which the corresponding 
+                            Converter class should be registered.
+
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+                
+                <xsd:element name="converter-for-class"
+                             type="javaee:fully-qualified-classType">
+                    <xsd:annotation>
+                        <xsd:documentation>
+
+                            The "converter-for-class" element represents the 
+                            fully qualified class name for which a Converter 
+                            class will be registered.
+
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+            </xsd:choice>
+            
+            <xsd:element name="converter-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "converter-class" element represents the fully
+                        qualified class name of a concrete Converter 
+                        implementation class.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="attribute"
+                         type="javaee:faces-config-attributeType"
+                         minOccurs="0"
+                         maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                       Nested "attribute" elements identify generic
+                       attributes that may be configured on the
+                       corresponding UIComponent in order to affect the
+                       operation of the Converter.  This attribute is
+                       primarily for design-time tools and is not
+                       specified to have any meaning at runtime.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="property"
+                         type="javaee:faces-config-propertyType"
+                         minOccurs="0"
+                         maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                       Nested "property" elements identify JavaBeans
+                       properties of the Converter implementation class
+                       that may be configured to affect the operation of
+                       the Converter.  This attribute is primarily for
+                       design-time tools and is not specified to have
+                       any meaning at runtime.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="converter-extension"
+                         type="javaee:faces-config-converter-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-converter-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for converter.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-lifecycleType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "lifecycle" element provides a mechanism to specify
+                modifications to the behaviour of the default Lifecycle
+                implementation for this web application.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:element name="phase-listener"
+                         type="javaee:fully-qualified-classType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded">
+                
+                <xsd:annotation>
+                    <xsd:documentation>
+                    
+                        The "phase-listener" element contains the fully 
+                        qualified class name of the concrete PhaseListener 
+                        implementation class that will be registered on 
+                        the Lifecycle.
+                    
+                    </xsd:documentation>
+            </xsd:annotation>                
+            </xsd:element>
+            <xsd:element name="lifecycle-extension"
+                         type="javaee:faces-config-lifecycle-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-lifecycle-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for lifecycle.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    
+    <!-- **************************************************** -->
+    
+    <xsd:simpleType name="faces-config-localeType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The localeType defines valid locale defined by ISO-639-1
+                and ISO-3166.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:restriction base="xsd:string">
+            <xsd:pattern value="([a-z]{2})[_|\-]?([\p{L}]{2})?[_|\-]?(\w+)?"/>
+        </xsd:restriction>
+  </xsd:simpleType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-locale-configType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "locale-config" element allows the app developer to 
+                declare the supported locales for this application.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        
+        <xsd:sequence>
+            <xsd:element name="default-locale"
+                         type="javaee:faces-config-default-localeType"
+                         minOccurs="0">
+            </xsd:element>
+            <xsd:element name="supported-locale"
+                         type="javaee:faces-config-supported-localeType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded">                
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-managed-beanType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "managed-bean" element represents a JavaBean, of a 
+                particular class, that will be dynamically instantiated 
+                at runtime (by the default VariableResolver implementation) 
+                if it is referenced as the first element of a value binding 
+                expression, and no corresponding bean can be identified in 
+                any scope.  In addition to the creation of the managed bean, 
+                and the optional storing of it into the specified scope, 
+                the nested managed-property elements can be used to 
+                initialize the contents of settable JavaBeans properties of 
+                the created instance.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="managed-bean-name"
+                         type="javaee:java-identifierType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "managed-bean-name" element represents the 
+                        attribute name under which a managed bean will 
+                        be searched for, as well as stored (unless the 
+                        "managed-bean-scope" value is "none").
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="managed-bean-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "managed-bean-class" element represents the fully
+                        qualified class name of the Java class that will be 
+                        used`to instantiate a new instance if creation of the 
+                        specified`managed bean is requested.
+
+                        The specified class must conform to standard JavaBeans
+                        conventions.  In particular, it must have a public
+                        zero-arguments constructor, and zero or more public
+                        property setters.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element 
+                name="managed-bean-scope"
+                type="javaee:faces-config-managed-bean-scopeOrNoneType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "managed-bean-scope" element represents the scope 
+                        into which a newly created instance of the specified 
+                        managed bean will be stored (unless the value is 
+                        "none").
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:choice>
+                <xsd:element name="managed-property"
+                             type="javaee:faces-config-managed-propertyType"
+                             minOccurs="0"
+                             maxOccurs="unbounded"/>
+                <xsd:element name="map-entries"
+                             type="javaee:faces-config-map-entriesType"/>
+                <xsd:element name="list-entries"
+                             type="javaee:faces-config-list-entriesType"/>
+            </xsd:choice>
+            <xsd:element name="managed-bean-extension"
+                         type="javaee:faces-config-managed-bean-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-managed-bean-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for managed-bean.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+    
+    <xsd:complexType name="faces-config-managed-bean-scopeOrNoneType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                <![CDATA[
+                Defines the legal values for the <managed-bean-scope>
+                element's body content, which includes all of the scopes
+                normally used in a web application, plus the "none" value
+                indicating that a created bean should not be stored into
+                any scope.
+                ]]>
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:simpleContent>
+            <xsd:restriction base="javaee:string">
+                <xsd:enumeration value="request"/>
+                <xsd:enumeration value="session"/>
+                <xsd:enumeration value="application"/>
+                <xsd:enumeration value="none"/>
+            </xsd:restriction>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-managed-propertyType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "managed-property" element represents an individual 
+                property of a managed bean that will be configured to the 
+                specified value (or value set) if the corresponding 
+                managed bean is automatically created.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="property-name"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "property-name" element represents the JavaBeans 
+                        property name under which the corresponding value may 
+                        be stored.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="property-class"
+                         type="javaee:java-typeType"
+                         minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                    
+                        The "property-class" element represents the Java type 
+                        of the value associated with this property name.  
+                        If not specified, it can be inferred from existing 
+                        classes; however, this element should be specified 
+                        if the configuration file is going to be the source 
+                        for generating the corresponding classes.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:choice>
+                <xsd:element name="map-entries"
+                             type="javaee:faces-config-map-entriesType"/>
+                <xsd:element name="null-value"
+                             type="javaee:faces-config-null-valueType">
+                </xsd:element>
+                <xsd:element name="value"
+                             type="javaee:faces-config-valueType"/>
+                <xsd:element name="list-entries"
+                             type="javaee:faces-config-list-entriesType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-map-entryType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "map-entry" element reprsents a single key-entry pair 
+                that will be added to the computed value of a managed 
+                property of type java.util.Map.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="key"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "key" element is the String representation of a 
+                        map key that will be stored in a managed property of 
+                        type java.util.Map.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:choice>
+                <xsd:element name="null-value"
+                             type="javaee:faces-config-null-valueType"/>
+                <xsd:element name="value"
+                             type="javaee:faces-config-valueType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-map-entriesType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "map-entries' element represents a set of key-entry pairs 
+                that will be added to the computed value of a managed property 
+                of type java.util.Map.  In addition, the Java class types 
+                of the key and entry values may be optionally declared.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:element name="key-class"
+                         type="javaee:fully-qualified-classType"
+                         minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "key-class" element defines the Java type to which 
+                        each "key" element in a set of "map-entry" elements 
+                        will be converted to.  If omitted, "java.lang.String" 
+                        is assumed.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="value-class"
+                         type="javaee:faces-config-value-classType"
+                         minOccurs="0"/>                
+            <xsd:element name="map-entry"
+                         type="javaee:faces-config-map-entryType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-navigation-caseType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "navigation-case" element describes a particular 
+                combination of conditions that must match for this case to 
+                be executed, and the view id of the component tree that 
+                should be selected next.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="from-action"
+                         type="javaee:faces-config-from-actionType"
+                         minOccurs="0">
+            </xsd:element>
+            <xsd:element name="from-outcome"
+                         type="javaee:string" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "from-outcome" element contains a logical outcome
+                        string returned by the execution of an application
+                        action method selected via an "actionRef" property
+                        (or a literal value specified by an "action" property)
+                        of a UICommand component.  If specified, this rule 
+                        will be relevant only if the outcome value matches 
+                        this element's value.  If not specified, this rule 
+                        will be relevant no matter what the outcome value was.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="to-view-id"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "to-view-id" element contains the view identifier 
+                        of the next view that should be displayed if this
+                        navigation rule is matched.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element 
+                name="redirect"
+                type="javaee:faces-config-redirectType" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-navigation-ruleType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "navigation-rule" element represents an individual 
+                decision rule that will be utilized by the default 
+                NavigationHandler implementation to make decisions on 
+                what view should be displayed next, based on the 
+                view id being processed.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="from-view-id"
+                         type="javaee:faces-config-from-view-idType"
+                         minOccurs="0"/>
+            <xsd:element name="navigation-case"
+                         type="javaee:faces-config-navigation-caseType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element 
+                name="navigation-rule-extension"
+                type="javaee:faces-config-navigation-rule-extensionType"
+                minOccurs="0"
+                maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-navigation-rule-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for navigation-rule.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-null-valueType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "null-value" element indicates that the managed
+                property in which we are nested will be explicitly
+                set to null if our managed bean is automatically
+                created.  This is different from omitting the managed
+                property element entirely, which will cause no
+                property setter to be called for this property.
+
+                The "null-value" element can only be used when the
+                associated "property-class" identifies a Java class,
+                not a Java primitive.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+    
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-propertyType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "property" element represents a JavaBean property of the 
+                Java class represented by our parent element.
+
+                Property names must be unique within the scope of the Java 
+                class that is represented by the parent element, and must 
+                correspond to property names that will be recognized when 
+                performing introspection against that class via 
+                java.beans.Introspector.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="property-name"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "property-name" element represents the JavaBeans 
+                        property name under which the corresponding value 
+                        may be stored.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="property-class"
+                         type="javaee:java-typeType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "property-class" element represents the Java type 
+                        of the value associated with this property name.  
+                        If not specified, it can be inferred from existing 
+                        classes; however, this element should be specified if 
+                        the configuration file is going to be the source for 
+                        generating the corresponding classes.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="default-value"
+                         type="javaee:faces-config-default-valueType"
+                         minOccurs="0"/>               
+            <xsd:element name="suggested-value"
+                         type="javaee:faces-config-suggested-valueType"
+                         minOccurs="0"/>
+            <xsd:element name="property-extension"
+                         type="javaee:faces-config-property-extensionType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-property-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for property.  It may contain 
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-redirectType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                    The "redirect" element indicates that navigation to the
+                    specified "to-view-id" should be accomplished by 
+                    performing an HTTP redirect rather than the usual 
+                    ViewHandler mechanisms.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-referenced-beanType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "referenced-bean" element represents at design time the 
+                promise that a Java object of the specified type will exist at 
+                runtime in some scope, under the specified key.  This can be 
+                used by design time tools to construct user interface dialogs 
+                based on the properties of the specified class.  The presence 
+                or absence of a referenced bean element has no impact on the 
+                JavaServer Faces runtime environment inside a web application.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="referenced-bean-name"
+                         type="javaee:java-identifierType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "referenced-bean-name" element represents the 
+                        attribute name under which the corresponding 
+                        referenced bean may be assumed to be stored, in one 
+                        of 'request', 'session', or 'application' scopes.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="referenced-bean-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "referenced-bean-class" element represents the 
+                        fully qualified class name of the Java class 
+                        (either abstract or concrete) or Java interface 
+                        implemented by the corresponding referenced bean. 
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-render-kitType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "render-kit" element represents a concrete RenderKit 
+                implementation that should be registered under the specified 
+                render-kit-id.  If no render-kit-id is specified, the 
+                identifier of the default RenderKit 
+                (RenderKitFactory.DEFAULT_RENDER_KIT) is assumed.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="render-kit-id"
+                         type="javaee:string"
+                         minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "render-kit-id" element represents an identifier 
+                        for the RenderKit represented by the parent 
+                        "render-kit" element.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="render-kit-class"
+                         type="javaee:fully-qualified-classType"
+                         minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "render-kit-class" element represents the fully 
+                        qualified class name of a concrete RenderKit 
+                        implementation class.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="renderer"
+                         type="javaee:faces-config-rendererType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded"/>
+            <xsd:element name="render-kit-extension"
+                         type="javaee:faces-config-render-kit-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-rendererType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "renderer" element represents a concrete Renderer 
+                implementation class that should be registered under the 
+                specified component family and renderer type identifiers, 
+                in the RenderKit associated with the parent "render-kit" 
+                element.  Combinations of component family and 
+                renderer type must be unique within the RenderKit 
+                associated with the parent "render-kit" element.
+
+                Nested "attribute" elements identify generic component 
+                attributes that are recognized by this renderer.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="component-family"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "component-family" element represents the 
+                        component family for which the Renderer represented 
+                        by the parent "renderer" element will be used.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>                    
+            </xsd:element>
+            <xsd:element name="renderer-type"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "renderer-type" element represents a renderer type 
+                        identifier for the Renderer represented by the parent 
+                        "renderer" element.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="renderer-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                        The "renderer-class" element represents the fully
+                        qualified class name of a concrete Renderer
+                        implementation class.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="facet"
+                         type="javaee:faces-config-facetType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="attribute"
+                         type="javaee:faces-config-attributeType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="renderer-extension"
+                         type="javaee:faces-config-renderer-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-renderer-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for renderer.  It may contain implementation
+                specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-render-kit-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for render-kit.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-suggested-valueType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "suggested-value" contains the value for the property or
+                attribute in which this element resides.  This value is 
+                advisory only and is intended for tools to use when 
+                populating pallettes.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:restriction base="javaee:string"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-supported-localeType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "supported-locale" element allows authors to declare
+                which locales are supported in this application instance.
+
+                It must be specified as :language:[_:country:[_:variant:]]
+                without the colons, for example "ja_JP_SJIS".  The
+                separators between the segments may be '-' or '_'.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:extension base="javaee:faces-config-localeType">
+                <xsd:attribute name="id" type="xsd:ID"/> 
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-validatorType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "validator" element represents a concrete Validator
+                implementation class that should be registered under the
+                specified validator identifier.  Validator identifiers must 
+                be unique within the entire web application.
+
+                Nested "attribute" elements identify generic attributes that 
+                may be configured on the corresponding UIComponent in order 
+                to affect the operation of the Validator.  Nested "property"
+                elements identify JavaBeans properties of the Validator
+                implementation class that may be configured to affect the
+                operation of the Validator.  "attribute" and "property" 
+                elements are intended to allow component developers to 
+                more completely describe their components to tools and users.
+                These elements have no required runtime semantics.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="validator-id"
+                         type="javaee:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "validator-id" element represents the identifier 
+                        under which the corresponding Validator class should 
+                        be registered.
+                        
+                    </xsd:documentation>
+                </xsd:annotation>                
+            </xsd:element>
+            <xsd:element name="validator-class"
+                         type="javaee:fully-qualified-classType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                        The "validator-class" element represents the fully 
+                        qualified class name of a concrete Validator 
+                        implementation class.  
+                        
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="attribute"
+                         type="javaee:faces-config-attributeType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        
+                       Nested "attribute" elements identify generic
+                       attributes that may be configured on the
+                       corresponding UIComponent in order to affect the
+                       operation of the Validator.  This attribute is
+                       primarily for design-time tools and is not
+                       specified to have any meaning at runtime.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+
+            </xsd:element>
+            <xsd:element name="property"
+                         type="javaee:faces-config-propertyType"
+                         minOccurs="0" 
+                         maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+
+                       Nested "property" elements identify JavaBeans
+                       properties of the Validator implementation class
+                       that may be configured to affect the operation of
+                       the Validator.  This attribute is primarily for
+                       design-time tools and is not specified to have
+                       any meaning at runtime.
+
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="validator-extension"
+                         type="javaee:faces-config-validator-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name = "faces-config-validator-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                Extension element for validator.  It may contain
+                implementation specific content.
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:any namespace="##any"
+                     processContents="lax"
+                     minOccurs="0"
+                     maxOccurs="unbounded" />
+         </xsd:sequence>
+         <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:simpleType name="faces-config-valueType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                The "value" element is the String representation of
+                a literal value to which a scalar managed property
+                will be set, or a value binding expression ("#{...}")
+                that will be used to calculate the required value.
+                It will be converted as specified for the actual
+                property type.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:union 
+            memberTypes="javaee:faces-config-el-expressionType xsd:string"/>
+    </xsd:simpleType>
+    
+    <!-- **************************************************** -->
+    
+    <xsd:complexType name="faces-config-value-classType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "value-class" element defines the Java type to which each
+                "value" element's value will be converted to, prior to adding 
+                it to the "list-entries" list for a managed property that is 
+                a java.util.List, or a "map-entries" map for a managed 
+                property that is a java.util.Map.  
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:restriction base="javaee:fully-qualified-classType"/>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="faces-config-list-entriesType">
+        <xsd:annotation>
+            <xsd:documentation>
+                
+                The "list-entries" element represents a set of initialization
+                elements for a managed property that is a java.util.List or an
+                array.  In the former case, the "value-class" element can 
+                optionally be used to declare the Java type to which each 
+                value should be converted before adding it to the Collection.
+                
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="value-class"
+                         type="javaee:faces-config-value-classType"
+                         minOccurs="0"/>
+            <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                <xsd:element name="null-value"
+                             type="javaee:faces-config-null-valueType"/>
+                <xsd:element name="value"
+                             type="javaee:faces-config-valueType"/>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:simpleType name="faces-config-versionType">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                This type contains the recognized versions of
+                faces-config supported.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:token">
+            <xsd:enumeration value="1.2"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <!-- **************************************************** -->
+
+</xsd:schema>

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,989 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<xsd:schema
-     targetNamespace="http://java.sun.com/xml/ns/j2ee"
-     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
-     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-     xmlns:xml="http://www.w3.org/XML/1998/namespace"
-     elementFormDefault="qualified"
-     attributeFormDefault="unqualified"
-     version="2.0">
-
-  <xsd:annotation>
-    <xsd:documentation>
-      %W% %G%
-    </xsd:documentation>
-  </xsd:annotation>
-  <xsd:annotation>
-    <xsd:documentation>
-      <![CDATA[
-
-    This is the XML Schema for the JSP Taglibrary
-    descriptor.  All Taglibrary descriptors must
-    indicate the tag library schema by using the Taglibrary
-    namespace:
-
-    http://java.sun.com/xml/ns/j2ee
-
-    and by indicating the version of the schema by
-    using the version element as shown below:
-
-        <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="..."
-          version="2.0">
-          ...
-        </taglib>
-
-    The instance documents may indicate the published
-    version of the schema using xsi:schemaLocation attribute
-    for J2EE namespace with the following location:
-
-    http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
-
-    ]]>
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
-
-
-<!-- **************************************************** -->
-
-
-  <xsd:element name="taglib" type="j2ee:tldTaglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The taglib tag is the document root.
-    The definition of taglib is provided
-    by the tldTaglibType.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:unique name="tag-name-uniqueness">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      The taglib element contains, among other things, tag and
-      tag-file elements.
-      The name subelements of these elements must each be unique.
-
-    </xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
-      <xsd:field    xpath="j2ee:name"/>
-    </xsd:unique>
-
-    <xsd:unique name="function-name-uniqueness">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      The taglib element contains function elements.
-      The name subelements of these elements must each be unique.
-
-    </xsd:documentation>
-      </xsd:annotation>
-      <xsd:selector xpath="j2ee:function"/>
-      <xsd:field    xpath="j2ee:name"/>
-    </xsd:unique>
-
-  </xsd:element>
-
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="body-contentType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Specifies the type of body that is valid for a tag.
-    This value is used by the JSP container to validate
-    that a tag invocation has the correct body syntax and
-    by page composition tools to assist the page author
-    in providing a valid tag body.
-
-    There are currently four values specified:
-
-    tagdependent    The body of the tag is interpreted by the tag
-            implementation itself, and is most likely
-            in a different "language", e.g embedded SQL
-            statements.
-
-    JSP             The body of the tag contains nested JSP
-            syntax.
-
-    empty           The body must be empty
-
-    scriptless      The body accepts only template text, EL
-            Expressions, and JSP action elements.  No
-            scripting elements are allowed.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-    <xsd:enumeration value="tagdependent"/>
-    <xsd:enumeration value="JSP"/>
-    <xsd:enumeration value="empty"/>
-    <xsd:enumeration value="scriptless"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="extensibleType" abstract="true">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The extensibleType is an abstract base type that is used to
-    define the type of extension-elements. Instance documents
-    must substitute a known type to define the extension by
-    using xsi:type attribute to define the actual type of
-    extension-elements.
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="functionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The function element is used to provide information on each
-    function in the tag library that is to be exposed to the EL.
-
-    The function element may have several subelements defining:
-
-    description         Optional tag-specific information
-
-    display-name        A short name that is intended to be
-                displayed by tools
-
-    icon                Optional icon element that can be used
-                by tools
-
-    name                A unique name for this function
-
-    function-class      Provides the name of the Java class that
-                implements the function
-
-    function-signature  Provides the signature, as in the Java
-                Language Specification, of the Java
-                method that is to be used to implement
-                the function.
-
-    example             Optional informal description of an
-                example of a use of this function
-
-    function-extension  Zero or more extensions that provide extra
-                information about this function, for tool
-                consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        A unique name for this function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="function-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Provides the fully-qualified class name of the Java
-        class containing the static method that implements
-        the function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="function-signature"
-           type="j2ee:string">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Provides the signature, of the static Java method that is
-        to be used to implement the function.  The syntax of the
-        function-signature element is as follows:
-
-        FunctionSignature ::= ReturnType S MethodName S?
-                      '(' S? Parameters? S? ')'
-
-                ReturnType        ::= Type
-
-        MethodName        ::= Identifier
-
-        Parameters        ::=   Parameter
-                      | ( Parameter S? ',' S? Parameters )
-
-                Parameter         ::= Type
-
-        Where:
-
-            * Type is a basic type or a fully qualified Java class name
-              (including package name), as per the 'Type' production
-              in the Java Language Specification, Second Edition,
-              Chapter 18.
-
-                    * Identifier is a Java identifier, as per the 'Identifier'
-              production in the Java Language Specification, Second
-              Edition, Chapter 18.
-
-        Example:
-
-        java.lang.String nickName( java.lang.String, int )
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of this function.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="function-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Function extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tagFileType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    Defines an action in this tag library that is implemented
-    as a .tag file.
-
-    The tag-file element has two required subelements:
-
-    description       Optional tag-specific information
-
-    display-name      A short name that is intended to be
-              displayed by tools
-
-    icon              Optional icon element that can be used
-              by tools
-
-    name              The unique action name
-
-    path              Where to find the .tag file implementing this
-              action, relative to the root of the web
-              application or the root of the JAR file for a
-              tag library packaged in a JAR.  This must
-              begin with /WEB-INF/tags if the .tag file
-              resides in the WAR, or /META-INF/tags if the
-              .tag file resides in a JAR.
-
-    example           Optional informal description of an
-              example of a use of this tag
-
-    tag-extension     Zero or more extensions that provide extra
-              information about this tag, for tool
-              consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType"/>
-      <xsd:element name="path"
-           type="j2ee:pathType"/>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of a tag.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tag-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Tag extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tagType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The tag defines a unique tag in this tag library.  It has one
-    attribute, id.
-
-    The tag element may have several subelements defining:
-
-    description       Optional tag-specific information
-
-    display-name      A short name that is intended to be
-              displayed by tools
-
-    icon              Optional icon element that can be used
-              by tools
-
-    name              The unique action name
-
-    tag-class         The tag handler class implementing
-              javax.servlet.jsp.tagext.JspTag
-
-    tei-class         An optional subclass of
-              javax.servlet.jsp.tagext.TagExtraInfo
-
-    body-content      The body content type
-
-    variable          Optional scripting variable information
-
-    attribute         All attributes of this action that are
-              evaluated prior to invocation.
-
-    dynamic-attributes Whether this tag supports additional
-               attributes with dynamic names.  If
-               true, the tag-class must implement the
-               javax.servlet.jsp.tagext.DynamicAttributes
-               interface.  Defaults to false.
-
-    example           Optional informal description of an
-              example of a use of this tag
-
-    tag-extension     Zero or more extensions that provide extra
-              information about this tag, for tool
-              consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="name"
-           type="j2ee:tld-canonical-nameType"/>
-      <xsd:element name="tag-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the subclass of javax.serlvet.jsp.tagext.JspTag
-        that implements the request time semantics for
-        this tag. (required)
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tei-class"
-           type="j2ee:fully-qualified-classType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
-        for this tag. (optional)
-
-        If this is not given, the class is not consulted at
-        translation time.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="body-content"
-           type="j2ee:body-contentType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Specifies the format for the body of this tag.
-        The default in JSP 1.2 was "JSP" but because this
-        is an invalid setting for simple tag handlers, there
-        is no longer a default in JSP 2.0.  A reasonable
-        default for simple tag handlers is "scriptless" if
-        the tag can have a body.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="variable"
-           type="j2ee:variableType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="attribute"
-           type="j2ee:tld-attributeType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="dynamic-attributes"
-           type="j2ee:generic-booleanType"
-           minOccurs="0"/>
-      <xsd:element name="example"
-           type="j2ee:xsdStringType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The example element contains an informal description
-        of an example of the use of a tag.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="tag-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Tag extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-attributeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The attribute element defines an attribute for the nesting
-    tag.  The attributre element may have several subelements
-    defining:
-
-    description     a description of the attribute
-
-    name            the name of the attribute
-
-    required        whether the attribute is required or
-            optional
-
-    rtexprvalue     whether the attribute is a runtime attribute
-
-    type            the type of the attributes
-
-    fragment        whether this attribute is a fragment
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="name"
-           type="j2ee:java-identifierType"/>
-      <xsd:element name="required"
-           type="j2ee:generic-booleanType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines if the nesting attribute is required or
-        optional.
-
-        If not present then the default is "false", i.e
-        the attribute is optional.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-
-      <xsd:choice>
-    <xsd:sequence>
-      <xsd:element name="rtexprvalue"
-               type="j2ee:generic-booleanType"
-               minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-        Defines if the nesting attribute can have scriptlet
-        expressions as a value, i.e the value of the
-        attribute may be dynamically calculated at request
-        time, as opposed to a static value determined at
-        translation time.
-
-        If not present then the default is "false", i.e the
-        attribute has a static value
-
-          </xsd:documentation>
-        </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="type"
-               type="j2ee:fully-qualified-classType"
-               minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-
-        Defines the Java type of the attributes value.  For
-        static values (those determined at translation time)
-        the type is always java.lang.String.
-
-          </xsd:documentation>
-        </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:element name="fragment"
-             type="j2ee:generic-booleanType"
-             minOccurs="0">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          "true" if this attribute is of type
-          javax.jsp.tagext.JspFragment, representing dynamic
-          content that can be re-evaluated as many times
-          as needed by the tag handler.  If omitted or "false",
-          the default is still type="java.lang.String"
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-      </xsd:choice>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-canonical-nameType">
-
-    <xsd:annotation>
-      <xsd:documentation>
-
-    Defines the canonical name of a tag or attribute being
-    defined.
-
-    The name must conform to the lexical rules for an NMTOKEN.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tld-extensionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The tld-extensionType is used to indicate
-    extensions to a specific TLD element.
-
-    It is used by elements to designate an extension block
-    that is targeted to a specific extension designated by
-    a set of extension elements that are declared by a
-    namespace. The namespace identifies the extension to
-    the tool that processes the extension.
-
-    The type of the extension-element is abstract. Therefore,
-    a concrete type must be specified by the TLD using
-    xsi:type attribute for each extension-element.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="extension-element"
-           type="j2ee:extensibleType"
-           maxOccurs="unbounded"/>
-    </xsd:sequence>
-
-    <xsd:attribute name="namespace"
-           use="required"
-           type="xsd:anyURI"/>
-    <xsd:attribute name="id" type="xsd:ID"/>
-
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="tldTaglibType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The taglib tag is the document root, it defines:
-
-    description     a simple string describing the "use" of this taglib,
-            should be user discernable
-
-    display-name    the display-name element contains a
-            short name that is intended to be displayed
-            by tools
-
-    icon            optional icon that can be used by tools
-
-    tlib-version    the version of the tag library implementation
-
-    short-name      a simple default short name that could be
-            used by a JSP authoring tool to create
-            names with a mnemonic value; for example,
-            the it may be used as the prefered prefix
-            value in taglib directives
-
-    uri             a uri uniquely identifying this taglib
-
-    validator       optional TagLibraryValidator information
-
-    listener        optional event listener specification
-
-    tag             tags in this tag library
-
-    tag-file        tag files in this tag library
-
-    function        zero or more EL functions defined in this
-            tag library
-
-    taglib-extension zero or more extensions that provide extra
-            information about this taglib, for tool
-            consumption
-
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence>
-      <xsd:group ref="j2ee:descriptionGroup"/>
-      <xsd:element name="tlib-version"
-           type="j2ee:dewey-versionType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Describes this version (number) of the taglibrary.
-        It is described as a dewey decimal.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-      <xsd:element name="short-name"
-           type="j2ee:tld-canonical-nameType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines a simple default name that could be used by
-        a JSP authoring tool to create names with a
-        mnemonicvalue; for example, it may be used as the
-        preferred prefix value in taglib directives.  Do
-        not use white space, and do not start with digits
-        or underscore.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="uri"
-           type="j2ee:xsdAnyURIType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines a public URI that uniquely identifies this
-        version of the taglibrary.  Leave it empty if it
-        does not apply.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-      <xsd:element name="validator"
-           type="j2ee:validatorType"
-           minOccurs="0">
-      </xsd:element>
-      <xsd:element name="listener"
-           type="j2ee:listenerType"
-           minOccurs="0" maxOccurs="unbounded">
-      </xsd:element>
-      <xsd:element name="tag"
-           type="j2ee:tagType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="tag-file"
-           type="j2ee:tagFileType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="function"
-           type="j2ee:functionType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="taglib-extension"
-           type="j2ee:tld-extensionType"
-           minOccurs="0"
-           maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Taglib extensions are for tool use only and must not affect
-        the behavior of a container.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="version"
-           type="j2ee:dewey-versionType"
-           fixed="2.0"
-           use="required">
-      <xsd:annotation>
-    <xsd:documentation>
-
-      Describes the JSP version (number) this taglibrary
-      requires in order to function (dewey decimal)
-
-    </xsd:documentation>
-      </xsd:annotation>
-
-    </xsd:attribute>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="validatorType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    A validator that can be used to validate
-    the conformance of a JSP page to using this tag library is
-    defined by a validatorType.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0"
-           maxOccurs="unbounded"/>
-      <xsd:element name="validator-class"
-           type="j2ee:fully-qualified-classType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Defines the TagLibraryValidator class that can be used
-        to validate the conformance of a JSP page to using this
-        tag library.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="init-param"
-           type="j2ee:param-valueType"
-           minOccurs="0" maxOccurs="unbounded">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The init-param element contains a name/value pair as an
-        initialization param.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="variable-scopeType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    This type defines scope of the scripting variable.  See
-    TagExtraInfo for details.  The allowed values are,
-    "NESTED", "AT_BEGIN" and "AT_END".
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:simpleContent>
-      <xsd:restriction base="j2ee:string">
-    <xsd:enumeration value="NESTED"/>
-    <xsd:enumeration value="AT_BEGIN"/>
-    <xsd:enumeration value="AT_END"/>
-      </xsd:restriction>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-<!-- **************************************************** -->
-
-  <xsd:complexType name="variableType">
-    <xsd:annotation>
-      <xsd:documentation>
-
-    The variableType provides information on the scripting
-    variables defined by using this tag.  It is a (translation
-    time) error for a tag that has one or more variable
-    subelements to have a TagExtraInfo class that returns a
-    non-null value from a call to getVariableInfo().
-
-    The subelements of variableType are of the form:
-
-    description              Optional description of this
-                 variable
-
-    name-given               The variable name as a constant
-
-    name-from-attribute      The name of an attribute whose
-                 (translation time) value will
-                 give the name of the
-                 variable.  One of name-given or
-                 name-from-attribute is required.
-
-    variable-class           Name of the class of the variable.
-                 java.lang.String is default.
-
-    declare                  Whether the variable is declared
-                 or not.  True is the default.
-
-    scope                    The scope of the scripting varaible
-                 defined.  NESTED is default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-    <xsd:sequence>
-      <xsd:element name="description"
-           type="j2ee:descriptionType"
-           minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:choice>
-    <xsd:element name="name-given"
-             type="j2ee:java-identifierType">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The name for the scripting variable.
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-
-    <xsd:element name="name-from-attribute"
-             type="j2ee:java-identifierType">
-      <xsd:annotation>
-        <xsd:documentation>
-
-          The name of an attribute whose
-          (translation-time) value will give the name of
-          the variable.
-
-        </xsd:documentation>
-      </xsd:annotation>
-    </xsd:element>
-      </xsd:choice>
-      <xsd:element name="variable-class"
-           type="j2ee:fully-qualified-classType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The optional name of the class for the scripting
-        variable.  The default is java.lang.String.
-
-      </xsd:documentation>
-    </xsd:annotation>
-
-      </xsd:element>
-
-      <xsd:element name="declare"
-           type="j2ee:generic-booleanType"
-           minOccurs="0">
-
-    <xsd:annotation>
-      <xsd:documentation>
-
-        Whether the scripting variable is to be defined
-        or not.  See TagExtraInfo for details.  This
-        element is optional and "true" is the default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-      <xsd:element name="scope"
-           type="j2ee:variable-scopeType"
-           minOccurs="0">
-    <xsd:annotation>
-      <xsd:documentation>
-
-        The element is optional and "NESTED" is the default.
-
-      </xsd:documentation>
-    </xsd:annotation>
-      </xsd:element>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="xsd:ID"/>
-  </xsd:complexType>
-
-</xsd:schema>
-

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_0.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_0.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,1010 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/j2ee"
+     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="2.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-jsptaglibrary_2_0.xsds	1.36 08/18/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003 Sun Microsystems, Inc., 901 San Antonio
+      Road, Palo Alto, California 94303, U.S.A. All rights
+      reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the JSP Taglibrary
+	descriptor.  All Taglibrary descriptors must
+	indicate the tag library schema by using the Taglibrary
+	namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.0">
+	      ...
+	    </taglib>
+
+	The instance documents may indicate the published
+	version of the schema using xsi:schemaLocation attribute
+	for J2EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="taglib" type="j2ee:tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root.
+	The definition of taglib is provided
+	by the tldTaglibType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="tag-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains, among other things, tag and
+	  tag-file elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:tag|j2ee:tag-file"/>
+      <xsd:field    xpath="j2ee:name"/>
+    </xsd:unique>
+
+    <xsd:unique name="function-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains function elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:function"/>
+      <xsd:field    xpath="j2ee:name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="body-contentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Specifies the type of body that is valid for a tag.
+	This value is used by the JSP container to validate
+	that a tag invocation has the correct body syntax and
+	by page composition tools to assist the page author
+	in providing a valid tag body.
+
+	There are currently four values specified:
+
+	tagdependent    The body of the tag is interpreted by the tag
+			implementation itself, and is most likely
+			in a different "language", e.g embedded SQL
+			statements.
+
+	JSP             The body of the tag contains nested JSP
+			syntax.
+
+	empty           The body must be empty
+
+	scriptless      The body accepts only template text, EL
+			Expressions, and JSP action elements.  No
+			scripting elements are allowed.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="tagdependent"/>
+	<xsd:enumeration value="JSP"/>
+	<xsd:enumeration value="empty"/>
+	<xsd:enumeration value="scriptless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="extensibleType" abstract="true">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The extensibleType is an abstract base type that is used to
+	define the type of extension-elements. Instance documents
+	must substitute a known type to define the extension by
+	using xsi:type attribute to define the actual type of
+	extension-elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="functionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The function element is used to provide information on each
+	function in the tag library that is to be exposed to the EL.
+
+	The function element may have several subelements defining:
+
+	description         Optional tag-specific information
+
+	display-name        A short name that is intended to be
+			    displayed by tools
+
+	icon                Optional icon element that can be used
+			    by tools
+
+	name                A unique name for this function
+
+	function-class      Provides the name of the Java class that
+			    implements the function
+
+	function-signature  Provides the signature, as in the Java
+			    Language Specification, of the Java
+			    method that is to be used to implement
+			    the function.
+
+	example             Optional informal description of an
+			    example of a use of this function
+
+	function-extension  Zero or more extensions that provide extra
+			    information about this function, for tool
+			    consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A unique name for this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="function-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the fully-qualified class name of the Java
+	    class containing the static method that implements
+	    the function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-signature"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the signature, of the static Java method that is
+	    to be used to implement the function.  The syntax of the
+	    function-signature element is as follows:
+
+		FunctionSignature ::= ReturnType S MethodName S?
+				      '(' S? Parameters? S? ')'
+
+                ReturnType        ::= Type
+
+		MethodName        ::= Identifier
+
+		Parameters        ::=   Parameter
+				      | ( Parameter S? ',' S? Parameters )
+
+                Parameter         ::= Type
+
+		Where:
+
+ 		    * Type is a basic type or a fully qualified Java class name
+		      (including package name), as per the 'Type' production
+		      in the Java Language Specification, Second Edition,
+		      Chapter 18.
+
+                    * Identifier is a Java identifier, as per the 'Identifier'
+		      production in the Java Language Specification, Second
+		      Edition, Chapter 18.
+
+	    Example:
+
+	    java.lang.String nickName( java.lang.String, int )
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Function extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagFileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines an action in this tag library that is implemented
+	as a .tag file.
+
+	The tag-file element has two required subelements:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	path              Where to find the .tag file implementing this
+			  action, relative to the root of the web
+			  application or the root of the JAR file for a
+			  tag library packaged in a JAR.  This must
+			  begin with /WEB-INF/tags if the .tag file
+			  resides in the WAR, or /META-INF/tags if the
+			  .tag file resides in a JAR.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType"/>
+      <xsd:element name="path"
+		   type="j2ee:pathType"/>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tag defines a unique tag in this tag library.  It has one
+	attribute, id.
+
+	The tag element may have several subelements defining:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	tag-class         The tag handler class implementing
+			  javax.servlet.jsp.tagext.JspTag
+
+	tei-class         An optional subclass of
+			  javax.servlet.jsp.tagext.TagExtraInfo
+
+	body-content      The body content type
+
+	variable          Optional scripting variable information
+
+	attribute         All attributes of this action that are
+			  evaluated prior to invocation.
+
+	dynamic-attributes Whether this tag supports additional
+			   attributes with dynamic names.  If
+			   true, the tag-class must implement the
+			   javax.servlet.jsp.tagext.DynamicAttributes
+			   interface.  Defaults to false.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="j2ee:tld-canonical-nameType"/>
+      <xsd:element name="tag-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.serlvet.jsp.tagext.JspTag
+	    that implements the request time semantics for
+	    this tag. (required)
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tei-class"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
+	    for this tag. (optional)
+
+	    If this is not given, the class is not consulted at
+	    translation time.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="body-content"
+		   type="j2ee:body-contentType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Specifies the format for the body of this tag.
+	    The default in JSP 1.2 was "JSP" but because this
+	    is an invalid setting for simple tag handlers, there
+	    is no longer a default in JSP 2.0.  A reasonable
+	    default for simple tag handlers is "scriptless" if
+	    the tag can have a body.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="variable"
+		   type="j2ee:variableType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attribute"
+		   type="j2ee:tld-attributeType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="dynamic-attributes"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0"/>
+      <xsd:element name="example"
+		   type="j2ee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The attribute element defines an attribute for the nesting
+	tag.  The attributre element may have several subelements
+	defining:
+
+	description     a description of the attribute
+
+	name            the name of the attribute
+
+	required        whether the attribute is required or
+			optional
+
+	rtexprvalue     whether the attribute is a runtime attribute
+
+	type            the type of the attributes
+
+	fragment        whether this attribute is a fragment
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="name"
+		   type="j2ee:java-identifierType"/>
+      <xsd:element name="required"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines if the nesting attribute is required or
+	    optional.
+
+	    If not present then the default is "false", i.e
+	    the attribute is optional.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:choice>
+	<xsd:sequence>
+	  <xsd:element name="rtexprvalue"
+		       type="j2ee:generic-booleanType"
+		       minOccurs="0">
+	    <xsd:annotation>
+	      <xsd:documentation>
+
+		Defines if the nesting attribute can have scriptlet
+		expressions as a value, i.e the value of the
+		attribute may be dynamically calculated at request
+		time, as opposed to a static value determined at
+		translation time.
+
+		If not present then the default is "false", i.e the
+		attribute has a static value
+
+	      </xsd:documentation>
+	    </xsd:annotation>
+
+	  </xsd:element>
+	  <xsd:element name="type"
+		       type="j2ee:fully-qualified-classType"
+		       minOccurs="0">
+	    <xsd:annotation>
+	      <xsd:documentation>
+
+		Defines the Java type of the attributes value.  For
+		static values (those determined at translation time)
+		the type is always java.lang.String.
+
+	      </xsd:documentation>
+	    </xsd:annotation>
+	  </xsd:element>
+	</xsd:sequence>
+	<xsd:element name="fragment"
+		     type="j2ee:generic-booleanType"
+		     minOccurs="0">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      "true" if this attribute is of type
+	      javax.jsp.tagext.JspFragment, representing dynamic
+	      content that can be re-evaluated as many times
+	      as needed by the tag handler.  If omitted or "false",
+	      the default is still type="java.lang.String"
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-canonical-nameType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines the canonical name of a tag or attribute being
+	defined.
+
+	The name must conform to the lexical rules for an NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-extensionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tld-extensionType is used to indicate
+	extensions to a specific TLD element.
+
+	It is used by elements to designate an extension block
+	that is targeted to a specific extension designated by
+	a set of extension elements that are declared by a
+	namespace. The namespace identifies the extension to
+	the tool that processes the extension.
+
+	The type of the extension-element is abstract. Therefore,
+	a concrete type must be specified by the TLD using
+	xsi:type attribute for each extension-element.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="extension-element"
+		   type="j2ee:extensibleType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="namespace"
+		   use="required"
+		   type="xsd:anyURI"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root, it defines:
+
+	description     a simple string describing the "use" of this taglib,
+			should be user discernable
+
+	display-name    the display-name element contains a
+			short name that is intended to be displayed
+			by tools
+
+	icon            optional icon that can be used by tools
+
+	tlib-version    the version of the tag library implementation
+
+	short-name      a simple default short name that could be
+			used by a JSP authoring tool to create
+			names with a mnemonic value; for example,
+			the it may be used as the prefered prefix
+			value in taglib directives
+
+	uri             a uri uniquely identifying this taglib
+
+	validator       optional TagLibraryValidator information
+
+	listener        optional event listener specification
+
+	tag             tags in this tag library
+
+	tag-file        tag files in this tag library
+
+	function        zero or more EL functions defined in this
+			tag library
+
+	taglib-extension zero or more extensions that provide extra
+			information about this taglib, for tool
+			consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="tlib-version"
+		   type="j2ee:dewey-versionType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Describes this version (number) of the taglibrary.
+	    It is described as a dewey decimal.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="short-name"
+		   type="j2ee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a simple default name that could be used by
+	    a JSP authoring tool to create names with a
+	    mnemonicvalue; for example, it may be used as the
+	    preferred prefix value in taglib directives.  Do
+	    not use white space, and do not start with digits
+	    or underscore.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="uri"
+		   type="j2ee:xsdAnyURIType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a public URI that uniquely identifies this
+	    version of the taglibrary.  Leave it empty if it
+	    does not apply.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="validator"
+		   type="j2ee:validatorType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="listener"
+		   type="j2ee:listenerType"
+		   minOccurs="0" maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="tag"
+		   type="j2ee:tagType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="tag-file"
+		   type="j2ee:tagFileType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="function"
+		   type="j2ee:functionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="taglib-extension"
+		   type="j2ee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Taglib extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="2.0"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  Describes the JSP version (number) this taglibrary
+	  requires in order to function (dewey decimal)
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="validatorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	A validator that can be used to validate
+	the conformance of a JSP page to using this tag library is
+	defined by a validatorType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="validator-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the TagLibraryValidator class that can be used
+	    to validate the conformance of a JSP page to using this
+	    tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="j2ee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as an
+	    initialization param.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variable-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines scope of the scripting variable.  See
+	TagExtraInfo for details.  The allowed values are,
+	"NESTED", "AT_BEGIN" and "AT_END".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NESTED"/>
+	<xsd:enumeration value="AT_BEGIN"/>
+	<xsd:enumeration value="AT_END"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variableType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The variableType provides information on the scripting
+	variables defined by using this tag.  It is a (translation
+	time) error for a tag that has one or more variable
+	subelements to have a TagExtraInfo class that returns a
+	non-null value from a call to getVariableInfo().
+
+	The subelements of variableType are of the form:
+
+	description              Optional description of this
+				 variable
+
+	name-given               The variable name as a constant
+
+	name-from-attribute      The name of an attribute whose
+				 (translation time) value will
+				 give the name of the
+				 variable.  One of name-given or
+				 name-from-attribute is required.
+
+	variable-class           Name of the class of the variable.
+				 java.lang.String is default.
+
+	declare                  Whether the variable is declared
+				 or not.  True is the default.
+
+	scope                    The scope of the scripting varaible
+				 defined.  NESTED is default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="name-given"
+		     type="j2ee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name for the scripting variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="name-from-attribute"
+		     type="j2ee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name of an attribute whose
+	      (translation-time) value will give the name of
+	      the variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="variable-class"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The optional name of the class for the scripting
+	    variable.  The default is java.lang.String.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="declare"
+		   type="j2ee:generic-booleanType"
+		   minOccurs="0">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Whether the scripting variable is to be defined
+	    or not.  See TagExtraInfo for details.  This
+	    element is optional and "true" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scope"
+		   type="j2ee:variable-scopeType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The element is optional and "NESTED" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd
===================================================================
--- projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	2009-10-09 15:27:34 UTC (rev 94608)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-
-<!--
-  ** This XSD contains only the programatic elements required for an implementation.
-  ** For the XSD from Sun that includes documentation and other copyrighted information
-  ** please refer to http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd for a fully documented and latest
-  **  XSD.
--->
-
-<xsd:schema targetNamespace="http://java.sun.com/xml/ns/javaee" 
-            xmlns:javaee="http://java.sun.com/xml/ns/javaee" 
-            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
-            elementFormDefault="qualified" 
-            attributeFormDefault="unqualified" 
-            version="2.1">
-
-    <xsd:include schemaLocation="javaee_5.xsd" />
-
-    <xsd:element name="taglib" type="javaee:tldTaglibType">
-        <xsd:unique name="tag-name-uniqueness">
-            <xsd:selector xpath="javaee:tag|javaee:tag-file" />
-            <xsd:field xpath="javaee:name" />
-        </xsd:unique>
-
-        <xsd:unique name="function-name-uniqueness">
-            <xsd:selector xpath="javaee:function" />
-            <xsd:field xpath="javaee:name" />
-        </xsd:unique>
-    </xsd:element>
-
-    <xsd:complexType name="body-contentType">
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:string">
-                <xsd:enumeration value="tagdependent" />
-                <xsd:enumeration value="JSP" />
-                <xsd:enumeration value="empty" />
-                <xsd:enumeration value="scriptless" />
-            </xsd:restriction>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <xsd:complexType name="extensibleType" abstract="true">
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="functionType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType"></xsd:element>
-            <xsd:element name="function-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="function-signature" type="javaee:string"></xsd:element>
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0"></xsd:element>
-            <xsd:element name="function-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="tagFileType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType" />
-            <xsd:element name="path" type="javaee:pathType" />
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0"></xsd:element>
-            <xsd:element name="tag-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="tagType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="name" type="javaee:tld-canonical-nameType" />
-            <xsd:element name="tag-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="tei-class" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-            <xsd:element name="body-content" type="javaee:body-contentType"></xsd:element>
-            <xsd:element name="variable" type="javaee:variableType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="attribute" type="javaee:tld-attributeType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="dynamic-attributes" type="javaee:generic-booleanType" minOccurs="0" />
-            <xsd:element name="example" type="javaee:xsdStringType" minOccurs="0" />
-            <xsd:element name="tag-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded" />
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="tld-attributeType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
-
-            <xsd:element name="name" type="javaee:java-identifierType" />
-            <xsd:element name="required" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
-            <xsd:choice>
-
-                <xsd:sequence>
-                    <xsd:sequence minOccurs="0">
-                        <xsd:element name="rtexprvalue" type="javaee:generic-booleanType"></xsd:element>
-
-                        <xsd:element name="type" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-                    </xsd:sequence>
-
-                    <xsd:choice>
-                        <xsd:element name="deferred-value" type="javaee:tld-deferred-valueType" minOccurs="0"></xsd:element>
-                        <xsd:element name="deferred-method" type="javaee:tld-deferred-methodType" minOccurs="0"></xsd:element>
-                    </xsd:choice>
-                </xsd:sequence>
-
-                <xsd:element name="fragment" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
-
-            </xsd:choice>
-
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="tld-canonical-nameType">
-        <xsd:simpleContent>
-            <xsd:restriction base="javaee:xsdNMTOKENType" />
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <xsd:complexType name="tld-deferred-methodType">
-        <xsd:sequence>
-            <xsd:element name="method-signature" type="javaee:string" minOccurs="0"></xsd:element>
-        </xsd:sequence>
-
-        <xsd:attribute name="id" type="xsd:ID" />
-
-    </xsd:complexType>
-
-    <xsd:complexType name="tld-deferred-valueType">
-
-        <xsd:sequence>
-            <xsd:element name="type" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-
-        </xsd:sequence>
-
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="tld-extensionType">
-        <xsd:sequence>
-            <xsd:element name="extension-element" type="javaee:extensibleType" maxOccurs="unbounded" />
-        </xsd:sequence>
-
-        <xsd:attribute name="namespace" use="required" type="xsd:anyURI" />
-        <xsd:attribute name="id" type="xsd:ID" />
-
-    </xsd:complexType>
-
-    <xsd:complexType name="tldTaglibType">
-        <xsd:sequence>
-            <xsd:group ref="javaee:descriptionGroup" />
-            <xsd:element name="tlib-version" type="javaee:dewey-versionType"></xsd:element>
-
-            <xsd:element name="short-name" type="javaee:tld-canonical-nameType">
-
-            </xsd:element>
-
-            <xsd:element name="uri" type="javaee:xsdAnyURIType" minOccurs="0">
-
-            </xsd:element>
-            <xsd:element name="validator" type="javaee:validatorType" minOccurs="0">
-
-            </xsd:element>
-            <xsd:element name="listener" type="javaee:listenerType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-            <xsd:element name="tag" type="javaee:tagType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="tag-file" type="javaee:tagFileType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="function" type="javaee:functionType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="taglib-extension" type="javaee:tld-extensionType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="version" type="javaee:dewey-versionType" fixed="2.1" use="required"></xsd:attribute>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="validatorType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
-            <xsd:element name="validator-class" type="javaee:fully-qualified-classType"></xsd:element>
-            <xsd:element name="init-param" type="javaee:param-valueType" minOccurs="0" maxOccurs="unbounded"></xsd:element>
-
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-
-    <xsd:complexType name="variable-scopeType">
-        <xsd:simpleContent>
-
-            <xsd:restriction base="javaee:string">
-                <xsd:enumeration value="NESTED" />
-                <xsd:enumeration value="AT_BEGIN" />
-                <xsd:enumeration value="AT_END" />
-            </xsd:restriction>
-        </xsd:simpleContent>
-    </xsd:complexType>
-
-    <xsd:complexType name="variableType">
-        <xsd:sequence>
-            <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
-
-            <xsd:choice>
-                <xsd:element name="name-given" type="javaee:java-identifierType"></xsd:element>
-
-                <xsd:element name="name-from-attribute" type="javaee:java-identifierType"></xsd:element>
-            </xsd:choice>
-            <xsd:element name="variable-class" type="javaee:fully-qualified-classType" minOccurs="0"></xsd:element>
-
-            <xsd:element name="declare" type="javaee:generic-booleanType" minOccurs="0"></xsd:element>
-            <xsd:element name="scope" type="javaee:variable-scopeType" minOccurs="0"></xsd:element>
-        </xsd:sequence>
-        <xsd:attribute name="id" type="xsd:ID" />
-    </xsd:complexType>
-</xsd:schema>

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd (from rev 95409, projects/metadata/web/trunk/src/main/resources/schema/web-jsptaglibrary_2_1.xsd)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/main/resources/schema/web-jsptaglibrary_2_1.xsd	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,1144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/javaee"
+     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="2.1">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)web-jsptaglibrary_2_1.xsds	1.1
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2005 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the JSP Taglibrary
+	descriptor.  All Taglibrary descriptors must
+	indicate the tag library schema by using the Taglibrary
+	namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <taglib xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="..."
+	      version="2.1">
+	      ...
+	    </taglib>
+
+	The instance documents may indicate the published
+	version of the schema using xsi:schemaLocation attribute
+	for Java EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="taglib" type="javaee:tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root.
+	The definition of taglib is provided
+	by the tldTaglibType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="tag-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains, among other things, tag and
+	  tag-file elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:tag|javaee:tag-file"/>
+      <xsd:field    xpath="javaee:name"/>
+    </xsd:unique>
+
+    <xsd:unique name="function-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The taglib element contains function elements.
+	  The name subelements of these elements must each be unique.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:function"/>
+      <xsd:field    xpath="javaee:name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="body-contentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Specifies the type of body that is valid for a tag.
+	This value is used by the JSP container to validate
+	that a tag invocation has the correct body syntax and
+	by page composition tools to assist the page author
+	in providing a valid tag body.
+
+	There are currently four values specified:
+
+	tagdependent    The body of the tag is interpreted by the tag
+			implementation itself, and is most likely
+			in a different "language", e.g embedded SQL
+			statements.
+
+	JSP             The body of the tag contains nested JSP
+			syntax.
+
+	empty           The body must be empty
+
+	scriptless      The body accepts only template text, EL
+			Expressions, and JSP action elements.  No
+			scripting elements are allowed.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="tagdependent"/>
+	<xsd:enumeration value="JSP"/>
+	<xsd:enumeration value="empty"/>
+	<xsd:enumeration value="scriptless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="extensibleType" abstract="true">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The extensibleType is an abstract base type that is used to
+	define the type of extension-elements. Instance documents
+	must substitute a known type to define the extension by
+	using xsi:type attribute to define the actual type of
+	extension-elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="functionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The function element is used to provide information on each
+	function in the tag library that is to be exposed to the EL.
+
+	The function element may have several subelements defining:
+
+	description         Optional tag-specific information
+
+	display-name        A short name that is intended to be
+			    displayed by tools
+
+	icon                Optional icon element that can be used
+			    by tools
+
+	name                A unique name for this function
+
+	function-class      Provides the name of the Java class that
+			    implements the function
+
+	function-signature  Provides the signature, as in the Java
+			    Language Specification, of the Java
+			    method that is to be used to implement
+			    the function.
+
+	example             Optional informal description of an
+			    example of a use of this function
+
+	function-extension  Zero or more extensions that provide extra
+			    information about this function, for tool
+			    consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    A unique name for this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="function-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the fully-qualified class name of the Java
+	    class containing the static method that implements
+	    the function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-signature"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Provides the signature, of the static Java method that is
+	    to be used to implement the function.  The syntax of the
+	    function-signature element is as follows:
+
+		FunctionSignature ::= ReturnType S MethodName S?
+				      '(' S? Parameters? S? ')'
+
+                ReturnType        ::= Type
+
+		MethodName        ::= Identifier
+
+		Parameters        ::=   Parameter
+				      | ( Parameter S? ',' S? Parameters )
+
+                Parameter         ::= Type
+
+		Where:
+
+ 		    * Type is a basic type or a fully qualified
+		      Java class name (including package name),
+		      as per the 'Type' production in the Java
+		      Language Specification, Second Edition,
+		      Chapter 18.
+
+                    * Identifier is a Java identifier, as per
+		      the 'Identifier' production in the Java
+		      Language Specification, Second
+		      Edition, Chapter 18.
+
+	    Example:
+
+	    java.lang.String nickName( java.lang.String, int )
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of this function.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="function-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Function extensions are for tool use only and must not
+            affect the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagFileType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines an action in this tag library that is implemented
+	as a .tag file.
+
+	The tag-file element has two required subelements:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	path              Where to find the .tag file implementing this
+			  action, relative to the root of the web
+			  application or the root of the JAR file for a
+			  tag library packaged in a JAR.  This must
+			  begin with /WEB-INF/tags if the .tag file
+			  resides in the WAR, or /META-INF/tags if the
+			  .tag file resides in a JAR.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType"/>
+      <xsd:element name="path"
+		   type="javaee:pathType"/>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tagType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tag defines a unique tag in this tag library.  It has one
+	attribute, id.
+
+	The tag element may have several subelements defining:
+
+	description       Optional tag-specific information
+
+	display-name      A short name that is intended to be
+			  displayed by tools
+
+	icon              Optional icon element that can be used
+			  by tools
+
+	name              The unique action name
+
+	tag-class         The tag handler class implementing
+			  javax.servlet.jsp.tagext.JspTag
+
+	tei-class         An optional subclass of
+			  javax.servlet.jsp.tagext.TagExtraInfo
+
+	body-content      The body content type
+
+	variable          Optional scripting variable information
+
+	attribute         All attributes of this action that are
+			  evaluated prior to invocation.
+
+	dynamic-attributes Whether this tag supports additional
+			   attributes with dynamic names.  If
+			   true, the tag-class must implement the
+			   javax.servlet.jsp.tagext.DynamicAttributes
+			   interface.  Defaults to false.
+
+	example           Optional informal description of an
+			  example of a use of this tag
+
+	tag-extension     Zero or more extensions that provide extra
+			  information about this tag, for tool
+			  consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="name"
+		   type="javaee:tld-canonical-nameType"/>
+      <xsd:element name="tag-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.serlvet.jsp.tagext.JspTag
+	    that implements the request time semantics for
+	    this tag. (required)
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tei-class"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo
+	    for this tag. (optional)
+
+	    If this is not given, the class is not consulted at
+	    translation time.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="body-content"
+		   type="javaee:body-contentType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Specifies the format for the body of this tag.
+	    The default in JSP 1.2 was "JSP" but because this
+	    is an invalid setting for simple tag handlers, there
+	    is no longer a default in JSP 2.0.  A reasonable
+	    default for simple tag handlers is "scriptless" if
+	    the tag can have a body.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="variable"
+		   type="javaee:variableType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attribute"
+		   type="javaee:tld-attributeType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="dynamic-attributes"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0"/>
+      <xsd:element name="example"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The example element contains an informal description
+	    of an example of the use of a tag.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="tag-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Tag extensions are for tool use only and must not affect
+	    the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The attribute element defines an attribute for the nesting
+	tag.  The attribute element may have several subelements
+	defining:
+
+	description     a description of the attribute
+
+	name            the name of the attribute
+
+	required        whether the attribute is required or
+			optional
+
+	rtexprvalue     whether the attribute is a runtime attribute
+
+	type            the type of the attributes
+
+	fragment        whether this attribute is a fragment
+
+        deferred-value  present if this attribute is to be parsed as a
+                        javax.el.ValueExpression
+
+        deferred-method present if this attribute is to be parsed as a
+                        javax.el.MethodExpression
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="name"
+		   type="javaee:java-identifierType"/>
+      <xsd:element name="required"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines if the nesting attribute is required or
+	    optional.
+
+	    If not present then the default is "false", i.e
+	    the attribute is optional.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:choice>
+	<xsd:sequence>
+          <xsd:sequence minOccurs="0">
+	    <xsd:element name="rtexprvalue"
+		         type="javaee:generic-booleanType">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+		  Defines if the nesting attribute can have scriptlet
+		  expressions as a value, i.e the value of the
+		  attribute may be dynamically calculated at request
+		  time, as opposed to a static value determined at
+		  translation time.
+		  If not present then the default is "false", i.e the
+		  attribute has a static value
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	    <xsd:element name="type"
+		         type="javaee:fully-qualified-classType"
+		         minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+		  Defines the Java type of the attributes value.
+                  If this element is omitted, the expected type is
+                  assumed to be "java.lang.Object".
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	  </xsd:sequence>
+
+          <xsd:choice>
+	    <xsd:element name="deferred-value"
+		         type="javaee:tld-deferred-valueType"
+		         minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+                  Present if the value for this attribute is to be
+                  passed to the tag handler as a
+                  javax.el.ValueExpression. This allows for deferred
+                  evaluation of EL expressions. An optional subelement
+                  will contain the expected type that the value will
+                  be coerced to after evaluation of the expression.
+                  The type defaults to Object if one is not provided.
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+	    <xsd:element name="deferred-method"
+		       type="javaee:tld-deferred-methodType"
+		       minOccurs="0">
+	      <xsd:annotation>
+	        <xsd:documentation>
+
+                Present if the value for this attribute is to be
+                passed to the tag handler as a
+                javax.el.MethodExpression. This allows for deferred
+                evaluation of an EL expression that identifies a
+                method to be invoked on an Object. An optional
+                subelement will contain the expected method
+                signature. The signature defaults to "void method()"
+                if one is not provided.
+
+	        </xsd:documentation>
+	      </xsd:annotation>
+	    </xsd:element>
+          </xsd:choice>
+        </xsd:sequence>
+
+	<xsd:element name="fragment"
+		     type="javaee:generic-booleanType"
+		     minOccurs="0">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      "true" if this attribute is of type
+	      javax.jsp.tagext.JspFragment, representing dynamic
+	      content that can be re-evaluated as many times
+	      as needed by the tag handler.  If omitted or "false",
+	      the default is still type="java.lang.String"
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-canonical-nameType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Defines the canonical name of a tag or attribute being
+	defined.
+
+	The name must conform to the lexical rules for an NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-deferred-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines information about how to provide the value for a
+        tag handler attribute that accepts a javax.el.MethodExpression.
+
+	The deferred-method element has one optional subelement:
+
+	method-signature  Provides the signature, as in the Java
+                          Language Specifies, that is expected for
+                          the method being identified by the
+                          expression.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-signature"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Provides the expected signature of the method identified
+            by the javax.el.MethodExpression.
+
+            This disambiguates overloaded methods and ensures that
+            the return value is of the expected type.
+
+            The syntax of the method-signature element is identical
+            to that of the function-signature element.  See the
+            documentation for function-signature for more details.
+
+	    The name of the method is for documentation purposes only
+	    and is ignored by the JSP container.
+
+            Example:
+
+              boolean validate(java.lang.String)
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-deferred-valueType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines information about how to provide the value for a
+        tag handler attribute that accepts a javax.el.ValueExpression.
+
+	The deferred-value element has one optional subelement:
+
+	type            the expected type of the attribute
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="type"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The fully-qualified name of the Java type that is the
+            expected type for this deferred expression.  If this
+            element is omitted, the expected type is assumed to be
+            "java.lang.Object".
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tld-extensionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The tld-extensionType is used to indicate
+	extensions to a specific TLD element.
+
+	It is used by elements to designate an extension block
+	that is targeted to a specific extension designated by
+	a set of extension elements that are declared by a
+	namespace. The namespace identifies the extension to
+	the tool that processes the extension.
+
+	The type of the extension-element is abstract. Therefore,
+	a concrete type must be specified by the TLD using
+	xsi:type attribute for each extension-element.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="extension-element"
+		   type="javaee:extensibleType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="namespace"
+		   use="required"
+		   type="xsd:anyURI"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="tldTaglibType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The taglib tag is the document root, it defines:
+
+	description     a simple string describing the "use" of this
+			taglib, should be user discernable
+
+	display-name    the display-name element contains a
+			short name that is intended to be displayed
+			by tools
+
+	icon            optional icon that can be used by tools
+
+	tlib-version    the version of the tag library implementation
+
+	short-name      a simple default short name that could be
+			used by a JSP authoring tool to create
+			names with a mnemonic value; for example,
+			the it may be used as the prefered prefix
+			value in taglib directives
+
+	uri             a uri uniquely identifying this taglib
+
+	validator       optional TagLibraryValidator information
+
+	listener        optional event listener specification
+
+	tag             tags in this tag library
+
+	tag-file        tag files in this tag library
+
+	function        zero or more EL functions defined in this
+			tag library
+
+	taglib-extension zero or more extensions that provide extra
+			information about this taglib, for tool
+			consumption
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="tlib-version"
+		   type="javaee:dewey-versionType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Describes this version (number) of the taglibrary.
+	    It is described as a dewey decimal.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="short-name"
+		   type="javaee:tld-canonical-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a simple default name that could be used by
+	    a JSP authoring tool to create names with a
+	    mnemonicvalue; for example, it may be used as the
+	    preferred prefix value in taglib directives.  Do
+	    not use white space, and do not start with digits
+	    or underscore.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="uri"
+		   type="javaee:xsdAnyURIType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a public URI that uniquely identifies this
+	    version of the taglibrary.  Leave it empty if it
+	    does not apply.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+      <xsd:element name="validator"
+		   type="javaee:validatorType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="listener"
+		   type="javaee:listenerType"
+		   minOccurs="0" maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="tag"
+		   type="javaee:tagType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="tag-file"
+		   type="javaee:tagFileType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="function"
+		   type="javaee:functionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="taglib-extension"
+		   type="javaee:tld-extensionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Taglib extensions are for tool use only and must not
+            affect the behavior of a container.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="2.1"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  Describes the JSP version (number) this taglibrary
+	  requires in order to function (dewey decimal)
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="validatorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	A validator that can be used to validate
+	the conformance of a JSP page to using this tag library is
+	defined by a validatorType.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="validator-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the TagLibraryValidator class that can be used
+	    to validate the conformance of a JSP page to using this
+	    tag library.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-param element contains a name/value pair as an
+	    initialization param.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variable-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines scope of the scripting variable.  See
+	TagExtraInfo for details.  The allowed values are,
+	"NESTED", "AT_BEGIN" and "AT_END".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="NESTED"/>
+	<xsd:enumeration value="AT_BEGIN"/>
+	<xsd:enumeration value="AT_END"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="variableType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The variableType provides information on the scripting
+	variables defined by using this tag.  It is a (translation
+	time) error for a tag that has one or more variable
+	subelements to have a TagExtraInfo class that returns a
+	non-null value from a call to getVariableInfo().
+
+	The subelements of variableType are of the form:
+
+	description              Optional description of this
+				 variable
+
+	name-given               The variable name as a constant
+
+	name-from-attribute      The name of an attribute whose
+				 (translation time) value will
+				 give the name of the
+				 variable.  One of name-given or
+				 name-from-attribute is required.
+
+	variable-class           Name of the class of the variable.
+				 java.lang.String is default.
+
+	declare                  Whether the variable is declared
+				 or not.  True is the default.
+
+	scope                    The scope of the scripting varaible
+				 defined.  NESTED is default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="name-given"
+		     type="javaee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name for the scripting variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="name-from-attribute"
+		     type="javaee:java-identifierType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The name of an attribute whose
+	      (translation-time) value will give the name of
+	      the variable.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="variable-class"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The optional name of the class for the scripting
+	    variable.  The default is java.lang.String.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+
+      </xsd:element>
+
+      <xsd:element name="declare"
+		   type="javaee:generic-booleanType"
+		   minOccurs="0">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Whether the scripting variable is to be defined
+	    or not.  See TagExtraInfo for details.  This
+	    element is optional and "true" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="scope"
+		   type="javaee:variable-scopeType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The element is optional and "NESTED" is the default.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java
===================================================================
--- projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,519 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.metadata.annotation.web;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.AnnotatedElement;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.annotation.Resource;
-import javax.annotation.Resources;
-import javax.annotation.security.DeclareRoles;
-import javax.annotation.security.RunAs;
-import javax.ejb.EJB;
-import javax.ejb.EJBs;
-import javax.persistence.PersistenceContext;
-import javax.persistence.PersistenceContexts;
-import javax.persistence.PersistenceUnit;
-import javax.persistence.PersistenceUnits;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.annotation.WebListener;
-import javax.servlet.annotation.WebServlet;
-import javax.transaction.UserTransaction;
-import javax.xml.ws.WebServiceRef;
-import javax.xml.ws.WebServiceRefs;
-
-import org.jboss.metadata.annotation.creator.AnnotationContext;
-import org.jboss.metadata.annotation.creator.web.Web30MetaDataCreator;
-import org.jboss.metadata.annotation.finder.AnnotationFinder;
-import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
-import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
-import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
-import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
-import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
-import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
-import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
-import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
-import org.jboss.metadata.javaee.spec.RunAsMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.AnnotationMergedView;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.metadata.web.spec.Web30MetaData;
-import org.jboss.metadata.web.spec.WebMetaData;
-import org.jboss.test.metadata.annotation.ws.TestEndpoint;
-import org.jboss.test.metadata.annotation.ws.TestEndpointService;
-import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
-
-/**
- * This tests the annotation translation framework.
- *
- * @author Scott.Stark at jboss.org
- * @author Anil.Saldhana at jboss.org
- * @version $Revision: 88255 $
- */
-public class AnnotationWebUnitTestCase extends AbstractJavaEEEverythingTest
-{
-   /**
-    * @param name
-    */
-   public AnnotationWebUnitTestCase(String name)
-   {
-      super(name);
-   }
-
-   private void assertEnv(EnvironmentRefsGroupMetaData env) throws Exception
-   {
-      // @EJB
-      AnnotatedEJBReferencesMetaData ejbRefs = env.getAnnotatedEjbReferences();
-      assertEquals(4, ejbRefs.size());
-      AnnotatedEJBReferenceMetaData injectedField = ejbRefs.get(MyServlet.class.getName() + "/injectedField");
-      assertNotNull(injectedField);
-      assertEquals(MyStatelessLocal.class, injectedField.getBeanInterface());
-      AnnotatedEJBReferenceMetaData injectedFieldWithOverridenName = ejbRefs.get("overrideName");
-      assertNotNull(injectedFieldWithOverridenName);
-      assertEquals(MyStatelessLocal.class, injectedFieldWithOverridenName.getBeanInterface());
-      AnnotatedEJBReferenceMetaData local1 = ejbRefs.get("ejb/local1");
-      assertNotNull(local1);
-      assertEquals("java:/MyLocalSession1", local1.getMappedName());
-      assertEquals("ejb/local1", local1.getEjbRefName());
-      assertEquals("MyLocalSession1", local1.getLink());
-      assertEquals("A reference to MyLocalSession1", local1.getDescriptions().value()[0].value());
-      assertEquals(MyStatelessLocal.class, local1.getBeanInterface());
-      AnnotatedEJBReferenceMetaData local2 = ejbRefs.get("ejb/local2");
-      assertNotNull(local2);
-      assertEquals("java:/MyLocalSession2", local2.getMappedName());
-      assertEquals("ejb/local2", local2.getEjbRefName());
-      assertEquals("local.jar#MyLocalSession1", local2.getLink());
-      assertEquals("A reference to MyLocalSession2", local2.getDescriptions().value()[0].value());
-      assertEquals(MyStatelessLocal.class, local2.getBeanInterface());
-
-      ResourceReferencesMetaData resRefs = env.getResourceReferences();
-      // 
-      assertEquals(3, resRefs.size());
-      ResourceReferenceMetaData homePageRef = resRefs.get(MyServlet.class.getName() + "/homePage");
-      assertNotNull(homePageRef);
-      assertEquals("java.net.URL", homePageRef.getType());
-      Set<ResourceInjectionTargetMetaData> homePageRefTargets = homePageRef.getInjectionTargets();
-      assertEquals(1, homePageRefTargets.size());
-      ResourceInjectionTargetMetaData homePageRefTarget = homePageRefTargets.iterator().next();
-      assertEquals(MyServlet.class.getName(), homePageRefTarget.getInjectionTargetClass());
-      assertEquals("setHomePage", homePageRefTarget.getInjectionTargetName());
-      ResourceReferenceMetaData googleHome = resRefs.get("googleHome");
-      assertNotNull(googleHome);
-      assertEquals("java.net.URL", googleHome.getType());
-      assertEquals("http://www.google.com", googleHome.getMappedName());
-      ResourceReferenceMetaData defaultDS = resRefs.get("jdbc/ds");
-      assertNotNull(defaultDS);
-      assertEquals("javax.sql.DataSource", defaultDS.getType());
-      assertEquals("java:/DefaultDS", defaultDS.getMappedName());
-
-      ResourceEnvironmentReferencesMetaData resEnvRefs = env.getResourceEnvironmentReferences();
-      assertEquals(1, resEnvRefs.size());
-      ResourceEnvironmentReferenceMetaData contextRef = resEnvRefs.get(MyServlet.class.getName() + "/utx");
-      assertNotNull(contextRef);
-      assertEquals(UserTransaction.class.getName(), contextRef.getType());
-      Set<ResourceInjectionTargetMetaData> contextRefTargets = contextRef.getInjectionTargets();
-      assertEquals(1, contextRefTargets.size());
-      ResourceInjectionTargetMetaData contextRefTarget = contextRefTargets.iterator().next();
-      assertEquals(MyServlet.class.getName(), contextRefTarget.getInjectionTargetClass());
-      assertEquals("utx", contextRefTarget.getInjectionTargetName());
-
-      EnvironmentEntriesMetaData envEntries = env.getEnvironmentEntries();
-      assertEquals(2, envEntries.size());
-      EnvironmentEntryMetaData pi = envEntries.get(MyServlet.class.getName()+ "/pi");
-      assertEquals("3.14159", pi.getValue());
-      // TODO: should this be java.lang.Double?
-      assertEquals("double", pi.getType());
-
-      MessageDestinationReferencesMetaData msgRefs = env.getMessageDestinationReferences();
-      assertEquals(1, msgRefs.size());
-      MessageDestinationReferenceMetaData mailQueue = msgRefs.get(MyServlet.class.getName() + "/mailQueue");
-      assertNotNull(mailQueue);
-      assertEquals("javax.jms.Queue", mailQueue.getType());
-
-      // WebServiceRef(s)
-      ServiceReferencesMetaData serviceRefs = env.getServiceReferences();
-      assertNotNull(serviceRefs);
-      assertEquals(6, serviceRefs.size());
-
-      ServiceReferenceMetaData serviceRef1 = serviceRefs.get("service2");
-      assertNotNull(serviceRef1);
-      assertEquals(TestEndpointService.class.getName(), serviceRef1.getServiceInterface());
-      assertEquals(MyServlet.class.getName(), serviceRef1.getServiceRefType());
-      assertNull(serviceRef1.getInjectionTargets());
-
-      ServiceReferenceMetaData serviceRef2 = serviceRefs.get("port1");
-      assertNotNull(serviceRef2);
-      assertEquals(TestEndpointService.class.getName(), serviceRef2.getServiceInterface());
-      assertEquals(TestEndpoint.class.getName(), serviceRef2.getServiceRefType());
-      assertNull(serviceRef2.getInjectionTargets());
-
-      ServiceReferenceMetaData serviceRef3 = serviceRefs
-            .get("org.jboss.test.metadata.annotation.web.MyServlet/service");
-      assertNotNull(serviceRef3);
-      assertEquals(MyServlet.class.getDeclaredField("service"), serviceRef3.getAnnotatedElement());
-
-      assertNull(serviceRef3.getServiceInterface());
-      assertEquals(TestEndpointService.class.getName(), serviceRef3.getServiceRefType());
-      //InjectionTarget on a FIELD
-      Set<ResourceInjectionTargetMetaData> injectionTargets3 = serviceRef3.getInjectionTargets();
-      assertNotNull(injectionTargets3);
-      assertEquals(1, injectionTargets3.size());
-      ResourceInjectionTargetMetaData injectionTarget = new ResourceInjectionTargetMetaData();
-      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
-      injectionTarget.setInjectionTargetName("service");
-      assertTrue(injectionTargets3.contains(injectionTarget));
-
-      ServiceReferenceMetaData serviceRef4 = serviceRefs.get(MyServlet.class.getName() + "/endpoint");
-      assertNotNull(serviceRef4);
-      assertEquals(MyServlet.class.getDeclaredField("endpoint"), serviceRef4.getAnnotatedElement());
-      assertNull(serviceRef4.getServiceInterface());
-      assertEquals(TestEndpoint.class.getName(), serviceRef4.getServiceRefType());
-      //InjectionTarget on a FIELD
-      Set<ResourceInjectionTargetMetaData> injectionTargets4 = serviceRef4.getInjectionTargets();
-      assertNotNull(injectionTargets4);
-      assertEquals(1, injectionTargets4.size());
-      injectionTarget = new ResourceInjectionTargetMetaData();
-      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
-      injectionTarget.setInjectionTargetName("endpoint");
-      assertTrue(injectionTargets4.contains(injectionTarget));
-
-      ServiceReferenceMetaData serviceRef5 = serviceRefs.get(MyServlet.class.getName() + "/anotherWebRef");
-      assertNotNull(serviceRef5);
-      assertNull(serviceRef5.getServiceInterface());
-      assertEquals(TestEndpoint.class.getName(), serviceRef5.getServiceRefType());
-      //InjectionTarget on a METHOD
-      Set<ResourceInjectionTargetMetaData> injectionTargets5 = serviceRef5.getInjectionTargets();
-      assertNotNull(injectionTargets5);
-      assertEquals(1, injectionTargets5.size());
-      injectionTarget = new ResourceInjectionTargetMetaData();
-      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
-      injectionTarget.setInjectionTargetName("setAnotherWebRef");
-      assertTrue(injectionTargets5.contains(injectionTarget));
-
-      ServiceReferenceMetaData serviceRef6 = serviceRefs.get("method/service");
-      assertNotNull(serviceRef6);
-      assertNull(serviceRef6.getServiceInterface());
-      assertEquals(TestEndpoint.class.getName(), serviceRef6.getServiceRefType());
-      //InjectionTarget on a METHOD
-      Set<ResourceInjectionTargetMetaData> injectionTargets6 = serviceRef6.getInjectionTargets();
-      assertNotNull(injectionTargets6);
-      assertEquals(1, injectionTargets6.size());
-      injectionTarget = new ResourceInjectionTargetMetaData();
-      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
-      injectionTarget.setInjectionTargetName("setWebRef");
-      assertTrue(injectionTargets6.contains(injectionTarget));
-      
-   }
-
-   public void testAnnotationMergedViewWithNoXml() throws Exception
-   {
-      Class<?>[] webClasses =
-      {MyServlet.class};
-      List<Class<?>> classes = Arrays.asList(webClasses);
-      System.out.println("Processing classes: " + classes);
-
-      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
-      Web30MetaData metaData = creator.create(classes);
-
-      WebMetaData specMetaData = new Web30MetaData();
-      WebMetaData merged = new Web30MetaData();
-      AnnotationMergedView.merge(merged, specMetaData, metaData);
-
-      assertTrue(metaData.is30());
-      assertEquals("3.0", merged.getVersion());
-
-      assertEnv(merged.getJndiEnvironmentRefsGroup());
-
-      // MyServlet @RunAs
-      assertNotNull(merged.getServlets());
-      ServletMetaData servlet = merged.getServlets().get("MyServlet");
-      assertNotNull(servlet);
-      RunAsMetaData runAs = servlet.getRunAs();
-      assertNotNull(runAs);
-      assertEquals("InternalUser", runAs.getRoleName());
-      // @DeclareRoles
-      SecurityRolesMetaData securityRoles = merged.getSecurityRoles();
-      assertNotNull(securityRoles);
-      assertEquals(2, securityRoles.size());
-      SecurityRoleMetaData role1 = securityRoles.get("Role1");
-      assertNotNull(role1);
-      assertEquals("Role1", role1.getRoleName());
-      SecurityRoleMetaData role2 = securityRoles.get("Role2");
-      assertNotNull(role2);
-      assertEquals("Role2", role2.getRoleName());
-      // @PostConstruct
-      assertEquals("setUp", metaData.getPostConstructs().get(0).getMethodName());
-      // @PreDestroy
-      assertEquals("tearDown", metaData.getPreDestroys().get(0).getMethodName());
-      
-      
-      assertNotNull(metaData.getPersistenceContextRefs());
-      assertEquals(2, metaData.getPersistenceContextRefs().size());
-      PersistenceContextReferenceMetaData ref = metaData.getPersistenceContextReferenceByName("injectedEntityManager");
-      assertNotNull(ref);
-      ref = metaData.getPersistenceContextReferenceByName("persistence/ABC");
-      assertNotNull(ref);
-      assertEquals("ABC", ref.getPersistenceUnitName());
-      
-      assertNotNull(metaData.getPersistenceUnitRefs());
-      assertEquals(1, metaData.getPersistenceUnitRefs().size());
-      assertNotNull(metaData.getPersistenceUnitReferenceByName("injectedEntityManagerFactory"));
-   }
-
-   public void testAnnotationRead() throws Exception
-   {
-      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-
-      Class<?>[] webClasses =
-      {MyServlet.class};
-      List<Class<?>> classes = Arrays.asList(webClasses);
-      System.out.println("Processing classes: " + classes);
-
-      //enableTrace("org.jboss.metadata.annotation.creator");
-      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
-
-      Web30MetaData metaData = creator.create(classes);
-
-      assertTrue(metaData.is30());
-      assertEquals("3.0", metaData.getVersion());
-
-      assertEnv(metaData.getJndiEnvironmentRefsGroup());
-
-      // MyServlet @RunAs
-      assertNotNull(metaData.getServlets());
-      ServletMetaData servlet = metaData.getServlets().get("MyServlet");
-      assertNotNull(servlet);
-      RunAsMetaData runAs = servlet.getRunAs();
-      assertNotNull(runAs);
-      assertEquals("InternalUser", runAs.getRoleName());
-      // @DeclareRoles
-      SecurityRolesMetaData securityRoles = metaData.getSecurityRoles();
-      assertNotNull(securityRoles);
-      assertEquals(2, securityRoles.size());
-      SecurityRoleMetaData role1 = securityRoles.get("Role1");
-      assertNotNull(role1);
-      assertEquals("Role1", role1.getRoleName());
-      SecurityRoleMetaData role2 = securityRoles.get("Role2");
-      assertNotNull(role2);
-      assertEquals("Role2", role2.getRoleName());
-   }
-
-   /**
-    * Annotation metadata merged into web spec meta data and then
-    * JBoss Meta Data is merged
-    * @throws Exception
-    */
-   public void testAnnotationXML() throws Exception
-   {
-      //Create the annotation web metadata
-      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-      Class<?>[] webClasses =
-      {MyServlet.class};
-      List<Class<?>> classes = Arrays.asList(webClasses);
-      System.out.println("Processing classes: " + classes);
-
-      //enableTrace("org.jboss.metadata.annotation.creator");
-      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
-
-      Web30MetaData annotation = creator.create(classes);
-
-      assertTrue(annotation.is30());
-
-      //Now create the web meta data
-      WebMetaData xml = unmarshal(WebMetaData.class);
-
-      WebMetaData merged = new WebMetaData();
-      //Merge the annotation and xml
-      AnnotationMergedView.merge(merged, xml, annotation);
-
-      //Assert the run as role
-      ServletMetaData servletMetaData = merged.getServlets().get("MyServlet");
-      assertEquals("InternalUser", servletMetaData.getRunAs().getRoleName());
-
-      //Create the JBossWebMetaData
-      JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class, null);
-
-      //Let us merge the merged spec metadata with the jbossweb metadata
-      JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
-      mergedJBossWebMD.merge(jbossWMD, merged);
-
-      //Assert the run as role
-      JBossServletMetaData jbossServletMetaData = mergedJBossWebMD.getServlets().get("MyServlet");
-      assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
-      assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
-
-      // @PostConstruct
-      assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
-      // @PreDestroy
-      assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
-   }
-
-   /**
-    * Web Meta Data is merged into JBossWebMetaData. Finally
-    * AnnotationMetaData is merged with these to yield a final 
-    * metadata
-    * @throws Exception
-    */
-   public void testAnnotationXML2() throws Exception
-   {
-      //Create the annotation web metadata
-      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-      Class<?>[] webClasses =
-      {MyServlet.class};
-      List<Class<?>> classes = Arrays.asList(webClasses);
-      System.out.println("Processing classes: " + classes);
-
-      //enableTrace("org.jboss.metadata.annotation.creator");
-      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
-
-      Web30MetaData annotation = creator.create(classes);
-
-      assertTrue(annotation.is30());
-
-      //Now create the web meta data
-      WebMetaData xml = unmarshal("AnnotationWeb_testAnnotationXML.xml", WebMetaData.class);
-
-      //Create the JBossWebMetaData
-      JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class);
-
-      //Let us merge the merged spec metadata with the jbossweb metadata
-      JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
-      mergedJBossWebMD.merge(jbossWMD, xml);
-
-      //Assert the run as role
-      assertTrue(mergedJBossWebMD.getRunAsIdentity("MyServlet").getRoleName().startsWith("PLACEHOLDER"));
-
-      WebMetaData merged = new WebMetaData();
-      //Merge the annotation and xml
-      AnnotationMergedView.merge(merged, xml, annotation);
-
-      JBossWebMetaData newMerged = new JBossWebMetaData();
-      newMerged.merge(mergedJBossWebMD, merged);
-
-      //Assert the run as role
-      JBossServletMetaData jbossServletMetaData = newMerged.getServlets().get("MyServlet");
-      assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
-      assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
-
-      // @PostConstruct
-      assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
-      // @PreDestroy
-      assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
-
-      assertAnnotationContext(creator.getAnnotationContext());
-   }
-
-   public void testSimpleServlet()
-   {
-      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
-      Class<?>[] webClasses = {SimpleServlet.class, MyServlet.class};
-      List<Class<?>> classes = Arrays.asList(webClasses);
-
-      //enableTrace("org.jboss.metadata.annotation.creator");
-      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
-
-      Web30MetaData annotation = creator.create(classes);
-
-      assertTrue(annotation.is30());
-      EnvironmentRefsGroupMetaData envRefs = annotation.getJndiEnvironmentRefsGroup();
-      assertNotNull(envRefs);
-
-      AnnotatedEJBReferencesMetaData annotatedEnvRefs = envRefs.getAnnotatedEjbReferences();
-      assertNotNull(annotatedEnvRefs);
-      assertEquals(6, annotatedEnvRefs.size());
-      
-      assertNotNull(envRefs.getResourceEnvironmentReferences());
-      assertEquals(2, envRefs.getResourceEnvironmentReferences().size());
-      
-   }
-
-   private void assertAnnotationContext(AnnotationContext context)
-   {
-      Collection<Class<? extends Annotation>> typeAnnotations = new HashSet<Class<? extends Annotation>>();
-      typeAnnotations.add(RunAs.class);
-      typeAnnotations.add(DeclareRoles.class);
-      typeAnnotations.add(Resource.class);
-      typeAnnotations.add(Resources.class);
-      typeAnnotations.add(EJB.class);
-      typeAnnotations.add(EJBs.class);
-      typeAnnotations.add(PersistenceContext.class);
-      typeAnnotations.add(PersistenceContexts.class);
-      typeAnnotations.add(PersistenceUnit.class);
-      typeAnnotations.add(PersistenceUnits.class);
-      typeAnnotations.add(WebServiceRef.class);
-      typeAnnotations.add(WebServiceRefs.class);
-      typeAnnotations.add(WebFilter.class);
-      typeAnnotations.add(WebServlet.class);
-      typeAnnotations.add(WebListener.class);
-
-      // Assert Type annotations
-      assertAnnotations(typeAnnotations, context.getTypeAnnotations());
-
-      Collection<Class<? extends Annotation>> methodAnnotations = new HashSet<Class<? extends Annotation>>();
-      methodAnnotations.add(PreDestroy.class);
-      methodAnnotations.add(PostConstruct.class);
-      methodAnnotations.add(Resource.class);
-      methodAnnotations.add(EJB.class);
-      methodAnnotations.add(PersistenceContext.class);
-      methodAnnotations.add(PersistenceUnit.class);
-      methodAnnotations.add(WebServiceRef.class);
-
-      // Assert Method annotations
-      assertAnnotations(methodAnnotations, context.getMethodAnnotations());
-
-      Collection<Class<? extends Annotation>> fieldAnnotations = new HashSet<Class<? extends Annotation>>();
-      fieldAnnotations.add(Resource.class);
-      fieldAnnotations.add(EJB.class);
-      fieldAnnotations.add(PersistenceContext.class);
-      fieldAnnotations.add(PersistenceUnit.class);
-      fieldAnnotations.add(WebServiceRef.class);
-
-      // Assert Field Annotations
-      assertAnnotations(fieldAnnotations, context.getFieldAnnotations());
-   }
-
-   private void assertAnnotations(Collection<Class<? extends Annotation>> expected,
-         Collection<Class<? extends Annotation>> actual)
-   {
-      assertEquals(expected.size(), actual.size());
-      assertTrue(actual.containsAll(expected));
-   }
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java (from rev 94608, projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/annotation/web/AnnotationWebUnitTestCase.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,527 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.annotation.web;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.AnnotatedElement;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.annotation.Resource;
+import javax.annotation.Resources;
+import javax.annotation.security.DeclareRoles;
+import javax.annotation.security.RunAs;
+import javax.ejb.EJB;
+import javax.ejb.EJBs;
+import javax.persistence.PersistenceContext;
+import javax.persistence.PersistenceContexts;
+import javax.persistence.PersistenceUnit;
+import javax.persistence.PersistenceUnits;
+import javax.servlet.annotation.MultipartConfig;
+import javax.servlet.annotation.ServletSecurity;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.annotation.WebListener;
+import javax.servlet.annotation.WebServlet;
+import javax.transaction.UserTransaction;
+import javax.xml.ws.WebServiceRef;
+import javax.xml.ws.WebServiceRefs;
+
+import org.jboss.metadata.annotation.creator.AnnotationContext;
+import org.jboss.metadata.annotation.creator.web.Web30MetaDataCreator;
+import org.jboss.metadata.annotation.finder.AnnotationFinder;
+import org.jboss.metadata.annotation.finder.DefaultAnnotationFinder;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentEntriesMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.EnvironmentRefsGroupMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferencesMetaData;
+import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferencesMetaData;
+import org.jboss.metadata.javaee.spec.ResourceInjectionTargetMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferencesMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ServiceReferencesMetaData;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.AnnotationMergedView;
+import org.jboss.metadata.web.spec.AnnotationMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.web.spec.Web30MetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.test.metadata.annotation.ws.TestEndpoint;
+import org.jboss.test.metadata.annotation.ws.TestEndpointService;
+import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+
+/**
+ * This tests the annotation translation framework.
+ *
+ * @author Scott.Stark at jboss.org
+ * @author Anil.Saldhana at jboss.org
+ * @version $Revision: 88255 $
+ */
+public class AnnotationWebUnitTestCase extends AbstractJavaEEEverythingTest
+{
+   /**
+    * @param name
+    */
+   public AnnotationWebUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   private void assertEnv(EnvironmentRefsGroupMetaData env) throws Exception
+   {
+      // @EJB
+      AnnotatedEJBReferencesMetaData ejbRefs = env.getAnnotatedEjbReferences();
+      assertEquals(4, ejbRefs.size());
+      AnnotatedEJBReferenceMetaData injectedField = ejbRefs.get(MyServlet.class.getName() + "/injectedField");
+      assertNotNull(injectedField);
+      assertEquals(MyStatelessLocal.class, injectedField.getBeanInterface());
+      AnnotatedEJBReferenceMetaData injectedFieldWithOverridenName = ejbRefs.get("overrideName");
+      assertNotNull(injectedFieldWithOverridenName);
+      assertEquals(MyStatelessLocal.class, injectedFieldWithOverridenName.getBeanInterface());
+      AnnotatedEJBReferenceMetaData local1 = ejbRefs.get("ejb/local1");
+      assertNotNull(local1);
+      assertEquals("java:/MyLocalSession1", local1.getMappedName());
+      assertEquals("ejb/local1", local1.getEjbRefName());
+      assertEquals("MyLocalSession1", local1.getLink());
+      assertEquals("A reference to MyLocalSession1", local1.getDescriptions().value()[0].value());
+      assertEquals(MyStatelessLocal.class, local1.getBeanInterface());
+      AnnotatedEJBReferenceMetaData local2 = ejbRefs.get("ejb/local2");
+      assertNotNull(local2);
+      assertEquals("java:/MyLocalSession2", local2.getMappedName());
+      assertEquals("ejb/local2", local2.getEjbRefName());
+      assertEquals("local.jar#MyLocalSession1", local2.getLink());
+      assertEquals("A reference to MyLocalSession2", local2.getDescriptions().value()[0].value());
+      assertEquals(MyStatelessLocal.class, local2.getBeanInterface());
+
+      ResourceReferencesMetaData resRefs = env.getResourceReferences();
+      // 
+      assertEquals(3, resRefs.size());
+      ResourceReferenceMetaData homePageRef = resRefs.get(MyServlet.class.getName() + "/homePage");
+      assertNotNull(homePageRef);
+      assertEquals("java.net.URL", homePageRef.getType());
+      Set<ResourceInjectionTargetMetaData> homePageRefTargets = homePageRef.getInjectionTargets();
+      assertEquals(1, homePageRefTargets.size());
+      ResourceInjectionTargetMetaData homePageRefTarget = homePageRefTargets.iterator().next();
+      assertEquals(MyServlet.class.getName(), homePageRefTarget.getInjectionTargetClass());
+      assertEquals("setHomePage", homePageRefTarget.getInjectionTargetName());
+      ResourceReferenceMetaData googleHome = resRefs.get("googleHome");
+      assertNotNull(googleHome);
+      assertEquals("java.net.URL", googleHome.getType());
+      assertEquals("http://www.google.com", googleHome.getMappedName());
+      ResourceReferenceMetaData defaultDS = resRefs.get("jdbc/ds");
+      assertNotNull(defaultDS);
+      assertEquals("javax.sql.DataSource", defaultDS.getType());
+      assertEquals("java:/DefaultDS", defaultDS.getMappedName());
+
+      ResourceEnvironmentReferencesMetaData resEnvRefs = env.getResourceEnvironmentReferences();
+      assertEquals(1, resEnvRefs.size());
+      ResourceEnvironmentReferenceMetaData contextRef = resEnvRefs.get(MyServlet.class.getName() + "/utx");
+      assertNotNull(contextRef);
+      assertEquals(UserTransaction.class.getName(), contextRef.getType());
+      Set<ResourceInjectionTargetMetaData> contextRefTargets = contextRef.getInjectionTargets();
+      assertEquals(1, contextRefTargets.size());
+      ResourceInjectionTargetMetaData contextRefTarget = contextRefTargets.iterator().next();
+      assertEquals(MyServlet.class.getName(), contextRefTarget.getInjectionTargetClass());
+      assertEquals("utx", contextRefTarget.getInjectionTargetName());
+
+      EnvironmentEntriesMetaData envEntries = env.getEnvironmentEntries();
+      assertEquals(2, envEntries.size());
+      EnvironmentEntryMetaData pi = envEntries.get(MyServlet.class.getName()+ "/pi");
+      assertEquals("3.14159", pi.getValue());
+      // TODO: should this be java.lang.Double?
+      assertEquals("double", pi.getType());
+
+      MessageDestinationReferencesMetaData msgRefs = env.getMessageDestinationReferences();
+      assertEquals(1, msgRefs.size());
+      MessageDestinationReferenceMetaData mailQueue = msgRefs.get(MyServlet.class.getName() + "/mailQueue");
+      assertNotNull(mailQueue);
+      assertEquals("javax.jms.Queue", mailQueue.getType());
+
+      // WebServiceRef(s)
+      ServiceReferencesMetaData serviceRefs = env.getServiceReferences();
+      assertNotNull(serviceRefs);
+      assertEquals(6, serviceRefs.size());
+
+      ServiceReferenceMetaData serviceRef1 = serviceRefs.get("service2");
+      assertNotNull(serviceRef1);
+      assertEquals(TestEndpointService.class.getName(), serviceRef1.getServiceInterface());
+      assertEquals(MyServlet.class.getName(), serviceRef1.getServiceRefType());
+      assertNull(serviceRef1.getInjectionTargets());
+
+      ServiceReferenceMetaData serviceRef2 = serviceRefs.get("port1");
+      assertNotNull(serviceRef2);
+      assertEquals(TestEndpointService.class.getName(), serviceRef2.getServiceInterface());
+      assertEquals(TestEndpoint.class.getName(), serviceRef2.getServiceRefType());
+      assertNull(serviceRef2.getInjectionTargets());
+
+      ServiceReferenceMetaData serviceRef3 = serviceRefs
+            .get("org.jboss.test.metadata.annotation.web.MyServlet/service");
+      assertNotNull(serviceRef3);
+      assertEquals(MyServlet.class.getDeclaredField("service"), serviceRef3.getAnnotatedElement());
+
+      assertNull(serviceRef3.getServiceInterface());
+      assertEquals(TestEndpointService.class.getName(), serviceRef3.getServiceRefType());
+      //InjectionTarget on a FIELD
+      Set<ResourceInjectionTargetMetaData> injectionTargets3 = serviceRef3.getInjectionTargets();
+      assertNotNull(injectionTargets3);
+      assertEquals(1, injectionTargets3.size());
+      ResourceInjectionTargetMetaData injectionTarget = new ResourceInjectionTargetMetaData();
+      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
+      injectionTarget.setInjectionTargetName("service");
+      assertTrue(injectionTargets3.contains(injectionTarget));
+
+      ServiceReferenceMetaData serviceRef4 = serviceRefs.get(MyServlet.class.getName() + "/endpoint");
+      assertNotNull(serviceRef4);
+      assertEquals(MyServlet.class.getDeclaredField("endpoint"), serviceRef4.getAnnotatedElement());
+      assertNull(serviceRef4.getServiceInterface());
+      assertEquals(TestEndpoint.class.getName(), serviceRef4.getServiceRefType());
+      //InjectionTarget on a FIELD
+      Set<ResourceInjectionTargetMetaData> injectionTargets4 = serviceRef4.getInjectionTargets();
+      assertNotNull(injectionTargets4);
+      assertEquals(1, injectionTargets4.size());
+      injectionTarget = new ResourceInjectionTargetMetaData();
+      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
+      injectionTarget.setInjectionTargetName("endpoint");
+      assertTrue(injectionTargets4.contains(injectionTarget));
+
+      ServiceReferenceMetaData serviceRef5 = serviceRefs.get(MyServlet.class.getName() + "/anotherWebRef");
+      assertNotNull(serviceRef5);
+      assertNull(serviceRef5.getServiceInterface());
+      assertEquals(TestEndpoint.class.getName(), serviceRef5.getServiceRefType());
+      //InjectionTarget on a METHOD
+      Set<ResourceInjectionTargetMetaData> injectionTargets5 = serviceRef5.getInjectionTargets();
+      assertNotNull(injectionTargets5);
+      assertEquals(1, injectionTargets5.size());
+      injectionTarget = new ResourceInjectionTargetMetaData();
+      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
+      injectionTarget.setInjectionTargetName("setAnotherWebRef");
+      assertTrue(injectionTargets5.contains(injectionTarget));
+
+      ServiceReferenceMetaData serviceRef6 = serviceRefs.get("method/service");
+      assertNotNull(serviceRef6);
+      assertNull(serviceRef6.getServiceInterface());
+      assertEquals(TestEndpoint.class.getName(), serviceRef6.getServiceRefType());
+      //InjectionTarget on a METHOD
+      Set<ResourceInjectionTargetMetaData> injectionTargets6 = serviceRef6.getInjectionTargets();
+      assertNotNull(injectionTargets6);
+      assertEquals(1, injectionTargets6.size());
+      injectionTarget = new ResourceInjectionTargetMetaData();
+      injectionTarget.setInjectionTargetClass(MyServlet.class.getName());
+      injectionTarget.setInjectionTargetName("setWebRef");
+      assertTrue(injectionTargets6.contains(injectionTarget));
+      
+   }
+
+   public void testAnnotationMergedViewWithNoXml() throws Exception
+   {
+      Class<?>[] webClasses =
+      {MyServlet.class};
+      List<Class<?>> classes = Arrays.asList(webClasses);
+      System.out.println("Processing classes: " + classes);
+
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
+      Web30MetaData metaData = creator.create(classes);
+
+      WebMetaData specMetaData = new Web30MetaData();
+      WebMetaData merged = new Web30MetaData();
+      AnnotationMergedView.merge(merged, specMetaData, metaData);
+
+      assertTrue(metaData.is30());
+      assertEquals("3.0", merged.getVersion());
+
+      assertEnv(merged.getJndiEnvironmentRefsGroup());
+
+      // MyServlet @RunAs
+      assertNotNull(merged.getAnnotations());
+      AnnotationMetaData annotation = merged.getAnnotations().get("org.jboss.test.metadata.annotation.web.MyServlet");
+      assertNotNull(annotation);
+      RunAsMetaData runAs = annotation.getRunAs();
+      assertNotNull(runAs);
+      assertEquals("InternalUser", runAs.getRoleName());
+      // @DeclareRoles
+      SecurityRolesMetaData securityRoles = merged.getSecurityRoles();
+      assertNotNull(securityRoles);
+      assertEquals(2, securityRoles.size());
+      SecurityRoleMetaData role1 = securityRoles.get("Role1");
+      assertNotNull(role1);
+      assertEquals("Role1", role1.getRoleName());
+      SecurityRoleMetaData role2 = securityRoles.get("Role2");
+      assertNotNull(role2);
+      assertEquals("Role2", role2.getRoleName());
+      // @PostConstruct
+      assertEquals("setUp", metaData.getPostConstructs().get(0).getMethodName());
+      // @PreDestroy
+      assertEquals("tearDown", metaData.getPreDestroys().get(0).getMethodName());
+      
+      
+      assertNotNull(metaData.getPersistenceContextRefs());
+      assertEquals(2, metaData.getPersistenceContextRefs().size());
+      PersistenceContextReferenceMetaData ref = metaData.getPersistenceContextReferenceByName("injectedEntityManager");
+      assertNotNull(ref);
+      ref = metaData.getPersistenceContextReferenceByName("persistence/ABC");
+      assertNotNull(ref);
+      assertEquals("ABC", ref.getPersistenceUnitName());
+      
+      assertNotNull(metaData.getPersistenceUnitRefs());
+      assertEquals(1, metaData.getPersistenceUnitRefs().size());
+      assertNotNull(metaData.getPersistenceUnitReferenceByName("injectedEntityManagerFactory"));
+   }
+
+   public void testAnnotationRead() throws Exception
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+
+      Class<?>[] webClasses =
+      {MyServlet.class};
+      List<Class<?>> classes = Arrays.asList(webClasses);
+      System.out.println("Processing classes: " + classes);
+
+      //enableTrace("org.jboss.metadata.annotation.creator");
+      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
+
+      Web30MetaData metaData = creator.create(classes);
+
+      assertTrue(metaData.is30());
+      assertEquals("3.0", metaData.getVersion());
+
+      assertEnv(metaData.getJndiEnvironmentRefsGroup());
+
+      // MyServlet @RunAs
+      assertNotNull(metaData.getAnnotations());
+      AnnotationMetaData annotation = metaData.getAnnotations().get("org.jboss.test.metadata.annotation.web.MyServlet");
+      assertNotNull(annotation);
+      RunAsMetaData runAs = annotation.getRunAs();
+      assertNotNull(runAs);
+      assertEquals("InternalUser", runAs.getRoleName());
+      // @DeclareRoles
+      SecurityRolesMetaData securityRoles = metaData.getSecurityRoles();
+      assertNotNull(securityRoles);
+      assertEquals(2, securityRoles.size());
+      SecurityRoleMetaData role1 = securityRoles.get("Role1");
+      assertNotNull(role1);
+      assertEquals("Role1", role1.getRoleName());
+      SecurityRoleMetaData role2 = securityRoles.get("Role2");
+      assertNotNull(role2);
+      assertEquals("Role2", role2.getRoleName());
+   }
+
+   /**
+    * Annotation metadata merged into web spec meta data and then
+    * JBoss Meta Data is merged
+    * @throws Exception
+    */
+   public void testAnnotationXML() throws Exception
+   {
+      //Create the annotation web metadata
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      Class<?>[] webClasses =
+      {MyServlet.class};
+      List<Class<?>> classes = Arrays.asList(webClasses);
+      System.out.println("Processing classes: " + classes);
+
+      //enableTrace("org.jboss.metadata.annotation.creator");
+      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
+
+      Web30MetaData annotation = creator.create(classes);
+
+      assertTrue(annotation.is30());
+
+      //Now create the web meta data
+      WebMetaData xml = unmarshal(WebMetaData.class);
+
+      WebMetaData merged = new WebMetaData();
+      //Merge the annotation and xml
+      AnnotationMergedView.merge(merged, xml, annotation);
+
+      //Assert the run as role
+      AnnotationMetaData annotationMetaData = merged.getAnnotations().get("org.jboss.test.metadata.annotation.web.MyServlet");
+      assertEquals("InternalUser", annotationMetaData.getRunAs().getRoleName());
+
+      //Create the JBossWebMetaData
+      JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class, null);
+
+      //Let us merge the merged spec metadata with the jbossweb metadata
+      JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
+      mergedJBossWebMD.merge(jbossWMD, merged);
+
+      //Assert the run as role
+      JBossServletMetaData jbossServletMetaData = mergedJBossWebMD.getServlets().get("MyServlet");
+// FIXME: Not compatible with 3.0 annotations 
+//      assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
+//      assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
+
+      // @PostConstruct
+      assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
+      // @PreDestroy
+      assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
+   }
+
+   /**
+    * Web Meta Data is merged into JBossWebMetaData. Finally
+    * AnnotationMetaData is merged with these to yield a final 
+    * metadata
+    * @throws Exception
+    */
+   public void testAnnotationXML2() throws Exception
+   {
+      //Create the annotation web metadata
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      Class<?>[] webClasses =
+      {MyServlet.class};
+      List<Class<?>> classes = Arrays.asList(webClasses);
+      System.out.println("Processing classes: " + classes);
+
+      //enableTrace("org.jboss.metadata.annotation.creator");
+      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
+
+      Web30MetaData annotation = creator.create(classes);
+
+      assertTrue(annotation.is30());
+
+      //Now create the web meta data
+      WebMetaData xml = unmarshal("AnnotationWeb_testAnnotationXML.xml", WebMetaData.class);
+
+      //Create the JBossWebMetaData
+      JBossWebMetaData jbossWMD = unmarshal("JBossWeb_testAnnotationXML.xml", JBossWebMetaData.class);
+
+      //Let us merge the merged spec metadata with the jbossweb metadata
+      JBossWebMetaData mergedJBossWebMD = new JBossWebMetaData();
+      mergedJBossWebMD.merge(jbossWMD, xml);
+
+      //Assert the run as role
+// FIXME: Not compatible with 3.0 annotations
+//      assertTrue(mergedJBossWebMD.getRunAsIdentity("MyServlet").getRoleName().startsWith("PLACEHOLDER"));
+
+      WebMetaData merged = new WebMetaData();
+      //Merge the annotation and xml
+      AnnotationMergedView.merge(merged, xml, annotation);
+
+      JBossWebMetaData newMerged = new JBossWebMetaData();
+      newMerged.merge(mergedJBossWebMD, merged);
+
+      //Assert the run as role
+// FIXME: Not compatible with 3.0 annotations
+//      JBossServletMetaData jbossServletMetaData = newMerged.getServlets().get("MyServlet");
+//      assertEquals("InternalUser", jbossServletMetaData.getRunAs().getRoleName());
+//      assertEquals("javajoe", jbossServletMetaData.getRunAsPrincipal());
+
+      // @PostConstruct
+      assertEquals("setUp", merged.getPostConstructs().get(0).getMethodName());
+      // @PreDestroy
+      assertEquals("tearDown", merged.getPreDestroys().get(0).getMethodName());
+
+      assertAnnotationContext(creator.getAnnotationContext());
+   }
+
+   public void testSimpleServlet()
+   {
+      AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
+      Class<?>[] webClasses = {SimpleServlet.class, MyServlet.class};
+      List<Class<?>> classes = Arrays.asList(webClasses);
+
+      //enableTrace("org.jboss.metadata.annotation.creator");
+      Web30MetaDataCreator creator = new Web30MetaDataCreator(finder);
+
+      Web30MetaData annotation = creator.create(classes);
+
+      assertTrue(annotation.is30());
+      EnvironmentRefsGroupMetaData envRefs = annotation.getJndiEnvironmentRefsGroup();
+      assertNotNull(envRefs);
+
+      AnnotatedEJBReferencesMetaData annotatedEnvRefs = envRefs.getAnnotatedEjbReferences();
+      assertNotNull(annotatedEnvRefs);
+      assertEquals(6, annotatedEnvRefs.size());
+      
+      assertNotNull(envRefs.getResourceEnvironmentReferences());
+      assertEquals(2, envRefs.getResourceEnvironmentReferences().size());
+      
+   }
+
+   private void assertAnnotationContext(AnnotationContext context)
+   {
+      Collection<Class<? extends Annotation>> typeAnnotations = new HashSet<Class<? extends Annotation>>();
+      typeAnnotations.add(RunAs.class);
+      typeAnnotations.add(DeclareRoles.class);
+      typeAnnotations.add(Resource.class);
+      typeAnnotations.add(Resources.class);
+      typeAnnotations.add(EJB.class);
+      typeAnnotations.add(EJBs.class);
+      typeAnnotations.add(PersistenceContext.class);
+      typeAnnotations.add(PersistenceContexts.class);
+      typeAnnotations.add(PersistenceUnit.class);
+      typeAnnotations.add(PersistenceUnits.class);
+      typeAnnotations.add(WebServiceRef.class);
+      typeAnnotations.add(WebServiceRefs.class);
+      typeAnnotations.add(WebFilter.class);
+      typeAnnotations.add(WebServlet.class);
+      typeAnnotations.add(WebListener.class);
+      typeAnnotations.add(MultipartConfig.class);
+      typeAnnotations.add(ServletSecurity.class);
+
+      // Assert Type annotations
+      assertAnnotations(typeAnnotations, context.getTypeAnnotations());
+
+      Collection<Class<? extends Annotation>> methodAnnotations = new HashSet<Class<? extends Annotation>>();
+      methodAnnotations.add(PreDestroy.class);
+      methodAnnotations.add(PostConstruct.class);
+      methodAnnotations.add(Resource.class);
+      methodAnnotations.add(EJB.class);
+      methodAnnotations.add(PersistenceContext.class);
+      methodAnnotations.add(PersistenceUnit.class);
+      methodAnnotations.add(WebServiceRef.class);
+
+      // Assert Method annotations
+      assertAnnotations(methodAnnotations, context.getMethodAnnotations());
+
+      Collection<Class<? extends Annotation>> fieldAnnotations = new HashSet<Class<? extends Annotation>>();
+      fieldAnnotations.add(Resource.class);
+      fieldAnnotations.add(EJB.class);
+      fieldAnnotations.add(PersistenceContext.class);
+      fieldAnnotations.add(PersistenceUnit.class);
+      fieldAnnotations.add(WebServiceRef.class);
+
+      // Assert Field Annotations
+      assertAnnotations(fieldAnnotations, context.getFieldAnnotations());
+   }
+
+   private void assertAnnotations(Collection<Class<? extends Annotation>> expected,
+         Collection<Class<? extends Annotation>> actual)
+   {
+      assertEquals(expected.size(), actual.size());
+      assertTrue(actual.containsAll(expected));
+   }
+}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/binding (from rev 94608, projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/binding)

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java
===================================================================
--- projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,365 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.metadata.web;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.jboss.annotation.javaee.Descriptions;
-import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
-import org.jboss.metadata.javaee.jboss.RunAsIdentityMetaData;
-import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
-import org.jboss.metadata.javaee.spec.EJBReferenceType;
-import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
-import org.jboss.metadata.javaee.spec.MessageDestinationUsageType;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
-import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
-import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
-import org.jboss.metadata.javaee.spec.RunAsMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.metadata.web.jboss.ClassLoadingMetaData;
-import org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.WebMetaData;
-import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
-
-
-/**
- * A JBossWebApp24UnitTestCase.
- * 
- * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
- * @version $Revision: 1.1 $
- */
-public class JBossWebApp24UnitTestCase extends AbstractJavaEEEverythingTest
-{
-   public JBossWebApp24UnitTestCase(String name)
-   {
-      super(name);
-   }
-
-   public void testClassLoading() throws Exception
-   {
-      //enableTrace("org.jboss.xb.builder");
-      JBossWebMetaData jbossWeb = unmarshal();
-      ClassLoadingMetaData classLoading = jbossWeb.getClassLoading();
-      assertNotNull(classLoading);
-      assertTrue(classLoading.isJava2ClassLoadingCompliance());
-      LoaderRepositoryMetaData loaderRepository = classLoading.getLoaderRepository();
-      assertNotNull(loaderRepository);
-      assertEquals("jbossws.jbws1581:domain=jaxws-jbws1581.war", loaderRepository.getName());
-   }
-
-   public void testRunAsPrincipal()
-      throws Exception
-   {
-      JBossWebMetaData jbossWeb = unmarshal();
-      assertEquals("4.0", jbossWeb.getVersion());
-      assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
-      ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
-      assertEquals("java:/DefaultDS", dsRef.getMappedName());
-   }
-   public void testMergedRunAsPrincipal()
-      throws Exception
-   {
-      WebMetaData webMD = unmarshal("WebApp24_testRunAsPrincipal.xml", WebMetaData.class, null);
-      JBossWebMetaData jbossWebMD = unmarshal("JBossWebApp24_testRunAsPrincipal.xml", JBossWebMetaData.class, null);
-      JBossWebMetaData jbossWeb = new JBossWebMetaData();
-      jbossWeb.merge(jbossWebMD, webMD);
-
-      assertEquals("4.0", jbossWeb.getVersion());
-      assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
-      assertEquals(5, jbossWeb.getResourceReferences().size());
-      // jdbc/DefaultDS
-      ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
-      assertEquals("jdbc/DefaultDS", dsRef.getResourceRefName());
-      assertEquals("The default DS", dsRef.getDescriptions().value()[0].value());
-      assertEquals("java:/DefaultDS", dsRef.getMappedName());
-      assertEquals("javax.sql.DataSource", dsRef.getType());
-      assertEquals(ResourceAuthorityType.Container, dsRef.getResAuth());
-      // mail/DefaultMail
-      ResourceReferenceMetaData mailRef = jbossWeb.getResourceReferenceByName("mail/DefaultMail");
-      assertEquals("mail/DefaultMail", mailRef.getResourceRefName());
-      assertEquals("Default Mail", mailRef.getDescriptions().value()[0].value());
-      assertEquals("java:/Mail", mailRef.getMappedName());
-      assertEquals("javax.mail.Session", mailRef.getType());
-      assertEquals(ResourceAuthorityType.Container, mailRef.getResAuth());
-      // url/JBossHome
-      ResourceReferenceMetaData jbossUrlRef = jbossWeb.getResourceReferenceByName("url/JBossHome");
-      assertEquals("url/JBossHome", jbossUrlRef.getResourceRefName());
-      assertEquals("JBoss Home Page", jbossUrlRef.getDescriptions().value()[0].value());
-      assertEquals("http://www.jboss.org", jbossUrlRef.getResUrl());
-      assertEquals("java.net.URL", jbossUrlRef.getType());
-      assertEquals(ResourceAuthorityType.Container, jbossUrlRef.getResAuth());
-      // url/IndirectURL
-      ResourceReferenceMetaData indirectUrlRef = jbossWeb.getResourceReferenceByName("url/IndirectURL");
-      assertEquals("url/IndirectURL", indirectUrlRef.getResourceRefName());
-      assertEquals("SomeWebSite HomePage", indirectUrlRef.getDescriptions().value()[0].value());
-      assertEquals("java:SomeWebSite", indirectUrlRef.getMappedName());
-      assertEquals("java.net.URL", indirectUrlRef.getType());
-      assertEquals(ResourceAuthorityType.Container, indirectUrlRef.getResAuth());
-
-      assertEquals(2, jbossWeb.getResourceEnvironmentReferences().size());
-      ResourceEnvironmentReferenceMetaData resenv1 = jbossWeb.getResourceEnvironmentReferenceByName("res1/aQueue");
-      assertEquals("resenv1", resenv1.getId());
-      assertEquals("res1/aQueue", resenv1.getResourceEnvRefName());
-      assertEquals("A 1st test of the resource-env-ref tag", resenv1.getDescriptions().value()[0].value());
-      assertEquals("javax.jms.Queue", resenv1.getType());
-      assertEquals("queue/mdbtest", resenv1.getJndiName());
-      assertEquals("queue/mdbtest", resenv1.getMappedName());
-      ResourceEnvironmentReferenceMetaData resenv2 = jbossWeb.getResourceEnvironmentReferenceByName("res2/aQueue");
-      assertEquals("resenv2", resenv2.getId());
-      assertEquals("res2/aQueue", resenv2.getResourceEnvRefName());
-      assertEquals("A 2nd test of the resource-env-ref tag", resenv2.getDescriptions().value()[0].value());
-      assertEquals("javax.jms.Queue", resenv2.getType());
-      assertEquals("queue/mdbtest", resenv2.getJndiName());
-      assertEquals("queue/mdbtest", resenv2.getMappedName());
-
-      SecurityRolesMetaData secRoles = jbossWeb.getSecurityRoles();
-      assertEquals(6, secRoles.size());
-      SecurityRoleMetaData role1 = secRoles.get("AuthorizedUser");
-      assertNotNull(role1);
-      assertEquals("security-role1", role1.getId());
-      assertEquals("AuthorizedUser", role1.getRoleName());
-      assertEquals("An AuthorizedUser is one with a valid username and password", getDescription(role1.getDescriptions()));
-      assertEquals(null, role1.getPrincipals());
-      SecurityRoleMetaData role2 = secRoles.get("ServletUserRole");
-      assertEquals("security-role2", role2.getId());
-      assertEquals("ServletUserRole", role2.getRoleName());
-      assertEquals("A role used by the UserInRoleServlet", getDescription(role2.getDescriptions()));
-      assertEquals(null, role2.getPrincipals());
-      SecurityRoleMetaData role3 = secRoles.get("InternalUser");
-      assertEquals("security-role3", role3.getId());
-      assertEquals("InternalUser", role3.getRoleName());
-      assertEquals("InternalUser is private app role", getDescription(role3.getDescriptions()));
-      assertEquals(null, role3.getPrincipals());
-      SecurityRoleMetaData role4 = secRoles.get("ExtraRole1");
-      assertEquals("security-role4", role4.getId());
-      assertEquals("ExtraRole1", role4.getRoleName());
-      assertEquals("ExtraRole1 is an extra role added to a run-as principal", getDescription(role4.getDescriptions()));
-      assertEquals(set("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal"), role4.getPrincipals());
-      SecurityRoleMetaData role5 = secRoles.get("ExtraRole2");
-      assertEquals("security-role5", role5.getId());
-      assertEquals("ExtraRole2", role5.getRoleName());
-      assertEquals("ExtraRole2 is an extra role added to a run-as principal", getDescription(role5.getDescriptions()));
-      assertEquals(set("ExtraRole2Principal1", "ExtraRole2Principal2"), role5.getPrincipals());
-      SecurityRoleMetaData role6 = secRoles.get("NonExistentRole");
-      assertEquals("security-role6", role6.getId());
-      assertEquals("NonExistentRole", role6.getRoleName());
-      assertEquals("Role that does not exist", getDescription(role6.getDescriptions()));
-      assertEquals(null, role6.getPrincipals());
-
-      assertEquals(7, jbossWeb.getEnvironmentEntries().size());
-      EnvironmentEntryMetaData env1 = jbossWeb.getEnvironmentEntryByName("Ints/i0");
-      assertEquals("Ints/i0", env1.getEnvEntryName());
-      assertEquals("java.lang.Integer", env1.getType());
-      assertEquals("0", env1.getValue());
-      EnvironmentEntryMetaData env7 = jbossWeb.getEnvironmentEntryByName("ejb/catalog/CatalogDAOClass");
-      assertEquals("env7", env7.getId());
-      assertEquals("ejb/catalog/CatalogDAOClass", env7.getEnvEntryName());
-      assertEquals("An entry with a class name", getDescription(env7.getDescriptions()));
-      assertEquals("java.lang.String", env7.getType());
-      assertEquals("com.sun.model.dao.CatalogDAOImpl", env7.getValue());
-
-      assertEquals(13, jbossWeb.getEjbReferences().size());
-      // ejb/bean0
-      EJBReferenceMetaData ejb1 = jbossWeb.getEjbReferenceByName("ejb/bean0");
-      assertEquals("ejb1", ejb1.getId());
-      assertEquals("ejb/bean0", ejb1.getEjbRefName());
-      assertEquals(EJBReferenceType.Session, ejb1.getEjbRefType());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb1.getHome());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb1.getRemote());
-      assertEquals("ENCBean0", ejb1.getLink());
-      assertEquals(null, ejb1.getJndiName());
-      // ejb/bean1
-      EJBReferenceMetaData ejb4 = jbossWeb.getEjbReferenceByName("ejb/bean3");
-      assertEquals("ejb4", ejb4.getId());
-      assertEquals("ejb/bean3", ejb4.getEjbRefName());
-      assertEquals(EJBReferenceType.Session, ejb4.getEjbRefType());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb4.getHome());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb4.getRemote());
-      assertEquals(null, ejb4.getLink());
-      assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getJndiName());
-      assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getMappedName());
-      jbossWeb.getEjbReferenceByName("ejb/RelativeBean");
-
-      assertEquals(8, jbossWeb.getEjbLocalReferences().size());
-      EJBLocalReferenceMetaData local3 = jbossWeb.getEjbLocalReferenceByName("ejb/local/bean3");
-      assertEquals("local3", local3.getId());
-      assertEquals("ejb/local/bean3", local3.getEjbRefName());
-      assertEquals(EJBReferenceType.Session, local3.getEjbRefType());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocalHome", local3.getLocalHome());
-      assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocal", local3.getLocal());
-      assertEquals(null, local3.getLink());
-      assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getJndiName());
-      assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getMappedName());
-      // ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget
-      EJBLocalReferenceMetaData local8 = jbossWeb.getEjbLocalReferenceByName("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget");
-      assertEquals("local8", local8.getId());
-      assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getEjbRefName());
-      assertEquals(EJBReferenceType.Session, local8.getEjbRefType());
-      assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocalHome", local8.getLocalHome());
-      assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocal", local8.getLocal());
-      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getLink());
-      assertEquals(null, local8.getJndiName());
-
-      // mdr/ConsumesLink
-      assertEquals(3, jbossWeb.getMessageDestinationReferences().size());
-      MessageDestinationReferenceMetaData mref1 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesLink");
-      assertEquals("msgref1", mref1.getId());
-      assertEquals("mdr/ConsumesLink", mref1.getMessageDestinationRefName());
-      assertEquals("javax.jms.Queue", mref1.getType());
-      assertEquals(MessageDestinationUsageType.Consumes, mref1.getMessageDestinationUsage());
-      assertEquals("TestQueue", mref1.getLink());
-      // mdr/ConsumesProducesJNDIName
-      MessageDestinationReferenceMetaData mref3 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesProducesJNDIName");
-      assertEquals("msgref3", mref3.getId());
-      assertEquals("mdr/ConsumesProducesJNDIName", mref3.getMessageDestinationRefName());
-      assertEquals("javax.jms.Queue", mref3.getType());
-      assertEquals(MessageDestinationUsageType.ConsumesProduces, mref3.getMessageDestinationUsage());
-      assertEquals(null, mref3.getLink());
-      assertEquals("queue/A", mref3.getJndiName());
-      assertEquals("queue/A", mref3.getMappedName());
-
-      assertEquals(2, jbossWeb.getMessageDestinations().size());
-      MessageDestinationMetaData msgdest1 = jbossWeb.getMessageDestination("TestQueue");
-      assertEquals("msgdest1", msgdest1.getId());
-      assertEquals("A TestQueue destination", msgdest1.getDescriptionGroup().getDescription());
-      assertEquals("TestQueue", msgdest1.getMessageDestinationName());
-      assertEquals("queue/testQueue", msgdest1.getJndiName());
-      assertEquals("queue/testQueue", msgdest1.getMappedName());
-      MessageDestinationMetaData msgdest2 = jbossWeb.getMessageDestination("TestTopic");
-      assertEquals("msgdest2", msgdest2.getId());
-      assertEquals("A TestTopic destination", msgdest2.getDescriptionGroup().getDescription());
-      assertEquals("TestTopic", msgdest2.getMessageDestinationName());
-      assertEquals("topic/testTopic", msgdest2.getJndiName());
-      assertEquals("topic/testTopic", msgdest2.getMappedName());
-
-      // servlets
-      assertEquals(30, jbossWeb.getServlets().size());
-      JBossServletMetaData servlet1 = jbossWeb.getServletByName("APIServlet");
-      assertNotNull(servlet1);
-      assertEquals("servlet1", servlet1.getId());
-      assertEquals("org.jboss.test.web.servlets.APIServlet", servlet1.getServletClass());
-      JBossServletMetaData servlet2 = jbossWeb.getServletByName("ClasspathServlet");
-      assertNotNull(servlet2);
-      assertEquals("servlet2", servlet2.getId());
-      assertEquals("org.jboss.test.web.servlets.ClasspathServlet", servlet2.getServletClass());
-      assertEquals(1, servlet2.getLoadOnStartup());
-      // servlet10
-      JBossServletMetaData servlet10 = jbossWeb.getServletByName("EJBOnStartupServlet");
-      assertNotNull(servlet10);
-      assertEquals("servlet10", servlet10.getId());
-      assertEquals("EJBOnStartupServlet", servlet10.getServletName());
-      assertEquals("org.jboss.test.web.servlets.EJBOnStartupServlet", servlet10.getServletClass());
-      assertEquals(1, servlet10.getLoadOnStartup());
-      List<ParamValueMetaData> s10params = servlet10.getInitParam();
-      assertEquals(1, s10params.size());
-      ParamValueMetaData s10p0 = s10params.get(0);
-      assertEquals("failOnError", s10p0.getParamName());
-      assertEquals("false", s10p0.getParamValue());
-      // servlet19
-      JBossServletMetaData servlet19 = jbossWeb.getServletByName("UnsecureRunAsServletWithPrincipalNameAndRoles");
-      assertNotNull(servlet19);
-      assertEquals("servlet19", servlet19.getId());
-      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRoles", servlet19.getServletName());
-      assertEquals("org.jboss.test.web.servlets.UnsecureRunAsServlet", servlet19.getServletClass());
-      List<ParamValueMetaData> s19params = servlet19.getInitParam();
-      assertEquals(1, s19params.size());
-      ParamValueMetaData s19p0 = s19params.get(0);
-      assertEquals("ejbName", s19p0.getParamName());
-      assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", s19p0.getParamValue());
-      RunAsMetaData s19RunAs = servlet19.getRunAs();
-      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
-      assertEquals("InternalUser", s19RunAs.getRoleName());
-      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", servlet19.getRunAsPrincipal());
-      RunAsIdentityMetaData s19RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsServletWithPrincipalNameAndRoles");
-      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", s19RunAsID.getPrincipalName());
-      Set<String> s19RunAsPrincipalRoles = jbossWeb.getSecurityRoles().getSecurityRoleNamesByPrincipal("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal");
-      assertEquals(set("ExtraRole1"), s19RunAsPrincipalRoles);
-      assertEquals(set("ExtraRole1", "InternalUser"), s19RunAsID.getRunAsRoles());
-      assertEquals(true, s19RunAsID.doesUserHaveRole("ExtraRole1"));
-      assertEquals(true, s19RunAsID.doesUserHaveRole("InternalUser"));
-      // servlet20
-      JBossServletMetaData servlet20 = jbossWeb.getServletByName("UnsecureRunAsJsp");
-      assertNotNull(servlet20);
-      assertEquals("servlet20", servlet20.getId());
-      assertEquals("UnsecureRunAsJsp", servlet20.getServletName());
-      assertEquals(null, servlet20.getServletClass());
-      assertEquals("/runAs.jsp", servlet20.getJspFile());
-      RunAsMetaData s20RunAs = servlet20.getRunAs();
-      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
-      assertEquals("InternalUser", s20RunAs.getRoleName());
-      assertEquals(null, servlet20.getRunAsPrincipal());
-      RunAsIdentityMetaData s20RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsJsp");
-      assertEquals("anonymous", s20RunAsID.getPrincipalName());
-      assertEquals(set("InternalUser"), s20RunAsID.getRunAsRoles());
-      assertEquals(true, s20RunAsID.doesUserHaveRole("InternalUser"));
-      // servlet27
-      JBossServletMetaData servlet27 = jbossWeb.getServletByName("UserInRoleServlet");
-      assertEquals("servlet27", servlet27.getId());
-      assertEquals("UserInRoleServlet", servlet27.getServletName());
-      assertEquals("org.jboss.test.web.servlets.UserInRoleServlet", servlet27.getServletClass());
-      List<ParamValueMetaData> s27params = servlet27.getInitParam();
-      assertEquals(2, s27params.size());
-      ParamValueMetaData s27p0 = s27params.get(0);
-      assertEquals("expectedUserRoles", s27p0.getParamName());
-      assertEquals("AuthorizedUser,ServletUser", s27p0.getParamValue());
-      ParamValueMetaData s27p1 = s27params.get(1);
-      assertEquals("unexpectedUserRoles", s27p1.getParamName());
-      assertEquals("Anonymous", s27p1.getParamValue());
-      SecurityRoleRefsMetaData s27RoleRefs = servlet27.getSecurityRoleRefs();
-      assertEquals(1, s27RoleRefs.size());
-      SecurityRoleRefMetaData s27ServletUser = s27RoleRefs.get("ServletUser");
-      assertEquals("ServletUser", s27ServletUser.getRoleName());
-      assertEquals("ServletUserRole", s27ServletUser.getRoleLink());
-   }
-
-   protected JBossWebMetaData unmarshal() throws Exception
-   {
-      return unmarshal(JBoss4xDTDWebMetaData.class);
-   }
-   
-   protected String getDescription(Descriptions descriptions)
-   {
-      String desc = null;
-      if(descriptions != null)
-         desc = descriptions.value()[0].value();
-      return desc;
-   }
-   
-   protected Set<String> set(String...strings)
-   {
-      HashSet<String> set = new HashSet<String>();
-      for(String s : strings)
-         set.add(s);
-      return set;
-   }
-}

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java (from rev 94608, projects/metadata/web/trunk/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/java/org/jboss/test/metadata/web/JBossWebApp24UnitTestCase.java	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,366 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.metadata.web;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.jboss.annotation.javaee.Descriptions;
+import org.jboss.metadata.common.jboss.LoaderRepositoryMetaData;
+import org.jboss.metadata.javaee.jboss.RunAsIdentityMetaData;
+import org.jboss.metadata.javaee.spec.EJBLocalReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
+import org.jboss.metadata.javaee.spec.EJBReferenceType;
+import org.jboss.metadata.javaee.spec.EnvironmentEntryMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationReferenceMetaData;
+import org.jboss.metadata.javaee.spec.MessageDestinationUsageType;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.javaee.spec.ResourceAuthorityType;
+import org.jboss.metadata.javaee.spec.ResourceEnvironmentReferenceMetaData;
+import org.jboss.metadata.javaee.spec.ResourceReferenceMetaData;
+import org.jboss.metadata.javaee.spec.RunAsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRoleRefsMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.jboss.ClassLoadingMetaData;
+import org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.WebMetaData;
+import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest;
+
+
+/**
+ * A JBossWebApp24UnitTestCase.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossWebApp24UnitTestCase extends AbstractJavaEEEverythingTest
+{
+   public JBossWebApp24UnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testClassLoading() throws Exception
+   {
+      //enableTrace("org.jboss.xb.builder");
+      JBossWebMetaData jbossWeb = unmarshal();
+      ClassLoadingMetaData classLoading = jbossWeb.getClassLoading();
+      assertNotNull(classLoading);
+      assertTrue(classLoading.isJava2ClassLoadingCompliance());
+      LoaderRepositoryMetaData loaderRepository = classLoading.getLoaderRepository();
+      assertNotNull(loaderRepository);
+      assertEquals("jbossws.jbws1581:domain=jaxws-jbws1581.war", loaderRepository.getName());
+   }
+
+   public void testRunAsPrincipal()
+      throws Exception
+   {
+      JBossWebMetaData jbossWeb = unmarshal();
+      assertEquals("4.0", jbossWeb.getVersion());
+      assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
+      ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
+      assertEquals("java:/DefaultDS", dsRef.getMappedName());
+   }
+   public void testMergedRunAsPrincipal()
+      throws Exception
+   {
+      WebMetaData webMD = unmarshal("WebApp24_testRunAsPrincipal.xml", WebMetaData.class, null);
+      JBossWebMetaData jbossWebMD = unmarshal("JBossWebApp24_testRunAsPrincipal.xml", JBossWebMetaData.class, null);
+      JBossWebMetaData jbossWeb = new JBossWebMetaData();
+      jbossWeb.merge(jbossWebMD, webMD);
+      jbossWeb.resolveRunAs();
+
+      assertEquals("4.0", jbossWeb.getVersion());
+      assertEquals("java:/jaas/jbosstest-web", jbossWeb.getSecurityDomain());
+      assertEquals(5, jbossWeb.getResourceReferences().size());
+      // jdbc/DefaultDS
+      ResourceReferenceMetaData dsRef = jbossWeb.getResourceReferenceByName("jdbc/DefaultDS");
+      assertEquals("jdbc/DefaultDS", dsRef.getResourceRefName());
+      assertEquals("The default DS", dsRef.getDescriptions().value()[0].value());
+      assertEquals("java:/DefaultDS", dsRef.getMappedName());
+      assertEquals("javax.sql.DataSource", dsRef.getType());
+      assertEquals(ResourceAuthorityType.Container, dsRef.getResAuth());
+      // mail/DefaultMail
+      ResourceReferenceMetaData mailRef = jbossWeb.getResourceReferenceByName("mail/DefaultMail");
+      assertEquals("mail/DefaultMail", mailRef.getResourceRefName());
+      assertEquals("Default Mail", mailRef.getDescriptions().value()[0].value());
+      assertEquals("java:/Mail", mailRef.getMappedName());
+      assertEquals("javax.mail.Session", mailRef.getType());
+      assertEquals(ResourceAuthorityType.Container, mailRef.getResAuth());
+      // url/JBossHome
+      ResourceReferenceMetaData jbossUrlRef = jbossWeb.getResourceReferenceByName("url/JBossHome");
+      assertEquals("url/JBossHome", jbossUrlRef.getResourceRefName());
+      assertEquals("JBoss Home Page", jbossUrlRef.getDescriptions().value()[0].value());
+      assertEquals("http://www.jboss.org", jbossUrlRef.getResUrl());
+      assertEquals("java.net.URL", jbossUrlRef.getType());
+      assertEquals(ResourceAuthorityType.Container, jbossUrlRef.getResAuth());
+      // url/IndirectURL
+      ResourceReferenceMetaData indirectUrlRef = jbossWeb.getResourceReferenceByName("url/IndirectURL");
+      assertEquals("url/IndirectURL", indirectUrlRef.getResourceRefName());
+      assertEquals("SomeWebSite HomePage", indirectUrlRef.getDescriptions().value()[0].value());
+      assertEquals("java:SomeWebSite", indirectUrlRef.getMappedName());
+      assertEquals("java.net.URL", indirectUrlRef.getType());
+      assertEquals(ResourceAuthorityType.Container, indirectUrlRef.getResAuth());
+
+      assertEquals(2, jbossWeb.getResourceEnvironmentReferences().size());
+      ResourceEnvironmentReferenceMetaData resenv1 = jbossWeb.getResourceEnvironmentReferenceByName("res1/aQueue");
+      assertEquals("resenv1", resenv1.getId());
+      assertEquals("res1/aQueue", resenv1.getResourceEnvRefName());
+      assertEquals("A 1st test of the resource-env-ref tag", resenv1.getDescriptions().value()[0].value());
+      assertEquals("javax.jms.Queue", resenv1.getType());
+      assertEquals("queue/mdbtest", resenv1.getJndiName());
+      assertEquals("queue/mdbtest", resenv1.getMappedName());
+      ResourceEnvironmentReferenceMetaData resenv2 = jbossWeb.getResourceEnvironmentReferenceByName("res2/aQueue");
+      assertEquals("resenv2", resenv2.getId());
+      assertEquals("res2/aQueue", resenv2.getResourceEnvRefName());
+      assertEquals("A 2nd test of the resource-env-ref tag", resenv2.getDescriptions().value()[0].value());
+      assertEquals("javax.jms.Queue", resenv2.getType());
+      assertEquals("queue/mdbtest", resenv2.getJndiName());
+      assertEquals("queue/mdbtest", resenv2.getMappedName());
+
+      SecurityRolesMetaData secRoles = jbossWeb.getSecurityRoles();
+      assertEquals(6, secRoles.size());
+      SecurityRoleMetaData role1 = secRoles.get("AuthorizedUser");
+      assertNotNull(role1);
+      assertEquals("security-role1", role1.getId());
+      assertEquals("AuthorizedUser", role1.getRoleName());
+      assertEquals("An AuthorizedUser is one with a valid username and password", getDescription(role1.getDescriptions()));
+      assertEquals(null, role1.getPrincipals());
+      SecurityRoleMetaData role2 = secRoles.get("ServletUserRole");
+      assertEquals("security-role2", role2.getId());
+      assertEquals("ServletUserRole", role2.getRoleName());
+      assertEquals("A role used by the UserInRoleServlet", getDescription(role2.getDescriptions()));
+      assertEquals(null, role2.getPrincipals());
+      SecurityRoleMetaData role3 = secRoles.get("InternalUser");
+      assertEquals("security-role3", role3.getId());
+      assertEquals("InternalUser", role3.getRoleName());
+      assertEquals("InternalUser is private app role", getDescription(role3.getDescriptions()));
+      assertEquals(null, role3.getPrincipals());
+      SecurityRoleMetaData role4 = secRoles.get("ExtraRole1");
+      assertEquals("security-role4", role4.getId());
+      assertEquals("ExtraRole1", role4.getRoleName());
+      assertEquals("ExtraRole1 is an extra role added to a run-as principal", getDescription(role4.getDescriptions()));
+      assertEquals(set("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal"), role4.getPrincipals());
+      SecurityRoleMetaData role5 = secRoles.get("ExtraRole2");
+      assertEquals("security-role5", role5.getId());
+      assertEquals("ExtraRole2", role5.getRoleName());
+      assertEquals("ExtraRole2 is an extra role added to a run-as principal", getDescription(role5.getDescriptions()));
+      assertEquals(set("ExtraRole2Principal1", "ExtraRole2Principal2"), role5.getPrincipals());
+      SecurityRoleMetaData role6 = secRoles.get("NonExistentRole");
+      assertEquals("security-role6", role6.getId());
+      assertEquals("NonExistentRole", role6.getRoleName());
+      assertEquals("Role that does not exist", getDescription(role6.getDescriptions()));
+      assertEquals(null, role6.getPrincipals());
+
+      assertEquals(7, jbossWeb.getEnvironmentEntries().size());
+      EnvironmentEntryMetaData env1 = jbossWeb.getEnvironmentEntryByName("Ints/i0");
+      assertEquals("Ints/i0", env1.getEnvEntryName());
+      assertEquals("java.lang.Integer", env1.getType());
+      assertEquals("0", env1.getValue());
+      EnvironmentEntryMetaData env7 = jbossWeb.getEnvironmentEntryByName("ejb/catalog/CatalogDAOClass");
+      assertEquals("env7", env7.getId());
+      assertEquals("ejb/catalog/CatalogDAOClass", env7.getEnvEntryName());
+      assertEquals("An entry with a class name", getDescription(env7.getDescriptions()));
+      assertEquals("java.lang.String", env7.getType());
+      assertEquals("com.sun.model.dao.CatalogDAOImpl", env7.getValue());
+
+      assertEquals(13, jbossWeb.getEjbReferences().size());
+      // ejb/bean0
+      EJBReferenceMetaData ejb1 = jbossWeb.getEjbReferenceByName("ejb/bean0");
+      assertEquals("ejb1", ejb1.getId());
+      assertEquals("ejb/bean0", ejb1.getEjbRefName());
+      assertEquals(EJBReferenceType.Session, ejb1.getEjbRefType());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb1.getHome());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb1.getRemote());
+      assertEquals("ENCBean0", ejb1.getLink());
+      assertEquals(null, ejb1.getJndiName());
+      // ejb/bean1
+      EJBReferenceMetaData ejb4 = jbossWeb.getEjbReferenceByName("ejb/bean3");
+      assertEquals("ejb4", ejb4.getId());
+      assertEquals("ejb/bean3", ejb4.getEjbRefName());
+      assertEquals(EJBReferenceType.Session, ejb4.getEjbRefType());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSessionHome", ejb4.getHome());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSession", ejb4.getRemote());
+      assertEquals(null, ejb4.getLink());
+      assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getJndiName());
+      assertEquals("jbosstest/ejbs/UnsecuredEJB", ejb4.getMappedName());
+      jbossWeb.getEjbReferenceByName("ejb/RelativeBean");
+
+      assertEquals(8, jbossWeb.getEjbLocalReferences().size());
+      EJBLocalReferenceMetaData local3 = jbossWeb.getEjbLocalReferenceByName("ejb/local/bean3");
+      assertEquals("local3", local3.getId());
+      assertEquals("ejb/local/bean3", local3.getEjbRefName());
+      assertEquals(EJBReferenceType.Session, local3.getEjbRefType());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocalHome", local3.getLocalHome());
+      assertEquals("org.jboss.test.web.interfaces.StatelessSessionLocal", local3.getLocal());
+      assertEquals(null, local3.getLink());
+      assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getJndiName());
+      assertEquals("jbosstest/ejbs/local/ENCBean1", local3.getMappedName());
+      // ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget
+      EJBLocalReferenceMetaData local8 = jbossWeb.getEjbLocalReferenceByName("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget");
+      assertEquals("local8", local8.getId());
+      assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getEjbRefName());
+      assertEquals(EJBReferenceType.Session, local8.getEjbRefType());
+      assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocalHome", local8.getLocalHome());
+      assertEquals("org.jboss.test.web.interfaces.RunAsTargetLocal", local8.getLocal());
+      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesTarget", local8.getLink());
+      assertEquals(null, local8.getJndiName());
+
+      // mdr/ConsumesLink
+      assertEquals(3, jbossWeb.getMessageDestinationReferences().size());
+      MessageDestinationReferenceMetaData mref1 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesLink");
+      assertEquals("msgref1", mref1.getId());
+      assertEquals("mdr/ConsumesLink", mref1.getMessageDestinationRefName());
+      assertEquals("javax.jms.Queue", mref1.getType());
+      assertEquals(MessageDestinationUsageType.Consumes, mref1.getMessageDestinationUsage());
+      assertEquals("TestQueue", mref1.getLink());
+      // mdr/ConsumesProducesJNDIName
+      MessageDestinationReferenceMetaData mref3 = jbossWeb.getMessageDestinationReferenceByName("mdr/ConsumesProducesJNDIName");
+      assertEquals("msgref3", mref3.getId());
+      assertEquals("mdr/ConsumesProducesJNDIName", mref3.getMessageDestinationRefName());
+      assertEquals("javax.jms.Queue", mref3.getType());
+      assertEquals(MessageDestinationUsageType.ConsumesProduces, mref3.getMessageDestinationUsage());
+      assertEquals(null, mref3.getLink());
+      assertEquals("queue/A", mref3.getJndiName());
+      assertEquals("queue/A", mref3.getMappedName());
+
+      assertEquals(2, jbossWeb.getMessageDestinations().size());
+      MessageDestinationMetaData msgdest1 = jbossWeb.getMessageDestination("TestQueue");
+      assertEquals("msgdest1", msgdest1.getId());
+      assertEquals("A TestQueue destination", msgdest1.getDescriptionGroup().getDescription());
+      assertEquals("TestQueue", msgdest1.getMessageDestinationName());
+      assertEquals("queue/testQueue", msgdest1.getJndiName());
+      assertEquals("queue/testQueue", msgdest1.getMappedName());
+      MessageDestinationMetaData msgdest2 = jbossWeb.getMessageDestination("TestTopic");
+      assertEquals("msgdest2", msgdest2.getId());
+      assertEquals("A TestTopic destination", msgdest2.getDescriptionGroup().getDescription());
+      assertEquals("TestTopic", msgdest2.getMessageDestinationName());
+      assertEquals("topic/testTopic", msgdest2.getJndiName());
+      assertEquals("topic/testTopic", msgdest2.getMappedName());
+
+      // servlets
+      assertEquals(30, jbossWeb.getServlets().size());
+      JBossServletMetaData servlet1 = jbossWeb.getServletByName("APIServlet");
+      assertNotNull(servlet1);
+      assertEquals("servlet1", servlet1.getId());
+      assertEquals("org.jboss.test.web.servlets.APIServlet", servlet1.getServletClass());
+      JBossServletMetaData servlet2 = jbossWeb.getServletByName("ClasspathServlet");
+      assertNotNull(servlet2);
+      assertEquals("servlet2", servlet2.getId());
+      assertEquals("org.jboss.test.web.servlets.ClasspathServlet", servlet2.getServletClass());
+      assertEquals(1, servlet2.getLoadOnStartup());
+      // servlet10
+      JBossServletMetaData servlet10 = jbossWeb.getServletByName("EJBOnStartupServlet");
+      assertNotNull(servlet10);
+      assertEquals("servlet10", servlet10.getId());
+      assertEquals("EJBOnStartupServlet", servlet10.getServletName());
+      assertEquals("org.jboss.test.web.servlets.EJBOnStartupServlet", servlet10.getServletClass());
+      assertEquals(1, servlet10.getLoadOnStartup());
+      List<ParamValueMetaData> s10params = servlet10.getInitParam();
+      assertEquals(1, s10params.size());
+      ParamValueMetaData s10p0 = s10params.get(0);
+      assertEquals("failOnError", s10p0.getParamName());
+      assertEquals("false", s10p0.getParamValue());
+      // servlet19
+      JBossServletMetaData servlet19 = jbossWeb.getServletByName("UnsecureRunAsServletWithPrincipalNameAndRoles");
+      assertNotNull(servlet19);
+      assertEquals("servlet19", servlet19.getId());
+      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRoles", servlet19.getServletName());
+      assertEquals("org.jboss.test.web.servlets.UnsecureRunAsServlet", servlet19.getServletClass());
+      List<ParamValueMetaData> s19params = servlet19.getInitParam();
+      assertEquals(1, s19params.size());
+      ParamValueMetaData s19p0 = s19params.get(0);
+      assertEquals("ejbName", s19p0.getParamName());
+      assertEquals("ejb/UnsecureRunAsServletWithPrincipalNameAndRolesTarget", s19p0.getParamValue());
+      RunAsMetaData s19RunAs = servlet19.getRunAs();
+      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
+      assertEquals("InternalUser", s19RunAs.getRoleName());
+      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", servlet19.getRunAsPrincipal());
+      RunAsIdentityMetaData s19RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsServletWithPrincipalNameAndRoles");
+      assertEquals("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal", s19RunAsID.getPrincipalName());
+      Set<String> s19RunAsPrincipalRoles = jbossWeb.getSecurityRoles().getSecurityRoleNamesByPrincipal("UnsecureRunAsServletWithPrincipalNameAndRolesPrincipal");
+      assertEquals(set("ExtraRole1"), s19RunAsPrincipalRoles);
+      assertEquals(set("ExtraRole1", "InternalUser"), s19RunAsID.getRunAsRoles());
+      assertEquals(true, s19RunAsID.doesUserHaveRole("ExtraRole1"));
+      assertEquals(true, s19RunAsID.doesUserHaveRole("InternalUser"));
+      // servlet20
+      JBossServletMetaData servlet20 = jbossWeb.getServletByName("UnsecureRunAsJsp");
+      assertNotNull(servlet20);
+      assertEquals("servlet20", servlet20.getId());
+      assertEquals("UnsecureRunAsJsp", servlet20.getServletName());
+      assertEquals(null, servlet20.getServletClass());
+      assertEquals("/runAs.jsp", servlet20.getJspFile());
+      RunAsMetaData s20RunAs = servlet20.getRunAs();
+      assertEquals("Assume an InternalUser role to access a private EJB", getDescription(s19RunAs.getDescriptions()));
+      assertEquals("InternalUser", s20RunAs.getRoleName());
+      assertEquals(null, servlet20.getRunAsPrincipal());
+      RunAsIdentityMetaData s20RunAsID = jbossWeb.getRunAsIdentity("UnsecureRunAsJsp");
+      assertEquals("anonymous", s20RunAsID.getPrincipalName());
+      assertEquals(set("InternalUser"), s20RunAsID.getRunAsRoles());
+      assertEquals(true, s20RunAsID.doesUserHaveRole("InternalUser"));
+      // servlet27
+      JBossServletMetaData servlet27 = jbossWeb.getServletByName("UserInRoleServlet");
+      assertEquals("servlet27", servlet27.getId());
+      assertEquals("UserInRoleServlet", servlet27.getServletName());
+      assertEquals("org.jboss.test.web.servlets.UserInRoleServlet", servlet27.getServletClass());
+      List<ParamValueMetaData> s27params = servlet27.getInitParam();
+      assertEquals(2, s27params.size());
+      ParamValueMetaData s27p0 = s27params.get(0);
+      assertEquals("expectedUserRoles", s27p0.getParamName());
+      assertEquals("AuthorizedUser,ServletUser", s27p0.getParamValue());
+      ParamValueMetaData s27p1 = s27params.get(1);
+      assertEquals("unexpectedUserRoles", s27p1.getParamName());
+      assertEquals("Anonymous", s27p1.getParamValue());
+      SecurityRoleRefsMetaData s27RoleRefs = servlet27.getSecurityRoleRefs();
+      assertEquals(1, s27RoleRefs.size());
+      SecurityRoleRefMetaData s27ServletUser = s27RoleRefs.get("ServletUser");
+      assertEquals("ServletUser", s27ServletUser.getRoleName());
+      assertEquals("ServletUserRole", s27ServletUser.getRoleLink());
+   }
+
+   protected JBossWebMetaData unmarshal() throws Exception
+   {
+      return unmarshal(JBoss4xDTDWebMetaData.class);
+   }
+   
+   protected String getDescription(Descriptions descriptions)
+   {
+      String desc = null;
+      if(descriptions != null)
+         desc = descriptions.value()[0].value();
+      return desc;
+   }
+   
+   protected Set<String> set(String...strings)
+   {
+      HashSet<String> set = new HashSet<String>();
+      for(String s : strings)
+         set.add(s);
+      return set;
+   }
+}

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml
===================================================================
--- projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,12 +0,0 @@
-  <!DOCTYPE jboss-web PUBLIC
-    "-//JBoss//DTD Web Application 5.0//EN"
-    "http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
-
-<jboss-web>
-  <security-domain>java:/jaas/test</security-domain>
-  <context-root>something</context-root>
-  <servlet>
-    <servlet-name>MyServlet</servlet-name>
-    <run-as-principal>javajoe</run-as-principal>
-  </servlet>
-</jboss-web>
\ No newline at end of file

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml (from rev 94608, projects/metadata/web/trunk/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/org/jboss/test/metadata/annotation/web/JBossWeb_testAnnotationXML.xml	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,16 @@
+<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_6_0.xsd"
+           version="6.0">                                     
+  <security-domain>java:/jaas/test</security-domain>
+  <context-root>something</context-root>
+  <annotation>
+    <class-name>org.jboss.test.metadata.annotation.web.MyServlet</class-name>
+    <run-as>
+      <role-name>javajoe</role-name>
+    </run-as>
+    <multipart-config>
+      <location>javajoe</location>
+    </multipart-config>
+  </annotation>
+</jboss-web>
\ No newline at end of file

Deleted: projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties
===================================================================
--- projects/metadata/web/trunk/src/test/resources/schema2class.properties	2009-09-18 13:00:21 UTC (rev 93709)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties	2009-10-22 14:55:28 UTC (rev 95416)
@@ -1,15 +0,0 @@
-# WEB
-web-app_2_2.dtd org.jboss.metadata.web.spec.Web22MetaData
-web-app_2_3.dtd org.jboss.metadata.web.spec.Web23MetaData
-web-app_2_4.xsd org.jboss.metadata.web.spec.Web24MetaData
-web-app_2_5.xsd org.jboss.metadata.web.spec.Web25MetaData
-web-app_3_0.xsd org.jboss.metadata.web.spec.Web30MetaData
-web-fragment_3_0.xsd org.jboss.metadata.web.spec.WebFragment30MetaData
-web-jsptaglibrary_1_1.dtd org.jboss.metadata.web.spec.Tld11MetaData
-web-jsptaglibrary_1_2.dtd org.jboss.metadata.web.spec.Tld12MetaData
-web-jsptaglibrary_2_0.xsd org.jboss.metadata.web.spec.Tld20MetaData
-web-jsptaglibrary_2_1.xsd org.jboss.metadata.web.spec.Tld21MetaData
-jboss-web org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData
-jboss-web_4_0.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
-jboss-web_4_2.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
-jboss-web_5_0.dtd org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData

Copied: projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties (from rev 94608, projects/metadata/web/trunk/src/test/resources/schema2class.properties)
===================================================================
--- projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties	                        (rev 0)
+++ projects/metadata/web/tags/2.0.0.Alpha6/src/test/resources/schema2class.properties	2009-10-22 14:55:28 UTC (rev 95416)
@@ -0,0 +1,16 @@
+# WEB
+web-app_2_2.dtd org.jboss.metadata.web.spec.Web22MetaData
+web-app_2_3.dtd org.jboss.metadata.web.spec.Web23MetaData
+web-app_2_4.xsd org.jboss.metadata.web.spec.Web24MetaData
+web-app_2_5.xsd org.jboss.metadata.web.spec.Web25MetaData
+web-app_3_0.xsd org.jboss.metadata.web.spec.Web30MetaData
+web-fragment_3_0.xsd org.jboss.metadata.web.spec.WebFragment30MetaData
+web-jsptaglibrary_1_1.dtd org.jboss.metadata.web.spec.Tld11MetaData
+web-jsptaglibrary_1_2.dtd org.jboss.metadata.web.spec.Tld12MetaData
+web-jsptaglibrary_2_0.xsd org.jboss.metadata.web.spec.Tld20MetaData
+web-jsptaglibrary_2_1.xsd org.jboss.metadata.web.spec.Tld21MetaData
+jboss-web org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData
+jboss-web_4_0.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
+jboss-web_4_2.dtd org.jboss.metadata.web.jboss.JBoss4xDTDWebMetaData
+jboss-web_5_0.dtd org.jboss.metadata.web.jboss.JBoss50DTDWebMetaData
+jboss-web_6_0.xsd org.jboss.metadata.web.jboss.JBoss60WebMetaData




More information about the jboss-cvs-commits mailing list