initial commit in accordance with CQ 3784
diff --git a/org.eclipse.jdt.core/schema/annotationProcessorManager.exsd b/org.eclipse.jdt.core/schema/annotationProcessorManager.exsd
new file mode 100644
index 0000000..11d9c55
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/annotationProcessorManager.exsd
@@ -0,0 +1,123 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jdt.core">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.jdt.core" id="annotationProcessorManager" name="Java 6 Annotation Processor Manager"/>
+      </appInfo>
+      <documentation>
+         This extension point gives the JDT access to a Java 6 annotation processor manager on platforms where that is available. At most one Java 6 annotation processor manager extension can be registered.  Java 5 annotation processors are handled separately, using the org.eclipse.jdt.core.compilationParticipants extension point.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="annotationProcessorManager"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="annotationProcessorManager">
+      <annotation>
+         <documentation>
+            The Java 6 annotation processor is responsible for dispatching Java 6 annotation processors in the context of IDE builds and reconciles.  There is at most one Java 6 annotation processor manager system-wide.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+         </sequence>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the class that implements the Java 6 annotation processor manager. This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.internal.compiler.AbstractAnnotationProcessorManager&lt;/code&gt; with a public 0-argument constructor.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.internal.compiler.AbstractAnnotationProcessorManager"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a unique identifier for this participant
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         3.3
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         org.eclipse.jdt.compiler.apt
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2007 BEA Systems, Inc and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at 
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/org.eclipse.jdt.core/schema/classpathContainerInitializer.exsd b/org.eclipse.jdt.core/schema/classpathContainerInitializer.exsd
new file mode 100644
index 0000000..5d282b5
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/classpathContainerInitializer.exsd
@@ -0,0 +1,124 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jdt.core">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.jdt.core" id="classpathContainerInitializer" name="Classpath Container Initializers"/>
+      </appInfo>
+      <documentation>
+         This extension point allows clients to contribute custom classpath container initializers, 
+      which are used to lazily bind classpath containers to instances of org.eclipse.jdt.core.IClasspathContainer.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="classpathContainerInitializer" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified identifier of the target extension point
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  an optional identifier of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  an optional name of the extension instance
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="classpathContainerInitializer">
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a unique name identifying all containers for which this initializer will be activated.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the class that implements this container initializer.
+         This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.core.ClasspathContainerInitializer&lt;/code&gt; with a public 0-argument constructor.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.core.ClasspathContainerInitializer"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         2.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         Example of a declaration of a &lt;code&gt;ClasspathContainerInitializer&lt;/code&gt; for a classpath container named &quot;JDK&quot;:  &lt;pre&gt;                                                                       
+&lt;extension point=&quot;org.eclipse.jdt.core.classpathContainerInitializer&quot;&gt;            
+   &lt;classpathContainerInitializer                                          
+      id=&quot;JDK&quot;                                                        
+      class=&quot;com.example.MyInitializer&quot;/&gt;                           
+&lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/org.eclipse.jdt.core/schema/classpathVariableInitializer.exsd b/org.eclipse.jdt.core/schema/classpathVariableInitializer.exsd
new file mode 100644
index 0000000..eb0b558
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/classpathVariableInitializer.exsd
@@ -0,0 +1,141 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jdt.core">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.jdt.core" id="classpathVariableInitializer" name="Classpath Variable Initializers"/>
+      </appInfo>
+      <documentation>
+         This extension point allows clients to contribute custom classpath variable initializers, 
+      which are used to lazily bind classpath variables.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="classpathVariableInitializer" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified identifier of the target extension point
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  an optional identifier of the extension instance
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  an optional name of the extension instance
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="classpathVariableInitializer">
+      <complexType>
+         <attribute name="variable" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a unique name identifying the variable for which this initializer will be activated.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the class that implements this variable initializer.
+         This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.core.ClasspathVariableInitializer&lt;/code&gt; with a public 0-argument constructor.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.core.ClasspathVariableInitializer"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="deprecated" type="string">
+            <annotation>
+               <documentation>
+                  String explaining the reason why the associated variable is deprecated
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="readOnly" type="boolean">
+            <annotation>
+               <documentation>
+                  Indicates that the associated variable cannot be modified
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         2.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         Example of a declaration of a &lt;code&gt;ClasspathVariableInitializer&lt;/code&gt; for a classpath variable named &quot;FOO&quot;:  &lt;pre&gt;                                                                       
+&lt;extension point=&quot;org.eclipse.jdt.core.classpathVariableInitializer&quot;&gt;            
+   &lt;classpathVariableInitializer                                          
+      variable=&quot;FOO&quot;                                                        
+      class=&quot;com.example.CPVInitializer&quot;/&gt;                           
+&lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Eclipse Public License v1.0 which accompanies 
+this distribution, and is available at &lt;a
+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/org.eclipse.jdt.core/schema/codeFormatter.exsd b/org.eclipse.jdt.core/schema/codeFormatter.exsd
new file mode 100644
index 0000000..4fe77e6
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/codeFormatter.exsd
@@ -0,0 +1,111 @@
+<?xml version='1.0' encoding='UTF-8'?>

