[richfaces-svn-commits] JBoss Rich Faces SVN: r15845 - in root/cdk/trunk/plugins/generator: src/main/java/org/richfaces/builder/templates and 5 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Nov 5 19:27:52 EST 2009


Author: alexsmirnov
Date: 2009-11-05 19:27:52 -0500 (Thu, 05 Nov 2009)
New Revision: 15845

Added:
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/TemplateVisitor.java
   root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/XMLSchema.dtd
   root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/cdk-template.xsd
   root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/datatypes.dtd
   root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/web-facelettaglibrary_2_0.xsd
   root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/xhtml-el.xsd
Removed:
   root/cdk/trunk/plugins/generator/src/main/xsd/cdk-template.xsd
   root/cdk/trunk/plugins/generator/src/main/xsd/xhtml-el.xsd
Modified:
   root/cdk/trunk/plugins/generator/pom.xml
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererTemplateParser.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/AnyElement.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkBodyElement.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkCallElement.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ElementsHandler.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelElement.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelFragment.java
   root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
Log:
https://jira.jboss.org/jira/browse/RF-7732
Create visitor that will build Renderer class from model.

Modified: root/cdk/trunk/plugins/generator/pom.xml
===================================================================
--- root/cdk/trunk/plugins/generator/pom.xml	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/pom.xml	2009-11-06 00:27:52 UTC (rev 15845)
@@ -42,9 +42,9 @@
 			            </goals>
 			            <configuration>
 			                <properties>
-			                    <sourceSchema>src/main/xsd/xhtml-el.xsd</sourceSchema>
+			                    <sourceSchema>src/main/resources/META-INF/schema/xhtml-el.xsd</sourceSchema>
 			                    <targetNamespace>http://richfaces.org/xhtml-el</targetNamespace>
-			                    <outputFile>attributes.ser</outputFile>
+			                    <outputFile>META-INF/schema/attributes.ser</outputFile>
 			                </properties>
                             <classpath>
 			                    <element>
@@ -101,7 +101,7 @@
 			<scope>test</scope>
 		</dependency>
 		<dependency>
-			<groupId>freemarker</groupId>
+			<groupId>org.freemarker</groupId>
 			<artifactId>freemarker</artifactId>
 			<version>2.3.9</version>
 		</dependency>
@@ -155,7 +155,7 @@
 			<version>1.3</version> </dependency>
 		-->
 		<dependency>
