JBoss Rich Faces SVN: r15135 - branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/includes.
by richfaces-svn-commits@lists.jboss.org
Author: msorokin
Date: 2009-08-07 13:45:14 -0400 (Fri, 07 Aug 2009)
New Revision: 15135
Modified:
branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/includes/usedComponents.xml
Log:
https://jira.jboss.org/jira/browse/RF-5768
Modified: branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/includes/usedComponents.xml
===================================================================
--- branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/includes/usedComponents.xml 2009-08-07 16:08:15 UTC (rev 15134)
+++ branches/community/3.3.X/docs/photo_album_app_guide/en/src/main/docbook/includes/usedComponents.xml 2009-08-07 17:45:14 UTC (rev 15135)
@@ -3,7 +3,7 @@
<?dbhtml filename="usedComponents.html"?>
<title>Used Components</title>
<para>
- Below there is a list of components used in <property>Photo Album</property>.
+ Have a look at the list of components used in the <property>Photo Album</property> application.
</para>
<table>
<title>Components used in "Photo Album Demo"</title>
15 years, 4 months
JBoss Rich Faces SVN: r15134 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2009-08-07 12:08:15 -0400 (Fri, 07 Aug 2009)
New Revision: 15134
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml
Log:
RF-7588: rich:contextMenu component description review
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml 2009-08-07 15:58:26 UTC (rev 15133)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/contextMenu.xml 2009-08-07 16:08:15 UTC (rev 15134)
@@ -42,9 +42,7 @@
<section>
<title>Creating the Component with a Page Tag</title>
<para>To create the simplest variant on a page use the following syntax:</para>
- <programlisting role="XML"><![CDATA[...
-<rich:contextMenu event="oncontextmenu" attached="true">
-...]]></programlisting>
+ <programlisting role="XML"><![CDATA[<rich:contextMenu />]]></programlisting>
</section>
<section>
@@ -68,33 +66,20 @@
</emphasis> event by default to call a context menu by clicking on the right mouse
button.</para>
- <para><property>
- <link linkend="menuGroup"><rich:menuGroup></link>
- </property>, <property>
- <link linkend="menuItem"><rich:menuItem></link>
- </property> and <property>
- <link linkend="menuSeparator"><rich:menuSeparator></link>
- </property> components are used as nested elements for <emphasis role="bold">
- <property><rich:contextMenu></property>
- </emphasis>in the same way as for <emphasis role="bold">
- <property><rich:dropDownMenu></property>
- </emphasis>. </para>
- <para>
- By default, the <emphasis role="bold"><property><rich:contextMenu></property></emphasis> completely disables
- right mouse click on a page in the context menu area only.
- But if you want to disable browser's context menu completely you should set the
- <emphasis><property>"disableDefaultMenu"</property></emphasis> attribute value to "true".
- </para>
- <para>If <emphasis><property>"attached"</property></emphasis> value is "true" (default value),
- component is attached to the parent component or to the component, which
- <emphasis><property>"id"</property></emphasis> is specified in the
- <emphasis><property>"attachTo"</property></emphasis> attribute.
- </para>
<para>
- <emphasis role="bold">Example:</emphasis>
+ <property><link linkend="menuGroup"><rich:menuGroup></link></property>, <property><link linkend="menuItem"><rich:menuItem></link></property> and <property><link linkend="menuSeparator"><rich:menuSeparator></link></property> components
+ can be used as nested elements for <emphasis role="bold"><property><rich:contextMenu></property></emphasis>in the same way as for <emphasis role="bold"><property><rich:dropDownMenu></property></emphasis>.
</para>
- <programlisting role="XML"><![CDATA[...
-<rich:contextMenu event="oncontextmenu" attachTo="pic1" submitMode="none">
+ <para>
+ By default, the <emphasis role="bold"><property><rich:contextMenu></property></emphasis> disables right mouse click on a page in the context menu area only.
+ But if you want to disable browser's context menu completely you should set the <emphasis><property>"disableDefaultMenu"</property></emphasis> attribute value to "true".
+ </para>
+ <para>
+ If <emphasis><property>"attached"</property></emphasis> value is "true" (default value), component is attached to the parent component or to the component,
+ which <emphasis><property>"id"</property></emphasis> is specified in the <emphasis><property>"attachTo"</property></emphasis> attribute:
+ </para>
+
+ <programlisting role="XML"><![CDATA[<rich:contextMenu event="oncontextmenu" attachTo="pic1" submitMode="none">
<rich:menuItem value="Zoom In" onclick="enlarge();" id="zin"/>
<rich:menuItem value="Zoom Out" onclick="decrease();" id="zout"/>
</rich:contextMenu>
@@ -107,13 +92,11 @@
<h:panelGroup id="picture1">
<h:graphicImage value="/richfaces/jQuery/images/pic2.png" id="pic1"/>
</h:panelGroup>
-</h:panelGrid>
-...]]></programlisting>
+</h:panelGrid>]]></programlisting>
<para>The <code>"enlarge()"</code> and
<code>"decrease()"</code> functions definition is placed
below.</para>
- <programlisting role="JAVA"><![CDATA[...
-<script type="text/javascript">
+ <programlisting role="JAVA"><![CDATA[<script type="text/javascript">
function enlarge(){
document.getElementById('pic').width=document.getElementById('pic').width*1.1;
document.getElementById('pic').height=document.getElementById('pic').height*1.1;
@@ -122,8 +105,7 @@
document.getElementById('pic').width=document.getElementById('pic').width*0.9;
document.getElementById('pic').height=document.getElementById('pic').height*0.9;
}
-</script>
-...]]></programlisting>
+</script>]]></programlisting>
<para>In the example a picture zooming possibility with <emphasis role="bold">
<property><rich:contextMenu></property>
@@ -262,23 +244,19 @@
<itemizedlist>
<listitem>
- <para><code>Server</code> (default)</para>
+ <para><code>Server</code> — default value, uses regular form submition request;</para>
</listitem>
</itemizedlist>
- <para>Regular form submition request is used</para>
-
<itemizedlist>
<listitem>
- <para><code>Ajax</code></para>
+ <para><code>Ajax</code> — Ajax submission is used for switching;</para>
</listitem>
</itemizedlist>
- <para>Ajax submission is used for switching</para>
-
<itemizedlist>
<listitem>
- <para><code>None</code></para>
+ <para><code>None</code> — neither <code>Server</code> nor <code>Ajax</code> is used.</para>
</listitem>
</itemizedlist>
@@ -575,9 +553,6 @@
</emphasis> components on a page using CSS, it's enough to create classes with the
same names (possible classes could be found in the tables <link linkend="cMC"> above</link>) and define necessary properties in them. </para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
<programlisting role="CSS"><![CDATA[...
.rich-menu-item{
font-style:italic;
@@ -601,9 +576,6 @@
><property><rich:contextMenu></property></emphasis> component. In this case you should create own style classes and use them in corresponding <emphasis role="bold"
><property><rich:contextMenu></property></emphasis> <emphasis><property>styleClass</property></emphasis> attributes. An example is placed below:</para>
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
<programlisting role="CSS"><![CDATA[...
.myClass{
font-weight:bold;
@@ -611,10 +583,7 @@
...]]></programlisting>
<para>The <emphasis><property>"rowClasses"</property></emphasis> attribute for <emphasis role="bold"
><property><h:panelGrid> </property></emphasis> is defined as it's shown in the example below:</para>
-
- <para>
- <emphasis role="bold">Example:</emphasis>
- </para>
+
<programlisting role="XML"><![CDATA[<h:panelGrid ... rowClasses="myClass"/>
]]></programlisting>
@@ -638,7 +607,7 @@
<section>
<title>Relevant Resources Links</title>
<para>
- Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/contextMenu.jsf?c=con...">ContextMenu page</ulink> at RichFaces LiveDemo fro examples of component usage and their sources.
+ Visit the <ulink url="http://livedemo.exadel.com/richfaces-demo/richfaces/contextMenu.jsf?c=con...">ContextMenu page</ulink> at RichFaces LiveDemo for examples of component usage and their sources.
</para>
</section>
15 years, 4 months
JBoss Rich Faces SVN: r15133 - branches/community/3.3.X/test-applications/facelets.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2009-08-07 11:58:26 -0400 (Fri, 07 Aug 2009)
New Revision: 15133
Modified:
branches/community/3.3.X/test-applications/facelets/pom.xml
Log:
corrected
Modified: branches/community/3.3.X/test-applications/facelets/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/facelets/pom.xml 2009-08-07 14:03:46 UTC (rev 15132)
+++ branches/community/3.3.X/test-applications/facelets/pom.xml 2009-08-07 15:58:26 UTC (rev 15133)
@@ -15,12 +15,6 @@
</build>
<dependencies>
<dependency>
- <groupId>com.sun.facelets</groupId>
- <artifactId>jsf-facelets</artifactId>
- <version>1.1.14</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
<version>1.0.b2</version>
15 years, 4 months
JBoss Rich Faces SVN: r15132 - in branches/community/3.3.X/test-applications/test-jsp: src/main/webapp/WEB-INF and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2009-08-07 10:03:46 -0400 (Fri, 07 Aug 2009)
New Revision: 15132
Modified:
branches/community/3.3.X/test-applications/test-jsp/pom.xml
branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/WEB-INF/web.xml
branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/combiModalPanel.jsp
branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/main.jsp
Log:
test-jsp should work under jboss 5.1.0.GA and tomcat 6.0.x
Modified: branches/community/3.3.X/test-applications/test-jsp/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/test-jsp/pom.xml 2009-08-07 13:40:41 UTC (rev 15131)
+++ branches/community/3.3.X/test-applications/test-jsp/pom.xml 2009-08-07 14:03:46 UTC (rev 15132)
@@ -13,16 +13,18 @@
<build>
<finalName>richfaces-test-jsp</finalName>
</build>
-<dependencies>
+<dependencies>
<dependency>
- <groupId>apache-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.0</version>
- </dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ <version>1.0.b2</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
- <groupId>myfaces</groupId>
- <artifactId>myfaces-extensions</artifactId>
- <version>1.0.9</version>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/WEB-INF/web.xml 2009-08-07 13:40:41 UTC (rev 15131)
+++ branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/WEB-INF/web.xml 2009-08-07 14:03:46 UTC (rev 15132)
@@ -7,7 +7,7 @@
<description>RichFaces JSP Project web.xml</description>
<context-param>
- <param-name>org.ajax4jsf.SKIN</param-name>
+ <param-name>org.richfaces.SKIN</param-name>
<param-value>#{pageContent.skin}</param-value>
</context-param>
@@ -99,42 +99,6 @@
</init-param>
</filter>
- <!-- Extensions Filter -->
- <filter>
- <filter-name>extensionsFilter</filter-name>
- <filter-class>
- org.apache.myfaces.component.html.util.ExtensionsFilter
- </filter-class>
- <init-param>
- <description>
- Set the size limit for uploaded files. Format: 10 - 10
- bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB
- </description>
- <param-name>uploadMaxFileSize</param-name>
- <param-value>100m</param-value>
- </init-param>
- <init-param>
- <description>
- Set the threshold size - files below this limit are
- stored in memory, files above this limit are stored on
- disk. Format: 10 - 10 bytes 10k - 10 KB 10m - 10 MB 1g -
- 1 GB
- </description>
- <param-name>uploadThresholdSize</param-name>
- <param-value>100k</param-value>
- </init-param>
-
- <init-param>
- <param-name>uploadRepositoryPath</param-name>
- <param-value>/temp</param-value>
- <description>
- Set the path where the intermediary files will be
- stored.
- </description>
- </init-param>
-
- </filter>
-
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
@@ -142,17 +106,8 @@
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
- </filter-mapping>
+ </filter-mapping>
- <filter-mapping>
- <filter-name>extensionsFilter</filter-name>
- <url-pattern>*.faces</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>extensionsFilter</filter-name>
- <url-pattern>/faces/*</url-pattern>
- </filter-mapping>
-
<session-config>
<session-timeout>500</session-timeout>
</session-config>
Modified: branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/combiModalPanel.jsp
===================================================================
--- branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/combiModalPanel.jsp 2009-08-07 13:40:41 UTC (rev 15131)
+++ branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/combiModalPanel.jsp 2009-08-07 14:03:46 UTC (rev 15132)
@@ -29,7 +29,7 @@
startStyle="color: red;"></a4j:status>
<a4j:outputPanel id="currentComponentInsideModalPanelID"
layout="block">
- <jsp:include page="#{pageContent.currentComponent}" />
+ <jsp:include page="${pageContent.currentComponent}" />
</a4j:outputPanel>
<a4j:commandButton reRender="currentComponentInsideModalPanelID"
value="reRender"></a4j:commandButton>
Modified: branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/main.jsp
===================================================================
--- branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/main.jsp 2009-08-07 13:40:41 UTC (rev 15131)
+++ branches/community/3.3.X/test-applications/test-jsp/src/main/webapp/applicationStructure/main.jsp 2009-08-07 14:03:46 UTC (rev 15132)
@@ -21,7 +21,7 @@
<rich:messages id="messagesID" showDetail="true" styleClass="error" />
<a4j:outputPanel id="componentID" layout="block">
- <jsp:include page="#{pageContent.currentComponent}" /></a4j:outputPanel>
+ <jsp:include page="${pageContent.currentComponent}" /></a4j:outputPanel>
<h:panelGrid columns="4" border="1">
<a4j:commandLink value="ManualGeneralAttribute" reRender="testPageID"
@@ -47,7 +47,7 @@
</h:panelGrid>
<a4j:outputPanel id="testPageID" layout="block"><jsp:include
- page="#{pageContent.currentTestPage}" /></a4j:outputPanel>
+ page="${pageContent.currentTestPage}" /></a4j:outputPanel>
</h:form>
</body>
</html>
15 years, 4 months
JBoss Rich Faces SVN: r15131 - root/cdk/trunk/plugins/generator/src/main/xsd.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2009-08-07 09:40:41 -0400 (Fri, 07 Aug 2009)
New Revision: 15131
Added:
root/cdk/trunk/plugins/generator/src/main/xsd/cdk-tags.xsd
Modified:
root/cdk/trunk/plugins/generator/src/main/xsd/xhtml1-transitional.xsd
Log:
XML Schema updated
Added: root/cdk/trunk/plugins/generator/src/main/xsd/cdk-tags.xsd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/xsd/cdk-tags.xsd (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/xsd/cdk-tags.xsd 2009-08-07 13:40:41 UTC (rev 15131)
@@ -0,0 +1,59 @@
+<?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:attributeGroup name="core.attrs">
+ <xs:attribute name="passThrough" />
+ </xs:attributeGroup>
+
+ <xs:element name="root">
+ <xs:complexType mixed="true">
+ <xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+ </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 name="if">
+ <xs:complexType mixed="true">
+ <xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+ </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:choice>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="otherwise">
+ <xs:complexType>
+ <xs:choice>
+ <xs:any minOccurs="0" maxOccurs="unbounded" />
+ </xs:choice>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+
+
+</xs:schema>
Modified: root/cdk/trunk/plugins/generator/src/main/xsd/xhtml1-transitional.xsd
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/xsd/xhtml1-transitional.xsd 2009-08-07 13:01:39 UTC (rev 15130)
+++ root/cdk/trunk/plugins/generator/src/main/xsd/xhtml1-transitional.xsd 2009-08-07 13:40:41 UTC (rev 15131)
@@ -1,3011 +1,3384 @@
-<?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">
-
- <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="elOnlyExpression">
- <xs:restriction base="xs:string">
- <xs:pattern value=".*#\{[^\}]+\}.*" />
- </xs:restriction>
- </xs:simpleType>
-
- <xs:simpleType name="elExpression">
- <xs:restriction base="xs:string" />
- </xs:simpleType>
-
- <xs:simpleType name="ContentType">
- <xs:annotation>
- <xs:documentation>
- media type, as per [RFC2045]
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </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="elExpression"/>
- </xs:simpleType>
-
- <xs:simpleType name="Charset">
- <xs:annotation>
- <xs:documentation>
- a character encoding, as per [RFC2045]
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </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="elExpression"/>
- </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 elOnlyExpression" />
- </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="elOnlyExpression"/>
- </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 elOnlyExpression" />
- </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="elOnlyExpression"/>
- </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 elOnlyExpression" />
- </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="elOnlyExpression"/>
- </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 elOnlyExpression"/>
- </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="elExpression"/>
- </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 elOnlyExpression"/>
- </xs:simpleType>
-
- <xs:simpleType name="Script">
- <xs:annotation>
- <xs:documentation>
- script expression
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </xs:simpleType>
-
- <xs:simpleType name="StyleSheet">
- <xs:annotation>
- <xs:documentation>
- style sheet data
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </xs:simpleType>
-
- <xs:simpleType name="Text">
- <xs:annotation>
- <xs:documentation>
- used for titles etc.
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression" />
- </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 elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
-
- <xs:simpleType name="ID">
- <xs:union memberTypes="xs:ID elOnlyExpression"/>
- </xs:simpleType>
- <xs:simpleType name="IDREF">
- <xs:union memberTypes="xs:IDREF elOnlyExpression"/>
- </xs:simpleType>
- <xs:simpleType name="IDREFS">
- <xs:union memberTypes="xs:IDREFS elOnlyExpression"/>
- </xs:simpleType>
- <xs:simpleType name="NMTOKEN">
- <xs:union memberTypes="xs:NMTOKEN elOnlyExpression"/>
- </xs:simpleType>
- <xs:simpleType name="NMTOKENS">
- <xs:union memberTypes="xs:NMTOKENS elOnlyExpression"/>
- </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 elOnlyExpression" />
- </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="elOnlyExpression"/>
- </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: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:element ref="noscript"/>
- <xs:group ref="misc.inline"/>
- </xs:choice>
- </xs:group>
-
- <xs:group name="inline">
- <xs:choice>
- <xs:element ref="a"/>
- <xs:group ref="special"/>
- <xs:group ref="fontstyle"/>
- <xs:group ref="phrase"/>
- <xs:group ref="inline.forms"/>
- </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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="inline"/>
- <xs:group ref="misc.inline"/>
- </xs:choice>
- </xs:complexType>
-
- <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:element ref="p"/>
- <xs:group ref="heading"/>
- <xs:element ref="div"/>
- <xs:group ref="lists"/>
- <xs:group ref="blocktext"/>
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="block"/>
- <xs:element ref="form"/>
- <xs:group ref="inline"/>
- <xs:group ref="misc"/>
- </xs:choice>
- </xs:complexType>
-
- <xs:annotation>
- <xs:documentation>
- ================== Content models for exclusions =====================
- </xs:documentation>
- </xs:annotation>
-
- <xs:complexType name="a.content" mixed="true">
- <xs:annotation>
- <xs:documentation>
- a elements use "Inline" excluding a
- </xs:documentation>
- </xs:annotation>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="special"/>
- <xs:group ref="fontstyle"/>
- <xs:group ref="phrase"/>
- <xs:group ref="inline.forms"/>
- <xs:group ref="misc.inline"/>
- </xs:choice>
- </xs:complexType>
-
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="a"/>
- <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:complexType>
-
- <xs:complexType name="form.content" mixed="true">
- <xs:annotation>
- <xs:documentation>
- form uses "Flow" excluding form
- </xs:documentation>
- </xs:annotation>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="block"/>
- <xs:group ref="inline"/>
- <xs:group ref="misc"/>
- </xs:choice>
- </xs:complexType>
-
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="p"/>
- <xs:group ref="heading"/>
- <xs:element ref="div"/>
- <xs:group ref="lists"/>
- <xs:group ref="blocktext"/>
- <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:group ref="fontstyle"/>
- <xs:group ref="phrase"/>
- <xs:group ref="misc"/>
- </xs:choice>
- </xs:complexType>
-
- <xs:annotation>
- <xs:documentation>
- ================ Document Structure ==================================
- </xs:documentation>
- </xs:annotation>
-
- <xs:element name="html">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="head"/>
- <xs:element ref="body"/>
- </xs:sequence>
- <xs:attributeGroup ref="i18n"/>
- <xs:attribute name="id" type="ID"/>
- </xs:complexType>
- </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: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">
- <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:complexType>
- <xs:sequence>
- <xs:group ref="head.misc"/>
- <xs:choice>
- <xs:sequence>
- <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>
- <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:attributeGroup ref="i18n"/>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="profile" type="URI"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="title">
- <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:complexType mixed="true">
- <xs:attributeGroup ref="i18n"/>
- <xs:attribute name="id" type="ID"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="base">
- <xs:annotation>
- <xs:documentation>
- document base URI
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="href" type="URI"/>
- <xs:attribute name="target" type="FrameTarget"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="meta">
- <xs:annotation>
- <xs:documentation>
- generic metainformation
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="i18n"/>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="http-equiv"/>
- <xs:attribute name="name"/>
- <xs:attribute name="content" use="required"/>
- <xs:attribute name="scheme"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="link">
- <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:complexType>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="charset" type="Charset"/>
- <xs:attribute name="href" type="URI"/>
- <xs:attribute name="hreflang" type="LanguageCode"/>
- <xs:attribute name="type" type="ContentType"/>
- <xs:attribute name="rel" type="LinkTypes"/>
- <xs:attribute name="rev" type="LinkTypes"/>
- <xs:attribute name="media" type="MediaDesc"/>
- <xs:attribute name="target" type="FrameTarget"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="style">
- <xs:annotation>
- <xs:documentation>
- style info, which may include CDATA sections
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:attributeGroup ref="i18n"/>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="type" use="required" type="ContentType"/>
- <xs:attribute name="media" type="MediaDesc"/>
- <xs:attribute name="title" type="Text"/>
- <xs:attribute ref="xml:space" fixed="preserve"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="script">
- <xs:annotation>
- <xs:documentation>
- script statements, which may include CDATA sections
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="charset" type="Charset"/>
- <xs:attribute name="type" use="required" type="ContentType"/>
- <xs:attribute name="language"/>
- <xs:attribute name="src" type="URI"/>
- <xs:attribute name="defer">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="defer"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute ref="xml:space" fixed="preserve"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:element name="ul">
- <xs:annotation>
- <xs:documentation>
- Unordered list
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="li"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="type" type="ULStyle"/>
- <xs:attribute ref="compact" />
- </xs:complexType>
- </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="elExpression"/>
- </xs:simpleType>
-
- <xs:element name="ol">
- <xs:annotation>
- <xs:documentation>
- Ordered (numbered) list
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="li"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="type" type="OLStyle"/>
- <xs:attribute ref="compact" />
- <xs:attribute name="start" type="Number"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="menu">
- <xs:annotation>
- <xs:documentation>
- single column list (DEPRECATED)
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="li"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute ref="compact" />
- </xs:complexType>
- </xs:element>
-
- <xs:element name="dir">
- <xs:annotation>
- <xs:documentation>
- multiple column list (DEPRECATED)
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="li"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute ref="compact" />
- </xs:complexType>
- </xs:element>
-
- <xs:simpleType name="LIStyle">
- <xs:annotation>
- <xs:documentation>
- LIStyle is constrained to: "(ULStyle|OLStyle)"
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="elExpression"/>
- </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">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element ref="dt"/>
- <xs:element ref="dd"/>
- </xs:choice>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute ref="compact" />
- </xs:complexType>
- </xs:element>
-
- <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">
- <xs:annotation>
- <xs:documentation>
- information on author
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="inline"/>
- <xs:group ref="misc.inline"/>
- <xs:element ref="p"/>
- </xs:choice>
- <xs:attributeGroup ref="attrs"/>
- </xs:complexType>
- </xs:element>
-
- <xs:annotation>
- <xs:documentation>
- =================== Horizontal Rule ==================================
- </xs:documentation>
- </xs:annotation>
-
- <xs:element name="hr">
- <xs:complexType>
- <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 value="center"/>
- <xs:enumeration value="right"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </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:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="size" type="Pixels"/>
- <xs:attribute name="width" type="Length"/>
- </xs:complexType>
- </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">
- <xs:annotation>
- <xs:documentation>
- content is "Inline" except that anchors shouldn't be nested
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:complexContent>
- <xs:extension base="a.content">
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="focus"/>
- <xs:attribute name="charset" type="Charset"/>
- <xs:attribute name="type" type="ContentType"/>
- <xs:attribute name="name" type="NMTOKEN"/>
- <xs:attribute name="href" type="URI"/>
- <xs:attribute name="hreflang" type="LanguageCode"/>
- <xs:attribute name="rel" type="LinkTypes"/>
- <xs:attribute name="rev" type="LinkTypes"/>
- <xs:attribute name="shape" default="rect" type="Shape"/>
- <xs:attribute name="coords" type="Coords"/>
- <xs:attribute name="target" type="FrameTarget"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </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 elOnlyExpression" />
- </xs:simpleType>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="br">
- <xs:annotation>
- <xs:documentation>
- forced line break
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="coreattrs"/>
- <xs:attribute name="clear" default="none">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="left"/>
- <xs:enumeration value="all"/>
- <xs:enumeration value="right"/>
- <xs:enumeration value="none"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- </xs:complexType>
- </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">
- <xs:annotation>
- <xs:documentation>
- base font size
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="size" use="required"/>
- <xs:attribute name="color" type="Color"/>
- <xs:attribute name="face"/>
- </xs:complexType>
- </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">
- <xs:complexType mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="param"/>
- <xs:group ref="block"/>
- <xs:element ref="form"/>
- <xs:group ref="inline"/>
- <xs:group ref="misc"/>
- </xs:choice>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="declare">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="declare"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="classid" type="URI"/>
- <xs:attribute name="codebase" type="URI"/>
- <xs:attribute name="data" type="URI"/>
- <xs:attribute name="type" type="ContentType"/>
- <xs:attribute name="codetype" type="ContentType"/>
- <xs:attribute name="archive" type="UriList"/>
- <xs:attribute name="standby" type="Text"/>
- <xs:attribute name="height" type="Length"/>
- <xs:attribute name="width" type="Length"/>
- <xs:attribute name="usemap" type="URI"/>
- <xs:attribute name="name" type="NMTOKEN"/>
- <xs:attribute name="tabindex" type="Number"/>
- <xs:attribute name="align" type="ImgAlign"/>
- <xs:attribute name="border" type="Pixels"/>
- <xs:attribute name="hspace" type="Pixels"/>
- <xs:attribute name="vspace" type="Pixels"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="param">
- <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:complexType>
- <xs:attribute name="id" type="ID"/>
- <xs:attribute name="name" use="required"/>
- <xs:attribute name="value"/>
- <xs:attribute name="valuetype" default="data">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="data"/>
- <xs:enumeration value="ref"/>
- <xs:enumeration value="object"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="type" type="ContentType"/>
- </xs:complexType>
- </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">
- <xs:complexType mixed="true">
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="param"/>
- <xs:group ref="block"/>
- <xs:element ref="form"/>
- <xs:group ref="inline"/>
- <xs:group ref="misc"/>
- </xs:choice>
- <xs:attributeGroup ref="coreattrs"/>
- <xs:attribute name="codebase" type="URI"/>
- <xs:attribute name="archive"/>
- <xs:attribute name="code"/>
- <xs:attribute name="object"/>
- <xs:attribute name="alt" type="Text"/>
- <xs:attribute name="name" type="NMTOKEN"/>
- <xs:attribute name="width" use="required" type="Length"/>
- <xs:attribute name="height" use="required" type="Length"/>
- <xs:attribute name="align" type="ImgAlign"/>
- <xs:attribute name="hspace" type="Pixels"/>
- <xs:attribute name="vspace" type="Pixels"/>
- </xs:complexType>
- </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">
- <xs:complexType>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="src" use="required" type="URI"/>
- <xs:attribute name="alt" use="required" type="Text"/>
- <xs:attribute name="name" type="NMTOKEN"/>
- <xs:attribute name="longdesc" type="URI"/>
- <xs:attribute name="height" type="Length"/>
- <xs:attribute name="width" type="Length"/>
- <xs:attribute name="usemap" type="URI">
- <xs:annotation>
- <xs:documentation>
- usemap points to a map element which may be in this document
- or an external document, although the latter is not widely supported
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="ismap">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="ismap"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="align" type="ImgAlign"/>
- <xs:attribute name="border" type="Length"/>
- <xs:attribute name="hspace" type="Pixels"/>
- <xs:attribute name="vspace" type="Pixels"/>
- </xs:complexType>
- </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">
- <xs:complexType>
- <xs:choice>
- <xs:choice maxOccurs="unbounded">
- <xs:group ref="block"/>
- <xs:element ref="form"/>
- <xs:group ref="misc"/>
- </xs:choice>
- <xs:element maxOccurs="unbounded" ref="area"/>
- </xs:choice>
- <xs:attributeGroup ref="i18n"/>
- <xs:attributeGroup ref="events"/>
- <xs:attribute name="id" use="required" type="ID"/>
- <xs:attribute name="class"/>
- <xs:attribute name="style" type="StyleSheet"/>
- <xs:attribute name="title" type="Text"/>
- <xs:attribute name="name"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="area">
- <xs:complexType>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="focus"/>
- <xs:attribute name="shape" default="rect" type="Shape"/>
- <xs:attribute name="coords" type="Coords"/>
- <xs:attribute name="href" type="URI"/>
- <xs:attribute name="nohref">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="nohref"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="alt" use="required" type="Text"/>
- <xs:attribute name="target" type="FrameTarget"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:element name="input">
- <xs:annotation>
- <xs:documentation>
- form control
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="focus"/>
- <xs:attribute name="type" default="text" type="InputType"/>
- <xs:attribute name="name">
- <xs:annotation>
- <xs:documentation>
- the name attribute is required for all but submit & reset
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="value"/>
- <xs:attribute ref="checked" />
- <xs:attribute ref="disabled" />
- <xs:attribute ref="readonly" />
- <xs:attribute name="size"/>
- <xs:attribute name="maxlength" type="Number"/>
- <xs:attribute name="src" type="URI"/>
- <xs:attribute name="alt"/>
- <xs:attribute name="usemap" type="URI"/>
- <xs:attribute name="onselect" type="Script"/>
- <xs:attribute name="onchange" type="Script"/>
- <xs:attribute name="accept" type="ContentTypes"/>
- <xs:attribute name="align" type="ImgAlign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="select">
- <xs:annotation>
- <xs:documentation>
- option selector
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element ref="optgroup"/>
- <xs:element ref="option"/>
- </xs:choice>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="name"/>
- <xs:attribute name="size" type="Number"/>
- <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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute ref="disabled" />
- <xs:attribute name="tabindex" type="tabindexNumber"/>
- <xs:attribute name="onfocus" type="Script"/>
- <xs:attribute name="onblur" type="Script"/>
- <xs:attribute name="onchange" type="Script"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="optgroup">
- <xs:annotation>
- <xs:documentation>
- option group
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="option"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute ref="disabled" />
- <xs:attribute name="label" use="required" type="Text"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="option">
- <xs:annotation>
- <xs:documentation>
- selectable choice
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="selected">
- <xs:simpleType>
- <xs:union>
- <xs:simpleType>
- <xs:restriction base="xs:token">
- <xs:enumeration value="selected"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType>
- <xs:restriction base="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute ref="disabled" />
- <xs:attribute name="label" type="Text"/>
- <xs:attribute name="value"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="textarea">
- <xs:annotation>
- <xs:documentation>
- multi-line text field
- </xs:documentation>
- </xs:annotation>
- <xs:complexType mixed="true">
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="focus"/>
- <xs:attribute name="name"/>
- <xs:attribute name="rows" use="required" type="Number"/>
- <xs:attribute name="cols" use="required" type="Number"/>
- <xs:attribute ref="disabled" />
- <xs:attribute ref="readonly" />
- <xs:attribute name="onselect" type="Script"/>
- <xs:attribute name="onchange" type="Script"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="fieldset">
- <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:complexType mixed="true">
- <xs:sequence>
- <xs:element ref="legend"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:group ref="block"/>
- <xs:element ref="form"/>
- <xs:group ref="inline"/>
- <xs:group ref="misc"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute ref="disabled" />
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="isindex">
- <xs:annotation>
- <xs:documentation>
- single-line text input control (DEPRECATED)
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="coreattrs"/>
- <xs:attributeGroup ref="i18n"/>
- <xs:attribute name="prompt" type="Text"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
- </xs:attributeGroup>
-
- <xs:element name="table">
- <xs:complexType>
- <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>
- <xs:element maxOccurs="unbounded" ref="tbody"/>
- <xs:element maxOccurs="unbounded" ref="tr"/>
- </xs:choice>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="summary" type="Text"/>
- <xs:attribute name="width" type="Length"/>
- <xs:attribute name="border" type="Pixels"/>
- <xs:attribute name="frame" type="TFrame"/>
- <xs:attribute name="rules" type="TRules"/>
- <xs:attribute name="cellspacing" type="Length"/>
- <xs:attribute name="cellpadding" type="Length"/>
- <xs:attribute name="align" type="TAlign"/>
- <xs:attribute name="bgcolor" type="Color"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="tr"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="tfoot">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="tr"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="tbody">
- <xs:complexType>
- <xs:sequence>
- <xs:element maxOccurs="unbounded" ref="tr"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="colgroup">
- <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:complexType>
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
- </xs:sequence>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="span" default="1" type="Number"/>
- <xs:attribute name="width" type="MultiLength"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="col">
- <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:complexType>
- <xs:attributeGroup ref="attrs"/>
- <xs:attribute name="span" default="1" type="Number"/>
- <xs:attribute name="width" type="MultiLength"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="tr">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element ref="th"/>
- <xs:element ref="td"/>
- </xs:choice>
- <xs:attributeGroup ref="attrs"/>
- <xs:attributeGroup ref="cellhalign"/>
- <xs:attributeGroup ref="cellvalign"/>
- <xs:attribute name="bgcolor" type="Color"/>
- </xs:complexType>
- </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="elOnlyExpression"/>
- </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="elOnlyExpression"/>
- </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:schema>
+<?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.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="elOnlyExpression">
+ <xs:restriction base="xs:string">
+ <xs:pattern value=".*#\{[^\}]+\}.*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="elExpression">
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="ContentType">
+ <xs:annotation>
+ <xs:documentation>
+ media type, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="elExpression" />
+ </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="elExpression" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Charset">
+ <xs:annotation>
+ <xs:documentation>
+ a character encoding, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="elExpression" />
+ </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="elExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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 elOnlyExpression" />
+ </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="elExpression" />
+ </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 elOnlyExpression" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Script">
+ <xs:annotation>
+ <xs:documentation>
+ script expression
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="elExpression" />
+ </xs:simpleType>
+
+ <xs:simpleType name="StyleSheet">
+ <xs:annotation>
+ <xs:documentation>
+ style sheet data
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="elExpression" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Text">
+ <xs:annotation>
+ <xs:documentation>
+ used for titles etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="elExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+
+ <!-- TODO: add constraints -->
+ <xs:simpleType name="ID">
+ <xs:union memberTypes="xs:ID elOnlyExpression" />
+ </xs:simpleType>
+ <xs:simpleType name="IDREF">
+ <xs:union memberTypes="xs:IDREF elOnlyExpression" />
+ </xs:simpleType>
+ <xs:simpleType name="IDREFS">
+ <xs:union memberTypes="xs:IDREFS elOnlyExpression" />
+ </xs:simpleType>
+ <xs:simpleType name="NMTOKEN">
+ <xs:union memberTypes="xs:NMTOKEN elOnlyExpression" />
+ </xs:simpleType>
+ <xs:simpleType name="NMTOKENS">
+ <xs:union memberTypes="xs:NMTOKENS elOnlyExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elExpression" />
+ </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="elExpression" />
+ </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 elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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="elOnlyExpression" />
+ </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: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="elOnlyExpression"></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: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: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: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="elOnlyExpression"></xs:restriction>
+ </xs:simpleType>
+ </xs:union>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="cdk:core.attrs" />
+ </xs:complexType>
+ <xs:complexType name="col.content">
+ <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="elOnlyExpression"></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="elOnlyExpression"></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: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="elOnlyExpression"></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: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: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: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: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="elOnlyExpression"></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: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="elOnlyExpression"></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: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="elOnlyExpression"></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: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="elOnlyExpression"></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:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType>
+ <xs:restriction base="elOnlyExpression"></xs:restriction>
+ </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: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: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>
15 years, 4 months
JBoss Rich Faces SVN: r15130 - in branches/community/3.3.X/test-applications/facelets: src/main/webapp/WEB-INF and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2009-08-07 09:01:39 -0400 (Fri, 07 Aug 2009)
New Revision: 15130
Modified:
branches/community/3.3.X/test-applications/facelets/pom.xml
branches/community/3.3.X/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
branches/community/3.3.X/test-applications/facelets/src/main/webapp/pages/Rich/Rich.xhtml
Log:
facelets should work under jboss 5.1.0.GA and tomcat 6.0.x
Modified: branches/community/3.3.X/test-applications/facelets/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/facelets/pom.xml 2009-08-07 12:40:17 UTC (rev 15129)
+++ branches/community/3.3.X/test-applications/facelets/pom.xml 2009-08-07 13:01:39 UTC (rev 15130)
@@ -13,5 +13,29 @@
<build>
<finalName>richfaces-test-facelets</finalName>
</build>
-
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.facelets</groupId>
+ <artifactId>jsf-facelets</artifactId>
+ <version>1.1.14</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ <version>1.0.b2</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.facelets</groupId>
+ <artifactId>jsf-facelets</artifactId>
+ <version>1.1.15.B1</version>
+ </dependency>
+</dependencies>
</project>
\ No newline at end of file
Modified: branches/community/3.3.X/test-applications/facelets/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/3.3.X/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2009-08-07 12:40:17 UTC (rev 15129)
+++ branches/community/3.3.X/test-applications/facelets/src/main/webapp/WEB-INF/web.xml 2009-08-07 13:01:39 UTC (rev 15130)
@@ -68,6 +68,10 @@
</param-name>
<param-value>true</param-value>
</context-param>
+ <context-param>
+ <param-name>facelets.LIBRARIES</param-name>
+ <param-value>/WEB-INF/myTags.taglib.xml</param-value>
+ </context-param>
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
@@ -89,6 +93,12 @@
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
+ <listener>
+ <listener-class>
+ com.sun.faces.config.ConfigureListener
+ </listener-class>
+ </listener>
+
<session-config>
<session-timeout>500</session-timeout>
</session-config>
Modified: branches/community/3.3.X/test-applications/facelets/src/main/webapp/pages/Rich/Rich.xhtml
===================================================================
--- branches/community/3.3.X/test-applications/facelets/src/main/webapp/pages/Rich/Rich.xhtml 2009-08-07 12:40:17 UTC (rev 15129)
+++ branches/community/3.3.X/test-applications/facelets/src/main/webapp/pages/Rich/Rich.xhtml 2009-08-07 13:01:39 UTC (rev 15130)
@@ -23,7 +23,7 @@
}
</script>
<link rel="stylesheet"
- href="#{facesContext.externalContext.requestContextPath}/styles/styles_.css"
+ href="${facesContext.externalContext.requestContextPath}/styles/styles_.css"
type="text/css" />
</head>
<body>
15 years, 4 months
JBoss Rich Faces SVN: r15129 - branches/community/3.3.X/docs/userguide/en/src/main/docbook/included.
by richfaces-svn-commits@lists.jboss.org
Author: smukhina
Date: 2009-08-07 08:40:17 -0400 (Fri, 07 Aug 2009)
New Revision: 15129
Modified:
branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml
Log:
https://jira.jboss.org/jira/browse/RF-7662 scrollableDataTable: JS API collapse(columnId) removed from docs
Modified: branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml
===================================================================
--- branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml 2009-08-07 12:04:00 UTC (rev 15128)
+++ branches/community/3.3.X/docs/userguide/en/src/main/docbook/included/scrollableDataTable.xml 2009-08-07 12:40:17 UTC (rev 15129)
@@ -77,8 +77,8 @@
</emphasis> also has optional footer and header that could be
implemented using the corresponding facets. Columns of the table are
optionally resizable. Resizing is available using "drag and drop" of
- the column vertical borders. There is possibility to expand or
- collapse the columns through JS API on the client side. You can define
+ the column vertical borders. <!--There is possibility to expand or
+ collapse the columns through JS API on the client side. -->You can define
the number of the fixed columns from the left side using attribute <emphasis>
<property>"frozenColCount"</property>
</emphasis> that is not scrolled via horizontal scroll. </para>
@@ -103,14 +103,14 @@
</itemizedlist>
- <para> The columns provides the possibility of expanding/collapsing on the
+ <!--para> The columns provides the possibility of expanding/collapsing on the
client side through the next JS API:</para> <itemizedlist>
<listitem>
<para><code>collapse(columnId)</code> - Performs
the collapse action for the column with
the corresponding id</para>
</listitem>
- </itemizedlist>
+ </itemizedlist-->
<para> It's possible to sort the table content after
clicks on the header. The feature is optional (to disable it, use attribute sortable on rich:column ). Every column should be
pointed to the comparator method that is used for sorting the table.
@@ -296,7 +296,7 @@
</section>
- <section>
+ <!--section>
<title>JavaScript API</title>
<table>
<title>JavaScript API</title>
@@ -324,7 +324,7 @@
</tgroup>
</table>
- </section>
+ </section-->
<section>
<title>Facets</title>
15 years, 4 months
JBoss Rich Faces SVN: r15128 - in branches/community/3.3.X/test-applications/jsp: src/main/webapp/WEB-INF and 1 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2009-08-07 08:04:00 -0400 (Fri, 07 Aug 2009)
New Revision: 15128
Modified:
branches/community/3.3.X/test-applications/jsp/pom.xml
branches/community/3.3.X/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
branches/community/3.3.X/test-applications/jsp/src/main/webapp/pages/Rich/Rich.jsp
Log:
jsp should be successfully launched under jboss 5.1.0.GA and tomcat 6.0.x
Modified: branches/community/3.3.X/test-applications/jsp/pom.xml
===================================================================
--- branches/community/3.3.X/test-applications/jsp/pom.xml 2009-08-07 04:19:41 UTC (rev 15127)
+++ branches/community/3.3.X/test-applications/jsp/pom.xml 2009-08-07 12:04:00 UTC (rev 15128)
@@ -13,16 +13,18 @@
<build>
<finalName>richfaces-test-jsp</finalName>
</build>
-<dependencies>
+<dependencies>
<dependency>
- <groupId>apache-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.0</version>
- </dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ <version>1.0.b2</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
- <groupId>myfaces</groupId>
- <artifactId>myfaces-extensions</artifactId>
- <version>1.0.9</version>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: branches/community/3.3.X/test-applications/jsp/src/main/webapp/WEB-INF/web.xml
===================================================================
--- branches/community/3.3.X/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2009-08-07 04:19:41 UTC (rev 15127)
+++ branches/community/3.3.X/test-applications/jsp/src/main/webapp/WEB-INF/web.xml 2009-08-07 12:04:00 UTC (rev 15128)
@@ -29,155 +29,6 @@
<param-value>true</param-value>
</context-param>
- <!--context-param>
- <description>
- Only applicable if state saving method is "server" (=
- default). Defines the amount (default = 20) of the latest
- views are stored in session.
- </description>
- <param-name>
- org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
- </param-name>
- <param-value>20</param-value>
- </context-param>
-
- <context-param>
- <description>
- Only applicable if state saving method is "server" (=
- default). If true (default) the state will be serialized to
- a byte stream before it is written to the session. If false
- the state will not be serialized to a byte stream.
- </description>
- <param-name>
- org.apache.myfaces.SERIALIZE_STATE_IN_SESSION
- </param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- Only applicable if state saving method is "server" (=
- default) and if
- org.apache.myfaces.SERIALIZE_STATE_IN_SESSION is true (=
- default) If true (default) the serialized state will be
- compressed before it is written to the session. If false the
- state will not be compressed.
- </description>
- <param-name>
- org.apache.myfaces.COMPRESS_STATE_IN_SESSION
- </param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- This parameter tells MyFaces if javascript code should be
- allowed in the rendered HTML output. If javascript is
- allowed, command_link anchors will have javascript code that
- submits the corresponding form. If javascript is not
- allowed, the state saving info and nested parameters will be
- added as url parameters. Default: "true"
- </description>
- <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
- <param-value>false</param-value>
- </context-param>
-
- <context-param>
- <description>
- If true, rendered HTML code will be formatted, so that it is
- "human readable". i.e. additional line separators and
- whitespace will be written, that do not influence the HTML
- code. Default: "true"
- </description>
- <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- If true, a javascript function will be rendered that is able
- to restore the former vertical scroll on every request.
- Convenient feature if you have pages with long lists and you
- do not want the browser page to always jump to the top if
- you trigger a link or button action that stays on the same
- page. Default: "false"
- </description>
- <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- Used for encrypting view state. Only relevant for client
- side state saving. See MyFaces wiki/web site documentation
- for instructions on how to configure an application for
- diffenent encryption strengths.
- </description>
- <param-name>org.apache.myfaces.SECRET</param-name>
- <param-value>NzY1NDMyMTA=</param-value>
- </context-param>
-
- <context-param>
- <description>
- Validate managed beans, navigation rules and ensure that
- forms are not nested.
- </description>
- <param-name>org.apache.myfaces.VALIDATE</param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- Treat readonly same as if disabled attribute was set for
- select elements.
- </description>
- <param-name>
- org.apache.myfaces.READONLY_AS_DISABLED_FOR_SELECTS
- </param-name>
- <param-value>true</param-value>
- </context-param>
-
- <context-param>
- <description>
- Use the defined class as the class which will be called when
- a resource is added to the ExtensionFilter handling. Using
- StreamingAddResource here helps with performance. If you
- want to add custom components and want to use the
- ExtensionFilter, you need to provide your custom
- implementation here.
- </description>
- <param-name>org.apache.myfaces.ADD_RESOURCE_CLASS</param-name>
- <param-value>
- org.apache.myfaces.renderkit.html.util.DefaultAddResource
- </param-value>
- </context-param>
-
- <context-param>
- <description>
- Virtual path in the URL which triggers loading of resources
- for the MyFaces extended components in the ExtensionFilter.
- </description>
- <param-name>
- org.apache.myfaces.RESOURCE_VIRTUAL_PATH
- </param-name>
- <param-value>/faces/myFacesExtensionResource</param-value>
- </context-param>
-
- <context-param>
- <description>
- Check if the extensions-filter has been properly configured.
- </description>
- <param-name>
- org.apache.myfaces.CHECK_EXTENSIONS_FILTER
- </param-name>
- <param-value>false</param-value>
- </context-param!-->
-
<context-param>
<param-name>org.richfaces.LoadScriptStrategy</param-name>
<param-value>ALL</param-value>
@@ -236,43 +87,7 @@
<param-value>143482880</param-value>
</init-param>
</filter>
-
- <!-- Extensions Filter -->
- <filter>
- <filter-name>extensionsFilter</filter-name>
- <filter-class>
- org.apache.myfaces.component.html.util.ExtensionsFilter
- </filter-class>
- <init-param>
- <description>
- Set the size limit for uploaded files. Format: 10 - 10
- bytes 10k - 10 KB 10m - 10 MB 1g - 1 GB
- </description>
- <param-name>uploadMaxFileSize</param-name>
- <param-value>100m</param-value>
- </init-param>
- <init-param>
- <description>
- Set the threshold size - files below this limit are
- stored in memory, files above this limit are stored on
- disk. Format: 10 - 10 bytes 10k - 10 KB 10m - 10 MB 1g -
- 1 GB
- </description>
- <param-name>uploadThresholdSize</param-name>
- <param-value>100k</param-value>
- </init-param>
-
- <init-param>
- <param-name>uploadRepositoryPath</param-name>
- <param-value>/temp</param-value>
- <description>
- Set the path where the intermediary files will be
- stored.
- </description>
- </init-param>
-
- </filter>
-
+
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
@@ -282,26 +97,6 @@
<dispatcher>ERROR</dispatcher>
</filter-mapping>
- <filter-mapping>
- <filter-name>extensionsFilter</filter-name>
- <url-pattern>*.faces</url-pattern>
- </filter-mapping>
- <filter-mapping>
- <filter-name>extensionsFilter</filter-name>
- <url-pattern>/faces/*</url-pattern>
- </filter-mapping>
-
- <session-config>
- <session-timeout>500</session-timeout>
- </session-config>
-
- <!-- Listener, to allow Jetty serving MyFaces apps -->
- <!--listener>
- <listener-class>
- org.apache.myfaces.webapp.StartupServletContextListener
- </listener-class>
- </listener-->
-
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
Modified: branches/community/3.3.X/test-applications/jsp/src/main/webapp/pages/Rich/Rich.jsp
===================================================================
--- branches/community/3.3.X/test-applications/jsp/src/main/webapp/pages/Rich/Rich.jsp 2009-08-07 04:19:41 UTC (rev 15127)
+++ branches/community/3.3.X/test-applications/jsp/src/main/webapp/pages/Rich/Rich.jsp 2009-08-07 12:04:00 UTC (rev 15128)
@@ -3,7 +3,7 @@
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j" %>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich" %>
-<%@page contentType="text/html; charset=UTF-8" %>
+<%@page contentType="text/html; charset=UTF-8" %>
<html>
<f:view>
@@ -52,7 +52,7 @@
<h:graphicImage url="/pics/passed.gif" />
</f:facet>
</rich:messages>
- <%--h:messages id="hMessagesID" showDetail="true" showSummary="true"></h:messages--%>
+ <%--h:messages id="hMessagesID" showDetail="true" showSummary="true"></h:messages--%>
<h:panelGrid id="richGridID" columns="1" width="100%" rendered="true">
<h:panelGroup rendered="#{option.reComponent}">
15 years, 4 months
JBoss Rich Faces SVN: r15127 - in root/cdk/trunk/plugins/generator/src: test/java/org/richfaces/cdk/model and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-08-07 00:19:41 -0400 (Fri, 07 Aug 2009)
New Revision: 15127
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java
Log:
fix and test Name pattern class.
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java 2009-08-07 02:01:19 UTC (rev 15126)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java 2009-08-07 04:19:41 UTC (rev 15127)
@@ -46,7 +46,7 @@
}
private static final Pattern namePattern = Pattern.compile("^(?:(.+)\\.)?(?:(" + Classifier.component
- + "|" + Classifier.renderkit + "|" + Classifier.event + "|" + Classifier.taglib + ")\\.)?([^\\.]+)$");
+ + "|" + Classifier.renderkit + "|" + Classifier.event + "|" + Classifier.taglib + ")\\.(?:([^\\.]+)\\.)?)?([^\\.]+)$");
/**
* <p class="changed_added_4_0">represents library part prefix of name.</p>
@@ -75,36 +75,51 @@
* @throws InvalidNameException
*/
public static Name create(String name) throws InvalidNameException {
- Matcher matcher = namePattern.matcher(name);
- if(matcher.matches()){
Name cdkName = new Name();
- int groups = matcher.groupCount();
- for(int i=0;i<=groups;i++){
- System.out.println("Group "+i+": "+matcher.group(i));
+ StringBuilder prefix = new StringBuilder(name.length());
+ String[] parts = name.split("\\.");
+ cdkName.setSimpleName(parts[parts.length-1]);
+ if(parts.length>1){
+ try{
+ cdkName.setClassifier(Classifier.valueOf(parts[parts.length-2]));
+ fillPrefix(prefix, parts,parts.length-2);
+ } catch (IllegalArgumentException e) {
+ if(parts.length>2){
+ try{
+ cdkName.setClassifier(Classifier.valueOf(parts[parts.length-3]));
+ fillPrefix(prefix, parts,parts.length-3);
+ cdkName.setMarkup(parts[parts.length-2]);
+ } catch (IllegalArgumentException e1) {
+ fillPrefix(prefix, parts,parts.length-1);
+ }
+
+ } else {
+ prefix.append(parts[0]);
+ }
+ }
+ if(prefix.length()>0){
+ cdkName.setPrefix(prefix.toString());
+ }
}
- cdkName.setSimpleName(matcher.group(groups));
- if (groups > 2) {
- cdkName.setPrefix(matcher.group(2));
- }
- if (groups > 4) {
- String classifierGroup = matcher.group(3);
- if (null != classifierGroup) {
- cdkName.setClassifier(Classifier.valueOf(classifierGroup));
+ return cdkName;
+ }
- }
+ private static void fillPrefix(StringBuilder prefix, String[] parts, int size) {
+ for (int i = 0; i < size; i++) {
+ if(i!=0){
+ prefix.append('.');
}
- if (groups > 6) {
- String markupGroup = matcher.group(5);
- cdkName.setMarkup(markupGroup);
- }
- return cdkName;
- } else {
- throw new InvalidNameException("Name "+name+" does not match CDK naming conventions");
+ prefix.append(parts[i]);
}
}
public static Name create(String prefix,String name) throws InvalidNameException {
- return new Name();
+ Name cdkName = create(name);
+ if(prefix.equals(cdkName.getPrefix())){
+ return new Name();
+ } else {
+ throw new InvalidNameException("Nape "+name+" does not start with prefix "+prefix);
+ }
}
public static Name create(String prefix, Classifier classifier, String name) throws InvalidNameException {
Modified: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java 2009-08-07 02:01:19 UTC (rev 15126)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java 2009-08-07 04:19:41 UTC (rev 15127)
@@ -90,12 +90,65 @@
assertNull( name.getMarkup());
assertEquals("Foo", name.getSimpleName());
}
+
/**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString3() throws Exception {
+ Name name = Name.create("Foo");
+ assertNull(name.getPrefix());
+ assertNull(name.getClassifier());
+ assertNull( name.getMarkup());
+ assertEquals("Foo", name.getSimpleName());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString4() throws Exception {
+ Name name = Name.create("component.Foo");
+ assertNull(name.getPrefix());
+ assertEquals(Name.Classifier.component, name.getClassifier());
+ assertNull( name.getMarkup());
+ assertEquals("Foo", name.getSimpleName());
+ }
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString5() throws Exception {
+ Name name = Name.create("component.wml.Foo");
+ assertNull(name.getPrefix());
+ assertEquals(Name.Classifier.component, name.getClassifier());
+ assertEquals("wml", name.getMarkup());
+ assertEquals("Foo", name.getSimpleName());
+ }
+
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString6() throws Exception {
+ Name name = Name.create("bar.component.wml.Foo");
+ assertEquals("bar",name.getPrefix());
+ assertEquals(Name.Classifier.component, name.getClassifier());
+ assertEquals("wml", name.getMarkup());
+ assertEquals("Foo", name.getSimpleName());
+ }
+
+ /**
* Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String, java.lang.String)}.
*/
@Test
public void testCreateStringString() {
- fail("Not yet implemented");
+// fail("Not yet implemented");
}
/**
@@ -103,7 +156,7 @@
*/
@Test
public void testCreateStringClassifierString() {
- fail("Not yet implemented");
+// fail("Not yet implemented");
}
}
15 years, 4 months
JBoss Rich Faces SVN: r15126 - in root/cdk/trunk/plugins: generator/src/main/java/org/richfaces/cdk/model and 8 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: alexsmirnov
Date: 2009-08-06 22:01:19 -0400 (Thu, 06 Aug 2009)
New Revision: 15126
Added:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/InvalidNameException.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/NamingConventions.java
root/cdk/trunk/plugins/generator/src/main/javadoc/org/
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.dia
root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.png
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java
Modified:
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java
root/cdk/trunk/plugins/maven-javascript-plugin/pom.xml
Log:
naming conventions utils
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/CdkContext.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -2,27 +2,62 @@
import java.io.File;
-import org.richfaces.cdk.model.ComponentLibrary;
/**
- * <p class="changed_added_4_0">That interface defines context for all CDK operations</p>
+ * <p class="changed_added_4_0">
+ * That interface defines context for all CDK operations
+ * </p>
+ *
* @author asmirnov(a)exadel.com
- *
+ *
*/
public interface CdkContext {
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">
+ * Tools classloader.
+ * </p>
+ *
* @return the loader
*/
public ClassLoader getLoader();
+ /**
+ * <p class="changed_added_4_0">
+ * Output folder for generated resources.
+ * </p>
+ *
+ * @return
+ */
public abstract File getResourceOutput();
+ /**
+ * <p class="changed_added_4_0">
+ * Output folder for generated Java sources.
+ * </p>
+ *
+ * @return
+ */
public abstract File getJavaSourceOutput();
+ /**
+ * <p class="changed_added_4_0">
+ * Java source folder.
+ * </p>
+ *
+ * @return
+ */
public abstract File getJavaSource();
-
+
+ /**
+ * <p class="changed_added_4_0">
+ * Base name for generated JSF library, as described in the CDK <a href=
+ * "http://www.jboss.org/community/wiki/RichFacesCDKnamingconventions"
+ * >naming conventions</a>
+ * </p>
+ *
+ * @return
+ */
public String getBaseName();
}
\ No newline at end of file
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/LibraryBuilder.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -31,11 +31,11 @@
import org.richfaces.cdk.model.ComponentLibrary;
/**
- * <p class="changed_added_4_0">That class builds JSF library model from different sources</p>
+ * <p class="changed_added_4_0">That class builds JSF library model from different sources. It acts as "controller" for whole CDK generation process.</p>
* @author asmirnov(a)exadel.com
*
*/
-public class LibraryBuilder {
+public final class LibraryBuilder {
/**
* <p class="changed_added_4_0">Current CDK context</p>
@@ -46,7 +46,7 @@
* <p class="changed_added_4_0"></p>
* @param context
*/
- public LibraryBuilder(CdkContext context) {
+ LibraryBuilder(CdkContext context) {
this.context = context;
}
@@ -60,8 +60,8 @@
/**
* <p class="changed_added_4_0">Parse source files for annotations and populate CDK-related information into model.</p>
- * @param context
- * @param sources
+ * @param sources Java Source files.
+ * @return generated library model.
* @throws CdkException
*/
public ComponentLibrary buildModelFromAnnotations(Iterable<File> sources) throws CdkException {
@@ -77,8 +77,9 @@
* @param templates
* @throws CdkException
*/
- public void compileRendererTemplates(Iterable<File> templates) throws CdkException {
-
+ public ComponentLibrary compileRendererTemplates(Iterable<File> templates) throws CdkException {
+ ComponentLibrary library = createLibrary();
+ return library;
}
/**
* <p class="changed_added_4_0">Append configuration from faces-config.xml to existing library.</p>
@@ -89,8 +90,9 @@
public void applyFacesConfigToModel(Iterable<File> configs) throws CdkException {
}
- public void buildModelFromFacesConfig(Iterable<File> configs) throws CdkException {
- // Read faces-config.xml and build a new model.
+ public ComponentLibrary buildModelFromFacesConfig(Iterable<File> configs) throws CdkException {
+ ComponentLibrary library = createLibrary();
+ return library;
}
@@ -103,7 +105,7 @@
}
/**
- * <p class="changed_added_4_0"></p>
+ * <p class="changed_added_4_0">Getter for the current CDK context</p>
* @return the context
*/
protected CdkContext getContext() {
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ClassDescription.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -34,6 +34,10 @@
private boolean exists;
+ private boolean primitive;
+
+ private String boxingClassName;
+
private ClassDescription superClass;
/**
@@ -83,6 +87,38 @@
public String getName() {
return name;
}
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the primitive
+ */
+ public boolean isPrimitive() {
+ return primitive;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param primitive the primitive to set
+ */
+ public void setPrimitive(boolean primitive) {
+ this.primitive = primitive;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the boxingClassName
+ */
+ public String getBoxingClassName() {
+ return primitive?boxingClassName:name;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param boxingClassName the boxingClassName to set
+ */
+ public void setBoxingClassName(String boxingClassName) {
+ this.boxingClassName = boxingClassName;
+ }
}
Modified: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/ComponentLibrary.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -40,6 +40,25 @@
public class ComponentLibrary {
+ final class RichFacesConventions implements NamingConventions {
+ @Override
+ public String getComponentType(String className) throws InvalidNameException {
+ // check parameters.
+ if(null == className || className.length()==0){
+ throw new IllegalArgumentException();
+ }
+ Name.create(className);
+ //
+ return null;
+ }
+
+ @Override
+ public String getComponentClass(String componentType) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ }
/**
* <p class="changed_added_4_0">JSF components in that library</p>
*/
@@ -69,6 +88,8 @@
* <p class="changed_added_4_0"></p>
*/
private final String baseName;
+
+ private NamingConventions namingConventions = new RichFacesConventions();
@@ -159,6 +180,17 @@
public TagLibrary getTagLibrary() {
return tagLibrary;
}
+
+ public NamingConventions getNamingUtils(){
+ return namingConventions;
+ }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the baseName
+ */
+ protected String getBaseName() {
+ return baseName;
+ }
}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/InvalidNameException.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/InvalidNameException.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/InvalidNameException.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -0,0 +1,70 @@
+/*
+ * $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.model;
+
+import org.richfaces.cdk.CdkException;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class InvalidNameException extends CdkException {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ */
+ public InvalidNameException() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param message
+ */
+ public InvalidNameException(String message) {
+ super(message);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param cause
+ */
+ public InvalidNameException(Throwable cause) {
+ super(cause);
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param message
+ * @param cause
+ */
+ public InvalidNameException(String message, Throwable cause) {
+ super(message, cause);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/Name.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -0,0 +1,177 @@
+/*
+ * $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.model;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * <p class="changed_added_4_0">Represents parts of component type/family/classname according to CDK naming conventions.</p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class Name {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+ public enum Classifier {
+ component,
+ renderkit,
+ event,
+ taglib;
+ }
+
+ private static final Pattern namePattern = Pattern.compile("^(?:(.+)\\.)?(?:(" + Classifier.component
+ + "|" + Classifier.renderkit + "|" + Classifier.event + "|" + Classifier.taglib + ")\\.)?([^\\.]+)$");
+
+ /**
+ * <p class="changed_added_4_0">represents library part prefix of name.</p>
+ */
+ private String prefix;
+
+ /**
+ * <p class="changed_added_4_0">Element type classifier - "component","event","renderkit","taglib"</p>
+ */
+ private Classifier classifier;
+
+ /**
+ * <p class="changed_added_4_0">Markup-specific part of name ( "html","xhtml","wml" ... )</p>
+ */
+ private String markup;
+
+ /**
+ * <p class="changed_added_4_0">Simple name ( last word after a period ).</p>
+ */
+ private String simpleName;
+
+ /**
+ * <p class="changed_added_4_0">Creates RichFaces name representation from string.</p>
+ * @param name
+ * @return
+ * @throws InvalidNameException
+ */
+ public static Name create(String name) throws InvalidNameException {
+ Matcher matcher = namePattern.matcher(name);
+ if(matcher.matches()){
+ Name cdkName = new Name();
+ int groups = matcher.groupCount();
+ for(int i=0;i<=groups;i++){
+ System.out.println("Group "+i+": "+matcher.group(i));
+ }
+ cdkName.setSimpleName(matcher.group(groups));
+ if (groups > 2) {
+ cdkName.setPrefix(matcher.group(2));
+ }
+ if (groups > 4) {
+ String classifierGroup = matcher.group(3);
+ if (null != classifierGroup) {
+ cdkName.setClassifier(Classifier.valueOf(classifierGroup));
+
+ }
+ }
+ if (groups > 6) {
+ String markupGroup = matcher.group(5);
+ cdkName.setMarkup(markupGroup);
+ }
+ return cdkName;
+ } else {
+ throw new InvalidNameException("Name "+name+" does not match CDK naming conventions");
+ }
+ }
+
+ public static Name create(String prefix,String name) throws InvalidNameException {
+ return new Name();
+ }
+
+ public static Name create(String prefix, Classifier classifier, String name) throws InvalidNameException {
+ return new Name();
+ }
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the prefix
+ */
+ public String getPrefix() {
+ return prefix;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param prefix the prefix to set
+ */
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the classifier
+ */
+ public Classifier getClassifier() {
+ return classifier;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param classifier the classifier to set
+ */
+ public void setClassifier(Classifier classifier) {
+ this.classifier = classifier;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the markup
+ */
+ public String getMarkup() {
+ return markup;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param markup the markup to set
+ */
+ public void setMarkup(String markup) {
+ this.markup = markup;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @return the simpleName
+ */
+ public String getSimpleName() {
+ return simpleName;
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @param simpleName the simpleName to set
+ */
+ public void setSimpleName(String simpleName) {
+ this.simpleName = simpleName;
+ }
+
+}
Added: root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/NamingConventions.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/NamingConventions.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/main/java/org/richfaces/cdk/model/NamingConventions.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -0,0 +1,61 @@
+/*
+ * $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.model;
+
+/**
+ * <p class="changed_added_4_0">
+ * That interface defines methods that calculates names according to <a
+ * href="http://www.jboss.org/community/docs/DOC-13693">CDK naming
+ * conventions</>
+ * </p>
+ *
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public interface NamingConventions {
+
+ /**
+ * <p class="changed_added_4_0">Calculates component type from the base class name.</p>
+ * <ul>
+ * <li><code><prefix>.component.Abstract<Name></code> => <code><prefix>.<Name></code> </li>
+ * <li><code><prefix>.component.<Name>Base</code> => <code><prefix>.<Name></code> </li>
+ * <li><code><prefix>.component.UI<Name></code> => <code><prefix>.<Name></code> </li>
+ * </ul>
+ * @param className
+ * @return
+ * @throws InvalidNameException if className does not match naming conventions.
+ */
+ public String getComponentType(String className) throws InvalidNameException;
+
+ /**
+ * <p class="changed_added_4_0">Calculates component base class from type.</p>
+ * <ul>
+ * <li><code><prefix>.<Name></code> => <code><prefix>.component.UI<Name></code> </li>
+ * </ul>
+ * @param className
+ * @return
+ */
+ public String getComponentClass(String componentType);
+
+}
Added: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.dia
===================================================================
(Binary files differ)
Property changes on: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.dia
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.png
===================================================================
(Binary files differ)
Property changes on: root/cdk/trunk/plugins/generator/src/main/javadoc/org/richfaces/cdk/generatedClasses.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/apt/ProcessorTest.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -56,6 +56,7 @@
import javax.lang.model.SourceVersion;
import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Modifier;
import javax.lang.model.element.Name;
@@ -133,35 +134,54 @@
// Get all classes annotated by "component"
Set<? extends Element> annotatedWith = environment.getElementsAnnotatedWith(Component.class);
numOfComponents = annotatedWith.size();
- for (Element element : annotatedWith) {
- Component annotation = element.getAnnotation(Component.class);
+ for (Element element : annotatedWith) {
+ if (ElementKind.CLASS.equals(element.getKind())) {
+ TypeElement classElement = (TypeElement) element;
+ Component annotation = element
+ .getAnnotation(Component.class);
String type = annotation.type();
- //TODO - infer type for an empty one. Is thart method for library or for environment ?
- if(isEmpty(type)){
-
+ // TODO - infer type for an empty one. Is thart method
+ // for library or for environment ?
+ if (isEmpty(type)) {
+ classElement.getQualifiedName().toString();
}
- org.richfaces.cdk.model.Component component = library.getComponent(type,true);
+ org.richfaces.cdk.model.Component component = library
+ .getComponent(type, true);
Elements elementUtils = processingEnv.getElementUtils();
Types typeUtils = processingEnv.getTypeUtils();
- component.setDescription(elementUtils.getDocComment(element));
- List<ExecutableElement> methodsIn = ElementFilter.methodsIn(elementUtils.getAllMembers((TypeElement) element));
+ component.setDescription(elementUtils
+ .getDocComment(element));
+ List<ExecutableElement> methodsIn = ElementFilter
+ .methodsIn(elementUtils
+ .getAllMembers(classElement));
for (ExecutableElement method : methodsIn) {
- Attribute attribute = method.getAnnotation(Attribute.class);
- if(null != attribute){
+ Attribute attribute = method
+ .getAnnotation(Attribute.class);
+ if (null != attribute) {
TypeMirror returnType = method.getReturnType();
- String methodName = method.getSimpleName().toString();
- List<? extends VariableElement> parameters = method.getParameters();
+ String methodName = method.getSimpleName()
+ .toString();
+ List<? extends VariableElement> parameters = method
+ .getParameters();
Set<Modifier> modifiers = method.getModifiers();
- if(methodName.startsWith("get") && parameters.isEmpty() && modifiers.contains(Modifier.PUBLIC)){
+ if (methodName.startsWith("get")
+ && parameters.isEmpty()
+ && modifiers.contains(Modifier.PUBLIC)) {
// Bean getter method.
- String attributeName = methodName.substring(3,4).toLowerCase()+methodName.substring(4);
- Property atribute = component.addAtribute(attributeName);
- atribute.setDescription(elementUtils.getDocComment(method));
+ String attributeName = methodName
+ .substring(3, 4).toLowerCase()
+ + methodName.substring(4);
+ Property atribute = component
+ .addAtribute(attributeName);
+ atribute.setDescription(elementUtils
+ .getDocComment(method));
}
}
+
}
}
}
+ }
return true;
}
Added: root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java
===================================================================
--- root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java (rev 0)
+++ root/cdk/trunk/plugins/generator/src/test/java/org/richfaces/cdk/model/NameTest.java 2009-08-07 02:01:19 UTC (rev 15126)
@@ -0,0 +1,109 @@
+/*
+ * $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.model;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * <p class="changed_added_4_0"></p>
+ * @author asmirnov(a)exadel.com
+ *
+ */
+public class NameTest {
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <p class="changed_added_4_0"></p>
+ * @throws java.lang.Exception
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString() throws Exception {
+ Name name = Name.create("foo.bar.component.wml.WmlFoo");
+ assertEquals("foo.bar", name.getPrefix());
+ assertEquals(Name.Classifier.component, name.getClassifier());
+ assertEquals("wml", name.getMarkup());
+ assertEquals("WmlFoo", name.getSimpleName());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString1() throws Exception {
+ Name name = Name.create("foo.bar.wml.WmlFoo");
+ assertEquals("foo.bar.wml", name.getPrefix());
+ assertNull(name.getClassifier());
+ assertNull(name.getMarkup());
+ assertEquals("WmlFoo", name.getSimpleName());
+ }
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String)}.
+ * @throws Exception
+ */
+ @Test
+ public void testCreateString2() throws Exception {
+ Name name = Name.create("foo.bar.component.Foo");
+ assertEquals("foo.bar", name.getPrefix());
+ assertEquals(Name.Classifier.component, name.getClassifier());
+ assertNull( name.getMarkup());
+ assertEquals("Foo", name.getSimpleName());
+ }
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String, java.lang.String)}.
+ */
+ @Test
+ public void testCreateStringString() {
+ fail("Not yet implemented");
+ }
+
+ /**
+ * Test method for {@link org.richfaces.cdk.model.Name#create(java.lang.String, org.richfaces.cdk.model.Name.Classifier, java.lang.String)}.
+ */
+ @Test
+ public void testCreateStringClassifierString() {
+ fail("Not yet implemented");
+ }
+
+}
Modified: root/cdk/trunk/plugins/maven-javascript-plugin/pom.xml
===================================================================
--- root/cdk/trunk/plugins/maven-javascript-plugin/pom.xml 2009-08-06 17:26:35 UTC (rev 15125)
+++ root/cdk/trunk/plugins/maven-javascript-plugin/pom.xml 2009-08-07 02:01:19 UTC (rev 15126)
@@ -36,7 +36,16 @@
</dependency>
</dependencies>
<build>
- <plugins />
+ <plugins >
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <inherited>true</inherited>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
<reporting>
<plugins>
15 years, 4 months