+<!-- Schema file written by PDE -->

+<schema targetNamespace="org.eclipse.jdt.core">

+<annotation>

+      <appInfo>

+         <meta.schema plugin="org.eclipse.jdt.core" id="codeFormatter" name="Code Formatters"/>

+      </appInfo>

+      <documentation>

+         This extension point allows clients to contribute new source code formatter implementations.

+      </documentation>

+   </annotation>

+

+   <element name="extension">

+      <complexType>

+         <sequence>

+            <element ref="codeFormatter" minOccurs="0" maxOccurs="unbounded"/>

+         </sequence>

+         <attribute name="point" type="string" use="required">

+            <annotation>

+               <documentation>

+                  a fully qualified identifier of the target extension point

+               </documentation>

+            </annotation>

+         </attribute>

+         <attribute name="id" type="string">

+            <annotation>

+               <documentation>

+                  an optional identifier of the extension instance

+               </documentation>

+            </annotation>

+         </attribute>

+         <attribute name="name" type="string">

+            <annotation>

+               <documentation>

+                  an optional name of the extension instance

+               </documentation>

+               <appInfo>

+                  <meta.attribute translatable="true"/>

+               </appInfo>

+            </annotation>

+         </attribute>

+      </complexType>

+   </element>

+

+   <element name="codeFormatter">

+      <complexType>

+         <attribute name="class" type="string" use="required">

+            <annotation>

+               <documentation>

+                  the class that defines the code formatter implementation. This class must be a public implementation of &lt;code&gt;org.eclipse.jdt.core.ICodeFormatter&lt;/code&gt; with a public 0-argument constructor.

+               </documentation>

+            </annotation>

+         </attribute>

+      </complexType>

+   </element>

+

+   <annotation>

+      <appInfo>

+         <meta.section type="since"/>

+      </appInfo>

+      <documentation>

+         2.0

+      </documentation>

+   </annotation>

+

+   <annotation>

+      <appInfo>

+         <meta.section type="examples"/>

+      </appInfo>

+      <documentation>

+         Example of an implementation of &lt;code&gt;ICodeFormatter&lt;/code&gt;:  &lt;pre&gt;                                                                       
+&lt;extension point=&quot;org.eclipse.jdt.core.codeFormatter&quot;&gt;            
+   &lt;codeFormatter                                                                                              
+      class=&quot;com.example.MyCodeFormatter&quot;/&gt;                           
+&lt;/extension&gt;
+&lt;/pre&gt;

+      </documentation>

+   </annotation>

+

+   <annotation>

+      <appInfo>

+         <meta.section type="apiInfo"/>

+      </appInfo>

+      <documentation>

+         

+      </documentation>

+   </annotation>

+

+   <annotation>

+      <appInfo>

+         <meta.section type="implementation"/>

+      </appInfo>

+      <documentation>

+         

+      </documentation>

+   </annotation>

+

+   <annotation>

+      <appInfo>

+         <meta.section type="copyright"/>

+      </appInfo>

+      <documentation>