-			<groupId>wutka</groupId>
+			<groupId>com.wutka</groupId>
 			<artifactId>dtdparser</artifactId>
 			<version>1.21</version>
 		</dependency>

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/builder/templates/BaseTemplateConsumer.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -56,7 +56,7 @@
     private static final Map<String, Set<String>> ELEMENTS_ATTRIBUTES;
 
     static {
-        InputStream serializedAttributesStream = BaseTemplateConsumer.class.getResourceAsStream("/attributes.ser");
+        InputStream serializedAttributesStream = BaseTemplateConsumer.class.getResourceAsStream("/META-INF/schema/attributes.ser");
 
         try {
 

Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,143 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces.cdk.templatecompiler;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Set;
+import java.util.Stack;
+import java.util.regex.Pattern;
+
+import org.richfaces.builder.model.JavaClass;
+import org.richfaces.builder.model.MethodBodyStatement;
+import org.richfaces.builder.templates.BaseTemplateConsumer;
+import org.richfaces.cdk.CdkException;
+import org.richfaces.cdk.templatecompiler.model.AnyElement;
+import org.richfaces.cdk.templatecompiler.model.CdkBodyElement;
+import org.richfaces.cdk.templatecompiler.model.CdkCallElement;
+import org.richfaces.cdk.templatecompiler.model.CompositeInterface;
+import org.richfaces.cdk.templatecompiler.model.TemplateVisitor;
+
+import com.google.common.collect.Lists;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov at exadel.com
+ *
+ */
+public class RendererClassVisitor implements TemplateVisitor {
+
+    private static final Pattern EL_EXPRESSION = Pattern.compile("#\\{([^\\}]+)\\}");
+    private static final Pattern COMPONENT_ATTRIBUTES_EXPRESSION =
+        Pattern.compile("^component\\.attributes\\[(?:'|\")?([^'\"]+)(?:'|\")?\\]$");
+    private static final Map<String, Set<String>> ELEMENTS_ATTRIBUTES;
+    private final LinkedList<MethodBodyStatement> statements = Lists.newLinkedList();
+    private final JavaClass renderer;
+    private final CompositeInterface compositeInterface;
+
+    protected MethodBodyStatement currentStatement;
+
+    static {
+        InputStream serializedAttributesStream = RendererClassVisitor.class.getResourceAsStream("/META-INF/schema/attributes.ser");
+
+        try {
+
+            // TODO read default attributes values
+            // TODO detect URI attributes
+            ObjectInputStream ois = new ObjectInputStream(serializedAttributesStream);
+
+            ELEMENTS_ATTRIBUTES = (Map<String, Set<String>>) ois.readObject();
+        } catch (Exception e) {
+            throw new IllegalStateException(e.getMessage(), e);
+        } finally {
+            try {
+                serializedAttributesStream.close();
+            } catch (IOException e) {
+                throw new IllegalStateException(e.getMessage(), e);
+            }
+        }
+    }
+    
+    public RendererClassVisitor(CompositeInterface compositeInterface) {
+        this.compositeInterface = compositeInterface;
+        renderer = new JavaClass();
+        }
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#endElement(org.richfaces.cdk.templatecompiler.model.AnyElement)
+     */
+    @Override
+    public void endElement(AnyElement anyElement) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#endElement(org.richfaces.cdk.templatecompiler.model.CdkBodyElement)
+     */
+    @Override
+    public void endElement(CdkBodyElement cdkBodyElement) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#startElement(org.richfaces.cdk.templatecompiler.model.AnyElement)
+     */
+    @Override
+    public void startElement(AnyElement anyElement) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#startElement(org.richfaces.cdk.templatecompiler.model.CdkBodyElement)
+     */
+    @Override
+    public void startElement(CdkBodyElement cdkBodyElement) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#visitElement(org.richfaces.cdk.templatecompiler.model.CdkCallElement)
+     */
+    @Override
+    public void visitElement(CdkCallElement cdkCallElement) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+    /* (non-Javadoc)
+     * @see org.richfaces.cdk.templatecompiler.model.TemplateVisitor#visitElement(java.lang.String)
+     */
+    @Override
+    public void visitElement(String child) throws CdkException {
+        // TODO Auto-generated method stub
+
+    }
+
+}


Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererClassVisitor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererTemplateParser.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererTemplateParser.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/RendererTemplateParser.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -72,7 +72,7 @@
     }
 
     protected Template parseTemplate(File file) throws CdkException {
-        return jaxbBinding.unmarshal(file, null, Template.class);
+        return jaxbBinding.unmarshal(file, "http://richfaces.org/cdk/cdk-template.xsd", Template.class);
     }
 
     /*

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/AnyElement.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/AnyElement.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/AnyElement.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -29,6 +29,8 @@
 import javax.xml.bind.annotation.XmlAnyAttribute;
 import javax.xml.namespace.QName;
 
+import org.richfaces.cdk.CdkException;
+
 /**
  * <p class="changed_added_4_0"></p>
  * @author asmirnov at exadel.com
@@ -80,4 +82,13 @@
         this.attributes = attributes;
     }
 
+    @Override
+    public void beforeVisit(TemplateVisitor visitor) throws CdkException {
+        visitor.startElement(this);
+    }
+    
+    @Override
+    public void afterVisit(TemplateVisitor visitor) throws CdkException {
+        visitor.endElement(this);
+    }
 }

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkBodyElement.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkBodyElement.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkBodyElement.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -23,11 +23,22 @@
 
 package org.richfaces.cdk.templatecompiler.model;
 
+import org.richfaces.cdk.CdkException;
+
 /**
  * <p class="changed_added_4_0"></p>
  * @author asmirnov at exadel.com
  *
  */
 public class CdkBodyElement extends ModelFragment {
+    @Override
+    public void beforeVisit(TemplateVisitor visitor) throws CdkException {
+        visitor.startElement(this);
+    }
+    
+    @Override
+    public void afterVisit(TemplateVisitor visitor) throws CdkException {
+        visitor.endElement(this);
+    }
 
 }

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkCallElement.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkCallElement.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/CdkCallElement.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -26,13 +26,15 @@
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.richfaces.cdk.CdkException;
+
 /**
  * <p class="changed_added_4_0"></p>
  * @author asmirnov at exadel.com
  *
  */
 @XmlRootElement(name="call",namespace=Template.CDK_NAMESPACE)
-public class CdkCallElement {
+public class CdkCallElement implements ModelElement {
 
     private String expression;
     
@@ -55,6 +57,13 @@
     public void setExpression(String expression) {
         this.expression = expression;
     }
+
+    @Override
+    public void visit(TemplateVisitor visitor) throws CdkException {
+        
+        visitor.visitElement(this);
+        
+    }
     
   
 }

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ElementsHandler.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ElementsHandler.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ElementsHandler.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -23,6 +23,7 @@
 
 package org.richfaces.cdk.templatecompiler.model;
 
+import javax.xml.XMLConstants;
 import javax.xml.bind.JAXB;
 import javax.xml.bind.ValidationEventHandler;
 import javax.xml.bind.annotation.DomHandler;
@@ -101,8 +102,8 @@
     public ModelElement getElement(DOMResult rt) {
         Element domElement = getDomElement(rt);
         AnyElement element = JAXB.unmarshal(new DOMSource(domElement), AnyElement.class);
-
-        QName name = new QName(domElement.getNamespaceURI(),domElement.getLocalName());
+        String prefix = domElement.getPrefix();
+        QName name = new QName(domElement.getNamespaceURI(),domElement.getLocalName(),null!=prefix?prefix:XMLConstants.DEFAULT_NS_PREFIX);
         element.setName(name);
         return element;
     }

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelElement.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelElement.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelElement.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -5,10 +5,11 @@
 import javax.xml.bind.annotation.XmlAnyElement;
 import javax.xml.bind.annotation.XmlMixed;
 
+import org.richfaces.cdk.CdkException;
 import org.w3c.dom.Element;
 
 public interface ModelElement {
 
+    public void visit(TemplateVisitor visitor) throws CdkException;
 
-
 }
\ No newline at end of file

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelFragment.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelFragment.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/ModelFragment.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -6,6 +6,8 @@
 import javax.xml.bind.annotation.XmlMixed;
 import javax.xml.bind.annotation.XmlSeeAlso;
 
+import org.richfaces.cdk.CdkException;
+
 /**
  * <p class="changed_added_4_0">All classes that are used in template bodey should be presented
  * in the {@link XmlSeeAlso} annotation </p>
@@ -32,4 +34,25 @@
         this.children = body;
     }
 
+    @Override
+    public void visit(TemplateVisitor visitor) throws CdkException {
+        beforeVisit(visitor);
+        for (Object child : getChildren()) {
+          if (child instanceof String) {
+            visitor.visitElement((String) child);
+        } else if (child instanceof ModelElement) {
+            ((ModelElement) child).visit(visitor);
+        } else {
+            throw new CdkException("Unknown type of element in renderer template "+child.getClass());
+        }
+        }
+        afterVisit(visitor);
+    }
+
+    public void afterVisit(TemplateVisitor visitor) throws CdkException  {
+    }
+
+    public void beforeVisit(TemplateVisitor visitor) throws CdkException  {
+    }
+
 }
\ No newline at end of file

Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/TemplateVisitor.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/TemplateVisitor.java	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/TemplateVisitor.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,47 @@
+/*
+ * $Id$
+ *
+ * License Agreement.
+ *
+ * Rich Faces - Natural Ajax for Java Server Faces (JSF)
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library 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 library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces.cdk.templatecompiler.model;
+
+import org.richfaces.cdk.CdkException;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov at exadel.com
+ *
+ */
+public interface TemplateVisitor {
+
+    void visitElement(CdkCallElement cdkCallElement) throws CdkException;
+
+    void visitElement(String child) throws CdkException;
+
+    void startElement(AnyElement anyElement) throws CdkException;
+
+    void endElement(AnyElement anyElement) throws CdkException;
+
+    void startElement(CdkBodyElement cdkBodyElement) throws CdkException;
+
+    void endElement(CdkBodyElement cdkBodyElement) throws CdkException;
+
+}


Property changes on: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/templatecompiler/model/TemplateVisitor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/xmlconfig/CdkEntityResolver.java	2009-11-06 00:27:52 UTC (rev 15845)
@@ -66,16 +66,32 @@
     private static final String ATTRIBUTES_PREFIX = "META-INF/cdk/attributes/";
     private static final String SYSTEM_PREFIX = "/META-INF/schema";
     private static final String URN_SYSTEM = "urn:system:";
-    private static final ImmutableMap<String, String> SYSTEM_ENTITIES =
-        ImmutableMap.<String, String>builder().put(
-            "http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd", URN_SYSTEM + "/web-facesconfig_2_0.xsd").put(
-            "http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd", URN_SYSTEM + "/web-facesconfig_1_2.xsd").put(
-            "http://java.sun.com/xml/ns/javaee/javaee_5.xsd", URN_SYSTEM + "/javaee_5.xsd").put(
-            "http://java.sun.com/xml/ns/javaee/javaee_web_services_1_2.xsd",
-            URN_SYSTEM + "/javaee_web_services_1_2.xsd").put(
-                "http://java.sun.com/xml/ns/javaee/javaee_web_services_client_1_2.xsd",
-                URN_SYSTEM + "/javaee_web_services_client_1_2.xsd").put(
-                    "http://www.w3.org/2001/03/xml.xsd", URN_SYSTEM + "/xml.xsd").build();
+    private static final ImmutableMap<String, String> SYSTEM_ENTITIES = ImmutableMap
+            .<String, String> builder()
+            .put("http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd",
+                    URN_SYSTEM + "/web-facesconfig_2_0.xsd")
+            .put("http://java.sun.com/xml/ns/javaee/web-facesuicomponent_2_0.xsd",
+                    URN_SYSTEM + "/web-facesuicomponent_2_0.xsd")
+            .put("http://java.sun.com/xml/ns/javaee/web-partialresponse_2_0.xsd",
+                    URN_SYSTEM + "/web-partialresponse_2_0.xsd")
+            .put("http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd",
+                    URN_SYSTEM + "/web-facesconfig_1_2.xsd")
+            .put("http://java.sun.com/xml/ns/javaee/javaee_5.xsd",
+                    URN_SYSTEM + "/javaee_5.xsd")
+            .put(
+                    "http://java.sun.com/xml/ns/javaee/javaee_web_services_1_2.xsd",
+                    URN_SYSTEM + "/javaee_web_services_1_2.xsd")
+            .put(
+                    "http://java.sun.com/xml/ns/javaee/javaee_web_services_client_1_2.xsd",
+                    URN_SYSTEM + "/javaee_web_services_client_1_2.xsd").put(
+                    "http://www.w3.org/2001/03/XMLSchema.dtd",
+                    URN_SYSTEM + "/XMLSchema.dtd").put(
+                   "http://www.w3.org/2001/03/xml.xsd",
+                    URN_SYSTEM + "/xml.xsd").put(
+                    "http://richfaces.org/cdk/cdk-template.xsd",
+                    URN_SYSTEM + "/cdk-template.xsd").put(
+                    "http://richfaces.org/cdk/xhtml-el.xsd",
+                    URN_SYSTEM + "/xhtml-el.xsd").build();
     
     private final CdkContext context;
 

Added: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/XMLSchema.dtd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/XMLSchema.dtd	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/XMLSchema.dtd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,402 @@
+<!-- DTD for XML Schemas: Part 1: Structures
+     Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+     Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id: XMLSchema.dtd,v 1.3 2006/03/27 17:41:34 rlubke Exp $ -->
+<!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
+<!-- prose copy in the structures REC is the definitive version -->    <!--d-->
+<!-- (which shouldn't differ from this one except for this -->         <!--d-->
+<!-- comment and entity expansions, but just in case) -->              <!--d-->
+<!-- With the exception of cases with multiple namespace
+     prefixes for the XML Schema namespace, any XML document which is
+     not valid per this DTD given redefinitions in its internal subset of the
+     'p' and 's' parameter entities below appropriate to its namespace
+     declaration of the XML Schema namespace is almost certainly not
+     a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+     are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+                         schema document to establish a different
+                         namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+                         also define %s as the suffix for the appropriate
+                         namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+     Define one of these if your schema takes advantage of the
+     anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+      <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+      <!-- #all or space-separated list drawn from
+                      derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+     which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+                    ((%simpleType; | %complexType;
+                      | %element; | %attribute;
+                      | %attributeGroup; | %group;
+                      | %notation; ),
+                     (%annotation;)*)* )>
+<!ATTLIST %schema;
+   targetNamespace      %URIref;               #IMPLIED
+   version              CDATA                  #IMPLIED
+   %nds;                %URIref;               #FIXED 'http://www.w3.org/2001/XMLSchema'
+   xmlns                CDATA                  #IMPLIED
+   finalDefault         %complexDerivationSet; ''
+   blockDefault         %blockSet;             ''
+   id                   ID                     #IMPLIED
+   elementFormDefault   %formValues;           'unqualified'
+   attributeFormDefault %formValues;           'unqualified'
+   xml:lang             CDATA                  #IMPLIED
+   %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+     because at the Infoset level where schemas operate,
+     xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+ 
+<!-- The id attribute here and below is for use in external references
+     from non-schemas using simple fragment identifiers.
+     It is NOT used for schema-to-schema reference, internal or
+     external. -->
+
+<!-- a type is a named content type specification which allows attribute
+     declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+                         (%simpleContent;|%complexContent;|
+                          %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+          name      %NCName;                        #IMPLIED
+          id        ID                              #IMPLIED
+          abstract  %boolean;                       #IMPLIED
+          final     %complexDerivationSet;          #IMPLIED
+          block     %complexDerivationSet;          #IMPLIED
+          mixed (true|false) 'false'
+          %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+     has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+     and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+          mixed (true|false) #IMPLIED
+          id    ID           #IMPLIED
+          %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+     one from part2; extension should use the full model  -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+          id    ID           #IMPLIED
+          %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the 
+     one defined above; extension should have no particle  -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+          base  %QName;      #REQUIRED
+          id    ID           #IMPLIED
+          %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+                     (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+            name               %NCName;               #IMPLIED
+            id                 ID                     #IMPLIED
+            ref                %QName;                #IMPLIED
+            type               %QName;                #IMPLIED
+            minOccurs          %nonNegativeInteger;   #IMPLIED
+            maxOccurs          CDATA                  #IMPLIED
+            nillable           %boolean;              #IMPLIED
+            substitutionGroup  %QName;                #IMPLIED
+            abstract           %boolean;              #IMPLIED
+            final              %complexDerivationSet; #IMPLIED
+            block              %blockSet;             #IMPLIED
+            default            CDATA                  #IMPLIED
+            fixed              CDATA                  #IMPLIED
+            form               %formValues;           #IMPLIED
+            %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+     substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group; 
+          name        %NCName;               #IMPLIED
+          ref         %QName;                #IMPLIED
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+          minOccurs   (1)                    #IMPLIED
+          maxOccurs   (1)                    #IMPLIED
+          id          ID                     #IMPLIED
+          %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+     a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+     If order is 'all' THIS group must be alone (or referenced alone) at
+     the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+            namespace       CDATA                  '##any'
+            processContents (skip|lax|strict)      'strict'
+            minOccurs       %nonNegativeInteger;   '1'
+            maxOccurs       CDATA                  '1'
+            id              ID                     #IMPLIED
+            %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+                  ##any      - - any non-conflicting WFXML at all
+
+                  ##other    - - any non-conflicting WFXML from namespace other
+                                  than targetNamespace
+
+                  ##local    - - any unqualified non-conflicting WFXML/attribute
+                  one or     - - any non-conflicting WFXML from
+                  more URI        the listed namespaces
+                  references
+
+                  ##targetNamespace ##local may appear in the above list,
+                    with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+            namespace       CDATA              '##any'
+            processContents (skip|lax|strict)  'strict'
+            id              ID                 #IMPLIED
+            %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+          name      %NCName;      #IMPLIED
+          id        ID            #IMPLIED
+          ref       %QName;       #IMPLIED
+          type      %QName;       #IMPLIED
+          use       (prohibited|optional|required) #IMPLIED
+          default   CDATA         #IMPLIED
+          fixed     CDATA         #IMPLIED
+          form      %formValues;  #IMPLIED
+          %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+     reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+                       (%attribute; | %attributeGroup;)*,
+                       (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+                 name       %NCName;       #IMPLIED
+                 id         ID             #IMPLIED
+                 ref        %QName;        #IMPLIED
+                 %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name.  ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+          name     %NCName;       #REQUIRED
+	  id       ID             #IMPLIED
+	  %uniqueAttrs;>
+
+<!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+          name     %NCName;       #REQUIRED
+	  id       ID             #IMPLIED
+	  %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+          name     %NCName;       #REQUIRED
+	  refer    %QName;        #REQUIRED
+	  id       ID             #IMPLIED
+	  %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+          namespace      %URIref; #IMPLIED
+          schemaLocation %URIref; #IMPLIED
+          id             ID       #IMPLIED
+          %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+                      %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+	  name        %NCName;    #REQUIRED
+	  id          ID          #IMPLIED
+	  public      CDATA       #REQUIRED
+	  system      %URIref;    #IMPLIED
+	  %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+     as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+     to work -->
+<!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
+<!ATTLIST %appinfo;
+          source     %URIref;      #IMPLIED
+          id         ID         #IMPLIED
+          %appinfoAttrs;>
+<!ELEMENT %documentation; ANY>   <!-- too restrictive -->
+<!ATTLIST %documentation;
+          source     %URIref;   #IMPLIED
+          id         ID         #IMPLIED
+          xml:lang   CDATA      #IMPLIED
+          %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+           'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+           'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >


Property changes on: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/XMLSchema.dtd
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/cdk-template.xsd (from rev 15844, root/cdk/trunk/plugins/generator/src/main/xsd/cdk-template.xsd)
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/cdk-template.xsd	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/cdk-template.xsd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="http://richfaces.org/cdk" xmlns="http://richfaces.org/cdk"
+	elementFormDefault="qualified" attributeFormDefault="qualified"
+	xmlns:xhtml="http://richfaces.org/xhtml-el"
+	xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	>
+    <xs:import schemaLocation="web-facesuicomponent_2_0.xsd" namespace="http://java.sun.com/xml/ns/javaee"/><!--
+    <xs:include schemaLocation="xhtml-el.xsd"/>
+
+	--><xs:simpleType name="elStrictExpression">
+		<xs:restriction base="xs:string">
+			<xs:pattern value="#\{[^\}]+\}" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:simpleType name="elMixedExpression">
+		<xs:restriction base="xs:string">
+			<xs:pattern value=".*#\{[^\}]+\}.*" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:simpleType name="elFreeformExpression">
+		<xs:restriction base="xs:string" />
+	</xs:simpleType>
+
+	<xs:attributeGroup name="core.attrs">
+		<xs:attribute name="passThroughWithExclusions" type="xs:NMTOKENS" />
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="testGroup">
+		<xs:attribute name="test" form="unqualified" use="required" type="elStrictExpression" />
+	</xs:attributeGroup>
+
+	<xs:element name="root">
+		<xs:complexType mixed="true">
+			<xs:choice>
+				<xs:any minOccurs="0" maxOccurs="unbounded" />
+			</xs:choice>
+			<xs:attribute name="class" type="xs:string" form="unqualified" use="required" />
+			<xs:attribute name="superclass" type="xs:string" form="unqualified"/>
+			<xs:attribute name="componentclass" type="xs:string" form="unqualified" use="required" />
+		</xs:complexType>
+	</xs:element>
+
+	<xs:group name="structural">
+		<xs:choice>
+			<xs:element name="body">
+				<xs:complexType mixed="true">
+					<xs:choice>
+						<xs:any minOccurs="0" maxOccurs="unbounded" />
+					</xs:choice>
+				</xs:complexType>
+			</xs:element>
+			<xs:element ref="if" />
+			<xs:element ref="choose" />
+			<xs:element ref="call" />
+		</xs:choice>
+	</xs:group>
+
+
+	<xs:element name="if">
+		<xs:complexType mixed="true">
+			<xs:choice>
+				<xs:any minOccurs="0" maxOccurs="unbounded" />
+			</xs:choice>
+			<xs:attributeGroup ref="testGroup" />
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="choose">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element maxOccurs="unbounded" name="when">
+					<xs:complexType>
+						<xs:choice>
+							<xs:any minOccurs="0"
+								maxOccurs="unbounded">
+							</xs:any>
+						</xs:choice>
+						<xs:attributeGroup ref="testGroup" />
+					</xs:complexType>
+				</xs:element>
+				<xs:element minOccurs="0" name="otherwise">
+					<xs:complexType>
+						<xs:choice>
+							<xs:any minOccurs="0"
+								maxOccurs="unbounded">
+							</xs:any>
+						</xs:choice>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:element name="call">
+		<xs:complexType>
+			<xs:attribute name="expression" form="unqualified" />
+		</xs:complexType>
+	</xs:element>
+</xs:schema>

Added: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/datatypes.dtd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/datatypes.dtd	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/datatypes.dtd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,203 @@
+<!--
+        DTD for XML Schemas: Part 2: Datatypes
+        $Id: datatypes.dtd,v 1.3 2006/03/27 17:41:34 rlubke Exp $
+        Note this DTD is NOT normative, or even definitive. - - the
+        prose copy in the datatypes REC is the definitive version
+        (which shouldn't differ from this one except for this comment
+        and entity expansions, but just in case)
+  -->
+
+<!--
+        This DTD cannot be used on its own, it is intended
+        only for incorporation in XMLSchema.dtd, q.v.
+  -->
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % simpleType "%p;simpleType">
+<!ENTITY % restriction "%p;restriction">
+<!ENTITY % list "%p;list">
+<!ENTITY % union "%p;union">
+<!ENTITY % maxExclusive "%p;maxExclusive">
+<!ENTITY % minExclusive "%p;minExclusive">
+<!ENTITY % maxInclusive "%p;maxInclusive">
+<!ENTITY % minInclusive "%p;minInclusive">
+<!ENTITY % totalDigits "%p;totalDigits">
+<!ENTITY % fractionDigits "%p;fractionDigits">
+<!ENTITY % length "%p;length">
+<!ENTITY % minLength "%p;minLength">
+<!ENTITY % maxLength "%p;maxLength">
+<!ENTITY % enumeration "%p;enumeration">
+<!ENTITY % whiteSpace "%p;whiteSpace">
+<!ENTITY % pattern "%p;pattern">
+
+<!--
+        Customisation entities for the ATTLIST of each element
+        type. Define one of these if your schema takes advantage
+        of the anyAttribute='##other' in the schema for schemas
+  -->
+
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % restrictionAttrs "">
+<!ENTITY % listAttrs "">
+<!ENTITY % unionAttrs "">
+<!ENTITY % maxExclusiveAttrs "">
+<!ENTITY % minExclusiveAttrs "">
+<!ENTITY % maxInclusiveAttrs "">
+<!ENTITY % minInclusiveAttrs "">
+<!ENTITY % totalDigitsAttrs "">
+<!ENTITY % fractionDigitsAttrs "">
+<!ENTITY % lengthAttrs "">
+<!ENTITY % minLengthAttrs "">
+<!ENTITY % maxLengthAttrs "">
+<!ENTITY % enumerationAttrs "">
+<!ENTITY % whiteSpaceAttrs "">
+<!ENTITY % patternAttrs "">
+
+<!-- Define some entities for informative use as attribute
+        types -->
+<!ENTITY % URIref "CDATA">
+<!ENTITY % XPathExpr "CDATA">
+<!ENTITY % QName "NMTOKEN">
+<!ENTITY % QNames "NMTOKENS">
+<!ENTITY % NCName "NMTOKEN">
+<!ENTITY % nonNegativeInteger "NMTOKEN">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % simpleDerivationSet "CDATA">
+<!--
+        #all or space-separated list drawn from derivationChoice
+  -->
+
+<!--
+        Note that the use of 'facet' below is less restrictive
+        than is really intended:  There should in fact be no
+        more than one of each of minInclusive, minExclusive,
+        maxInclusive, maxExclusive, totalDigits, fractionDigits,
+        length, maxLength, minLength within datatype,
+        and the min- and max- variants of Inclusive and Exclusive
+        are mutually exclusive. On the other hand,  pattern and
+        enumeration may repeat.
+  -->
+<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
+<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
+<!ENTITY % bounds "%minBound; | %maxBound;">
+<!ENTITY % numeric "%totalDigits; | %fractionDigits;">
+<!ENTITY % ordered "%bounds; | %numeric;">
+<!ENTITY % unordered
+   "%pattern; | %enumeration; | %whiteSpace; | %length; |
+   %maxLength; | %minLength;">
+<!ENTITY % facet "%ordered; | %unordered;">
+<!ENTITY % facetAttr 
+        "value CDATA #REQUIRED
+        id ID #IMPLIED">
+<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
+<!ENTITY % facetModel "(%annotation;)?">
+<!ELEMENT %simpleType;
+        ((%annotation;)?, (%restriction; | %list; | %union;))>
+<!ATTLIST %simpleType;
+    name      %NCName; #IMPLIED
+    final     %simpleDerivationSet; #IMPLIED
+    id        ID       #IMPLIED
+    %simpleTypeAttrs;>
+<!-- name is required at top level -->
+<!ELEMENT %restriction; ((%annotation;)?,
+                         (%restriction1; |
+                          ((%simpleType;)?,(%facet;)*)),
+                         (%attrDecls;))>
+<!ATTLIST %restriction;
+    base      %QName;                  #IMPLIED
+    id        ID       #IMPLIED
+    %restrictionAttrs;>
+<!--
+        base and simpleType child are mutually exclusive,
+        one is required.
+
+        restriction is shared between simpleType and
+        simpleContent and complexContent (in XMLSchema.xsd).
+        restriction1 is for the latter cases, when this
+        is restricting a complex type, as is attrDecls.
+  -->
+<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
+<!ATTLIST %list;
+    itemType      %QName;             #IMPLIED
+    id        ID       #IMPLIED
+    %listAttrs;>
+<!--
+        itemType and simpleType child are mutually exclusive,
+        one is required
+  -->
+<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
+<!ATTLIST %union;
+    id            ID       #IMPLIED
+    memberTypes   %QNames;            #IMPLIED
+    %unionAttrs;>
+<!--
+        At least one item in memberTypes or one simpleType
+        child is required
+  -->
+
+<!ELEMENT %maxExclusive; %facetModel;>
+<!ATTLIST %maxExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxExclusiveAttrs;>
+<!ELEMENT %minExclusive; %facetModel;>
+<!ATTLIST %minExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minExclusiveAttrs;>
+
+<!ELEMENT %maxInclusive; %facetModel;>
+<!ATTLIST %maxInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxInclusiveAttrs;>
+<!ELEMENT %minInclusive; %facetModel;>
+<!ATTLIST %minInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minInclusiveAttrs;>
+
+<!ELEMENT %totalDigits; %facetModel;>
+<!ATTLIST %totalDigits;
+        %facetAttr;
+        %fixedAttr;
+        %totalDigitsAttrs;>
+<!ELEMENT %fractionDigits; %facetModel;>
+<!ATTLIST %fractionDigits;
+        %facetAttr;
+        %fixedAttr;
+        %fractionDigitsAttrs;>
+
+<!ELEMENT %length; %facetModel;>
+<!ATTLIST %length;
+        %facetAttr;
+        %fixedAttr;
+        %lengthAttrs;>
+<!ELEMENT %minLength; %facetModel;>
+<!ATTLIST %minLength;
+        %facetAttr;
+        %fixedAttr;
+        %minLengthAttrs;>
+<!ELEMENT %maxLength; %facetModel;>
+<!ATTLIST %maxLength;
+        %facetAttr;
+        %fixedAttr;
+        %maxLengthAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %enumeration; %facetModel;>
+<!ATTLIST %enumeration;
+        %facetAttr;
+        %enumerationAttrs;>
+
+<!ELEMENT %whiteSpace; %facetModel;>
+<!ATTLIST %whiteSpace;
+        %facetAttr;
+        %fixedAttr;
+        %whiteSpaceAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %pattern; %facetModel;>
+<!ATTLIST %pattern;
+        %facetAttr;
+        %patternAttrs;>


Property changes on: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/datatypes.dtd
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + text/plain

Added: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/web-facelettaglibrary_2_0.xsd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/web-facelettaglibrary_2_0.xsd	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/web-facelettaglibrary_2_0.xsd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,468 @@
+<?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="2.0">
+    <xsd:include schemaLocation="javaee_5.xsd"/>
+    <xsd:element name="facelet-taglib" type="javaee:facelet-taglibType">
+        <xsd:unique name="facelet-taglib-tagname-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    tag-names must be unique within a document.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:selector xpath="javaee:tag"/>
+            <xsd:field xpath="javaee:tag-name"/>
+        </xsd:unique>
+        <xsd:unique name="faces-config-behavior-ID-uniqueness">
+            <xsd:annotation>
+                <xsd:documentation>
+
+                    Behavior IDs must be unique within a document.
+                </xsd:documentation>
+            </xsd:annotation>
+            <xsd:selector xpath="javaee:behavior"/>
+            <xsd:field xpath="javaee:behavior-id"/>
+        </xsd:unique>
+        <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-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:element>
+    <xsd:complexType name="facelet-taglibType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The top level XML element in a facelet tag library XML file.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:choice>
+                <xsd:element name="library-class"
+                             type="javaee:fully-qualified-classType"/>
+                <xsd:sequence>
+                    <xsd:element name="namespace" type="javaee:string"/>
+                    <xsd:element minOccurs="0" maxOccurs="1"
+                                 name="composite-library-name"
+                                 type="javaee:fully-qualified-classType"/>
+                    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                        <xsd:element name="tag"
+                                     type="javaee:facelet-taglib-tagType"/>
+                        <xsd:element name="function"
+                                     type="javaee:facelet-taglib-functionType"/>
+
+                    </xsd:choice>
+                </xsd:sequence>
+            </xsd:choice>
+            <xsd:element name="taglib-extension"
+                         type="javaee:facelet-taglib-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+        <xsd:attribute name="version"
+                       type="javaee:facelet-taglib-versionType"
+                       use="required"/>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Extension element for facelet-taglib. 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="facelet-taglib-tagType">
+        <xsd:annotation>
+            <xsd:documentation>
+                If the tag library XML file contains individual tag
+                declarations rather than pointing to a library-class or a
+                declaring a composite-library name, the individual tags are
+                enclosed in tag elements.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="tag-name"
+                         type="javaee:facelet-taglib-canonical-nameType"/>
+            <xsd:choice>
+                <xsd:element name="handler-class"
+                             type="javaee:fully-qualified-classType"/>
+                <xsd:element name="behavior"
+                             type="javaee:facelet-taglib-tag-behaviorType"/>
+                <xsd:element name="component"
+                             type="javaee:facelet-taglib-tag-componentType"/>
+                <xsd:element name="converter"
+                             type="javaee:facelet-taglib-tag-converterType"/>
+                <xsd:element name="validator"
+                             type="javaee:facelet-taglib-tag-validatorType"/>
+                <xsd:element name="source" type="javaee:string"/>
+            </xsd:choice>
+            <xsd:element name="attribute"
+                         type="javaee:facelet-taglib-tag-attributeType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+            <xsd:element name="tag-extension"
+                         type="javaee:facelet-taglib-tag-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!-- **************************************************** -->
+
+    <xsd:complexType name="facelet-taglib-tag-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
+
+                type the type of the attribute
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="name"
+                         type="javaee:xsdNMTOKENType"/>
+            <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: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:element name="method-signature"
+                             type="javaee:string"
+                             minOccurs="0">
+                    <xsd:annotation>
+                        <xsd:documentation>
+
+                            Defines the method signature for a MethodExpression-
+                            enabled attribute.
+
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+            </xsd:choice>
+        </xsd:sequence>
+        <xsd:attribute name="id" type="xsd:ID"/>
+    </xsd:complexType>
+
+
+    <xsd:complexType name="facelet-taglib-tag-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Extension element for tag 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="facelet-taglib-functionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                If the tag library XML file contains individual function
+                declarations rather than pointing to a library-class or a
+                declaring a composite-library name, the individual functions are
+                enclosed in function elements.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="function-name" type="javaee:string"/>
+            <xsd:element name="function-class"
+                         type="javaee:fully-qualified-classType"/>
+            <xsd:element name="function-signature" type="javaee:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-tag-behaviorType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Within a tag element, the behavior element encapsulates
+                information specific to a JSF Behavior.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element minOccurs="1" maxOccurs="1"
+                         name="behavior-id" type="javaee:string"/>
+            <xsd:element minOccurs="0" maxOccurs="1"
+                         name="handler-class"
+                         type="javaee:fully-qualified-classType"/>
+            <xsd:element name="behavior-extension"
+                         type="javaee:facelet-taglib-tag-behavior-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-tag-behavior-extensionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Extension element for behavior. 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="facelet-taglib-tag-componentType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Within a tag element, the component element encapsulates
+                information specific to a JSF UIComponent.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element name="component-type" type="javaee:string"/>
+            <xsd:element minOccurs="0" maxOccurs="1"
+                         name="renderer-type" type="javaee:string"/>
+            <xsd:element minOccurs="0" maxOccurs="1"
+                         name="handler-class"
+                         type="javaee:fully-qualified-classType"/>
+            <xsd:element name="component-extension"
+                         type="javaee:facelet-taglib-tag-component-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-tag-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="facelet-taglib-tag-converterType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Within a tag element, the converter element encapsulates
+                information specific to a JSF Converter.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element minOccurs="1" maxOccurs="1"
+                         name="converter-id" type="javaee:string"/>
+            <xsd:element minOccurs="0" maxOccurs="1"
+                         name="handler-class"
+                         type="javaee:fully-qualified-classType"/>
+            <xsd:element name="converter-extension"
+                         type="javaee:facelet-taglib-tag-converter-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-tag-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="facelet-taglib-tag-validatorType">
+        <xsd:annotation>
+            <xsd:documentation>
+                Within a tag element, the validator element encapsulates
+                information specific to a JSF Validator.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:group ref="javaee:descriptionGroup"/>
+            <xsd:element minOccurs="1" maxOccurs="1"
+                         name="validator-id" type="javaee:string"/>
+            <xsd:element minOccurs="0" maxOccurs="1"
+                         name="handler-class"
+                         type="javaee:fully-qualified-classType"/>
+            <xsd:element name="validator-extension"
+                         type="javaee:facelet-taglib-tag-validator-extensionType"
+                         minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    <xsd:complexType name="facelet-taglib-tag-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="facelet-taglib-versionType">
+        <xsd:annotation>
+            <xsd:documentation>
+                This type contains the recognized versions of
+                facelet-taglib supported.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:token">
+            <xsd:enumeration value="2.0"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <xsd:complexType name="facelet-taglib-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 NCName
+
+            </xsd:documentation>
+        </xsd:annotation>
+
+        <xsd:simpleContent>
+            <xsd:extension base="xsd:NCName">
+                <xsd:attribute name="id" type="xsd:ID"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+
+</xsd:schema>


Property changes on: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/web-facelettaglibrary_2_0.xsd
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/xhtml-el.xsd (from rev 15844, root/cdk/trunk/plugins/generator/src/main/xsd/xhtml-el.xsd)
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/xhtml-el.xsd	                        (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/resources/META-INF/schema/xhtml-el.xsd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -0,0 +1,3389 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema version="1.0" xml:lang="en"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://richfaces.org/xhtml-el"
+	xmlns="http://richfaces.org/xhtml-el" xmlns:xml="http://www.w3.org/XML/1998/namespace"
+	elementFormDefault="qualified" xmlns:cdk="http://richfaces.org/cdk">
+
+	<xs:import schemaLocation="cdk-template.xsd" namespace="http://richfaces.org/cdk" />
+
+	<xs:annotation>
+		<xs:documentation>
+			XHTML 1.0 (Second Edition) Transitional in XML
+			Schema
+
+			This is the same as HTML 4 Transitional except for
+			changes due
+			to the differences between XML and SGML.
+
+			Namespace =
+			http://www.w3.org/1999/xhtml
+
+			For further information, see:
+			http://www.w3.org/TR/xhtml1
+
+			Copyright (c) 1998-2002 W3C (MIT, INRIA,
+			Keio),
+			All Rights Reserved.
+
+			The DTD version is identified by the PUBLIC
+			and SYSTEM identifiers:
+
+			PUBLIC "-//W3C//DTD XHTML 1.0
+			Transitional//EN"
+			SYSTEM
+			"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+
+			$Id:
+			xhtml1-transitional.xsd,v 1.5 2002/08/28 09:53:29 mimasa Exp $
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
+		schemaLocation="http://www.w3.org/2001/xml.xsd" />
+
+	<xs:annotation>
+		<xs:documentation>
+			================ Character mnemonic entities
+			=========================
+
+			XHTML entity sets are identified by the
+			PUBLIC and SYSTEM identifiers:
+
+			PUBLIC "-//W3C//ENTITIES Latin 1 for
+			XHTML//EN"
+			SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
+
+			PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
+			SYSTEM
+			"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
+
+			PUBLIC
+			"-//W3C//ENTITIES Symbols for XHTML//EN"
+			SYSTEM
+			"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:annotation>
+		<xs:documentation>
+			================== Imported Names
+			====================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:simpleType name="ContentType">
+		<xs:annotation>
+			<xs:documentation>
+				media type, as per [RFC2045]
+      </xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="ContentTypes">
+		<xs:annotation>
+			<xs:documentation>
+				comma-separated list of media types, as per
+				[RFC2045]
+      </xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Charset">
+		<xs:annotation>
+			<xs:documentation>
+				a character encoding, as per [RFC2045]
+			</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Charsets">
+		<xs:annotation>
+			<xs:documentation>
+				a space separated list of character encodings, as
+				per [RFC2045]
+			</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="LanguageCode">
+		<xs:annotation>
+			<xs:documentation>
+				a language code, as per [RFC3066]
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="xs:language cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Character">
+		<xs:annotation>
+			<xs:documentation>
+				a single character, as per section 2.2 of [XML]
+			</xs:documentation>
+		</xs:annotation>
+		<!-- TODO test -->
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:length value="1" fixed="true" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="simpleType.Number">
+		<xs:restriction base="xs:nonNegativeInteger">
+			<xs:pattern value="[0-9]+" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:simpleType name="Number">
+		<xs:annotation>
+			<xs:documentation>
+				one or more digits
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="simpleType.Number cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="tabindexNumber">
+		<xs:annotation>
+			<xs:documentation>
+				tabindex attribute specifies the position of the
+				current element
+				in the tabbing order for the current document. This
+				value must be
+				a number between 0 and 32767. User agents should ignore
+				leading
+				zeros. 
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="simpleType.Number">
+					<xs:minInclusive value="0" />
+					<xs:maxInclusive value="32767" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elMixedExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="LinkTypes">
+		<xs:annotation>
+			<xs:documentation>
+				space-separated list of link types
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="xs:NMTOKENS cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="MediaDesc">
+		<xs:annotation>
+			<xs:documentation>
+				single or comma-separated list of media descriptors
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:pattern value="[^,]+(,\s*[^,]+)*" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="URI">
+		<xs:annotation>
+			<xs:documentation>
+				a Uniform Resource Identifier, see [RFC2396]
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="xs:anyURI cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="UriList">
+		<xs:annotation>
+			<xs:documentation>
+				a space separated list of Uniform Resource
+				Identifiers
+			</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Datetime">
+		<xs:annotation>
+			<xs:documentation>
+				date and time information. ISO date format
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="xs:dateTime cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Script">
+		<xs:annotation>
+			<xs:documentation>
+				script expression
+      </xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="StyleSheet">
+		<xs:annotation>
+			<xs:documentation>
+				style sheet data
+      </xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="Text">
+		<xs:annotation>
+			<xs:documentation>
+				used for titles etc.
+      </xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:simpleType name="FrameTarget">
+		<xs:annotation>
+			<xs:documentation>
+				render in this frame
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:NMTOKEN">
+					<xs:pattern value="_(blank|self|parent|top)|[A-Za-z]\c*" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="Length">
+		<xs:annotation>
+			<xs:documentation>
+				nn for pixels or nn% for percentage length
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="MultiLength">
+		<xs:annotation>
+			<xs:documentation>
+				pixel, percentage, or relative
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="Pixels">
+		<xs:annotation>
+			<xs:documentation>
+				integer representing length in pixels
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union memberTypes="xs:nonNegativeInteger cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:annotation>
+		<xs:documentation>
+			these are used for image maps
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:simpleType name="Shape">
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="rect" />
+					<xs:enumeration value="circle" />
+					<xs:enumeration value="poly" />
+					<xs:enumeration value="default" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="Coords">
+		<xs:annotation>
+			<xs:documentation>
+				comma separated list of lengths
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="ImgAlign">
+		<xs:annotation>
+			<xs:documentation>
+				used for object, applet, img, input and iframe
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="top" />
+					<xs:enumeration value="middle" />
+					<xs:enumeration value="bottom" />
+					<xs:enumeration value="left" />
+					<xs:enumeration value="right" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="Color">
+		<xs:annotation>
+			<xs:documentation>
+				a color using sRGB: #RRGGBB as Hex values
+
+				There are
+				also 16 widely known color names with their sRGB values:
+
+				Black =
+				#000000 Green = #008000
+				Silver = #C0C0C0 Lime = #00FF00
+				Gray = #808080
+				Olive = #808000
+				White = #FFFFFF Yellow = #FFFF00
+				Maroon = #800000 Navy
+				= #000080
+				Red = #FF0000 Blue = #0000FF
+				Purple = #800080 Teal = #008080
+				Fuchsia= #FF00FF Aqua = #00FFFF
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:pattern value="[A-Za-z]+|#[0-9A-Fa-f]{3}|#[0-9A-Fa-f]{6}" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<!-- TODO: add constraints -->
+	<xs:simpleType name="ID">
+		<xs:union memberTypes="xs:ID cdk:elMixedExpression" />
+	</xs:simpleType>
+	<xs:simpleType name="IDREF">
+		<xs:union memberTypes="xs:IDREF cdk:elMixedExpression" />
+	</xs:simpleType>
+	<xs:simpleType name="IDREFS">
+		<xs:union memberTypes="xs:IDREFS cdk:elMixedExpression" />
+	</xs:simpleType>
+	<xs:simpleType name="NMTOKEN">
+		<xs:union memberTypes="xs:NMTOKEN cdk:elMixedExpression" />
+	</xs:simpleType>
+	<xs:simpleType name="NMTOKENS">
+		<xs:union memberTypes="xs:NMTOKENS cdk:elMixedExpression" />
+	</xs:simpleType>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Generic Attributes
+			===============================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:attributeGroup name="coreattrs">
+		<xs:annotation>
+			<xs:documentation>
+				core attributes common to most elements
+				id
+				document-wide unique id
+				class space separated list of classes
+				style
+				associated style info
+				title advisory title/amplification
+			</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="id" type="ID" />
+		<xs:attribute name="class" type="NMTOKENS" />
+		<xs:attribute name="style" type="StyleSheet" />
+		<xs:attribute name="title" type="Text" />
+	</xs:attributeGroup>
+
+	<xs:simpleType name="simpleType.dir">
+		<xs:restriction base="xs:token">
+			<xs:enumeration value="ltr" />
+			<xs:enumeration value="rtl" />
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:attributeGroup name="i18n">
+		<xs:annotation>
+			<xs:documentation>
+				internationalization attributes
+				lang language code
+				(backwards compatible)
+				xml:lang language code (as per XML 1.0 spec)
+				dir direction for weak/neutral text
+      </xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="lang" type="LanguageCode" />
+
+		<!-- TODO: xml:lang can be made EL -->
+		<xs:attribute ref="xml:lang" />
+		<xs:attribute name="dir">
+			<xs:simpleType>
+				<xs:union memberTypes="simpleType.dir cdk:elMixedExpression" />
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="events">
+		<xs:annotation>
+			<xs:documentation>
+				attributes for common UI events
+				onclick a pointer
+				button was clicked
+				ondblclick a pointer button was double clicked
+				onmousedown a pointer button was pressed down
+				onmouseup a pointer
+				button was released
+				onmousemove a pointer was moved onto the element
+				onmouseout a pointer was moved away from the element
+				onkeypress a key
+				was pressed and released
+				onkeydown a key was pressed down
+				onkeyup a
+				key was released
+      </xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="onclick" type="Script" />
+		<xs:attribute name="ondblclick" type="Script" />
+		<xs:attribute name="onmousedown" type="Script" />
+		<xs:attribute name="onmouseup" type="Script" />
+		<xs:attribute name="onmouseover" type="Script" />
+		<xs:attribute name="onmousemove" type="Script" />
+		<xs:attribute name="onmouseout" type="Script" />
+		<xs:attribute name="onkeypress" type="Script" />
+		<xs:attribute name="onkeydown" type="Script" />
+		<xs:attribute name="onkeyup" type="Script" />
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="focus">
+		<xs:annotation>
+			<xs:documentation>
+				attributes for elements that can get the focus
+				accesskey accessibility key character
+				tabindex position in tabbing
+				order
+				onfocus the element got the focus
+				onblur the element lost the
+				focus
+      </xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="accesskey" type="Character" />
+		<xs:attribute name="tabindex" type="tabindexNumber" />
+		<xs:attribute name="onfocus" type="Script" />
+		<xs:attribute name="onblur" type="Script" />
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="attrs">
+		<xs:attributeGroup ref="coreattrs" />
+		<xs:attributeGroup ref="i18n" />
+		<xs:attributeGroup ref="events" />
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="TextAlign">
+		<xs:annotation>
+			<xs:documentation>
+				text alignment for p, div, h1-h6. The default is
+				align="left" for ltr headings, "right" for rtl
+      </xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="align">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="left" />
+							<xs:enumeration value="center" />
+							<xs:enumeration value="right" />
+							<xs:enumeration value="justify" />
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elFreeformExpression" />
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:attributeGroup>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Text Elements
+			====================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:group name="special.extra">
+		<xs:choice>
+			<xs:element ref="object" />
+			<xs:element ref="applet" />
+			<xs:element ref="img" />
+			<xs:element ref="map" />
+			<xs:element ref="iframe" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="special.basic">
+		<xs:choice>
+			<xs:element ref="br" />
+			<xs:element ref="span" />
+			<xs:element ref="bdo" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="special">
+		<xs:choice>
+			<xs:group ref="special.basic" />
+			<xs:group ref="special.extra" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="fontstyle.extra">
+		<xs:choice>
+			<xs:element ref="big" />
+			<xs:element ref="small" />
+			<xs:element ref="font" />
+			<xs:element ref="basefont" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="fontstyle.basic">
+		<xs:choice>
+			<xs:element ref="tt" />
+			<xs:element ref="i" />
+			<xs:element ref="b" />
+			<xs:element ref="u" />
+			<xs:element ref="s" />
+			<xs:element ref="strike" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="fontstyle">
+		<xs:choice>
+			<xs:group ref="fontstyle.basic" />
+			<xs:group ref="fontstyle.extra" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="phrase.extra">
+		<xs:choice>
+			<xs:element ref="sub" />
+			<xs:element ref="sup" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="phrase.basic">
+		<xs:choice>
+			<xs:element ref="em" />
+			<xs:element ref="strong" />
+			<xs:element ref="dfn" />
+			<xs:element ref="code" />
+			<xs:element ref="q" />
+			<xs:element ref="samp" />
+			<xs:element ref="kbd" />
+			<xs:element ref="var" />
+			<xs:element ref="cite" />
+			<xs:element ref="abbr" />
+			<xs:element ref="acronym" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="phrase">
+		<xs:choice>
+			<xs:group ref="phrase.basic" />
+			<xs:group ref="phrase.extra" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="inline.forms">
+		<xs:choice>
+			<xs:element ref="input" />
+			<xs:element ref="select" />
+			<xs:element ref="textarea" />
+			<xs:element ref="label" />
+			<xs:element ref="button" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="misc.inline">
+		<xs:annotation>
+			<xs:documentation>
+				these can only occur at block level
+			</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:group ref="cdk:structural" />
+			<xs:element ref="ins" />
+			<xs:element ref="del" />
+			<xs:element ref="script" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="misc">
+		<xs:annotation>
+			<xs:documentation>
+				these can only occur at block level
+			</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:group ref="misc.elements" />
+			<xs:group ref="misc.inline" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="misc.elements">
+		<xs:choice>
+			<xs:element ref="noscript" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="inline">
+		<xs:choice>
+			<xs:group ref="inline.elements" />
+			<xs:group ref="special" />
+			<xs:group ref="fontstyle" />
+			<xs:group ref="phrase" />
+			<xs:group ref="inline.forms" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="inline.elements">
+		<xs:choice>
+			<xs:element ref="a" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="Inline" mixed="true">
+		<xs:annotation>
+			<xs:documentation>
+				"Inline" covers inline or "text-level" element
+			</xs:documentation>
+		</xs:annotation>
+		<xs:group ref="Inline.content" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="Inline.content">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="inline" />
+				<xs:group ref="misc.inline" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:annotation>
+		<xs:documentation>
+			================== Block level elements
+			==============================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:group name="heading">
+		<xs:choice>
+			<xs:element ref="h1" />
+			<xs:element ref="h2" />
+			<xs:element ref="h3" />
+			<xs:element ref="h4" />
+			<xs:element ref="h5" />
+			<xs:element ref="h6" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="lists">
+		<xs:choice>
+			<xs:element ref="ul" />
+			<xs:element ref="ol" />
+			<xs:element ref="dl" />
+			<xs:element ref="menu" />
+			<xs:element ref="dir" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="blocktext">
+		<xs:choice>
+			<xs:element ref="pre" />
+			<xs:element ref="hr" />
+			<xs:element ref="blockquote" />
+			<xs:element ref="address" />
+			<xs:element ref="center" />
+			<xs:element ref="noframes" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="block">
+		<xs:choice>
+			<xs:group ref="block.children" />
+			<xs:group ref="heading" />
+			<xs:group ref="lists" />
+			<xs:group ref="blocktext" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="block.children">
+		<xs:choice>
+			<xs:element ref="p" />
+			<xs:element ref="div" />
+			<xs:element ref="isindex" />
+			<xs:element ref="fieldset" />
+			<xs:element ref="table" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="Flow" mixed="true">
+		<xs:annotation>
+			<xs:documentation>
+				"Flow" mixes block and inline and is used for list
+				items etc.
+			</xs:documentation>
+		</xs:annotation>
+		<xs:group ref="Flow.children" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="Flow.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="block" />
+				<xs:group ref="form.element.group" />
+				<xs:group ref="inline" />
+				<xs:group ref="misc" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="form.element.group">
+		<xs:choice>
+			<xs:element ref="form" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:annotation>
+		<xs:documentation>
+			================== Content models for exclusions
+			=====================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:complexType name="a.content" mixed="true">
+		<xs:group ref="a.children" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="focus"></xs:attributeGroup>
+		<xs:attribute name="charset" type="Charset"></xs:attribute>
+		<xs:attribute name="type" type="ContentType"></xs:attribute>
+		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
+		<xs:attribute name="href" type="URI"></xs:attribute>
+		<xs:attribute name="hreflang" type="LanguageCode"></xs:attribute>
+		<xs:attribute name="rel" type="LinkTypes"></xs:attribute>
+		<xs:attribute name="rev" type="LinkTypes"></xs:attribute>
+		<xs:attribute default="rect" name="shape" type="Shape"></xs:attribute>
+		<xs:attribute name="coords" type="Coords"></xs:attribute>
+		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="a.children">
+		<xs:choice>
+			<xs:group ref="special"></xs:group>
+			<xs:group ref="fontstyle"></xs:group>
+			<xs:group ref="phrase"></xs:group>
+			<xs:group ref="inline.forms"></xs:group>
+			<xs:group ref="misc.inline"></xs:group>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="pre.content" mixed="true">
+		<xs:annotation>
+			<xs:documentation>
+				pre uses "Inline" excluding img, object, applet,
+				big, small,
+				font, or basefont
+      </xs:documentation>
+		</xs:annotation>
+		<xs:group ref="pre.children" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="pre.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="a.element.group" />
+				<xs:group ref="special.basic" />
+				<xs:group ref="fontstyle.basic" />
+				<xs:group ref="phrase.basic" />
+				<xs:group ref="inline.forms" />
+				<xs:group ref="misc.inline" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="a.element.group">
+		<xs:choice>
+			<xs:element ref="a" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="form.content" mixed="true">
+		<xs:annotation>
+			<xs:documentation>
+				form uses "Flow" excluding form
+      </xs:documentation>
+		</xs:annotation>
+		<xs:group ref="form.children" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="form.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="block" />
+				<xs:group ref="inline" />
+				<xs:group ref="misc" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="button.content" mixed="true">
+		<xs:annotation>
+			<xs:documentation>
+				button uses "Flow" but excludes a, form, form
+				controls, iframe
+			</xs:documentation>
+		</xs:annotation>
+		<xs:group ref="button.children" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="button.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="button.children.elements" />
+				<xs:group ref="heading" />
+				<xs:group ref="lists" />
+				<xs:group ref="blocktext" />
+				<xs:group ref="fontstyle" />
+				<xs:group ref="phrase" />
+				<xs:group ref="misc" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="button.children.elements">
+		<xs:choice>
+			<xs:element ref="p" />
+			<xs:element ref="div" />
+			<xs:element ref="table" />
+			<xs:element ref="br" />
+			<xs:element ref="span" />
+			<xs:element ref="bdo" />
+			<xs:element ref="object" />
+			<xs:element ref="applet" />
+			<xs:element ref="img" />
+			<xs:element ref="map" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:annotation>
+		<xs:documentation>
+			================ Document Structure
+			==================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="html" type="html.content">
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			================ Document Head
+			=======================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:group name="head.misc">
+		<xs:sequence>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+				<xs:element ref="script" />
+				<xs:element ref="style" />
+				<xs:element ref="meta" />
+				<xs:element ref="link" />
+				<xs:element ref="object" />
+				<xs:element ref="isindex" />
+			</xs:choice>
+		</xs:sequence>
+	</xs:group>
+
+	<xs:element name="head" type="head.content">
+		<xs:annotation>
+			<xs:documentation>
+				content model is "head.misc" combined with a single
+				title and an optional base element in any order
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="title" type="title.content">
+		<xs:annotation>
+			<xs:documentation>
+				The title element is not considered part of the
+				flow of text.
+				It should be displayed, for example as the page header
+				or
+				window title. Exactly one title is required per document.
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="base" type="base.content">
+		<xs:annotation>
+			<xs:documentation>
+				document base URI
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="meta" type="meta.content">
+		<xs:annotation>
+			<xs:documentation>
+				generic metainformation
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="link" type="link.content">
+		<xs:annotation>
+			<xs:documentation>
+				Relationship values can be used in principle:
+
+				a) for
+				document specific toolbars/menus when used
+				with the link element in
+				document head e.g.
+				start, contents, previous, next, index, end, help
+				b) to link to a separate style sheet (rel="stylesheet")
+				c) to make a
+				link to a script (rel="script")
+				d) by stylesheets to control how
+				collections of
+				html nodes are rendered into printed documents
+				e) to
+				make a link to a printable version of this document
+				e.g. a PostScript
+				or PDF version (rel="alternate" media="print")
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="style" type="style.content">
+		<xs:annotation>
+			<xs:documentation>
+				style info, which may include CDATA sections
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="script" type="script.content">
+		<xs:annotation>
+			<xs:documentation>
+				script statements, which may include CDATA sections
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="noscript">
+		<xs:annotation>
+			<xs:documentation>
+				alternate content container for non script-based
+				rendering
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			======================= Frames
+			=======================================
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="iframe">
+		<xs:annotation>
+			<xs:documentation>
+				inline subwindow
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="coreattrs" />
+					<xs:attribute name="longdesc" type="URI" />
+					<xs:attribute name="name" type="NMTOKEN" />
+					<xs:attribute name="src" type="URI" />
+					<xs:attribute name="frameborder" default="1">
+						<xs:simpleType>
+							<xs:union>
+								<xs:simpleType>
+									<xs:restriction base="xs:token">
+										<xs:enumeration value="1" />
+										<xs:enumeration value="0" />
+									</xs:restriction>
+								</xs:simpleType>
+								<xs:simpleType>
+									<xs:restriction base="cdk:elFreeformExpression" />
+								</xs:simpleType>
+							</xs:union>
+						</xs:simpleType>
+					</xs:attribute>
+					<xs:attribute name="marginwidth" type="Pixels" />
+					<xs:attribute name="marginheight" type="Pixels" />
+					<xs:attribute name="scrolling" default="auto">
+						<xs:simpleType>
+							<xs:union>
+								<xs:simpleType>
+									<xs:restriction base="xs:token">
+										<xs:enumeration value="yes" />
+										<xs:enumeration value="no" />
+										<xs:enumeration value="auto" />
+									</xs:restriction>
+								</xs:simpleType>
+								<xs:simpleType>
+									<xs:restriction base="cdk:elFreeformExpression" />
+								</xs:simpleType>
+							</xs:union>
+						</xs:simpleType>
+					</xs:attribute>
+					<xs:attribute name="align" type="ImgAlign" />
+					<xs:attribute name="height" type="Length" />
+					<xs:attribute name="width" type="Length" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="noframes">
+		<xs:annotation>
+			<xs:documentation>
+				alternate content container for non frame-based
+				rendering
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Document Body
+			====================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="body">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="onload" type="Script" />
+					<xs:attribute name="onunload" type="Script" />
+					<xs:attribute name="background" type="URI" />
+					<xs:attribute name="bgcolor" type="Color" />
+					<xs:attribute name="text" type="Color" />
+					<xs:attribute name="link" type="Color" />
+					<xs:attribute name="vlink" type="Color" />
+					<xs:attribute name="alink" type="Color" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="div">
+		<xs:annotation>
+			<xs:documentation>
+				generic language/style container      
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Paragraphs
+			=======================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="p">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Headings
+			=========================================
+
+			There are six levels of
+			headings from h1 (the most important)
+			to h6 (the least important).
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="h1">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="h2">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="h3">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="h4">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="h5">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="h6">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="TextAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Lists
+			============================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:simpleType name="ULStyle">
+		<xs:annotation>
+			<xs:documentation>
+				Unordered list bullet styles
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="disc" />
+					<xs:enumeration value="square" />
+					<xs:enumeration value="circle" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:attribute name="compact">
+		<xs:simpleType>
+			<xs:union>
+				<xs:simpleType>
+					<xs:restriction base="xs:token">
+						<xs:enumeration value="compact" />
+					</xs:restriction>
+				</xs:simpleType>
+				<xs:simpleType>
+					<xs:restriction base="cdk:elFreeformExpression" />
+				</xs:simpleType>
+			</xs:union>
+		</xs:simpleType>
+	</xs:attribute>
+
+	<xs:element name="ul" type="ul.content">
+		<xs:annotation>
+			<xs:documentation>
+				Unordered list
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:simpleType name="OLStyle">
+		<xs:annotation>
+			<xs:documentation>
+				Ordered list numbering style
+
+				1 arabic numbers 1, 2,
+				3, ...
+				a lower alpha a, b, c, ...
+				A upper alpha A, B, C, ...
+				i lower
+				roman i, ii, iii, ...
+				I upper roman I, II, III, ...
+
+				The style is
+				applied to the sequence number which by default
+				is reset to 1 for the
+				first list item in an ordered list.
+			</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:element name="ol" type="ol.content">
+		<xs:annotation>
+			<xs:documentation>
+				Ordered (numbered) list
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="menu" type="menu.content">
+		<xs:annotation>
+			<xs:documentation>
+				single column list (DEPRECATED)
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="dir" type="dir.content">
+		<xs:annotation>
+			<xs:documentation>
+				multiple column list (DEPRECATED)
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:simpleType name="LIStyle">
+		<xs:annotation>
+			<xs:documentation>
+				LIStyle is constrained to: "(ULStyle|OLStyle)"
+			</xs:documentation>
+		</xs:annotation>
+		<xs:restriction base="cdk:elFreeformExpression" />
+	</xs:simpleType>
+
+	<xs:element name="li">
+		<xs:annotation>
+			<xs:documentation>
+				list item
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="type" type="LIStyle" />
+					<xs:attribute name="value" type="Number" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			definition lists - dt for term, dd for its
+			definition
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="dl" type="dl.content" />
+
+	<xs:element name="dt">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="dd">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Address
+			==========================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="address" type="address.content">
+		<xs:annotation>
+			<xs:documentation>
+				information on author
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Horizontal Rule
+			==================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="hr" type="hr.content">
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Preformatted Text
+			================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="pre">
+		<xs:annotation>
+			<xs:documentation>
+				content is "Inline" excluding
+				"img|object|applet|big|small|sub|sup|font|basefont"
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="pre.content">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="width" type="Number" />
+					<xs:attribute ref="xml:space" fixed="preserve" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Block-like Quotes
+			================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="blockquote">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="cite" type="URI" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Text alignment
+			===================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="center">
+		<xs:annotation>
+			<xs:documentation>
+				center content
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Inserted/Deleted Text
+			============================
+
+			ins/del are allowed in block and inline
+			content, but its
+			inappropriate to include block content within an ins
+			element
+			occurring in inline content.
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="ins">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="cite" type="URI" />
+					<xs:attribute name="datetime" type="Datetime" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="del">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="cite" type="URI" />
+					<xs:attribute name="datetime" type="Datetime" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			================== The Anchor Element
+			================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="a" type="a.content">
+		<xs:annotation>
+			<xs:documentation>
+				content is "Inline" except that anchors shouldn't
+				be nested
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			===================== Inline Elements
+			================================
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="span">
+		<xs:annotation>
+			<xs:documentation>
+				generic language/style container
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="bdo">
+		<xs:annotation>
+			<xs:documentation>
+				I18N BiDi over-ride
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="coreattrs" />
+					<xs:attributeGroup ref="events" />
+					<xs:attribute name="lang" type="LanguageCode" />
+					<xs:attribute ref="xml:lang" />
+					<xs:attribute name="dir" use="required">
+						<xs:simpleType>
+							<xs:union memberTypes="simpleType.dir cdk:elMixedExpression" />
+						</xs:simpleType>
+					</xs:attribute>
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="br" type="br.content">
+		<xs:annotation>
+			<xs:documentation>
+				forced line break
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="em">
+		<xs:annotation>
+			<xs:documentation>
+				emphasis
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="strong">
+		<xs:annotation>
+			<xs:documentation>
+				strong emphasis
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="dfn">
+		<xs:annotation>
+			<xs:documentation>
+				definitional
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="code">
+		<xs:annotation>
+			<xs:documentation>
+				program code
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="samp">
+		<xs:annotation>
+			<xs:documentation>
+				sample
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="kbd">
+		<xs:annotation>
+			<xs:documentation>
+				something user would type
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="var">
+		<xs:annotation>
+			<xs:documentation>
+				variable
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="cite">
+		<xs:annotation>
+			<xs:documentation>
+				citation
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="abbr">
+		<xs:annotation>
+			<xs:documentation>
+				abbreviation
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="acronym">
+		<xs:annotation>
+			<xs:documentation>
+				acronym
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="q">
+		<xs:annotation>
+			<xs:documentation>
+				inlined quote
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="cite" type="URI" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="sub">
+		<xs:annotation>
+			<xs:documentation>
+				subscript
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="sup">
+		<xs:annotation>
+			<xs:documentation>
+				superscript
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="tt">
+		<xs:annotation>
+			<xs:documentation>
+				fixed pitch font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="i">
+		<xs:annotation>
+			<xs:documentation>
+				italic font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="b">
+		<xs:annotation>
+			<xs:documentation>
+				bold font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="big">
+		<xs:annotation>
+			<xs:documentation>
+				bigger font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="small">
+		<xs:annotation>
+			<xs:documentation>
+				smaller font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="u">
+		<xs:annotation>
+			<xs:documentation>
+				underline
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="s">
+		<xs:annotation>
+			<xs:documentation>
+				strike-through
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="strike">
+		<xs:annotation>
+			<xs:documentation>
+				strike-through
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="basefont" type="basefont.content">
+		<xs:annotation>
+			<xs:documentation>
+				base font size
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="font">
+		<xs:annotation>
+			<xs:documentation>
+				local change to font
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="coreattrs" />
+					<xs:attributeGroup ref="i18n" />
+					<xs:attribute name="size" />
+					<xs:attribute name="color" type="Color" />
+					<xs:attribute name="face" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			==================== Object
+			======================================
+
+			object is used to embed objects
+			as part of HTML pages.
+			param elements should precede other content.
+			Parameters
+			can also be expressed as attribute/value pairs on the
+			object element itself when brevity is desired.
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="object" type="object.content" />
+
+	<xs:element name="param" type="param.content">
+		<xs:annotation>
+			<xs:documentation>
+				param is used to supply a named property value.
+				In
+				XML it would seem natural to follow RDF and support an
+				abbreviated
+				syntax where the param elements are replaced
+				by attribute value pairs
+				on the object start tag.
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Java applet
+			==================================
+
+			One of code or object attributes
+			must be present.
+			Place param elements before other content.
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="applet" type="applet.content">
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			=================== Images
+			===========================================
+
+			To avoid accessibility
+			problems for people who aren't
+			able to see the image, you should
+			provide a text
+			description using the alt and longdesc attributes.
+			In
+			addition, avoid the use of server-side image maps.
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="img" type="img.content">
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			================== Client-side image maps
+			============================
+
+			These can be placed in the same document
+			or grouped in a
+			separate document although this isn't yet widely
+			supported
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="map" type="map.content">
+	</xs:element>
+
+	<xs:element name="area" type="area.content">
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			================ Forms
+			===============================================
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="form">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="form.content">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="action" use="required" type="URI" />
+					<xs:attribute name="method" default="get">
+						<xs:simpleType>
+							<xs:union>
+								<xs:simpleType>
+									<xs:restriction base="xs:token">
+										<xs:enumeration value="get" />
+										<xs:enumeration value="post" />
+									</xs:restriction>
+								</xs:simpleType>
+								<xs:simpleType>
+									<xs:restriction base="cdk:elFreeformExpression" />
+								</xs:simpleType>
+							</xs:union>
+						</xs:simpleType>
+					</xs:attribute>
+					<xs:attribute name="enctype" type="ContentType"
+						default="application/x-www-form-urlencoded" />
+					<xs:attribute name="onsubmit" type="Script" />
+					<xs:attribute name="onreset" type="Script" />
+					<xs:attribute name="accept" type="ContentTypes" />
+					<xs:attribute name="accept-charset" type="Charsets" />
+					<xs:attribute name="target" type="FrameTarget" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="label">
+		<xs:annotation>
+			<xs:documentation>
+				Each label must not contain more than ONE field
+				Label elements shouldn't be nested.
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="for" type="IDREF" />
+					<xs:attribute name="accesskey" type="Character" />
+					<xs:attribute name="onfocus" type="Script" />
+					<xs:attribute name="onblur" type="Script" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:simpleType name="InputType">
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="text" />
+					<xs:enumeration value="password" />
+					<xs:enumeration value="checkbox" />
+					<xs:enumeration value="radio" />
+					<xs:enumeration value="submit" />
+					<xs:enumeration value="reset" />
+					<xs:enumeration value="file" />
+					<xs:enumeration value="hidden" />
+					<xs:enumeration value="image" />
+					<xs:enumeration value="button" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:attribute name="checked">
+		<xs:simpleType>
+			<xs:union>
+				<xs:simpleType>
+					<xs:restriction base="xs:token">
+						<xs:enumeration value="checked" />
+					</xs:restriction>
+				</xs:simpleType>
+				<xs:simpleType>
+					<xs:restriction base="cdk:elFreeformExpression" />
+				</xs:simpleType>
+			</xs:union>
+		</xs:simpleType>
+	</xs:attribute>
+	<xs:attribute name="disabled">
+		<xs:simpleType>
+			<xs:union>
+				<xs:simpleType>
+					<xs:restriction base="xs:token">
+						<xs:enumeration value="disabled" />
+					</xs:restriction>
+				</xs:simpleType>
+				<xs:simpleType>
+					<xs:restriction base="cdk:elFreeformExpression" />
+				</xs:simpleType>
+			</xs:union>
+		</xs:simpleType>
+	</xs:attribute>
+	<xs:attribute name="readonly">
+		<xs:simpleType>
+			<xs:union>
+				<xs:simpleType>
+					<xs:restriction base="xs:token">
+						<xs:enumeration value="readonly" />
+					</xs:restriction>
+				</xs:simpleType>
+				<xs:simpleType>
+					<xs:restriction base="cdk:elFreeformExpression" />
+				</xs:simpleType>
+			</xs:union>
+		</xs:simpleType>
+	</xs:attribute>
+
+	<xs:element name="input" type="input.content">
+		<xs:annotation>
+			<xs:documentation>
+				form control
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="select" type="select.content">
+		<xs:annotation>
+			<xs:documentation>
+				option selector
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="optgroup" type="optgroup.content">
+		<xs:annotation>
+			<xs:documentation>
+				option group
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="option" type="option.content">
+		<xs:annotation>
+			<xs:documentation>
+				selectable choice
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="textarea" type="textarea.content">
+		<xs:annotation>
+			<xs:documentation>
+				multi-line text field
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="fieldset" type="fieldset.content">
+		<xs:annotation>
+			<xs:documentation>
+				The fieldset element is used to group form fields.
+				Only one legend element should occur in the content
+				and if present
+				should only be preceded by whitespace.
+
+				NOTE: this content model is
+				different from the XHTML 1.0 DTD,
+				closer to the intended content
+				model in HTML4 DTD
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:simpleType name="LAlign">
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="top" />
+					<xs:enumeration value="bottom" />
+					<xs:enumeration value="left" />
+					<xs:enumeration value="right" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:element name="legend">
+		<xs:annotation>
+			<xs:documentation>
+				fieldset label
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="accesskey" type="Character" />
+					<xs:attribute name="align" type="LAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="button">
+		<xs:annotation>
+			<xs:documentation>
+				Content is "Flow" excluding a, form and form
+				controls
+      </xs:documentation>
+		</xs:annotation>
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="button.content">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attributeGroup ref="focus" />
+					<xs:attribute name="name" />
+					<xs:attribute name="value" />
+					<xs:attribute name="type" default="submit">
+						<xs:simpleType>
+							<xs:union>
+								<xs:simpleType>
+									<xs:restriction base="xs:token">
+										<xs:enumeration value="button" />
+										<xs:enumeration value="submit" />
+										<xs:enumeration value="reset" />
+									</xs:restriction>
+								</xs:simpleType>
+								<xs:simpleType>
+									<xs:restriction base="cdk:elFreeformExpression" />
+								</xs:simpleType>
+							</xs:union>
+						</xs:simpleType>
+					</xs:attribute>
+					<xs:attribute ref="disabled" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="isindex" type="isindex.content">
+		<xs:annotation>
+			<xs:documentation>
+				single-line text input control (DEPRECATED)
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			======================= Tables
+			=======================================
+
+			Derived from IETF HTML table
+			standard, see [RFC1942]
+    </xs:documentation>
+	</xs:annotation>
+
+	<xs:simpleType name="TFrame">
+		<xs:annotation>
+			<xs:documentation>
+				The border attribute sets the thickness of the
+				frame around the
+				table. The default units are screen pixels.
+
+				The frame
+				attribute specifies which parts of the frame around
+				the table should
+				be rendered. The values are not the same as
+				CALS to avoid a name
+				clash with the valign attribute.
+      </xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="void" />
+					<xs:enumeration value="above" />
+					<xs:enumeration value="below" />
+					<xs:enumeration value="hsides" />
+					<xs:enumeration value="lhs" />
+					<xs:enumeration value="rhs" />
+					<xs:enumeration value="vsides" />
+					<xs:enumeration value="box" />
+					<xs:enumeration value="border" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="TRules">
+		<xs:annotation>
+			<xs:documentation>
+				The rules attribute defines which rules to draw
+				between cells:
+
+				If rules is absent then assume:
+				"none" if border is
+				absent or border="0" otherwise "all"
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="none" />
+					<xs:enumeration value="groups" />
+					<xs:enumeration value="rows" />
+					<xs:enumeration value="cols" />
+					<xs:enumeration value="all" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:simpleType name="TAlign">
+		<xs:annotation>
+			<xs:documentation>
+				horizontal placement of table relative to document
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="left" />
+					<xs:enumeration value="center" />
+					<xs:enumeration value="right" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:attributeGroup name="cellhalign">
+		<xs:annotation>
+			<xs:documentation>
+				horizontal alignment attributes for cell contents
+
+				char alignment char, e.g. char=':'
+				charoff offset for alignment char
+			</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="align">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="left" />
+							<xs:enumeration value="center" />
+							<xs:enumeration value="right" />
+							<xs:enumeration value="justify" />
+							<xs:enumeration value="char" />
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elFreeformExpression" />
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="char" type="Character" />
+		<xs:attribute name="charoff" type="Length" />
+	</xs:attributeGroup>
+
+	<xs:attributeGroup name="cellvalign">
+		<xs:annotation>
+			<xs:documentation>
+				vertical alignment attributes for cell contents
+			</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="valign">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="top" />
+							<xs:enumeration value="middle" />
+							<xs:enumeration value="bottom" />
+							<xs:enumeration value="baseline" />
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elFreeformExpression" />
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:attributeGroup>
+
+	<xs:element name="table" type="table.content">
+	</xs:element>
+
+	<xs:simpleType name="CAlign">
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="top" />
+					<xs:enumeration value="bottom" />
+					<xs:enumeration value="left" />
+					<xs:enumeration value="right" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elFreeformExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:element name="caption">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Inline">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="align" type="CAlign" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:annotation>
+		<xs:documentation>
+			Use thead to duplicate headers when breaking table
+			across page boundaries, or for static headers when
+			tbody sections are
+			rendered in scrolling panel.
+
+			Use tfoot to duplicate footers when
+			breaking table
+			across page boundaries, or for static footers when
+			tbody sections are rendered in scrolling panel.
+
+			Use multiple tbody
+			sections when rules are needed
+			between groups of table rows.
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:element name="thead" type="thead.content">
+	</xs:element>
+
+	<xs:element name="tfoot" type="tfoot.content">
+	</xs:element>
+
+	<xs:element name="tbody" type="tbody.content">
+	</xs:element>
+
+	<xs:element name="colgroup" type="colgroup.content">
+		<xs:annotation>
+			<xs:documentation>
+				colgroup groups a set of col elements. It allows
+				you to group
+				several semantically related columns together.
+			</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="col" type="col.content">
+		<xs:annotation>
+			<xs:documentation>
+				col elements define the alignment properties for
+				cells in
+				one or more columns.
+
+				The width attribute specifies the width
+				of the columns, e.g.
+
+				width=64 width in screen pixels
+				width=0.5*
+				relative width of 0.5
+
+				The span attribute causes the attributes of one
+				col element to apply to more than one column.
+      </xs:documentation>
+		</xs:annotation>
+	</xs:element>
+
+	<xs:element name="tr" type="tr.content">
+	</xs:element>
+
+	<xs:simpleType name="Scope">
+		<xs:annotation>
+			<xs:documentation>
+				Scope is simpler than headers attribute for common
+				tables
+			</xs:documentation>
+		</xs:annotation>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="row" />
+					<xs:enumeration value="col" />
+					<xs:enumeration value="rowgroup" />
+					<xs:enumeration value="colgroup" />
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="cdk:elMixedExpression" />
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+
+	<xs:annotation>
+		<xs:documentation>
+			th is for headers, td for data and for cells acting
+			as both
+		</xs:documentation>
+	</xs:annotation>
+
+	<xs:attribute name="nowrap">
+		<xs:simpleType>
+			<xs:union>
+				<xs:simpleType>
+					<xs:restriction base="xs:token">
+						<xs:enumeration value="nowrap" />
+					</xs:restriction>
+				</xs:simpleType>
+				<xs:simpleType>
+					<xs:restriction base="cdk:elMixedExpression" />
+				</xs:simpleType>
+			</xs:union>
+		</xs:simpleType>
+	</xs:attribute>
+
+	<xs:element name="th">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="abbr" type="Text" />
+					<xs:attribute name="axis" />
+					<xs:attribute name="headers" type="IDREFS" />
+					<xs:attribute name="scope" type="Scope" />
+					<xs:attribute name="rowspan" default="1" type="Number" />
+					<xs:attribute name="colspan" default="1" type="Number" />
+					<xs:attributeGroup ref="cellhalign" />
+					<xs:attributeGroup ref="cellvalign" />
+					<xs:attribute ref="nowrap" />
+					<xs:attribute name="bgcolor" type="Color" />
+					<xs:attribute name="width" type="Length" />
+					<xs:attribute name="height" type="Length" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:element name="td">
+		<xs:complexType mixed="true">
+			<xs:complexContent>
+				<xs:extension base="Flow">
+					<xs:attributeGroup ref="attrs" />
+					<xs:attribute name="abbr" type="Text" />
+					<xs:attribute name="axis" />
+					<xs:attribute name="headers" type="IDREFS" />
+					<xs:attribute name="scope" type="Scope" />
+					<xs:attribute name="rowspan" default="1" type="Number" />
+					<xs:attribute name="colspan" default="1" type="Number" />
+					<xs:attributeGroup ref="cellhalign" />
+					<xs:attributeGroup ref="cellvalign" />
+					<xs:attribute ref="nowrap" />
+					<xs:attribute name="bgcolor" type="Color" />
+					<xs:attribute name="width" type="Length" />
+					<xs:attribute name="height" type="Length" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+	</xs:element>
+
+	<xs:complexType name="address.content" mixed="true">
+		<xs:group ref="address.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="address.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="inline"></xs:group>
+				<xs:group ref="misc.inline"></xs:group>
+				<xs:group ref="address.children.elements" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="address.children.elements">
+		<xs:choice>
+			<xs:element ref="p" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="applet.content" mixed="true">
+		<xs:group ref="applet.children" />
+		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
+		<xs:attribute name="codebase" type="URI"></xs:attribute>
+		<xs:attribute name="archive" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="code" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="object" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="alt" type="Text"></xs:attribute>
+		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
+		<xs:attribute use="required" name="width" type="Length"></xs:attribute>
+		<xs:attribute use="required" name="height" type="Length"></xs:attribute>
+		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
+		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
+		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="applet.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="param.element.group" />
+				<xs:group ref="block"></xs:group>
+				<xs:group ref="form.element.group" />
+				<xs:group ref="inline"></xs:group>
+				<xs:group ref="misc"></xs:group>
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="param.element.group">
+		<xs:choice>
+			<xs:element ref="param"></xs:element>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="area.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="focus"></xs:attributeGroup>
+		<xs:attribute default="rect" name="shape" type="Shape"></xs:attribute>
+		<xs:attribute name="coords" type="Coords"></xs:attribute>
+		<xs:attribute name="href" type="URI"></xs:attribute>
+		<xs:attribute name="nohref">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="nohref"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute use="required" name="alt" type="Text"></xs:attribute>
+		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="base.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute name="href" type="URI"></xs:attribute>
+		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="basefont.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attribute name="id" type="ID" />
+		<xs:attribute use="required" name="size" type="xs:anySimpleType" />
+		<xs:attribute name="color" type="Color" />
+		<xs:attribute name="face" type="xs:anySimpleType" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="br.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
+		<xs:attribute default="none" name="clear">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="left"></xs:enumeration>
+							<xs:enumeration value="all"></xs:enumeration>
+							<xs:enumeration value="right"></xs:enumeration>
+							<xs:enumeration value="none"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="col.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute default="1" name="span" type="Number"></xs:attribute>
+		<xs:attribute name="width" type="MultiLength"></xs:attribute>
+		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="colgroup.content">
+		<xs:group ref="colgroup.children" />
+		<xs:attributeGroup ref="attrs" />
+		<xs:attribute default="1" name="span" type="Number" />
+		<xs:attribute name="width" type="MultiLength" />
+		<xs:attributeGroup ref="cellhalign" />
+		<xs:attributeGroup ref="cellvalign" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:group name="colgroup.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="col" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="dir.content">
+		<xs:group ref="dir.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute ref="compact"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:group name="dir.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="dl.content">
+		<xs:group ref="dl.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute ref="compact"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="dl.children">
+		<xs:choice>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element ref="dt" />
+				<xs:element ref="dd" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="fieldset.content" mixed="true">
+		<xs:group ref="fieldset.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="fieldset.children">
+		<xs:sequence>
+			<xs:group ref="legend.element.group" />
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="block"></xs:group>
+				<xs:group ref="form.element.group" />
+				<xs:group ref="inline"></xs:group>
+				<xs:group ref="misc"></xs:group>
+			</xs:choice>
+		</xs:sequence>
+	</xs:group>
+
+	<xs:group name="legend.element.group">
+		<xs:choice>
+			<xs:element ref="legend"></xs:element>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="head.content">
+		<xs:group ref="head.children" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute name="profile" type="URI"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="head.children">
+		<xs:sequence>
+			<xs:group ref="head.misc" />
+			<xs:choice>
+				<xs:sequence minOccurs="0">
+					<xs:element ref="title" />
+					<xs:group ref="head.misc" />
+					<xs:sequence minOccurs="0">
+						<xs:element ref="base" />
+						<xs:group ref="head.misc" />
+					</xs:sequence>
+				</xs:sequence>
+				<xs:sequence minOccurs="0">
+					<xs:element ref="base" />
+					<xs:group ref="head.misc" />
+					<xs:element ref="title" />
+					<xs:group ref="head.misc" />
+				</xs:sequence>
+			</xs:choice>
+		</xs:sequence>
+	</xs:group>
+
+	<xs:complexType name="hr.content">
+		<xs:attributeGroup ref="attrs" />
+		<xs:attribute name="align">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="left"></xs:enumeration>
+							<xs:enumeration value="center"></xs:enumeration>
+							<xs:enumeration value="right"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="noshade">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="noshade"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="size" type="Pixels"></xs:attribute>
+		<xs:attribute name="width" type="Length"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="html.content">
+		<xs:group ref="html.children" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:group name="html.children">
+		<xs:sequence>
+			<xs:element minOccurs="0" ref="head" />
+			<xs:group maxOccurs="unbounded" minOccurs="0" ref="cdk:structural" />
+			<xs:element minOccurs="0" ref="body" />
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="img.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute use="required" name="src" type="URI"></xs:attribute>
+		<xs:attribute use="required" name="alt" type="Text"></xs:attribute>
+		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
+		<xs:attribute name="longdesc" type="URI"></xs:attribute>
+		<xs:attribute name="height" type="Length"></xs:attribute>
+		<xs:attribute name="width" type="Length"></xs:attribute>
+		<xs:attribute name="usemap" type="URI">
+			<xs:annotation></xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="ismap">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="ismap"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
+		<xs:attribute name="border" type="Length"></xs:attribute>
+		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
+		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="input.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="focus"></xs:attributeGroup>
+		<xs:attribute default="text" name="type" type="InputType"></xs:attribute>
+		<xs:attribute name="name" type="xs:anySimpleType">
+			<xs:annotation></xs:annotation>
+		</xs:attribute>
+		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute ref="checked"></xs:attribute>
+		<xs:attribute ref="disabled"></xs:attribute>
+		<xs:attribute ref="readonly"></xs:attribute>
+		<xs:attribute name="size" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="maxlength" type="Number"></xs:attribute>
+		<xs:attribute name="src" type="URI"></xs:attribute>
+		<xs:attribute name="alt" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="usemap" type="URI"></xs:attribute>
+		<xs:attribute name="onselect" type="Script"></xs:attribute>
+		<xs:attribute name="onchange" type="Script"></xs:attribute>
+		<xs:attribute name="accept" type="ContentTypes"></xs:attribute>
+		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="isindex.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="prompt" type="Text"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="link.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="charset" type="Charset"></xs:attribute>
+		<xs:attribute name="href" type="URI"></xs:attribute>
+		<xs:attribute name="hreflang" type="LanguageCode"></xs:attribute>
+		<xs:attribute name="type" type="ContentType"></xs:attribute>
+		<xs:attribute name="rel" type="LinkTypes"></xs:attribute>
+		<xs:attribute name="rev" type="LinkTypes"></xs:attribute>
+		<xs:attribute name="media" type="MediaDesc"></xs:attribute>
+		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="map.content">
+		<xs:group ref="map.children" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attributeGroup ref="events"></xs:attributeGroup>
+		<xs:attribute use="required" name="id" type="ID"></xs:attribute>
+		<xs:attribute name="class" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="style" type="StyleSheet"></xs:attribute>
+		<xs:attribute name="title" type="Text"></xs:attribute>
+		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="map.children">
+		<xs:choice>
+			<xs:choice maxOccurs="unbounded">
+				<xs:group ref="block"></xs:group>
+				<xs:group ref="form.element.group" />
+				<xs:group ref="misc"></xs:group>
+			</xs:choice>
+			<xs:group ref="area.element.group" maxOccurs="unbounded" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="area.element.group">
+		<xs:choice>
+			<xs:element ref="area" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="menu.content">
+		<xs:group ref="menu.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute ref="compact"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="menu.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="meta.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute name="http-equiv" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute use="required" name="content" type="xs:anySimpleType">
+		</xs:attribute>
+		<xs:attribute name="scheme" type="xs:anySimpleType"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="object.content" mixed="true">
+		<xs:group ref="object.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="declare">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="declare"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="classid" type="URI"></xs:attribute>
+		<xs:attribute name="codebase" type="URI"></xs:attribute>
+		<xs:attribute name="data" type="URI"></xs:attribute>
+		<xs:attribute name="type" type="ContentType"></xs:attribute>
+		<xs:attribute name="codetype" type="ContentType"></xs:attribute>
+		<xs:attribute name="archive" type="UriList"></xs:attribute>
+		<xs:attribute name="standby" type="Text"></xs:attribute>
+		<xs:attribute name="height" type="Length"></xs:attribute>
+		<xs:attribute name="width" type="Length"></xs:attribute>
+		<xs:attribute name="usemap" type="URI"></xs:attribute>
+		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
+		<xs:attribute name="tabindex" type="Number"></xs:attribute>
+		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
+		<xs:attribute name="border" type="Pixels"></xs:attribute>
+		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
+		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="object.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:group ref="object.children.elements" />
+				<xs:group ref="block" />
+				<xs:group ref="inline" />
+				<xs:group ref="misc" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:group name="object.children.elements">
+		<xs:choice>
+			<xs:element ref="param" />
+			<xs:element ref="form" />
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="ol.content">
+		<xs:group ref="ol.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="type" type="OLStyle"></xs:attribute>
+		<xs:attribute ref="compact"></xs:attribute>
+		<xs:attribute name="start" type="Number"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="ol.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="optgroup.content">
+		<xs:group ref="optgroup.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute ref="disabled"></xs:attribute>
+		<xs:attribute use="required" name="label" type="Text"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="optgroup.children">
+		<xs:sequence>
+			<xs:element minOccurs="0" maxOccurs="unbounded" ref="option" />
+			<xs:group ref="cdk:structural" />
+		</xs:sequence>
+	</xs:group>
+
+	<xs:complexType name="option.content" mixed="true">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="selected">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="selected"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute ref="disabled"></xs:attribute>
+		<xs:attribute name="label" type="Text"></xs:attribute>
+		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="param.content">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute use="required" name="name" type="xs:anySimpleType">
+		</xs:attribute>
+		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute default="data" name="valuetype">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="data"></xs:enumeration>
+							<xs:enumeration value="ref"></xs:enumeration>
+							<xs:enumeration value="object"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="type" type="ContentType"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="script.content" mixed="true">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute name="charset" type="Charset"></xs:attribute>
+		<xs:attribute use="required" name="type" type="ContentType"></xs:attribute>
+		<xs:attribute name="language" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="src" type="URI"></xs:attribute>
+		<xs:attribute name="defer">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="defer"></xs:enumeration>
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute fixed="preserve" ref="xml:space"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="select.content">
+		<xs:group ref="select.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute name="size" type="Number"></xs:attribute>
+		<xs:attribute name="multiple">
+			<xs:simpleType>
+				<xs:union>
+					<xs:simpleType>
+						<xs:restriction base="xs:token">
+							<xs:enumeration value="multiple" />
+						</xs:restriction>
+					</xs:simpleType>
+					<xs:simpleType>
+						<xs:restriction base="cdk:elMixedExpression" />
+					</xs:simpleType>
+				</xs:union>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute ref="disabled"></xs:attribute>
+		<xs:attribute name="tabindex" type="tabindexNumber"></xs:attribute>
+		<xs:attribute name="onfocus" type="Script"></xs:attribute>
+		<xs:attribute name="onblur" type="Script"></xs:attribute>
+		<xs:attribute name="onchange" type="Script"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="select.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element ref="optgroup" />
+				<xs:element ref="option" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="style.content" mixed="true">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attribute use="required" name="type" type="ContentType"></xs:attribute>
+		<xs:attribute name="media" type="MediaDesc"></xs:attribute>
+		<xs:attribute name="title" type="Text"></xs:attribute>
+		<xs:attribute fixed="preserve" ref="xml:space"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="table.content">
+		<xs:group ref="table.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attribute name="summary" type="Text"></xs:attribute>
+		<xs:attribute name="width" type="Length"></xs:attribute>
+		<xs:attribute name="border" type="Pixels"></xs:attribute>
+		<xs:attribute name="frame" type="TFrame"></xs:attribute>
+		<xs:attribute name="rules" type="TRules"></xs:attribute>
+		<xs:attribute name="cellspacing" type="Length"></xs:attribute>
+		<xs:attribute name="cellpadding" type="Length"></xs:attribute>
+		<xs:attribute name="align" type="TAlign"></xs:attribute>
+		<xs:attribute name="bgcolor" type="Color"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="table.children">
+		<xs:sequence>
+			<xs:element minOccurs="0" ref="caption" />
+			<xs:choice>
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
+				<xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup" />
+			</xs:choice>
+			<xs:element minOccurs="0" ref="thead" />
+			<xs:element minOccurs="0" ref="tfoot" />
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:choice>
+					<xs:group ref="cdk:structural" />
+					<xs:element minOccurs="0" maxOccurs="unbounded" ref="tbody" />
+					<xs:element minOccurs="0" maxOccurs="unbounded" ref="tr" />
+				</xs:choice>
+			</xs:choice>
+		</xs:sequence>
+	</xs:group>
+
+	<xs:complexType name="tbody.content">
+		<xs:group ref="tbody.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="tbody.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="textarea.content" mixed="true">
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="focus"></xs:attributeGroup>
+		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
+		<xs:attribute use="required" name="rows" type="Number"></xs:attribute>
+		<xs:attribute use="required" name="cols" type="Number"></xs:attribute>
+		<xs:attribute ref="disabled"></xs:attribute>
+		<xs:attribute ref="readonly"></xs:attribute>
+		<xs:attribute name="onselect" type="Script"></xs:attribute>
+		<xs:attribute name="onchange" type="Script"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:complexType name="tfoot.content">
+		<xs:group ref="tfoot.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:group name="tfoot.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="thead.content">
+		<xs:group ref="thead.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+	<xs:group name="thead.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+	<xs:complexType name="title.content" mixed="true">
+		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
+		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
+		<xs:attribute name="id" type="ID"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:complexType name="tr.content">
+		<xs:group ref="tr.children" />
+		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
+		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
+		<xs:attribute name="bgcolor" type="Color"></xs:attribute>
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="tr.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="th" />
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="td" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+
+	<xs:complexType name="ul.content">
+		<xs:group ref="ul.children" />
+		<xs:attributeGroup ref="attrs" />
+		<xs:attribute name="type" type="ULStyle" />
+		<xs:attribute ref="compact" />
+		<xs:attributeGroup ref="cdk:core.attrs" />
+	</xs:complexType>
+
+	<xs:group name="ul.children">
+		<xs:choice>
+			<xs:choice minOccurs="0" maxOccurs="unbounded">
+				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
+				<xs:group ref="cdk:structural" />
+			</xs:choice>
+		</xs:choice>
+	</xs:group>
+</xs:schema>

