From d1f0c5fcfc2a966946bbda2b7f30f2463c5f1798 Mon Sep 17 00:00:00 2001
From: Sascha Weinreuter
Date: Tue, 24 May 2011 11:02:47 +0200
Subject: [PATCH] xslt debugger initial commit
---
.idea/modules.xml | 2 +
community-main.iml | 1 +
plugins/xslt-debugger/build.properties | 8 +
plugins/xslt-debugger/build.xml | 198 +++++++
plugins/xslt-debugger/rt/lib/rmi-stubs.jar | Bin 0 -> 28854 bytes
.../rt/lib/saxon-conditions.html | 148 +++++
plugins/xslt-debugger/rt/lib/saxon.jar | Bin 0 -> 572551 bytes
plugins/xslt-debugger/rt/lib/saxon9he.jar | Bin 0 -> 5831535 bytes
plugins/xslt-debugger/rt/lib/serializer.jar | Bin 0 -> 278281 bytes
plugins/xslt-debugger/rt/lib/xalan.jar | Bin 0 -> 3176148 bytes
.../xsltDebugger/rt/XSLTDebuggerMain.java | 58 ++
.../xsltDebugger/rt/engine/Breakpoint.java | 48 ++
.../rt/engine/BreakpointManager.java | 39 ++
.../xsltDebugger/rt/engine/Debugger.java | 103 ++++
.../rt/engine/DebuggerStoppedException.java | 25 +
.../rt/engine/OutputEventQueue.java | 116 ++++
.../plugins/xsltDebugger/rt/engine/Value.java | 105 ++++
.../xsltDebugger/rt/engine/Watchable.java | 25 +
.../rt/engine/local/AbstractFrame.java | 62 ++
.../rt/engine/local/BreakpointImpl.java | 114 ++++
.../engine/local/BreakpointManagerImpl.java | 107 ++++
.../rt/engine/local/LocalDebugger.java | 408 +++++++++++++
.../rt/engine/local/OutputEventQueueImpl.java | 106 ++++
.../rt/engine/local/VariableComparator.java | 24 +
.../rt/engine/local/VariableImpl.java | 85 +++
.../local/saxon/AbstractSaxonFrame.java | 44 ++
.../rt/engine/local/saxon/SaxonFrameImpl.java | 269 +++++++++
.../engine/local/saxon/SaxonSourceFrame.java | 36 ++
.../rt/engine/local/saxon/SaxonSupport.java | 30 +
.../local/saxon/SaxonTraceListener.java | 242 ++++++++
.../local/saxon9/AbstractSaxon9Frame.java | 30 +
.../local/saxon9/Saxon9SourceFrame.java | 38 ++
.../engine/local/saxon9/Saxon9StyleFrame.java | 98 ++++
.../rt/engine/local/saxon9/Saxon9Support.java | 72 +++
.../local/saxon9/Saxon9TraceListener.java | 90 +++
.../engine/local/saxon9/TracingOutputter.java | 124 ++++
.../xalan/TracingSerializationHandler.java | 397 +++++++++++++
.../rt/engine/local/xalan/XObjectValue.java | 80 +++
.../engine/local/xalan/XalanStyleFrame.java | 182 ++++++
.../rt/engine/local/xalan/XalanSupport.java | 123 ++++
.../local/xalan/XalanTraceListener.java | 162 ++++++
.../rt/engine/remote/DebuggerServer.java | 153 +++++
.../rt/engine/remote/RemoteBreakpoint.java | 51 ++
.../engine/remote/RemoteBreakpointImpl.java | 93 +++
.../remote/RemoteBreakpointManager.java | 39 ++
.../remote/RemoteBreakpointManagerImpl.java | 58 ++
.../rt/engine/remote/RemoteDebugger.java | 104 ++++
.../engine/remote/RemoteDebuggerClient.java | 545 ++++++++++++++++++
.../engine/remote/RemoteEventQueueImpl.java | 44 ++
.../rt/engine/remote/RemoteFrameImpl.java | 75 +++
.../rt/engine/remote/RemoteVariableImpl.java | 71 +++
.../rt/engine/remote/ValueImpl.java | 48 ++
plugins/xslt-debugger/rt/xslt-debugger-rt.iml | 52 ++
plugins/xslt-debugger/src/META-INF/plugin.xml | 32 +
.../xsltDebugger/BreakpointContext.java | 53 ++
.../xsltDebugger/DebugProcessListener.java | 68 +++
.../xsltDebugger/DebuggerConnector.java | 130 +++++
.../plugins/xsltDebugger/EDTGuard.java | 294 ++++++++++
.../xsltDebugger/VMPausedException.java | 23 +
.../xsltDebugger/XsltBreakpointType.java | 71 +++
.../xsltDebugger/XsltDebuggerExtension.java | 273 +++++++++
.../xsltDebugger/XsltDebuggerRunner.java | 84 +++
.../xsltDebugger/XsltDebuggerSession.java | 259 +++++++++
.../impl/EvalContextProvider.java | 88 +++
.../impl/XsltBreakpointHandler.java | 173 ++++++
.../xsltDebugger/impl/XsltDebugProcess.java | 189 ++++++
.../impl/XsltDebuggerEditorsProvider.java | 48 ++
.../xsltDebugger/impl/XsltExecutionStack.java | 45 ++
.../xsltDebugger/impl/XsltSourcePosition.java | 65 +++
.../xsltDebugger/impl/XsltStackFrame.java | 235 ++++++++
.../xsltDebugger/ui/AbstractTabComponent.java | 47 ++
.../ui/GeneratedStructureModel.java | 322 +++++++++++
.../ui/GeneratedStructureRenderer.java | 104 ++++
.../xsltDebugger/ui/OutputTabComponent.java | 39 ++
.../ui/SmartStructureTracker.java | 96 +++
.../ui/StructureTabComponent.java | 68 +++
.../xsltDebugger/ui/StructureTree.java | 65 +++
.../ui/StructureTreeExpander.java | 51 ++
.../ui/actions/CopyValueAction.java | 69 +++
.../ui/actions/HideWhitespaceAction.java | 47 ++
.../ui/actions/NavigateAction.java | 29 +
.../ui/actions/OpenOutputAction.java | 65 +++
.../ui/actions/filterWhitespace.png | Bin 0 -> 432 bytes
.../plugins/xsltDebugger/ui/xmlComment.png | Bin 0 -> 472 bytes
plugins/xslt-debugger/xslt-debugger.iml | 28 +
85 files changed, 8292 insertions(+)
create mode 100644 plugins/xslt-debugger/build.properties
create mode 100644 plugins/xslt-debugger/build.xml
create mode 100644 plugins/xslt-debugger/rt/lib/rmi-stubs.jar
create mode 100644 plugins/xslt-debugger/rt/lib/saxon-conditions.html
create mode 100644 plugins/xslt-debugger/rt/lib/saxon.jar
create mode 100644 plugins/xslt-debugger/rt/lib/saxon9he.jar
create mode 100644 plugins/xslt-debugger/rt/lib/serializer.jar
create mode 100644 plugins/xslt-debugger/rt/lib/xalan.jar
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/XSLTDebuggerMain.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/Breakpoint.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/BreakpointManager.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/Debugger.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/DebuggerStoppedException.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/OutputEventQueue.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/Value.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/Watchable.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/AbstractFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/BreakpointImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/BreakpointManagerImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/LocalDebugger.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/OutputEventQueueImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/VariableComparator.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/VariableImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon/AbstractSaxonFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon/SaxonFrameImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon/SaxonSourceFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon/SaxonSupport.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon/SaxonTraceListener.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/AbstractSaxon9Frame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/Saxon9SourceFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/Saxon9StyleFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/Saxon9Support.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/Saxon9TraceListener.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/saxon9/TracingOutputter.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/xalan/TracingSerializationHandler.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/xalan/XObjectValue.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/xalan/XalanStyleFrame.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/xalan/XalanSupport.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/local/xalan/XalanTraceListener.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/DebuggerServer.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteBreakpoint.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteBreakpointImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteBreakpointManager.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteBreakpointManagerImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteDebugger.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteDebuggerClient.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteEventQueueImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteFrameImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/RemoteVariableImpl.java
create mode 100644 plugins/xslt-debugger/rt/src/org/intellij/plugins/xsltDebugger/rt/engine/remote/ValueImpl.java
create mode 100644 plugins/xslt-debugger/rt/xslt-debugger-rt.iml
create mode 100644 plugins/xslt-debugger/src/META-INF/plugin.xml
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/BreakpointContext.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/DebugProcessListener.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/DebuggerConnector.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/EDTGuard.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/VMPausedException.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltBreakpointType.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerExtension.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerRunner.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/XsltDebuggerSession.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/EvalContextProvider.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltBreakpointHandler.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltDebugProcess.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltDebuggerEditorsProvider.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltExecutionStack.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltSourcePosition.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/impl/XsltStackFrame.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/AbstractTabComponent.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/GeneratedStructureModel.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/GeneratedStructureRenderer.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/OutputTabComponent.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/SmartStructureTracker.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/StructureTabComponent.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/StructureTree.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/StructureTreeExpander.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/CopyValueAction.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/HideWhitespaceAction.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/NavigateAction.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/OpenOutputAction.java
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/actions/filterWhitespace.png
create mode 100644 plugins/xslt-debugger/src/org/intellij/plugins/xsltDebugger/ui/xmlComment.png
create mode 100644 plugins/xslt-debugger/xslt-debugger.iml
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 19e68530442f..1c82aaa53ea9 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -100,6 +100,8 @@
+
+
diff --git a/community-main.iml b/community-main.iml
index e3109b8263bf..4b5a9e3fa21d 100644
--- a/community-main.iml
+++ b/community-main.iml
@@ -77,6 +77,7 @@
+
diff --git a/plugins/xslt-debugger/build.properties b/plugins/xslt-debugger/build.properties
new file mode 100644
index 000000000000..ea2fd1e2e723
--- /dev/null
+++ b/plugins/xslt-debugger/build.properties
@@ -0,0 +1,8 @@
+#idea.home=C:\\Programme\\IntelliJ Selena
+idea.home=C:\\work\\Programme\\IntelliJ 10
+idea.plugins.home=${idea.home}/plugins
+
+xpathview.src.home=../xpath
+
+compile.debug=true
+compile.optimize=true
diff --git a/plugins/xslt-debugger/build.xml b/plugins/xslt-debugger/build.xml
new file mode 100644
index 000000000000..e0b869c3b3f9
--- /dev/null
+++ b/plugins/xslt-debugger/build.xml
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The XPathView plugin is required to build the XSLT-Debugger. Please set the property "xpathview.plugin.home" to
+ point to the installation of the plugin in IntelliJ IDEA.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/plugins/xslt-debugger/rt/lib/rmi-stubs.jar b/plugins/xslt-debugger/rt/lib/rmi-stubs.jar
new file mode 100644
index 0000000000000000000000000000000000000000..cb5ad8a8f43d5fcd5daf004cca43efa237eb722f
GIT binary patch
literal 28854
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
+
+
+ SAXON: Conditions of Use
+
+
+
+
+
+ SAXON: Conditions of Use
+
+
+ Saxon
+
+ The contents of the downloaded file (saxon.zip), with the exception of the
+ Ælfred parser (see below),
+ are subject to the Mozilla Public License Version 1.0
+ (the "License"); you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS" basis,
+ WITHOUT WARRANTY OF ANY KIND, either express or implied.
+ See the License for the specific language governing rights and limitations under the License.
+
+
+
+
The Original Code of SAXON comprises all those components which are not explicitly attributed
+ to other parties. It does not include the Ælfred parser, which is redistributed under
+ the licence described below.
+
+ The Initial Developer of the Original Code was Michael Kay.
+ Individual modules identified as being created by James Clark, David Megginson, or John Cowan include
+ separate IPR notices. All Rights Reserved.
+
+
+ Until January 2001 Michael Kay worked for International Computers Limited (ICL, now part
+ of Fujitsu), and from February 2001 to January 2004 he worked for Software AG. These two companies
+ both sponsored the development of Saxon and authorised its release under this license, but are not
+ themselves parties to the license. Michael Kay now runs his own company, Saxonica, which has taken
+ over all responsibility for Saxon development and support.
+
+
+
+ For reasons of continuity,
+ the icl.com domain name is retained in package names and namespace URIs with the tacit
+ consent of ICL, but this should not be taken to imply any ongoing ICL involvement.
+
+
+ If you produce a product that includes or requires SAXON, please refer to it as
+ "The SAXON XSLT Processor from Michael Kay", and include the URL of the
+ home page, which is at
+ http://saxon.sourceforge.net/.
+
+ There is no guarantee of technical support, though I am usually able to answer enquiries
+ within a few days. Please subscribe to the mailing list available at
+
+ http://lists.sourceforge.net/lists/listinfo/saxon-help and raise any enquiries there.
+ Also check the Saxon project pages on sourceforge for details of known errors; all bugs are
+ listed there as soon as I have sufficient evidence to describe the nature of the problem.
+
+
+ Ælfred
+
+ Included in the Saxon distribution is a modified version of the Ælfred XML parser
+ originally developed by David Megginson at Microstar (no longer in existence).
+ I have taken the relevant part of
+ David Brownell's
+ Ælfred2 distribution, repackaged it,
+ and fixed a few bugs. All changes are clearly documented in the source code.
+
+ This is distributed under the terms of Microstar's terms and conditions, which are as follows:
+
+
+
+ |
+
+ AElfred, Version 1.2
+ Microstar's Java-Based XML Parser
+ Copyright (c) 1997, 1998 by Microstar Software Ltd.
+ Home Page: http://www.microstar.com/XML/
+
+ AElfred is free for both commercial and non-commercial use and
+ redistribution, provided that Microstar's copyright and disclaimer are
+ retained intact. You are free to modify AElfred for your own use and
+ to redistribute AElfred with your modifications, provided that the
+ modifications are clearly documented.
+
+
+ DISCLAIMER
+
+
+ This program 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. Please use it AT
+ YOUR OWN RISK.
+
+
+ |
+ |
+
+
+
+ David Brownell added the following statement:
+
+
+/*
+ * Copyright (c) 1999-2000 by David Brownell. All Rights Reserved.
+ *
+ * This program is open source software; you may use, copy, modify, and
+ * redistribute it under the terms of the LICENSE with which it was
+ * originally distributed.
+ *
+ * This program 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
+ * LICENSE for more details.
+ */
+
+
+
+ The version included with Saxon is David Brownell's code of 26 Feb 2000,
+ modified as follows:
+
+
+ - Changed the package name to com.icl.saxon.aelfred to prevent any accidental confusion with the
+ original Microstar code or with David Brownell's version.
+
+ - Fixed several bugs: (1) a bug in namespace handling (where an attribute xxx:name precedes the xmlns:xxx
+ declaration) (2) poor diagnostics when end of file occurs prematurely
+
+ - Subsetting the code to include only the XML non-validating parser and SAX driver, with appropriate
+ changes to the setFeature() and getFeature() methods.
+
+ - Some further changes made by David Brownell up to June 2001 have been incorporated.
+
+
+
+
+ Michael H. Kay
+ Saxonica Limited
+ 22 June 2005
+
+
+
+
+
+