xwiki-devs
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
August 2007
- 27 participants
- 88 discussions
24 Aug '07
While working on the new diff interface I've hit this bug
http://jira.xwiki.org/jira/browse/XWIKI-1468
with the numbering on versions in the RCS file which does not correspond
to the version of the real documents.
There are different ways to fix this, but maybe it's not worth to do the
"perfrect fix" with Artem's work on versioning storage that coult not
make use of RCS.
So the problem is that in the RCS file you have
1.3 -> $doc.version = 1.4
1.2 -> $doc.version = 1.3
1.1 -> $doc.version = 1.2
This actually is visible in the UI when you request the version list of
the document that is in version 1.4 you will be shown version
1.3,1.2,1.1 but no 1.4.
If you click on 1.3 then you will see document in the latest version. If
you make a diff between 1.3 and 1.2 then you will see in the UI "From
1.4 to 1.3".
I found that this problem depends on the initial version of the document
when it is first saved. This means that we should be able to detect the
issue for fixing the view as well as migrate the version file on save
when we see the problem.
Fix 1: change the UI to acknowledge this mistake (make only changes in
vm files) but no fix to saving
Fix 2: change $xwiki.getDocument(doc, version) and $doc.getRevisions
(and related) to send back the right data but no fix to saving
Fix 3: fix the problem in saving (move all versions by one if we detect
the problem), detect the issue (last RCS version not equal to current
doc version) to apply fix1 and fix2 for the display (probably easier to
do with fix 2)
I'm more favorable to fix 3 combined with fix 2.
WDYT ?
Ludovic
--
Ludovic Dubost
Blog: http://www.ludovic.org/blog/
XWiki: http://www.xwiki.com
Skype: ldubost GTalk: ldubost
AIM: nvludo Yahoo: ludovic
4
13
Hello all,
I have some features for which I need to write unit tests but it imply
HQL request difficult to cleanly emulate with jmock. Is there an over
way to tests theses ?
Ludovic talk to me about integrations tests that use the complete
platform with real database but he was not sure of this so I ask :)
Regards
--
Thomas Mortagne
3
3
Hi all,
I'd like to change the generated HTML markup in order to eliminate redundancy.
Currently, we're using too many class attributes for the generated
markup from the wiki syntax, and we're doing this in a bad manner. For
example:
- p class="paragraph"
- h2 class="heading-1"
- strong class="strong"
- del class="strike"
The class attribute should only be used with semantics in mind, and
saying that all p-s are paragraphs, and all strong-s are strong, this
adds no semantics whatsoever, but does increase the size of the
transfered files (and the page loading time), the rendering time, the
cache size and the size and complexity of the CSS files.
We might have to rewrite some CSS rules, as a downside, but I think it
is for the good. And it will also break some badly designed skins.
Sergiu
--
http://purl.org/net/sergiu
7
6
Hi I was using 1.1M3 successfully with AD Authentication. However, once i have upgraded to 1.1M4, i get an NPE. The LDAP config in xwiki.cfg is identical in both versions, and are as per documentation on xwiki.org.Regards Shiva ------------------------------------------------------------------------------------------------------ java.lang.NullPointerException at com.xpn.xwiki.user.impl.LDAP.LDAPAuthServiceImpl.authenticate(LDAPAuthServiceImpl.java:51) at com.xpn.xwiki.user.impl.xwiki.MyFormAuthenticator.authenticate(MyFormAuthenticator.java:195) at com.xpn.xwiki.user.impl.xwiki.MyFormAuthenticator.processLogin(MyFormAuthenticator.java:95) at com.xpn.xwiki.user.impl.xwiki.XWikiAuthServiceImpl.checkAuth(XWikiAuthServiceImpl.java:211) at com.xpn.xwiki.XWiki.checkAuth(XWiki.java:3000) at com.xpn.xwiki.user.impl.xwiki.XWikiRightServiceImpl.checkAccess(XWikiRightServiceImpl.java:112) at com.xpn.xwiki.XWiki.checkAccess(XWiki.java:3008) at com.xpn.xwiki.XWiki.prepareDocuments(XWiki.java:3881) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:132) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at com.xpn.xwiki.web.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685) at java.lang.Thread.run(Unknown Source)
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
2
1
I had no problem to install Xwiki on local computer under Tomcat.
But when I have deployed Xwiki under OC4J according to OC4J Installation
instructions
("http://www.xwiki.org/xwiki/bin/view/AdminGuide/InstallationOC4J"),
it seems javascript does not work properly – it looks like the path to
external .js-files cannot be found.
Both IE and Firefox show javascript errors nearly on each page, although
JavaScript is not deactivated.
For example, I can open the home page, go to
xwiki/bin/admin/XWiki/XWikiPreferences,
upload xwiki-enterprise-wiki-1.1~.xar, but cannot expand it to choose the
files I want to import.
I have tried to include some JavaScript functions from import.js direct in
the importinline.vm - source – it works fine.
What's the difference between:
<script type="text/javascript"
src="$xwiki.getSkinFile("import.js")"></script> - it generates path to
/xwiki/skins/albatross/import.js
and
<script type="text/javascript" src="$xwiki.getSkinFile("import.js",
true)"></script> - generates path to
/xwiki/bin/skin/skins/albatross/import.js
Why some paths to js- and css files are defined with the parameter “true”,
and some – without?
Is there something specific to keep in mind concerning path under OC4J?
Should I make additional entries in some xml-files?
Any help, please
Regards,
adoro
--
View this message in context: http://www.nabble.com/JavaScript-under-OC4J-tf4305991.html#a12257241
Sent from the XWiki- Dev mailing list archive at Nabble.com.
1
0
Hello,
There are only a few weeks left before the final 1.1 release. There
has been a lot of work put in this release (although even more work
was needed), and we've already started working on the first 1.2
milestone.
Past
A short summary of the closed issues thus far:
- 215 issues in xwiki-platform (102 bugs, 81 improvements, 15 new features)
- 32 issues in xwiki-enterprise
- 15 issues in panels-application
So this was mainly a bugfixing release, which means that now we have a
more stable platform, and an enjoyable default wiki. There have been
very few new features, as there was not enough manpower. The best
achievement in my opinion is the new build architecture, with the
platform separated from the default wiki, and internally separated
into several modules (core, web, plugins...).
Present
If everything goes right, we still have two more RC releases before
the final 1.1. These should not contain any changes (
http://en.wikipedia.org/wiki/Release_candidate#Release_candidate ),
but only critical fixes. That's why we should stop committing things
in the 1.1 branch, unless it is a critical bug fix.
In order to be able to make a proper release on the 27th, I'd propose
a code freeze on the 1.1 branch at 6 A.M. GMT 26th of August, with
everybody giving a hand on testing on sunday, and a quick release on
monday.
Future
We started with a list of expectations (
http://www.xwiki.org/xwiki/bin/view/Idea/FeaturesFor11 ) which was
only in very small parts covered, mostly because we concentrated on
bufixes. The good news is that we'll be able to concentrate on new
features from now on, and we can hope that most of these goals will be
covered in the 1.2 release.
However, there are still 162 issues marked as bugs in the platform (of
which 39 in the core), so there's still work on bugfixing.
The current WYSIWYG editor is cracking; every new fix/feature causes
another thing that was working before to fail, and we don't have
enough tests for the moment to automatically detect this. The
complexity is increasing, which makes the editor unusable on slow
systems or for large documents. With Nam leaving, we won't have a
person that knows the code well to take his place. This is why we must
concentrate on the new GWT-based editor (
http://www.xwiki.org/xwiki/bin/view/Idea/WikiModel+and+GWT+Wyswiyg+Architec…
) and hope that in 3 months we'll have a fully functional editor.
Another direction would be the component-based architecture. Vincent
already committed a proof-of-concept in
xwiki-sandbox/xwiki-components, which looks good, but contains very
few things. It seems easy to write in this manner, so we should try
and have a working core based on this architecture.
Thanks to all that contributed to the 1.1 release,
Sergiu
--
http://purl.org/net/sergiu
1
0
Re: [xwiki-commits] r4402 - xwiki-products/xwiki-enterprise/trunk/distribution-test/xmlrpc-tests
by Vincent Massol 20 Aug '07
by Vincent Massol 20 Aug '07
20 Aug '07
Hi Sergiu,
Source files should go in src/*
Thanks
-Vincent
On Aug 18, 2007, at 5:06 AM, Sergiu Dumitriu wrote:
> Author: sdumitriu
> Date: 2007-08-18 05:05:50 +0200 (Sat, 18 Aug 2007)
> New Revision: 4402
>
> Added:
> xwiki-products/xwiki-enterprise/trunk/distribution-test/xmlrpc-
> tests/xhtml1-strict.xsd
> Log:
> XWIKI-1591: Improve speed, coverage and reporting for the XML/XHTML
> validity test
> Forgot to add the xhtml schema
>
>
> Added: xwiki-products/xwiki-enterprise/trunk/distribution-test/
> xmlrpc-tests/xhtml1-strict.xsd
> ===================================================================
> --- xwiki-products/xwiki-enterprise/trunk/distribution-test/xmlrpc-
> tests/xhtml1-strict.xsd 2007-08-18 02:52:05 UTC (rev 4401)
> +++ xwiki-products/xwiki-enterprise/trunk/distribution-test/xmlrpc-
> tests/xhtml1-strict.xsd 2007-08-18 03:05:50 UTC (rev 4402)
> @@ -0,0 +1,2211 @@
> +<?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://www.w3.org/1999/xhtml"
> + xmlns="http://www.w3.org/1999/xhtml"
> + xmlns:xml="http://www.w3.org/XML/1998/namespace"
> + elementFormDefault="qualified">
> +
> + <xs:annotation>
> + <xs:documentation>
> + XHTML 1.0 (Second Edition) Strict in XML Schema
> +
> + This is the same as HTML 4 Strict 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 Strict//EN"
> + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
> +
> + $Id: xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:import namespace="http://www.w3.org/XML/1998/namespace"
> + schemaLocation="http://www.w3.org/2001/xml.xsd"/>
> +
> + <xs:annotation>
> + <xs:documentation>
> + ================ Character mnemonic entities
> =========================
> +
> + XHTML entity sets are identified by the PUBLIC and SYSTEM
> identifiers:
> +
> + PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
> + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
> +
> + PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
> + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
> +
> + PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
> + SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:annotation>
> + <xs:documentation>
> + ================== Imported Names
> ====================================
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:simpleType name="ContentType">
> + <xs:annotation>
> + <xs:documentation>
> + media type, as per [RFC2045]
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string"/>
> + </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="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Charset">
> + <xs:annotation>
> + <xs:documentation>
> + a character encoding, as per [RFC2045]
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string"/>
> + </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="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="LanguageCode">
> + <xs:annotation>
> + <xs:documentation>
> + a language code, as per [RFC3066]
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:language"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Character">
> + <xs:annotation>
> + <xs:documentation>
> + a single character, as per section 2.2 of [XML]
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string">
> + <xs:length value="1" fixed="true"/>
> + </xs:restriction>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Number">
> + <xs:annotation>
> + <xs:documentation>
> + one or more digits
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:nonNegativeInteger">
> + <xs:pattern value="[0-9]+"/>
> + </xs:restriction>
> + </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:restriction base="Number">
> + <xs:minInclusive value="0"/>
> + <xs:maxInclusive value="32767"/>
> + </xs:restriction>
> + </xs:simpleType>
> +
> + <xs:simpleType name="LinkTypes">
> + <xs:annotation>
> + <xs:documentation>
> + space-separated list of link types
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:NMTOKENS"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="MediaDesc">
> + <xs:annotation>
> + <xs:documentation>
> + single or comma-separated list of media descriptors
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string">
> + <xs:pattern value="[^,]+(,\s*[^,]+)*"/>
> + </xs:restriction>
> + </xs:simpleType>
> +
> + <xs:simpleType name="URI">
> + <xs:annotation>
> + <xs:documentation>
> + a Uniform Resource Identifier, see [RFC2396]
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:anyURI"/>
> + </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="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Datetime">
> + <xs:annotation>
> + <xs:documentation>
> + date and time information. ISO date format
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:dateTime"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Script">
> + <xs:annotation>
> + <xs:documentation>
> + script expression
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="StyleSheet">
> + <xs:annotation>
> + <xs:documentation>
> + style sheet data
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Text">
> + <xs:annotation>
> + <xs:documentation>
> + used for titles etc.
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string"/>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Length">
> + <xs:annotation>
> + <xs:documentation>
> + nn for pixels or nn% for percentage length
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string">
> + <xs:pattern value="[\-+]?(\d+|\d+(\.\d+)?%)"/>
> + </xs:restriction>
> + </xs:simpleType>
> +
> + <xs:simpleType name="MultiLength">
> + <xs:annotation>
> + <xs:documentation>
> + pixel, percentage, or relative
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string">
> + <xs:pattern value="[\-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*"/>
> + </xs:restriction>
> + </xs:simpleType>
> +
> + <xs:simpleType name="Pixels">
> + <xs:annotation>
> + <xs:documentation>
> + integer representing length in pixels
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:nonNegativeInteger"/>
> + </xs:simpleType>
> +
> + <xs:annotation>
> + <xs:documentation>
> + these are used for image maps
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:simpleType name="Shape">
> + <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 name="Coords">
> + <xs:annotation>
> + <xs:documentation>
> + comma separated list of lengths
> + </xs:documentation>
> + </xs:annotation>
> + <xs:restriction base="xs:string">
> + <xs:pattern
> + value="[\-+]?(\d+|\d+(\.\d+)?%)(,\s*[\-+]?(\d+|\d+(\.\d
> +)?%))*"/>
> + </xs:restriction>
> + </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="xs:ID"/>
> + <xs:attribute name="class" type="xs:NMTOKENS"/>
> + <xs:attribute name="style" type="StyleSheet"/>
> + <xs:attribute name="title" type="Text"/>
> + </xs:attributeGroup>
> +
> + <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"/>
> + <xs:attribute ref="xml:lang"/>
> + <xs:attribute name="dir">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="ltr"/>
> + <xs:enumeration value="rtl"/>
> + </xs:restriction>
> + </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:annotation>
> + <xs:documentation>
> + =================== Text Elements
> ====================================
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:group name="special.pre">
> + <xs:choice>
> + <xs:element ref="br"/>
> + <xs:element ref="span"/>
> + <xs:element ref="bdo"/>
> + <xs:element ref="map"/>
> + </xs:choice>
> + </xs:group>
> +
> + <xs:group name="special">
> + <xs:choice>
> + <xs:group ref="special.pre"/>
> + <xs:element ref="object"/>
> + <xs:element ref="img"/>
> + </xs:choice>
> + </xs:group>
> +
> + <xs:group name="fontstyle">
> + <xs:choice>
> + <xs:element ref="tt"/>
> + <xs:element ref="i"/>
> + <xs:element ref="b"/>
> + <xs:element ref="big"/>
> + <xs:element ref="small"/>
> + </xs:choice>
> + </xs:group>
> +
> + <xs:group name="phrase">
> + <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:element ref="sub"/>
> + <xs:element ref="sup"/>
> + </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: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" elements
> + </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: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: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="fieldset"/>
> + <xs:element ref="table"/>
> + </xs:choice>
> + </xs:group>
> +
> + <xs:complexType name="Block">
> + <xs:choice minOccurs="0" maxOccurs="unbounded">
> + <xs:group ref="block"/>
> + <xs:element ref="form"/>
> + <xs:group ref="misc"/>
> + </xs:choice>
> + </xs:complexType>
> +
> + <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 big, small, sup or sup
> + </xs:documentation>
> + </xs:annotation>
> + <xs:choice minOccurs="0" maxOccurs="unbounded">
> + <xs:element ref="a"/>
> + <xs:group ref="fontstyle"/>
> + <xs:group ref="phrase"/>
> + <xs:group ref="special.pre"/>
> + <xs:group ref="misc.inline"/>
> + <xs:group ref="inline.forms"/>
> + </xs:choice>
> + </xs:complexType>
> +
> + <xs:complexType name="form.content">
> + <xs:annotation>
> + <xs:documentation>
> + form uses "Block" excluding form
> + </xs:documentation>
> + </xs:annotation>
> + <xs:choice minOccurs="0" maxOccurs="unbounded">
> + <xs:group ref="block"/>
> + <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 and form controls
> + </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:group ref="special"/>
> + <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="xs: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: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="xs: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="xs: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="href" use="required" type="URI"/>
> + <xs:attribute name="id" type="xs:ID"/>
> + </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="xs: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: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="xs: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="xs:ID"/>
> + <xs:attribute name="charset" type="Charset"/>
> + <xs:attribute name="type" use="required" type="ContentType"/>
> + <xs:attribute name="src" type="URI"/>
> + <xs:attribute name="defer">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="defer"/>
> + </xs:restriction>
> + </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>
> + <xs:complexContent>
> + <xs:extension base="Block">
> + <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>
> + <xs:complexContent>
> + <xs:extension base="Block">
> + <xs:attributeGroup ref="attrs"/>
> + <xs:attribute name="onload" type="Script"/>
> + <xs:attribute name="onunload" type="Script"/>
> + </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: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: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: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: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: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: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: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:extension>
> + </xs:complexContent>
> + </xs:complexType>
> + </xs:element>
> +
> + <xs:annotation>
> + <xs:documentation>
> + =================== Lists
> ============================================
> + </xs:documentation>
> + </xs:annotation>
> +
> + <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:complexType>
> + </xs:element>
> +
> + <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:complexType>
> + </xs:element>
> +
> + <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: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: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:complexContent>
> + <xs:extension base="Inline">
> + <xs:attributeGroup ref="attrs"/>
> + </xs:extension>
> + </xs:complexContent>
> + </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: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|big|small|sub|sup"
> + </xs:documentation>
> + </xs:annotation>
> + <xs:complexType mixed="true">
> + <xs:complexContent>
> + <xs:extension base="pre.content">
> + <xs:attributeGroup ref="attrs"/>
> + <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>
> + <xs:complexContent>
> + <xs:extension base="Block">
> + <xs:attributeGroup ref="attrs"/>
> + <xs:attribute name="cite" type="URI"/>
> + </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="xs: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: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:restriction base="xs:token">
> + <xs:enumeration value="ltr"/>
> + <xs:enumeration value="rtl"/>
> + </xs:restriction>
> + </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: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: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:restriction base="xs:token">
> + <xs:enumeration value="declare"/>
> + </xs:restriction>
> + </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="xs:NMTOKEN"/>
> + <xs:attribute name="tabindex" type="tabindexNumber"/>
> + </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="xs:ID"/>
> + <xs:attribute name="name"/>
> + <xs:attribute name="value"/>
> + <xs:attribute name="valuetype" default="data">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="data"/>
> + <xs:enumeration value="ref"/>
> + <xs:enumeration value="object"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="type" type="ContentType"/>
> + </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.
> + Note that in this DTD there is no name attribute. That
> + is only available in the transitional and frameset DTD.
> + </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="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:restriction base="xs:token">
> + <xs:enumeration value="ismap"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + </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="xs:ID"/>
> + <xs:attribute name="class"/>
> + <xs:attribute name="style" type="StyleSheet"/>
> + <xs:attribute name="title" type="Text"/>
> + <xs:attribute name="name" type="xs:NMTOKEN"/>
> + </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:restriction base="xs:token">
> + <xs:enumeration value="nohref"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="alt" use="required" type="Text"/>
> + </xs:complexType>
> + </xs:element>
> +
> + <xs:annotation>
> + <xs:documentation>
> + ================ Forms
> ===============================================
> + </xs:documentation>
> + </xs:annotation>
> +
> + <xs:element name="form">
> + <xs:complexType>
> + <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:restriction base="xs:token">
> + <xs:enumeration value="get"/>
> + <xs:enumeration value="post"/>
> + </xs:restriction>
> + </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: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="xs: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: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: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 name="checked">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="checked"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="readonly">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="readonly"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <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: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:restriction base="xs:token">
> + <xs:enumeration value="multiple"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <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 name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <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:restriction base="xs:token">
> + <xs:enumeration value="selected"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <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 name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="readonly">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="readonly"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <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: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: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:restriction base="xs:token">
> + <xs:enumeration value="button"/>
> + <xs:enumeration value="submit"/>
> + <xs:enumeration value="reset"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + <xs:attribute name="disabled">
> + <xs:simpleType>
> + <xs:restriction base="xs:token">
> + <xs:enumeration value="disabled"/>
> + </xs:restriction>
> + </xs:simpleType>
> + </xs:attribute>
> + </xs:extension>
> + </xs:complexContent>
> + </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: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 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: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: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: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: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: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: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:complexType>
> + </xs:element>
> +
> + <xs:element name="caption">
> + <xs:complexType mixed="true">
> + <xs:complexContent>
> + <xs:extension base="Inline">
> + <xs:attributeGroup ref="attrs"/>
> + </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: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: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:annotation>
> + <xs:documentation>
> + th is for headers, td for data and for cells acting as both
> + </xs:documentation>
> + </xs:annotation>
> +
> + <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="xs: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: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="xs: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:extension>
> + </xs:complexContent>
> + </xs:complexType>
> + </xs:element>
> +
> +</xs:schema>
>
>
>
> --
> You receive this message as a subscriber of the xwiki-
> commits(a)objectweb.org mailing list.
> To unsubscribe: mailto:[email protected]
> For general help: mailto:[email protected]?subject=help
> ObjectWeb mailing lists service home page: http://www.objectweb.org/
> wws
1
0
Re: [xwiki-commits] r4378 - xwiki-platform/web/trunk/standard/src/main/webapp/skins/albatross
by Vincent Massol 20 Aug '07
by Vincent Massol 20 Aug '07
20 Aug '07
Sergiu,
What happens if users use them in lists? I'm asking because this is
documented in our syntax page on xwiki.org
Thanks
-Vincent
On Aug 17, 2007, at 12:24 PM, Sergiu Dumitriu wrote:
> Author: sdumitriu
> Date: 2007-08-17 12:24:27 +0200 (Fri, 17 Aug 2007)
> New Revision: 4378
>
> Modified:
> xwiki-platform/web/trunk/standard/src/main/webapp/skins/
> albatross/wiki.css
> Log:
> XWIKI-652: Validate the used CSS files for compliance with standards
> Fix list types not valid in CSS 2.1
>
>
> Modified: xwiki-platform/web/trunk/standard/src/main/webapp/skins/
> albatross/wiki.css
> ===================================================================
> --- xwiki-platform/web/trunk/standard/src/main/webapp/skins/
> albatross/wiki.css 2007-08-17 10:15:52 UTC (rev 4377)
> +++ xwiki-platform/web/trunk/standard/src/main/webapp/skins/
> albatross/wiki.css 2007-08-17 10:24:27 UTC (rev 4378)
> @@ -168,12 +168,13 @@
> ol.ALPHA { list-style-type: upper-alpha; }
> ol.greek { list-style-type: lower-greek; }
> ol.GREEK { list-style-type: lower-greek; }
> +/* Disabled until they become valid CSS (in 3.0)
> ol.hiragana { list-style-type: hiragana; }
> ol.HIRAGANA { list-style-type: hiragana-iroha; }
> ol.katakana { list-style-type: katakana; }
> ol.KATAKANA { list-style-type: katakana-iroha; }
> ol.HEBREW { list-style-type: hebrew; }
> -
> +*/
> .wikicreatelink {
> text-decoration: none;
> }
>
>
>
> --
> You receive this message as a subscriber of the xwiki-
> commits(a)objectweb.org mailing list.
> To unsubscribe: mailto:[email protected]
> For general help: mailto:[email protected]?subject=help
> ObjectWeb mailing lists service home page: http://www.objectweb.org/
> wws
1
0
Hi Catalin,
On 8/18/07, Catalin Hritcu <catalin.hritcu(a)gmail.com> wrote:
>
> Asiri,
>
> I would go with 1, or 3 but done on the client instead of wasting time
> writing emails. The xml-rpc interface is not only for XEclipse to use
> and it will stay as general and clear as possible.
Hmmmm... That sounds like a good idea.
I think we could go with the third option but still on the client side. And
the amount of work to be done would be really less. I didn't think about
this before, thanks.... (still, i need to check what needs to be changed).
But anyway, I'm waiting for Vincent's confirmation.
Regards,
- Asiri
Catalin
>
> On 8/17/07, Asiri Rathnayake <asiri.rathnayake(a)gmail.com> wrote:
> > Hi Catalin,
> >
> >
> > On 8/17/07, Catalin Hritcu <catalin.hritcu(a)gmail.com> wrote:
> > > Hi Asiri,
> > >
> > > On 8/17/07, Asiri Rathnayake <asiri.rathnayake(a)gmail.com> wrote:
> > > > Hi Catalin and all,
> > > >
> > > > On 8/17/07, Catalin Hritcu < catalin.hritcu(a)gmail.com> wrote:
> > > > > Hi Asiri,
> > > > >
> > > > > Why don't you use the space key? It used to be that the title was
> > > > > always set to this key. If you were setting a title different then
> the
> > > > > key then this title was just discarded and the key was returned.
> That
> > > > > was not normal.
> > > > >
> > > > > Now about space titles being empty, this is a possible situation
> in
> > > > > XWiki (document titles can also be empty). If you want to treat
> this
> > > > > situation differently why not do it on the client side ? And if
> you
> > > > > need to use the space key, then just use the space key and forget
> > > > > about the title.
> > > >
> > > > This is the issue, at the beginning of XEclipse, we thought a key
> was
> > > > something that should be used to refer to documents within programs
> (not
> > > > displayed to users) - This is the purpose of a key (a unique
> > identifier). I
> > > > think it is necessary we keep this terminology since otherwise we'll
> > violate
> > > > the whole purpose of a key (please someone correct me if this is not
> the
> > > > purpose of a key).
> > > >
> > > Yes, a key does identify a space, but it is not cryptic like the IDs
> > > used in the API (the IDs are numbers in confluence, and opaque strings
> > > in XWiki). You can display a key to an user without problems. So yes,
> > > keys are identifiers, and no keys are not supposed to be hidden from
> > > the user like the PageID, CommentID etc.
> >
> > Isn't the whole point of having a space name / title is to display it
> > whenever possible ? I mean, if we use space keys in XEclipse, that means
> > we're not being user friendly - assuming titles are more expressive than
> > keys.
> >
> > > > Now titles on the other hand are what users understand
> > > > (what we should display to them) and I think we should not allow
> them to
> > be
> > > > empty - but in case if a title is not available, we can use the key
> > (since
> > > > there is no other option).
> > > >
> > > Yes, titles (or space names) can be more expressive. In particular
> > > they can contain spaces, be longer etc. In XWiki they are displayed in
> > > a special field on top of the edit box (which btw is empty by
> > > default).
> > >
> > > Most important these two properties of a space can be changed
> > > independently, and the value of one should not influence the value of
> > > the other. This is what the current implementation does.
> >
> > Agreed.
> >
> > > > So in summary, XEclipse was developed with the assumptions,
> > > >
> > > > 1. Keys should be used whenever we refer to documents within
> programs
> > (like
> > > > when invoking XMLRPCs).
> > > >
> > > > 2. Keys should be mapped into titles (or names) when a document is
> > presented
> > > > to a user.
> > > >
> > > I think you make a major confusion between space keys and IDs. They
> > > are not the same, see above. Your statements here are true only for
> > > IDs not for space keys.
> >
> > Ok, didn't know about this. The word "key" always brings a cryptic
> > identifier to my mind....
> >
> > > > We can change XEclipse to use keys only and forget about titles, but
> > that
> > > > will take some more time. And most importantly, this might affect
> > XEclipse
> > > > on XWiki 1.1.
> > > >
> > > Not true. On XWiki 1.1 the title/name was always equal to the key, so
> > > whenever you thought you were using the title/name you were actually
> > > using the key. Now you would use the key explicitly.
> > > > Anyway, in my personal opinion, i think it's necessary we keep the
> > > > distinction between keys and titles intact.
> > > >
> > > This is exactly what i did. They used to be the same, now there is a
> > > clear distinction between the two.
> >
> > I too thought of them separately and expected them to be different.
> Anyway,
> > with the current scheme, we cannot use space names / titles alone on
> > XEclipse since some names can be empty (as you said). So now there are
> three
> > possibilities,
> >
> > 1. Use space keys only in client (for everything) - Then what is the
> use
> > of space names / titles ? <-- have to answer if we are to go with this
> > option. And this requires XEclipse to be changed.
> >
> > 2. Enforce spaces to have a title ( a.k.a not ""). <-- Ideal scenario.
> >
> > 3. Use titles / names whenever they are available and switch to space
> keys
> > otherwise - this should be done on server (see my patch). <-- This is
> > possible since space keys and titles / names can be changed
> independently.
> > The only disadvantage of this scheme is that sometimes users get to see
> a
> > title / name of a space which is not the actual title (when actual title
> is
> > "").
> >
> > I would go with the third option.
> >
> > What would you think ?
> >
> > Regards,
> >
> > - Asiri
> >
> >
> > > Regards,
> > > Catalin
> > >
> > > > > On 8/17/07, Asiri Rathnayake <asiri.rathnayake(a)gmail.com> wrote:
> > > > > > Hi All,
> > > > > >
> > > > > > Sorry about the late response. Busy with academic work :(
> > > > > >
> > > > > > The patch attached will fix the XMLRPC issue related to
> XEclipse.
> > Please
> > > > > > verify it and let me know what you think.
> > > > > > I tested XEclipse with this patch and everything is normal now.
> > > > > >
> > > > > > Regards,
> > > > > >
> > > > > > - Asiri
> > > > > >
> > > > > >
> > > > > > On 8/16/07, Catalin Hritcu <catalin.hritcu(a)gmail.com > wrote:
> > > > > > > Hi,
> > > > > > >
> > > > > > > I updated the xml-rpc implementation on trunk. There are big
> > changes
> > > > > > > so be careful when updating since some of the changes are
> > > > > > > incompatible.
> > > > > > > - all non-string primitive types (like date and int) are now
> > encoded
> > > > to
> > > > > > strings
> > > > > > > the easiest to adapt to this is to start using swizzle which
> makes
> > the
> > > > > > > translation automatic
> > > > > > > - the way all identifiers are built has changed
> > > > > > > anyway, ids should be treated as opaque handlers, so if you
> ever
> > find
> > > > > > > yourself parsing them then you are doing something wrong.
> > > > > > > - the way the page history is different now
> > > > > > > only old versions of the page are considered, and they can be
> > accessed
> > > > > > > like regular pages
> > > > > > >
> > > > > > > There are other smaller fixes, but these are the most
> important
> > ones.
> > > > > > >
> > > > > > > Regards,
> > > > > > > Catalin
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> >
> >
>
3
4
Hi,
I updated the xml-rpc implementation on trunk. There are big changes
so be careful when updating since some of the changes are
incompatible.
- all non-string primitive types (like date and int) are now encoded to strings
the easiest to adapt to this is to start using swizzle which makes the
translation automatic
- the way all identifiers are built has changed
anyway, ids should be treated as opaque handlers, so if you ever find
yourself parsing them then you are doing something wrong.
- the way the page history is different now
only old versions of the page are considered, and they can be accessed
like regular pages
There are other smaller fixes, but these are the most important ones.
Regards,
Catalin
2
5