Deleted: root/cdk/trunk/plugins/generator/src/main/xsd/cdk-template.xsd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/xsd/cdk-template.xsd	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/xsd/cdk-template.xsd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	targetNamespace="http://richfaces.org/cdk" xmlns="http://richfaces.org/cdk"
-	elementFormDefault="qualified" attributeFormDefault="qualified"
-	xmlns:xhtml="http://richfaces.org/xhtml-el">
-
-	<xs:simpleType name="elStrictExpression">
-		<xs:restriction base="xs:string">
-			<xs:pattern value="#\{[^\}]+\}" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="elMixedExpression">
-		<xs:restriction base="xs:string">
-			<xs:pattern value=".*#\{[^\}]+\}.*" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="elFreeformExpression">
-		<xs:restriction base="xs:string" />
-	</xs:simpleType>
-
-	<xs:attributeGroup name="core.attrs">
-		<xs:attribute name="passThroughWithExclusions" type="xs:NMTOKENS" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="testGroup">
-		<xs:attribute name="test" form="unqualified" use="required" type="elStrictExpression" />
-	</xs:attributeGroup>
-
-	<xs:element name="root">
-		<xs:complexType mixed="true">
-			<xs:choice>
-				<xs:any minOccurs="0" maxOccurs="unbounded" />
-			</xs:choice>
-			<xs:attribute name="class" type="xs:string" form="unqualified" use="required" />
-			<xs:attribute name="superclass" type="xs:string" form="unqualified"/>
-			<xs:attribute name="componentclass" type="xs:string" form="unqualified" use="required" />
-		</xs:complexType>
-	</xs:element>
-
-	<xs:group name="structural">
-		<xs:choice>
-			<xs:element name="body">
-				<xs:complexType mixed="true">
-					<xs:choice>
-						<xs:any minOccurs="0" maxOccurs="unbounded" />
-					</xs:choice>
-				</xs:complexType>
-			</xs:element>
-			<xs:element ref="if" />
-			<xs:element ref="choose" />
-			<xs:element ref="call" />
-		</xs:choice>
-	</xs:group>
-
-
-	<xs:element name="if">
-		<xs:complexType mixed="true">
-			<xs:choice>
-				<xs:any minOccurs="0" maxOccurs="unbounded" />
-			</xs:choice>
-			<xs:attributeGroup ref="testGroup" />
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="choose">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element maxOccurs="unbounded" name="when">
-					<xs:complexType>
-						<xs:choice>
-							<xs:any minOccurs="0"
-								maxOccurs="unbounded">
-							</xs:any>
-						</xs:choice>
-						<xs:attributeGroup ref="testGroup" />
-					</xs:complexType>
-				</xs:element>
-				<xs:element minOccurs="0" name="otherwise">
-					<xs:complexType>
-						<xs:choice>
-							<xs:any minOccurs="0"
-								maxOccurs="unbounded">
-							</xs:any>
-						</xs:choice>
-					</xs:complexType>
-				</xs:element>
-			</xs:sequence>
-		</xs:complexType>
-	</xs:element>
-	<xs:element name="call">
-		<xs:complexType>
-			<xs:attribute name="expression" form="unqualified" />
-		</xs:complexType>
-	</xs:element>
-</xs:schema>