+         Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 

+available under the terms of the Eclipse Public License v1.0 which accompanies 

+this distribution, and is available at &lt;a

+href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;

+     </documentation>

+   </annotation>

+

+</schema>

diff --git a/org.eclipse.jdt.core/schema/compilationParticipant.exsd b/org.eclipse.jdt.core/schema/compilationParticipant.exsd
new file mode 100644
index 0000000..b786852
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/compilationParticipant.exsd
@@ -0,0 +1,192 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.jdt.core">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.jdt.core" id="compilationParticipant" name="Compilation Participants"/>
+      </appInfo>
+      <documentation>
+         This extension point allows clients to participate in the compilation process by receiving notifications at various stages of build and reconcile, via a org.eclipse.jdt.core.compiler.CompilationParticipant.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="compilationParticipant" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="compilationParticipant">
+      <annotation>
+         <documentation>
+            definition of a compilation participant. This definition allows to order participants. Participants are run by group. The group of participants that modify the environment is run first, then the group of participants that create problems is run, finally the group of other participants is run. Inside each group, participants are ordered using their &apos;requires&apos; attributes. If a &apos;requires&apos; attribute point to a participant that doesn&apos;t belong to the group, it is ignored.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="requires" minOccurs="0" maxOccurs="unbounded"/>
+            <element ref="managedMarker" minOccurs="0" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the class that implements this compilation participant. This class must implement a public subclass of &lt;code&gt;org.eclipse.jdt.core.compiler.CompilationParticipant&lt;/code&gt; with a public 0-argument constructor.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.core.compiler.CompilationParticipant"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a unique identifier for this participant
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="modifiesEnvironment" type="boolean">
+            <annotation>
+               <documentation>
+                  optionally specify whether this compilation participant modifies the environment, thus affecting binding resolution. If not specified, false is assumed.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="createsProblems" type="boolean">
+            <annotation>
+               <documentation>
+                  optionally specifies whether this compilation participant creates problems. If not specified, false is assumed.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="requiredSourceLevel" type="string">
+            <annotation>
+               <documentation>
+                  the required source level this participant needs (one of the JavaCore.VERSION* constants). If a project&apos;s source level is below this required source level, the participant will not be invoked. If this attribute is not specified, the participant will be invoked for any source level.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="requires">
+      <annotation>
+         <documentation>
+            a participant that is required to run this compilation participant
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the unique identifier of the participant that is required
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="managedMarker">
+      <annotation>
+         <documentation>
+            a managed marker is created from the recorded problems (see BuildContext#recordNewProblems(CategorizedProblem[])) and is removed when the corresponding source file is re-built or when the project is cleaned
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="markerType" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the type of the managed marker
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         3.2
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         Example of a declaration of a &lt;code&gt;compilationParticipant&lt;/code&gt;:  &lt;pre&gt;                                                                       
+&lt;extension
+      id=&quot;apt&quot;
+      name=&quot;%annotationProcessingName&quot;
+      point=&quot;org.eclipse.jdt.core.compilationParticipant&quot;&gt;
+   &lt;compilationParticipant
+         class=&quot;org.eclipse.jdt.apt.core.internal.AptCompilationParticipant&quot;
+         id=&quot;APT&quot;
+         requiredSourceLevel=&quot;1.5&quot;&gt;
+      &lt;managedMarker markerType=&quot;org.eclipse.jdt.apt.core.compile.problem&quot;/&gt;
+   &lt;/compilationParticipant&gt;
+&lt;/extension&gt;
+&lt;/pre&gt;
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2006 BEA Systems, Inc and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials
+are made available under the terms of the Eclipse Public License v1.0
+which accompanies this distribution, and is available at 
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/org.eclipse.jdt.core/schema/compiler.dtd b/org.eclipse.jdt.core/schema/compiler.dtd
new file mode 100644
index 0000000..fee6364
--- /dev/null
+++ b/org.eclipse.jdt.core/schema/compiler.dtd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!ELEMENT compiler (error*,command_line?,options?,classpaths?,error*,sources*,extra_problems?,stats?,exception*)>
+<!ELEMENT command_line (argument*)>
+<!ELEMENT options (option*)>
+<!ELEMENT classpaths (classpath+)>
+<!ELEMENT error (#PCDATA)>
+<!ELEMENT sources (source+)>
+<!ELEMENT source (problems*,tasks*,(classfile | error)*)>
+<!ELEMENT problems (problem+)>
+<!ELEMENT problem (message,source_context,arguments?)>
+<!ELEMENT arguments (argument+)>
+<!ELEMENT tasks (task+)>
+<!ELEMENT task (message, source_context)>
+<!ELEMENT stats (time?,number_of_lines?,problem_summary?,number_of_classfiles?)>
+<!ELEMENT argument (#PCDATA)>
+<!ELEMENT option (#PCDATA)>
+<!ELEMENT classpath (#PCDATA)>
+<!ELEMENT message (#PCDATA)>
+<!ELEMENT number_of_lines (#PCDATA)>
+<!ELEMENT time (#PCDATA)>
+<!ELEMENT number_of_classfiles (#PCDATA)>
+<!ELEMENT classfile (#PCDATA)>
+<!ELEMENT source_context (#PCDATA)>
+<!ELEMENT problem_summary (#PCDATA)>
+<!ELEMENT exception (#PCDATA)>
+<!ELEMENT extra_problems (extra_problem+)>
+<!ELEMENT extra_problem (message,source_context)>
+<!ATTLIST argument value CDATA #REQUIRED>
+<!ATTLIST option key   CDATA #REQUIRED
+				 value CDATA #REQUIRED
+>
+<!ATTLIST classpath path CDATA #REQUIRED
+                    id   CDATA #REQUIRED
+>
+<!ATTLIST source path    CDATA #REQUIRED
+                 output  CDATA #IMPLIED
+                 package CDATA #IMPLIED>
+<!ATTLIST problems problems CDATA #REQUIRED
+				   errors   CDATA #REQUIRED
+				   warnings CDATA #REQUIRED
+>
+<!ATTLIST tasks tasks CDATA #REQUIRED>
+<!ATTLIST problem charEnd   CDATA #REQUIRED
+				  charStart CDATA #REQUIRED
+				  severity  CDATA #REQUIRED
+				  line      CDATA #REQUIRED
+				  id        CDATA #REQUIRED
+				  problemID  CDATA #IMPLIED
+				  optionKey  CDATA #IMPLIED
+				  categoryID CDATA #IMPLIED
+>
+<!ATTLIST extra_problem charEnd   CDATA #REQUIRED
+				        charStart CDATA #REQUIRED
+				        severity  CDATA #REQUIRED
+				        line      CDATA #REQUIRED
+>
+<!ATTLIST extra_problems problems CDATA #REQUIRED
+>
+<!ATTLIST message value CDATA #REQUIRED>
+<!ATTLIST source_context value       CDATA #REQUIRED
+                         sourceStart CDATA #REQUIRED
+                         sourceEnd   CDATA #REQUIRED
+>
+<!ATTLIST task charEnd   CDATA #REQUIRED
+			  charStart CDATA #REQUIRED
+			  line      CDATA #REQUIRED
+			   optionKey  CDATA #IMPLIED
+>
+<!ATTLIST classfile path CDATA #REQUIRED>
+<!ATTLIST error message CDATA #REQUIRED>
+<!ATTLIST problem_summary problems CDATA #REQUIRED
+                          errors   CDATA #REQUIRED
+                          warnings CDATA #REQUIRED
+                          tasks    CDATA #REQUIRED
+>
+<!ATTLIST number_of_classfiles value CDATA #REQUIRED>
+<!ATTLIST time value CDATA #REQUIRED>
+<!ATTLIST number_of_lines value CDATA #REQUIRED>
+<!ATTLIST compiler name      CDATA #REQUIRED
+                  copyright CDATA #REQUIRED
+                  version   CDATA #REQUIRED
+>
+<!ATTLIST exception class CDATA #REQUIRED
+			        message CDATA #REQUIRED
+>
\ No newline at end of file