Deleted: root/cdk/trunk/plugins/generator/src/main/xsd/xhtml-el.xsd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/xsd/xhtml-el.xsd	2009-11-05 20:37:23 UTC (rev 15844)
+++ root/cdk/trunk/plugins/generator/src/main/xsd/xhtml-el.xsd	2009-11-06 00:27:52 UTC (rev 15845)
@@ -1,3389 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema version="1.0" xml:lang="en"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://richfaces.org/xhtml-el"
-	xmlns="http://richfaces.org/xhtml-el" xmlns:xml="http://www.w3.org/XML/1998/namespace"
-	elementFormDefault="qualified" xmlns:cdk="http://richfaces.org/cdk">
-
-	<xs:import schemaLocation="cdk-template.xsd" namespace="http://richfaces.org/cdk" />
-
-	<xs:annotation>
-		<xs:documentation>
-			XHTML 1.0 (Second Edition) Transitional in XML
-			Schema
-
-			This is the same as HTML 4 Transitional except for
-			changes due
-			to the differences between XML and SGML.
-
-			Namespace =
-			http://www.w3.org/1999/xhtml
-
-			For further information, see:
-			http://www.w3.org/TR/xhtml1
-
-			Copyright (c) 1998-2002 W3C (MIT, INRIA,
-			Keio),
-			All Rights Reserved.
-
-			The DTD version is identified by the PUBLIC
-			and SYSTEM identifiers:
-
-			PUBLIC "-//W3C//DTD XHTML 1.0
-			Transitional//EN"
-			SYSTEM
-			"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-
-			$Id:
-			xhtml1-transitional.xsd,v 1.5 2002/08/28 09:53:29 mimasa Exp $
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace"
-		schemaLocation="http://www.w3.org/2001/xml.xsd" />
-
-	<xs:annotation>
-		<xs:documentation>
-			================ Character mnemonic entities
-			=========================
-
-			XHTML entity sets are identified by the
-			PUBLIC and SYSTEM identifiers:
-
-			PUBLIC "-//W3C//ENTITIES Latin 1 for
-			XHTML//EN"
-			SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
-
-			PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
-			SYSTEM
-			"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
-
-			PUBLIC
-			"-//W3C//ENTITIES Symbols for XHTML//EN"
-			SYSTEM
-			"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:annotation>
-		<xs:documentation>
-			================== Imported Names
-			====================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:simpleType name="ContentType">
-		<xs:annotation>
-			<xs:documentation>
-				media type, as per [RFC2045]
-      </xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="ContentTypes">
-		<xs:annotation>
-			<xs:documentation>
-				comma-separated list of media types, as per
-				[RFC2045]
-      </xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Charset">
-		<xs:annotation>
-			<xs:documentation>
-				a character encoding, as per [RFC2045]
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Charsets">
-		<xs:annotation>
-			<xs:documentation>
-				a space separated list of character encodings, as
-				per [RFC2045]
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="LanguageCode">
-		<xs:annotation>
-			<xs:documentation>
-				a language code, as per [RFC3066]
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="xs:language cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Character">
-		<xs:annotation>
-			<xs:documentation>
-				a single character, as per section 2.2 of [XML]
-			</xs:documentation>
-		</xs:annotation>
-		<!-- TODO test -->
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:length value="1" fixed="true" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="simpleType.Number">
-		<xs:restriction base="xs:nonNegativeInteger">
-			<xs:pattern value="[0-9]+" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="Number">
-		<xs:annotation>
-			<xs:documentation>
-				one or more digits
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="simpleType.Number cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tabindexNumber">
-		<xs:annotation>
-			<xs:documentation>
-				tabindex attribute specifies the position of the
-				current element
-				in the tabbing order for the current document. This
-				value must be
-				a number between 0 and 32767. User agents should ignore
-				leading
-				zeros. 
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="simpleType.Number">
-					<xs:minInclusive value="0" />
-					<xs:maxInclusive value="32767" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elMixedExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="LinkTypes">
-		<xs:annotation>
-			<xs:documentation>
-				space-separated list of link types
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="xs:NMTOKENS cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="MediaDesc">
-		<xs:annotation>
-			<xs:documentation>
-				single or comma-separated list of media descriptors
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:pattern value="[^,]+(,\s*[^,]+)*" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="URI">
-		<xs:annotation>
-			<xs:documentation>
-				a Uniform Resource Identifier, see [RFC2396]
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="xs:anyURI cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="UriList">
-		<xs:annotation>
-			<xs:documentation>
-				a space separated list of Uniform Resource
-				Identifiers
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Datetime">
-		<xs:annotation>
-			<xs:documentation>
-				date and time information. ISO date format
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="xs:dateTime cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Script">
-		<xs:annotation>
-			<xs:documentation>
-				script expression
-      </xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="StyleSheet">
-		<xs:annotation>
-			<xs:documentation>
-				style sheet data
-      </xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="Text">
-		<xs:annotation>
-			<xs:documentation>
-				used for titles etc.
-      </xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:simpleType name="FrameTarget">
-		<xs:annotation>
-			<xs:documentation>
-				render in this frame
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:NMTOKEN">
-					<xs:pattern value="_(blank|self|parent|top)|[A-Za-z]\c*" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="Length">
-		<xs:annotation>
-			<xs:documentation>
-				nn for pixels or nn% for percentage length
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="MultiLength">
-		<xs:annotation>
-			<xs:documentation>
-				pixel, percentage, or relative
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="Pixels">
-		<xs:annotation>
-			<xs:documentation>
-				integer representing length in pixels
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union memberTypes="xs:nonNegativeInteger cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:annotation>
-		<xs:documentation>
-			these are used for image maps
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:simpleType name="Shape">
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="rect" />
-					<xs:enumeration value="circle" />
-					<xs:enumeration value="poly" />
-					<xs:enumeration value="default" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="Coords">
-		<xs:annotation>
-			<xs:documentation>
-				comma separated list of lengths
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="ImgAlign">
-		<xs:annotation>
-			<xs:documentation>
-				used for object, applet, img, input and iframe
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="top" />
-					<xs:enumeration value="middle" />
-					<xs:enumeration value="bottom" />
-					<xs:enumeration value="left" />
-					<xs:enumeration value="right" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="Color">
-		<xs:annotation>
-			<xs:documentation>
-				a color using sRGB: #RRGGBB as Hex values
-
-				There are
-				also 16 widely known color names with their sRGB values:
-
-				Black =
-				#000000 Green = #008000
-				Silver = #C0C0C0 Lime = #00FF00
-				Gray = #808080
-				Olive = #808000
-				White = #FFFFFF Yellow = #FFFF00
-				Maroon = #800000 Navy
-				= #000080
-				Red = #FF0000 Blue = #0000FF
-				Purple = #800080 Teal = #008080
-				Fuchsia= #FF00FF Aqua = #00FFFF
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:pattern value="[A-Za-z]+|#[0-9A-Fa-f]{3}|#[0-9A-Fa-f]{6}" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<!-- TODO: add constraints -->
-	<xs:simpleType name="ID">
-		<xs:union memberTypes="xs:ID cdk:elMixedExpression" />
-	</xs:simpleType>
-	<xs:simpleType name="IDREF">
-		<xs:union memberTypes="xs:IDREF cdk:elMixedExpression" />
-	</xs:simpleType>
-	<xs:simpleType name="IDREFS">
-		<xs:union memberTypes="xs:IDREFS cdk:elMixedExpression" />
-	</xs:simpleType>
-	<xs:simpleType name="NMTOKEN">
-		<xs:union memberTypes="xs:NMTOKEN cdk:elMixedExpression" />
-	</xs:simpleType>
-	<xs:simpleType name="NMTOKENS">
-		<xs:union memberTypes="xs:NMTOKENS cdk:elMixedExpression" />
-	</xs:simpleType>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Generic Attributes
-			===============================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:attributeGroup name="coreattrs">
-		<xs:annotation>
-			<xs:documentation>
-				core attributes common to most elements
-				id
-				document-wide unique id
-				class space separated list of classes
-				style
-				associated style info
-				title advisory title/amplification
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="id" type="ID" />
-		<xs:attribute name="class" type="NMTOKENS" />
-		<xs:attribute name="style" type="StyleSheet" />
-		<xs:attribute name="title" type="Text" />
-	</xs:attributeGroup>
-
-	<xs:simpleType name="simpleType.dir">
-		<xs:restriction base="xs:token">
-			<xs:enumeration value="ltr" />
-			<xs:enumeration value="rtl" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:attributeGroup name="i18n">
-		<xs:annotation>
-			<xs:documentation>
-				internationalization attributes
-				lang language code
-				(backwards compatible)
-				xml:lang language code (as per XML 1.0 spec)
-				dir direction for weak/neutral text
-      </xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="lang" type="LanguageCode" />
-
-		<!-- TODO: xml:lang can be made EL -->
-		<xs:attribute ref="xml:lang" />
-		<xs:attribute name="dir">
-			<xs:simpleType>
-				<xs:union memberTypes="simpleType.dir cdk:elMixedExpression" />
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="events">
-		<xs:annotation>
-			<xs:documentation>
-				attributes for common UI events
-				onclick a pointer
-				button was clicked
-				ondblclick a pointer button was double clicked
-				onmousedown a pointer button was pressed down
-				onmouseup a pointer
-				button was released
-				onmousemove a pointer was moved onto the element
-				onmouseout a pointer was moved away from the element
-				onkeypress a key
-				was pressed and released
-				onkeydown a key was pressed down
-				onkeyup a
-				key was released
-      </xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="onclick" type="Script" />
-		<xs:attribute name="ondblclick" type="Script" />
-		<xs:attribute name="onmousedown" type="Script" />
-		<xs:attribute name="onmouseup" type="Script" />
-		<xs:attribute name="onmouseover" type="Script" />
-		<xs:attribute name="onmousemove" type="Script" />
-		<xs:attribute name="onmouseout" type="Script" />
-		<xs:attribute name="onkeypress" type="Script" />
-		<xs:attribute name="onkeydown" type="Script" />
-		<xs:attribute name="onkeyup" type="Script" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="focus">
-		<xs:annotation>
-			<xs:documentation>
-				attributes for elements that can get the focus
-				accesskey accessibility key character
-				tabindex position in tabbing
-				order
-				onfocus the element got the focus
-				onblur the element lost the
-				focus
-      </xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="accesskey" type="Character" />
-		<xs:attribute name="tabindex" type="tabindexNumber" />
-		<xs:attribute name="onfocus" type="Script" />
-		<xs:attribute name="onblur" type="Script" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="attrs">
-		<xs:attributeGroup ref="coreattrs" />
-		<xs:attributeGroup ref="i18n" />
-		<xs:attributeGroup ref="events" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="TextAlign">
-		<xs:annotation>
-			<xs:documentation>
-				text alignment for p, div, h1-h6. The default is
-				align="left" for ltr headings, "right" for rtl
-      </xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="align">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="left" />
-							<xs:enumeration value="center" />
-							<xs:enumeration value="right" />
-							<xs:enumeration value="justify" />
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elFreeformExpression" />
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Text Elements
-			====================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:group name="special.extra">
-		<xs:choice>
-			<xs:element ref="object" />
-			<xs:element ref="applet" />
-			<xs:element ref="img" />
-			<xs:element ref="map" />
-			<xs:element ref="iframe" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="special.basic">
-		<xs:choice>
-			<xs:element ref="br" />
-			<xs:element ref="span" />
-			<xs:element ref="bdo" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="special">
-		<xs:choice>
-			<xs:group ref="special.basic" />
-			<xs:group ref="special.extra" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="fontstyle.extra">
-		<xs:choice>
-			<xs:element ref="big" />
-			<xs:element ref="small" />
-			<xs:element ref="font" />
-			<xs:element ref="basefont" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="fontstyle.basic">
-		<xs:choice>
-			<xs:element ref="tt" />
-			<xs:element ref="i" />
-			<xs:element ref="b" />
-			<xs:element ref="u" />
-			<xs:element ref="s" />
-			<xs:element ref="strike" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="fontstyle">
-		<xs:choice>
-			<xs:group ref="fontstyle.basic" />
-			<xs:group ref="fontstyle.extra" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="phrase.extra">
-		<xs:choice>
-			<xs:element ref="sub" />
-			<xs:element ref="sup" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="phrase.basic">
-		<xs:choice>
-			<xs:element ref="em" />
-			<xs:element ref="strong" />
-			<xs:element ref="dfn" />
-			<xs:element ref="code" />
-			<xs:element ref="q" />
-			<xs:element ref="samp" />
-			<xs:element ref="kbd" />
-			<xs:element ref="var" />
-			<xs:element ref="cite" />
-			<xs:element ref="abbr" />
-			<xs:element ref="acronym" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="phrase">
-		<xs:choice>
-			<xs:group ref="phrase.basic" />
-			<xs:group ref="phrase.extra" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="inline.forms">
-		<xs:choice>
-			<xs:element ref="input" />
-			<xs:element ref="select" />
-			<xs:element ref="textarea" />
-			<xs:element ref="label" />
-			<xs:element ref="button" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="misc.inline">
-		<xs:annotation>
-			<xs:documentation>
-				these can only occur at block level
-			</xs:documentation>
-		</xs:annotation>
-		<xs:choice>
-			<xs:group ref="cdk:structural" />
-			<xs:element ref="ins" />
-			<xs:element ref="del" />
-			<xs:element ref="script" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="misc">
-		<xs:annotation>
-			<xs:documentation>
-				these can only occur at block level
-			</xs:documentation>
-		</xs:annotation>
-		<xs:choice>
-			<xs:group ref="misc.elements" />
-			<xs:group ref="misc.inline" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="misc.elements">
-		<xs:choice>
-			<xs:element ref="noscript" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="inline">
-		<xs:choice>
-			<xs:group ref="inline.elements" />
-			<xs:group ref="special" />
-			<xs:group ref="fontstyle" />
-			<xs:group ref="phrase" />
-			<xs:group ref="inline.forms" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="inline.elements">
-		<xs:choice>
-			<xs:element ref="a" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="Inline" mixed="true">
-		<xs:annotation>
-			<xs:documentation>
-				"Inline" covers inline or "text-level" element
-			</xs:documentation>
-		</xs:annotation>
-		<xs:group ref="Inline.content" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="Inline.content">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="inline" />
-				<xs:group ref="misc.inline" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:annotation>
-		<xs:documentation>
-			================== Block level elements
-			==============================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:group name="heading">
-		<xs:choice>
-			<xs:element ref="h1" />
-			<xs:element ref="h2" />
-			<xs:element ref="h3" />
-			<xs:element ref="h4" />
-			<xs:element ref="h5" />
-			<xs:element ref="h6" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="lists">
-		<xs:choice>
-			<xs:element ref="ul" />
-			<xs:element ref="ol" />
-			<xs:element ref="dl" />
-			<xs:element ref="menu" />
-			<xs:element ref="dir" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="blocktext">
-		<xs:choice>
-			<xs:element ref="pre" />
-			<xs:element ref="hr" />
-			<xs:element ref="blockquote" />
-			<xs:element ref="address" />
-			<xs:element ref="center" />
-			<xs:element ref="noframes" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="block">
-		<xs:choice>
-			<xs:group ref="block.children" />
-			<xs:group ref="heading" />
-			<xs:group ref="lists" />
-			<xs:group ref="blocktext" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="block.children">
-		<xs:choice>
-			<xs:element ref="p" />
-			<xs:element ref="div" />
-			<xs:element ref="isindex" />
-			<xs:element ref="fieldset" />
-			<xs:element ref="table" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="Flow" mixed="true">
-		<xs:annotation>
-			<xs:documentation>
-				"Flow" mixes block and inline and is used for list
-				items etc.
-			</xs:documentation>
-		</xs:annotation>
-		<xs:group ref="Flow.children" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="Flow.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="block" />
-				<xs:group ref="form.element.group" />
-				<xs:group ref="inline" />
-				<xs:group ref="misc" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="form.element.group">
-		<xs:choice>
-			<xs:element ref="form" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:annotation>
-		<xs:documentation>
-			================== Content models for exclusions
-			=====================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:complexType name="a.content" mixed="true">
-		<xs:group ref="a.children" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="focus"></xs:attributeGroup>
-		<xs:attribute name="charset" type="Charset"></xs:attribute>
-		<xs:attribute name="type" type="ContentType"></xs:attribute>
-		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
-		<xs:attribute name="href" type="URI"></xs:attribute>
-		<xs:attribute name="hreflang" type="LanguageCode"></xs:attribute>
-		<xs:attribute name="rel" type="LinkTypes"></xs:attribute>
-		<xs:attribute name="rev" type="LinkTypes"></xs:attribute>
-		<xs:attribute default="rect" name="shape" type="Shape"></xs:attribute>
-		<xs:attribute name="coords" type="Coords"></xs:attribute>
-		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="a.children">
-		<xs:choice>
-			<xs:group ref="special"></xs:group>
-			<xs:group ref="fontstyle"></xs:group>
-			<xs:group ref="phrase"></xs:group>
-			<xs:group ref="inline.forms"></xs:group>
-			<xs:group ref="misc.inline"></xs:group>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="pre.content" mixed="true">
-		<xs:annotation>
-			<xs:documentation>
-				pre uses "Inline" excluding img, object, applet,
-				big, small,
-				font, or basefont
-      </xs:documentation>
-		</xs:annotation>
-		<xs:group ref="pre.children" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="pre.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="a.element.group" />
-				<xs:group ref="special.basic" />
-				<xs:group ref="fontstyle.basic" />
-				<xs:group ref="phrase.basic" />
-				<xs:group ref="inline.forms" />
-				<xs:group ref="misc.inline" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="a.element.group">
-		<xs:choice>
-			<xs:element ref="a" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="form.content" mixed="true">
-		<xs:annotation>
-			<xs:documentation>
-				form uses "Flow" excluding form
-      </xs:documentation>
-		</xs:annotation>
-		<xs:group ref="form.children" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="form.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="block" />
-				<xs:group ref="inline" />
-				<xs:group ref="misc" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="button.content" mixed="true">
-		<xs:annotation>
-			<xs:documentation>
-				button uses "Flow" but excludes a, form, form
-				controls, iframe
-			</xs:documentation>
-		</xs:annotation>
-		<xs:group ref="button.children" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="button.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="button.children.elements" />
-				<xs:group ref="heading" />
-				<xs:group ref="lists" />
-				<xs:group ref="blocktext" />
-				<xs:group ref="fontstyle" />
-				<xs:group ref="phrase" />
-				<xs:group ref="misc" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="button.children.elements">
-		<xs:choice>
-			<xs:element ref="p" />
-			<xs:element ref="div" />
-			<xs:element ref="table" />
-			<xs:element ref="br" />
-			<xs:element ref="span" />
-			<xs:element ref="bdo" />
-			<xs:element ref="object" />
-			<xs:element ref="applet" />
-			<xs:element ref="img" />
-			<xs:element ref="map" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:annotation>
-		<xs:documentation>
-			================ Document Structure
-			==================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="html" type="html.content">
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			================ Document Head
-			=======================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:group name="head.misc">
-		<xs:sequence>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-				<xs:element ref="script" />
-				<xs:element ref="style" />
-				<xs:element ref="meta" />
-				<xs:element ref="link" />
-				<xs:element ref="object" />
-				<xs:element ref="isindex" />
-			</xs:choice>
-		</xs:sequence>
-	</xs:group>
-
-	<xs:element name="head" type="head.content">
-		<xs:annotation>
-			<xs:documentation>
-				content model is "head.misc" combined with a single
-				title and an optional base element in any order
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="title" type="title.content">
-		<xs:annotation>
-			<xs:documentation>
-				The title element is not considered part of the
-				flow of text.
-				It should be displayed, for example as the page header
-				or
-				window title. Exactly one title is required per document.
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="base" type="base.content">
-		<xs:annotation>
-			<xs:documentation>
-				document base URI
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="meta" type="meta.content">
-		<xs:annotation>
-			<xs:documentation>
-				generic metainformation
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="link" type="link.content">
-		<xs:annotation>
-			<xs:documentation>
-				Relationship values can be used in principle:
-
-				a) for
-				document specific toolbars/menus when used
-				with the link element in
-				document head e.g.
-				start, contents, previous, next, index, end, help
-				b) to link to a separate style sheet (rel="stylesheet")
-				c) to make a
-				link to a script (rel="script")
-				d) by stylesheets to control how
-				collections of
-				html nodes are rendered into printed documents
-				e) to
-				make a link to a printable version of this document
-				e.g. a PostScript
-				or PDF version (rel="alternate" media="print")
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="style" type="style.content">
-		<xs:annotation>
-			<xs:documentation>
-				style info, which may include CDATA sections
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="script" type="script.content">
-		<xs:annotation>
-			<xs:documentation>
-				script statements, which may include CDATA sections
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="noscript">
-		<xs:annotation>
-			<xs:documentation>
-				alternate content container for non script-based
-				rendering
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			======================= Frames
-			=======================================
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="iframe">
-		<xs:annotation>
-			<xs:documentation>
-				inline subwindow
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="coreattrs" />
-					<xs:attribute name="longdesc" type="URI" />
-					<xs:attribute name="name" type="NMTOKEN" />
-					<xs:attribute name="src" type="URI" />
-					<xs:attribute name="frameborder" default="1">
-						<xs:simpleType>
-							<xs:union>
-								<xs:simpleType>
-									<xs:restriction base="xs:token">
-										<xs:enumeration value="1" />
-										<xs:enumeration value="0" />
-									</xs:restriction>
-								</xs:simpleType>
-								<xs:simpleType>
-									<xs:restriction base="cdk:elFreeformExpression" />
-								</xs:simpleType>
-							</xs:union>
-						</xs:simpleType>
-					</xs:attribute>
-					<xs:attribute name="marginwidth" type="Pixels" />
-					<xs:attribute name="marginheight" type="Pixels" />
-					<xs:attribute name="scrolling" default="auto">
-						<xs:simpleType>
-							<xs:union>
-								<xs:simpleType>
-									<xs:restriction base="xs:token">
-										<xs:enumeration value="yes" />
-										<xs:enumeration value="no" />
-										<xs:enumeration value="auto" />
-									</xs:restriction>
-								</xs:simpleType>
-								<xs:simpleType>
-									<xs:restriction base="cdk:elFreeformExpression" />
-								</xs:simpleType>
-							</xs:union>
-						</xs:simpleType>
-					</xs:attribute>
-					<xs:attribute name="align" type="ImgAlign" />
-					<xs:attribute name="height" type="Length" />
-					<xs:attribute name="width" type="Length" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="noframes">
-		<xs:annotation>
-			<xs:documentation>
-				alternate content container for non frame-based
-				rendering
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Document Body
-			====================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="body">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="onload" type="Script" />
-					<xs:attribute name="onunload" type="Script" />
-					<xs:attribute name="background" type="URI" />
-					<xs:attribute name="bgcolor" type="Color" />
-					<xs:attribute name="text" type="Color" />
-					<xs:attribute name="link" type="Color" />
-					<xs:attribute name="vlink" type="Color" />
-					<xs:attribute name="alink" type="Color" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="div">
-		<xs:annotation>
-			<xs:documentation>
-				generic language/style container      
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Paragraphs
-			=======================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="p">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Headings
-			=========================================
-
-			There are six levels of
-			headings from h1 (the most important)
-			to h6 (the least important).
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="h1">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="h2">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="h3">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="h4">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="h5">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="h6">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="TextAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Lists
-			============================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:simpleType name="ULStyle">
-		<xs:annotation>
-			<xs:documentation>
-				Unordered list bullet styles
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="disc" />
-					<xs:enumeration value="square" />
-					<xs:enumeration value="circle" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:attribute name="compact">
-		<xs:simpleType>
-			<xs:union>
-				<xs:simpleType>
-					<xs:restriction base="xs:token">
-						<xs:enumeration value="compact" />
-					</xs:restriction>
-				</xs:simpleType>
-				<xs:simpleType>
-					<xs:restriction base="cdk:elFreeformExpression" />
-				</xs:simpleType>
-			</xs:union>
-		</xs:simpleType>
-	</xs:attribute>
-
-	<xs:element name="ul" type="ul.content">
-		<xs:annotation>
-			<xs:documentation>
-				Unordered list
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:simpleType name="OLStyle">
-		<xs:annotation>
-			<xs:documentation>
-				Ordered list numbering style
-
-				1 arabic numbers 1, 2,
-				3, ...
-				a lower alpha a, b, c, ...
-				A upper alpha A, B, C, ...
-				i lower
-				roman i, ii, iii, ...
-				I upper roman I, II, III, ...
-
-				The style is
-				applied to the sequence number which by default
-				is reset to 1 for the
-				first list item in an ordered list.
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:element name="ol" type="ol.content">
-		<xs:annotation>
-			<xs:documentation>
-				Ordered (numbered) list
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="menu" type="menu.content">
-		<xs:annotation>
-			<xs:documentation>
-				single column list (DEPRECATED)
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="dir" type="dir.content">
-		<xs:annotation>
-			<xs:documentation>
-				multiple column list (DEPRECATED)
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:simpleType name="LIStyle">
-		<xs:annotation>
-			<xs:documentation>
-				LIStyle is constrained to: "(ULStyle|OLStyle)"
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="cdk:elFreeformExpression" />
-	</xs:simpleType>
-
-	<xs:element name="li">
-		<xs:annotation>
-			<xs:documentation>
-				list item
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="type" type="LIStyle" />
-					<xs:attribute name="value" type="Number" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			definition lists - dt for term, dd for its
-			definition
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="dl" type="dl.content" />
-
-	<xs:element name="dt">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="dd">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Address
-			==========================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="address" type="address.content">
-		<xs:annotation>
-			<xs:documentation>
-				information on author
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Horizontal Rule
-			==================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="hr" type="hr.content">
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Preformatted Text
-			================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="pre">
-		<xs:annotation>
-			<xs:documentation>
-				content is "Inline" excluding
-				"img|object|applet|big|small|sub|sup|font|basefont"
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="pre.content">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="width" type="Number" />
-					<xs:attribute ref="xml:space" fixed="preserve" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Block-like Quotes
-			================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="blockquote">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="cite" type="URI" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Text alignment
-			===================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="center">
-		<xs:annotation>
-			<xs:documentation>
-				center content
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Inserted/Deleted Text
-			============================
-
-			ins/del are allowed in block and inline
-			content, but its
-			inappropriate to include block content within an ins
-			element
-			occurring in inline content.
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="ins">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="cite" type="URI" />
-					<xs:attribute name="datetime" type="Datetime" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="del">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="cite" type="URI" />
-					<xs:attribute name="datetime" type="Datetime" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			================== The Anchor Element
-			================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="a" type="a.content">
-		<xs:annotation>
-			<xs:documentation>
-				content is "Inline" except that anchors shouldn't
-				be nested
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			===================== Inline Elements
-			================================
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="span">
-		<xs:annotation>
-			<xs:documentation>
-				generic language/style container
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="bdo">
-		<xs:annotation>
-			<xs:documentation>
-				I18N BiDi over-ride
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="coreattrs" />
-					<xs:attributeGroup ref="events" />
-					<xs:attribute name="lang" type="LanguageCode" />
-					<xs:attribute ref="xml:lang" />
-					<xs:attribute name="dir" use="required">
-						<xs:simpleType>
-							<xs:union memberTypes="simpleType.dir cdk:elMixedExpression" />
-						</xs:simpleType>
-					</xs:attribute>
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="br" type="br.content">
-		<xs:annotation>
-			<xs:documentation>
-				forced line break
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="em">
-		<xs:annotation>
-			<xs:documentation>
-				emphasis
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="strong">
-		<xs:annotation>
-			<xs:documentation>
-				strong emphasis
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="dfn">
-		<xs:annotation>
-			<xs:documentation>
-				definitional
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="code">
-		<xs:annotation>
-			<xs:documentation>
-				program code
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="samp">
-		<xs:annotation>
-			<xs:documentation>
-				sample
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="kbd">
-		<xs:annotation>
-			<xs:documentation>
-				something user would type
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="var">
-		<xs:annotation>
-			<xs:documentation>
-				variable
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="cite">
-		<xs:annotation>
-			<xs:documentation>
-				citation
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="abbr">
-		<xs:annotation>
-			<xs:documentation>
-				abbreviation
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="acronym">
-		<xs:annotation>
-			<xs:documentation>
-				acronym
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="q">
-		<xs:annotation>
-			<xs:documentation>
-				inlined quote
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="cite" type="URI" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="sub">
-		<xs:annotation>
-			<xs:documentation>
-				subscript
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="sup">
-		<xs:annotation>
-			<xs:documentation>
-				superscript
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="tt">
-		<xs:annotation>
-			<xs:documentation>
-				fixed pitch font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="i">
-		<xs:annotation>
-			<xs:documentation>
-				italic font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="b">
-		<xs:annotation>
-			<xs:documentation>
-				bold font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="big">
-		<xs:annotation>
-			<xs:documentation>
-				bigger font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="small">
-		<xs:annotation>
-			<xs:documentation>
-				smaller font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="u">
-		<xs:annotation>
-			<xs:documentation>
-				underline
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="s">
-		<xs:annotation>
-			<xs:documentation>
-				strike-through
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="strike">
-		<xs:annotation>
-			<xs:documentation>
-				strike-through
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="basefont" type="basefont.content">
-		<xs:annotation>
-			<xs:documentation>
-				base font size
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="font">
-		<xs:annotation>
-			<xs:documentation>
-				local change to font
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="coreattrs" />
-					<xs:attributeGroup ref="i18n" />
-					<xs:attribute name="size" />
-					<xs:attribute name="color" type="Color" />
-					<xs:attribute name="face" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			==================== Object
-			======================================
-
-			object is used to embed objects
-			as part of HTML pages.
-			param elements should precede other content.
-			Parameters
-			can also be expressed as attribute/value pairs on the
-			object element itself when brevity is desired.
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="object" type="object.content" />
-
-	<xs:element name="param" type="param.content">
-		<xs:annotation>
-			<xs:documentation>
-				param is used to supply a named property value.
-				In
-				XML it would seem natural to follow RDF and support an
-				abbreviated
-				syntax where the param elements are replaced
-				by attribute value pairs
-				on the object start tag.
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Java applet
-			==================================
-
-			One of code or object attributes
-			must be present.
-			Place param elements before other content.
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="applet" type="applet.content">
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			=================== Images
-			===========================================
-
-			To avoid accessibility
-			problems for people who aren't
-			able to see the image, you should
-			provide a text
-			description using the alt and longdesc attributes.
-			In
-			addition, avoid the use of server-side image maps.
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="img" type="img.content">
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			================== Client-side image maps
-			============================
-
-			These can be placed in the same document
-			or grouped in a
-			separate document although this isn't yet widely
-			supported
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="map" type="map.content">
-	</xs:element>
-
-	<xs:element name="area" type="area.content">
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			================ Forms
-			===============================================
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="form">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="form.content">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="action" use="required" type="URI" />
-					<xs:attribute name="method" default="get">
-						<xs:simpleType>
-							<xs:union>
-								<xs:simpleType>
-									<xs:restriction base="xs:token">
-										<xs:enumeration value="get" />
-										<xs:enumeration value="post" />
-									</xs:restriction>
-								</xs:simpleType>
-								<xs:simpleType>
-									<xs:restriction base="cdk:elFreeformExpression" />
-								</xs:simpleType>
-							</xs:union>
-						</xs:simpleType>
-					</xs:attribute>
-					<xs:attribute name="enctype" type="ContentType"
-						default="application/x-www-form-urlencoded" />
-					<xs:attribute name="onsubmit" type="Script" />
-					<xs:attribute name="onreset" type="Script" />
-					<xs:attribute name="accept" type="ContentTypes" />
-					<xs:attribute name="accept-charset" type="Charsets" />
-					<xs:attribute name="target" type="FrameTarget" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="label">
-		<xs:annotation>
-			<xs:documentation>
-				Each label must not contain more than ONE field
-				Label elements shouldn't be nested.
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="for" type="IDREF" />
-					<xs:attribute name="accesskey" type="Character" />
-					<xs:attribute name="onfocus" type="Script" />
-					<xs:attribute name="onblur" type="Script" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:simpleType name="InputType">
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="text" />
-					<xs:enumeration value="password" />
-					<xs:enumeration value="checkbox" />
-					<xs:enumeration value="radio" />
-					<xs:enumeration value="submit" />
-					<xs:enumeration value="reset" />
-					<xs:enumeration value="file" />
-					<xs:enumeration value="hidden" />
-					<xs:enumeration value="image" />
-					<xs:enumeration value="button" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:attribute name="checked">
-		<xs:simpleType>
-			<xs:union>
-				<xs:simpleType>
-					<xs:restriction base="xs:token">
-						<xs:enumeration value="checked" />
-					</xs:restriction>
-				</xs:simpleType>
-				<xs:simpleType>
-					<xs:restriction base="cdk:elFreeformExpression" />
-				</xs:simpleType>
-			</xs:union>
-		</xs:simpleType>
-	</xs:attribute>
-	<xs:attribute name="disabled">
-		<xs:simpleType>
-			<xs:union>
-				<xs:simpleType>
-					<xs:restriction base="xs:token">
-						<xs:enumeration value="disabled" />
-					</xs:restriction>
-				</xs:simpleType>
-				<xs:simpleType>
-					<xs:restriction base="cdk:elFreeformExpression" />
-				</xs:simpleType>
-			</xs:union>
-		</xs:simpleType>
-	</xs:attribute>
-	<xs:attribute name="readonly">
-		<xs:simpleType>
-			<xs:union>
-				<xs:simpleType>
-					<xs:restriction base="xs:token">
-						<xs:enumeration value="readonly" />
-					</xs:restriction>
-				</xs:simpleType>
-				<xs:simpleType>
-					<xs:restriction base="cdk:elFreeformExpression" />
-				</xs:simpleType>
-			</xs:union>
-		</xs:simpleType>
-	</xs:attribute>
-
-	<xs:element name="input" type="input.content">
-		<xs:annotation>
-			<xs:documentation>
-				form control
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="select" type="select.content">
-		<xs:annotation>
-			<xs:documentation>
-				option selector
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="optgroup" type="optgroup.content">
-		<xs:annotation>
-			<xs:documentation>
-				option group
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="option" type="option.content">
-		<xs:annotation>
-			<xs:documentation>
-				selectable choice
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="textarea" type="textarea.content">
-		<xs:annotation>
-			<xs:documentation>
-				multi-line text field
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="fieldset" type="fieldset.content">
-		<xs:annotation>
-			<xs:documentation>
-				The fieldset element is used to group form fields.
-				Only one legend element should occur in the content
-				and if present
-				should only be preceded by whitespace.
-
-				NOTE: this content model is
-				different from the XHTML 1.0 DTD,
-				closer to the intended content
-				model in HTML4 DTD
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:simpleType name="LAlign">
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="top" />
-					<xs:enumeration value="bottom" />
-					<xs:enumeration value="left" />
-					<xs:enumeration value="right" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:element name="legend">
-		<xs:annotation>
-			<xs:documentation>
-				fieldset label
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="accesskey" type="Character" />
-					<xs:attribute name="align" type="LAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="button">
-		<xs:annotation>
-			<xs:documentation>
-				Content is "Flow" excluding a, form and form
-				controls
-      </xs:documentation>
-		</xs:annotation>
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="button.content">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attributeGroup ref="focus" />
-					<xs:attribute name="name" />
-					<xs:attribute name="value" />
-					<xs:attribute name="type" default="submit">
-						<xs:simpleType>
-							<xs:union>
-								<xs:simpleType>
-									<xs:restriction base="xs:token">
-										<xs:enumeration value="button" />
-										<xs:enumeration value="submit" />
-										<xs:enumeration value="reset" />
-									</xs:restriction>
-								</xs:simpleType>
-								<xs:simpleType>
-									<xs:restriction base="cdk:elFreeformExpression" />
-								</xs:simpleType>
-							</xs:union>
-						</xs:simpleType>
-					</xs:attribute>
-					<xs:attribute ref="disabled" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="isindex" type="isindex.content">
-		<xs:annotation>
-			<xs:documentation>
-				single-line text input control (DEPRECATED)
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			======================= Tables
-			=======================================
-
-			Derived from IETF HTML table
-			standard, see [RFC1942]
-    </xs:documentation>
-	</xs:annotation>
-
-	<xs:simpleType name="TFrame">
-		<xs:annotation>
-			<xs:documentation>
-				The border attribute sets the thickness of the
-				frame around the
-				table. The default units are screen pixels.
-
-				The frame
-				attribute specifies which parts of the frame around
-				the table should
-				be rendered. The values are not the same as
-				CALS to avoid a name
-				clash with the valign attribute.
-      </xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="void" />
-					<xs:enumeration value="above" />
-					<xs:enumeration value="below" />
-					<xs:enumeration value="hsides" />
-					<xs:enumeration value="lhs" />
-					<xs:enumeration value="rhs" />
-					<xs:enumeration value="vsides" />
-					<xs:enumeration value="box" />
-					<xs:enumeration value="border" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="TRules">
-		<xs:annotation>
-			<xs:documentation>
-				The rules attribute defines which rules to draw
-				between cells:
-
-				If rules is absent then assume:
-				"none" if border is
-				absent or border="0" otherwise "all"
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="none" />
-					<xs:enumeration value="groups" />
-					<xs:enumeration value="rows" />
-					<xs:enumeration value="cols" />
-					<xs:enumeration value="all" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:simpleType name="TAlign">
-		<xs:annotation>
-			<xs:documentation>
-				horizontal placement of table relative to document
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="left" />
-					<xs:enumeration value="center" />
-					<xs:enumeration value="right" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:attributeGroup name="cellhalign">
-		<xs:annotation>
-			<xs:documentation>
-				horizontal alignment attributes for cell contents
-
-				char alignment char, e.g. char=':'
-				charoff offset for alignment char
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="align">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="left" />
-							<xs:enumeration value="center" />
-							<xs:enumeration value="right" />
-							<xs:enumeration value="justify" />
-							<xs:enumeration value="char" />
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elFreeformExpression" />
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="char" type="Character" />
-		<xs:attribute name="charoff" type="Length" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="cellvalign">
-		<xs:annotation>
-			<xs:documentation>
-				vertical alignment attributes for cell contents
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="valign">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="top" />
-							<xs:enumeration value="middle" />
-							<xs:enumeration value="bottom" />
-							<xs:enumeration value="baseline" />
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elFreeformExpression" />
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<xs:element name="table" type="table.content">
-	</xs:element>
-
-	<xs:simpleType name="CAlign">
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="top" />
-					<xs:enumeration value="bottom" />
-					<xs:enumeration value="left" />
-					<xs:enumeration value="right" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elFreeformExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:element name="caption">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Inline">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="align" type="CAlign" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:annotation>
-		<xs:documentation>
-			Use thead to duplicate headers when breaking table
-			across page boundaries, or for static headers when
-			tbody sections are
-			rendered in scrolling panel.
-
-			Use tfoot to duplicate footers when
-			breaking table
-			across page boundaries, or for static footers when
-			tbody sections are rendered in scrolling panel.
-
-			Use multiple tbody
-			sections when rules are needed
-			between groups of table rows.
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:element name="thead" type="thead.content">
-	</xs:element>
-
-	<xs:element name="tfoot" type="tfoot.content">
-	</xs:element>
-
-	<xs:element name="tbody" type="tbody.content">
-	</xs:element>
-
-	<xs:element name="colgroup" type="colgroup.content">
-		<xs:annotation>
-			<xs:documentation>
-				colgroup groups a set of col elements. It allows
-				you to group
-				several semantically related columns together.
-			</xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="col" type="col.content">
-		<xs:annotation>
-			<xs:documentation>
-				col elements define the alignment properties for
-				cells in
-				one or more columns.
-
-				The width attribute specifies the width
-				of the columns, e.g.
-
-				width=64 width in screen pixels
-				width=0.5*
-				relative width of 0.5
-
-				The span attribute causes the attributes of one
-				col element to apply to more than one column.
-      </xs:documentation>
-		</xs:annotation>
-	</xs:element>
-
-	<xs:element name="tr" type="tr.content">
-	</xs:element>
-
-	<xs:simpleType name="Scope">
-		<xs:annotation>
-			<xs:documentation>
-				Scope is simpler than headers attribute for common
-				tables
-			</xs:documentation>
-		</xs:annotation>
-		<xs:union>
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="row" />
-					<xs:enumeration value="col" />
-					<xs:enumeration value="rowgroup" />
-					<xs:enumeration value="colgroup" />
-				</xs:restriction>
-			</xs:simpleType>
-			<xs:simpleType>
-				<xs:restriction base="cdk:elMixedExpression" />
-			</xs:simpleType>
-		</xs:union>
-	</xs:simpleType>
-
-	<xs:annotation>
-		<xs:documentation>
-			th is for headers, td for data and for cells acting
-			as both
-		</xs:documentation>
-	</xs:annotation>
-
-	<xs:attribute name="nowrap">
-		<xs:simpleType>
-			<xs:union>
-				<xs:simpleType>
-					<xs:restriction base="xs:token">
-						<xs:enumeration value="nowrap" />
-					</xs:restriction>
-				</xs:simpleType>
-				<xs:simpleType>
-					<xs:restriction base="cdk:elMixedExpression" />
-				</xs:simpleType>
-			</xs:union>
-		</xs:simpleType>
-	</xs:attribute>
-
-	<xs:element name="th">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="abbr" type="Text" />
-					<xs:attribute name="axis" />
-					<xs:attribute name="headers" type="IDREFS" />
-					<xs:attribute name="scope" type="Scope" />
-					<xs:attribute name="rowspan" default="1" type="Number" />
-					<xs:attribute name="colspan" default="1" type="Number" />
-					<xs:attributeGroup ref="cellhalign" />
-					<xs:attributeGroup ref="cellvalign" />
-					<xs:attribute ref="nowrap" />
-					<xs:attribute name="bgcolor" type="Color" />
-					<xs:attribute name="width" type="Length" />
-					<xs:attribute name="height" type="Length" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:element name="td">
-		<xs:complexType mixed="true">
-			<xs:complexContent>
-				<xs:extension base="Flow">
-					<xs:attributeGroup ref="attrs" />
-					<xs:attribute name="abbr" type="Text" />
-					<xs:attribute name="axis" />
-					<xs:attribute name="headers" type="IDREFS" />
-					<xs:attribute name="scope" type="Scope" />
-					<xs:attribute name="rowspan" default="1" type="Number" />
-					<xs:attribute name="colspan" default="1" type="Number" />
-					<xs:attributeGroup ref="cellhalign" />
-					<xs:attributeGroup ref="cellvalign" />
-					<xs:attribute ref="nowrap" />
-					<xs:attribute name="bgcolor" type="Color" />
-					<xs:attribute name="width" type="Length" />
-					<xs:attribute name="height" type="Length" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-	</xs:element>
-
-	<xs:complexType name="address.content" mixed="true">
-		<xs:group ref="address.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="address.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="inline"></xs:group>
-				<xs:group ref="misc.inline"></xs:group>
-				<xs:group ref="address.children.elements" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="address.children.elements">
-		<xs:choice>
-			<xs:element ref="p" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="applet.content" mixed="true">
-		<xs:group ref="applet.children" />
-		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
-		<xs:attribute name="codebase" type="URI"></xs:attribute>
-		<xs:attribute name="archive" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="code" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="object" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="alt" type="Text"></xs:attribute>
-		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
-		<xs:attribute use="required" name="width" type="Length"></xs:attribute>
-		<xs:attribute use="required" name="height" type="Length"></xs:attribute>
-		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
-		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
-		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="applet.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="param.element.group" />
-				<xs:group ref="block"></xs:group>
-				<xs:group ref="form.element.group" />
-				<xs:group ref="inline"></xs:group>
-				<xs:group ref="misc"></xs:group>
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="param.element.group">
-		<xs:choice>
-			<xs:element ref="param"></xs:element>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="area.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="focus"></xs:attributeGroup>
-		<xs:attribute default="rect" name="shape" type="Shape"></xs:attribute>
-		<xs:attribute name="coords" type="Coords"></xs:attribute>
-		<xs:attribute name="href" type="URI"></xs:attribute>
-		<xs:attribute name="nohref">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="nohref"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute use="required" name="alt" type="Text"></xs:attribute>
-		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="base.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute name="href" type="URI"></xs:attribute>
-		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="basefont.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attribute name="id" type="ID" />
-		<xs:attribute use="required" name="size" type="xs:anySimpleType" />
-		<xs:attribute name="color" type="Color" />
-		<xs:attribute name="face" type="xs:anySimpleType" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="br.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
-		<xs:attribute default="none" name="clear">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="left"></xs:enumeration>
-							<xs:enumeration value="all"></xs:enumeration>
-							<xs:enumeration value="right"></xs:enumeration>
-							<xs:enumeration value="none"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="col.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute default="1" name="span" type="Number"></xs:attribute>
-		<xs:attribute name="width" type="MultiLength"></xs:attribute>
-		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="colgroup.content">
-		<xs:group ref="colgroup.children" />
-		<xs:attributeGroup ref="attrs" />
-		<xs:attribute default="1" name="span" type="Number" />
-		<xs:attribute name="width" type="MultiLength" />
-		<xs:attributeGroup ref="cellhalign" />
-		<xs:attributeGroup ref="cellvalign" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:group name="colgroup.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="col" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-	<xs:complexType name="dir.content">
-		<xs:group ref="dir.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute ref="compact"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:group name="dir.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-	<xs:complexType name="dl.content">
-		<xs:group ref="dl.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute ref="compact"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="dl.children">
-		<xs:choice>
-			<xs:choice maxOccurs="unbounded">
-				<xs:element ref="dt" />
-				<xs:element ref="dd" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="fieldset.content" mixed="true">
-		<xs:group ref="fieldset.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="fieldset.children">
-		<xs:sequence>
-			<xs:group ref="legend.element.group" />
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="block"></xs:group>
-				<xs:group ref="form.element.group" />
-				<xs:group ref="inline"></xs:group>
-				<xs:group ref="misc"></xs:group>
-			</xs:choice>
-		</xs:sequence>
-	</xs:group>
-
-	<xs:group name="legend.element.group">
-		<xs:choice>
-			<xs:element ref="legend"></xs:element>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="head.content">
-		<xs:group ref="head.children" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute name="profile" type="URI"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="head.children">
-		<xs:sequence>
-			<xs:group ref="head.misc" />
-			<xs:choice>
-				<xs:sequence minOccurs="0">
-					<xs:element ref="title" />
-					<xs:group ref="head.misc" />
-					<xs:sequence minOccurs="0">
-						<xs:element ref="base" />
-						<xs:group ref="head.misc" />
-					</xs:sequence>
-				</xs:sequence>
-				<xs:sequence minOccurs="0">
-					<xs:element ref="base" />
-					<xs:group ref="head.misc" />
-					<xs:element ref="title" />
-					<xs:group ref="head.misc" />
-				</xs:sequence>
-			</xs:choice>
-		</xs:sequence>
-	</xs:group>
-
-	<xs:complexType name="hr.content">
-		<xs:attributeGroup ref="attrs" />
-		<xs:attribute name="align">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="left"></xs:enumeration>
-							<xs:enumeration value="center"></xs:enumeration>
-							<xs:enumeration value="right"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="noshade">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="noshade"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="size" type="Pixels"></xs:attribute>
-		<xs:attribute name="width" type="Length"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="html.content">
-		<xs:group ref="html.children" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:group name="html.children">
-		<xs:sequence>
-			<xs:element minOccurs="0" ref="head" />
-			<xs:group maxOccurs="unbounded" minOccurs="0" ref="cdk:structural" />
-			<xs:element minOccurs="0" ref="body" />
-		</xs:sequence>
-	</xs:group>
-	<xs:complexType name="img.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute use="required" name="src" type="URI"></xs:attribute>
-		<xs:attribute use="required" name="alt" type="Text"></xs:attribute>
-		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
-		<xs:attribute name="longdesc" type="URI"></xs:attribute>
-		<xs:attribute name="height" type="Length"></xs:attribute>
-		<xs:attribute name="width" type="Length"></xs:attribute>
-		<xs:attribute name="usemap" type="URI">
-			<xs:annotation></xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="ismap">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="ismap"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
-		<xs:attribute name="border" type="Length"></xs:attribute>
-		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
-		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="input.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="focus"></xs:attributeGroup>
-		<xs:attribute default="text" name="type" type="InputType"></xs:attribute>
-		<xs:attribute name="name" type="xs:anySimpleType">
-			<xs:annotation></xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute ref="checked"></xs:attribute>
-		<xs:attribute ref="disabled"></xs:attribute>
-		<xs:attribute ref="readonly"></xs:attribute>
-		<xs:attribute name="size" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="maxlength" type="Number"></xs:attribute>
-		<xs:attribute name="src" type="URI"></xs:attribute>
-		<xs:attribute name="alt" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="usemap" type="URI"></xs:attribute>
-		<xs:attribute name="onselect" type="Script"></xs:attribute>
-		<xs:attribute name="onchange" type="Script"></xs:attribute>
-		<xs:attribute name="accept" type="ContentTypes"></xs:attribute>
-		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="isindex.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="coreattrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="prompt" type="Text"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="link.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="charset" type="Charset"></xs:attribute>
-		<xs:attribute name="href" type="URI"></xs:attribute>
-		<xs:attribute name="hreflang" type="LanguageCode"></xs:attribute>
-		<xs:attribute name="type" type="ContentType"></xs:attribute>
-		<xs:attribute name="rel" type="LinkTypes"></xs:attribute>
-		<xs:attribute name="rev" type="LinkTypes"></xs:attribute>
-		<xs:attribute name="media" type="MediaDesc"></xs:attribute>
-		<xs:attribute name="target" type="FrameTarget"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="map.content">
-		<xs:group ref="map.children" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attributeGroup ref="events"></xs:attributeGroup>
-		<xs:attribute use="required" name="id" type="ID"></xs:attribute>
-		<xs:attribute name="class" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="style" type="StyleSheet"></xs:attribute>
-		<xs:attribute name="title" type="Text"></xs:attribute>
-		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="map.children">
-		<xs:choice>
-			<xs:choice maxOccurs="unbounded">
-				<xs:group ref="block"></xs:group>
-				<xs:group ref="form.element.group" />
-				<xs:group ref="misc"></xs:group>
-			</xs:choice>
-			<xs:group ref="area.element.group" maxOccurs="unbounded" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="area.element.group">
-		<xs:choice>
-			<xs:element ref="area" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="menu.content">
-		<xs:group ref="menu.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute ref="compact"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="menu.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="meta.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute name="http-equiv" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute use="required" name="content" type="xs:anySimpleType">
-		</xs:attribute>
-		<xs:attribute name="scheme" type="xs:anySimpleType"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="object.content" mixed="true">
-		<xs:group ref="object.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="declare">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="declare"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="classid" type="URI"></xs:attribute>
-		<xs:attribute name="codebase" type="URI"></xs:attribute>
-		<xs:attribute name="data" type="URI"></xs:attribute>
-		<xs:attribute name="type" type="ContentType"></xs:attribute>
-		<xs:attribute name="codetype" type="ContentType"></xs:attribute>
-		<xs:attribute name="archive" type="UriList"></xs:attribute>
-		<xs:attribute name="standby" type="Text"></xs:attribute>
-		<xs:attribute name="height" type="Length"></xs:attribute>
-		<xs:attribute name="width" type="Length"></xs:attribute>
-		<xs:attribute name="usemap" type="URI"></xs:attribute>
-		<xs:attribute name="name" type="NMTOKEN"></xs:attribute>
-		<xs:attribute name="tabindex" type="Number"></xs:attribute>
-		<xs:attribute name="align" type="ImgAlign"></xs:attribute>
-		<xs:attribute name="border" type="Pixels"></xs:attribute>
-		<xs:attribute name="hspace" type="Pixels"></xs:attribute>
-		<xs:attribute name="vspace" type="Pixels"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="object.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:group ref="object.children.elements" />
-				<xs:group ref="block" />
-				<xs:group ref="inline" />
-				<xs:group ref="misc" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:group name="object.children.elements">
-		<xs:choice>
-			<xs:element ref="param" />
-			<xs:element ref="form" />
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="ol.content">
-		<xs:group ref="ol.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="type" type="OLStyle"></xs:attribute>
-		<xs:attribute ref="compact"></xs:attribute>
-		<xs:attribute name="start" type="Number"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="ol.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="optgroup.content">
-		<xs:group ref="optgroup.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute ref="disabled"></xs:attribute>
-		<xs:attribute use="required" name="label" type="Text"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="optgroup.children">
-		<xs:sequence>
-			<xs:element minOccurs="0" maxOccurs="unbounded" ref="option" />
-			<xs:group ref="cdk:structural" />
-		</xs:sequence>
-	</xs:group>
-
-	<xs:complexType name="option.content" mixed="true">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="selected">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="selected"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute ref="disabled"></xs:attribute>
-		<xs:attribute name="label" type="Text"></xs:attribute>
-		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="param.content">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute use="required" name="name" type="xs:anySimpleType">
-		</xs:attribute>
-		<xs:attribute name="value" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute default="data" name="valuetype">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="data"></xs:enumeration>
-							<xs:enumeration value="ref"></xs:enumeration>
-							<xs:enumeration value="object"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="type" type="ContentType"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="script.content" mixed="true">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute name="charset" type="Charset"></xs:attribute>
-		<xs:attribute use="required" name="type" type="ContentType"></xs:attribute>
-		<xs:attribute name="language" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="src" type="URI"></xs:attribute>
-		<xs:attribute name="defer">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="defer"></xs:enumeration>
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression"></xs:restriction>
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute fixed="preserve" ref="xml:space"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="select.content">
-		<xs:group ref="select.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute name="size" type="Number"></xs:attribute>
-		<xs:attribute name="multiple">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:token">
-							<xs:enumeration value="multiple" />
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="cdk:elMixedExpression" />
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute ref="disabled"></xs:attribute>
-		<xs:attribute name="tabindex" type="tabindexNumber"></xs:attribute>
-		<xs:attribute name="onfocus" type="Script"></xs:attribute>
-		<xs:attribute name="onblur" type="Script"></xs:attribute>
-		<xs:attribute name="onchange" type="Script"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="select.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element ref="optgroup" />
-				<xs:element ref="option" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="style.content" mixed="true">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attribute use="required" name="type" type="ContentType"></xs:attribute>
-		<xs:attribute name="media" type="MediaDesc"></xs:attribute>
-		<xs:attribute name="title" type="Text"></xs:attribute>
-		<xs:attribute fixed="preserve" ref="xml:space"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="table.content">
-		<xs:group ref="table.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attribute name="summary" type="Text"></xs:attribute>
-		<xs:attribute name="width" type="Length"></xs:attribute>
-		<xs:attribute name="border" type="Pixels"></xs:attribute>
-		<xs:attribute name="frame" type="TFrame"></xs:attribute>
-		<xs:attribute name="rules" type="TRules"></xs:attribute>
-		<xs:attribute name="cellspacing" type="Length"></xs:attribute>
-		<xs:attribute name="cellpadding" type="Length"></xs:attribute>
-		<xs:attribute name="align" type="TAlign"></xs:attribute>
-		<xs:attribute name="bgcolor" type="Color"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="table.children">
-		<xs:sequence>
-			<xs:element minOccurs="0" ref="caption" />
-			<xs:choice>
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
-				<xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup" />
-			</xs:choice>
-			<xs:element minOccurs="0" ref="thead" />
-			<xs:element minOccurs="0" ref="tfoot" />
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:choice>
-					<xs:group ref="cdk:structural" />
-					<xs:element minOccurs="0" maxOccurs="unbounded" ref="tbody" />
-					<xs:element minOccurs="0" maxOccurs="unbounded" ref="tr" />
-				</xs:choice>
-			</xs:choice>
-		</xs:sequence>
-	</xs:group>
-
-	<xs:complexType name="tbody.content">
-		<xs:group ref="tbody.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="tbody.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="textarea.content" mixed="true">
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="focus"></xs:attributeGroup>
-		<xs:attribute name="name" type="xs:anySimpleType"></xs:attribute>
-		<xs:attribute use="required" name="rows" type="Number"></xs:attribute>
-		<xs:attribute use="required" name="cols" type="Number"></xs:attribute>
-		<xs:attribute ref="disabled"></xs:attribute>
-		<xs:attribute ref="readonly"></xs:attribute>
-		<xs:attribute name="onselect" type="Script"></xs:attribute>
-		<xs:attribute name="onchange" type="Script"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:complexType name="tfoot.content">
-		<xs:group ref="tfoot.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:group name="tfoot.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-	<xs:complexType name="thead.content">
-		<xs:group ref="thead.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-	<xs:group name="thead.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="tr" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-	<xs:complexType name="title.content" mixed="true">
-		<xs:group ref="cdk:structural" minOccurs="0" maxOccurs="unbounded" />
-		<xs:attributeGroup ref="i18n"></xs:attributeGroup>
-		<xs:attribute name="id" type="ID"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:complexType name="tr.content">
-		<xs:group ref="tr.children" />
-		<xs:attributeGroup ref="attrs"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellhalign"></xs:attributeGroup>
-		<xs:attributeGroup ref="cellvalign"></xs:attributeGroup>
-		<xs:attribute name="bgcolor" type="Color"></xs:attribute>
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="tr.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="th" />
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="td" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-
-	<xs:complexType name="ul.content">
-		<xs:group ref="ul.children" />
-		<xs:attributeGroup ref="attrs" />
-		<xs:attribute name="type" type="ULStyle" />
-		<xs:attribute ref="compact" />
-		<xs:attributeGroup ref="cdk:core.attrs" />
-	</xs:complexType>
-
-	<xs:group name="ul.children">
-		<xs:choice>
-			<xs:choice minOccurs="0" maxOccurs="unbounded">
-				<xs:element maxOccurs="unbounded" minOccurs="0" ref="li" />
-				<xs:group ref="cdk:structural" />
-			</xs:choice>
-		</xs:choice>
-	</xs:group>
-</xs:schema>



More information about the richfaces-svn-commits mailing list