<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../default_style.css" type="text/css">
<link rel="stylesheet" href="../../webtools/wtp.css" type="text/css">
<title>web standard tools components</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">wst components</font>
<br>
<font class="indexsub">web standard tools components</font></td><td width="40%"><img width="207" hspace="50" height="129" align="middle" src="../../webtools/images/wtplogosmall.jpg"></td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Introduction</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			This document describes the component structure for the Web
			Standard Tools subproject. As the name of this subproject
			implies, our scope includes Web standards, such as HTML,
			XML, and related standards which are defined by
			organizations such as W3C, OASIS, and ANSI. This is in
			contrast to the J2EE Standard Tools subproject whose scope
			is the J2EE specification as defined by the JCP. One of the
			main organizing principles of this subproject is to group
			all work related to a given standard within a single
			component. For example, there are components for HTML, XML,
			and SQL. The other main organizing principle is to create a
			component for each major framework. For example, there are
			components for Server tools and Structure Source Editing.
			Finally, there are components for related sets of code that
			do not fall into either of the two main categorizations. For
			example, there is a common component for utilities and other
			shared infrastructure code.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a href="http://dev.eclipse.org/viewcvs/index.cgi/wst/components/?cvsroot=WebTools_Project">
				CVS Repository
			</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			All WST components are stored in the Eclipse CVS repository
			at dev.eclipse.org in the path
			/home/webtools/wst/components.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The following sections briefly describe the components and
			their component leads.
		</p>
</td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Components</font></b></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="wstassembly">assembly</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The assembly component contains features definitions for
			building the WST release, its SDK, and its test suite. The
			component leads are Deniz Se&ccedil;ilir and Dominique de
			Vito.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="command">command</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The command component contains command infrastructure
			including the Environment Command framework and the Dynamic
			Wizard framework. This infrastructure is required by the
			webtooling project, but is not specific to webtooling per
			se. We need to harmonize the several existing command
			approaches. The component lead is Chris Brealey.
			<ul>
				
<li>
					
<a href="components/command/index.html">Overview</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/command/M9/milestone_plan.html">Current Milestone Plan</a>
				
</li>
				
<li>
					
<a href="components/command/M5/test_plan.html">Current Test Plan</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="wstcommon">common</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The common component contains common utilities and
			infrastructure which are required by the webtooling project,
			but which are not specific to webtooling per se. The most
			notable examples are the Extensible Navigator, Tabbed
			Properties View, Snippets View, and Extensible URI Resolver.
			The component lead is Craig Salter.
			<ul>
				
<li>
					
					
<a href="../jst/components/j2ee/j2ee_index.html">
						J2EE Main page (Navigator info found here)
					</a>
				
</li>
				
<li>
                   
<a href="components/common/overview/snippets/overview.html">
                       Snippets View: Overview
                   </a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/common/M9/milestone_plan.html">
						Snippets View: Current Milestone Plan
					</a>
				
</li>
				
<li>
				    
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
				        Current Test Plan
				    </a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="css">css</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The css component contains the CSS editor, model, views,
			wizards, etc. The component lead is David Williams.
			<ul>
				
<li>
					
<a href="components/css/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/css/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/css/test_plan.php">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="doc">doc</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The doc component contains the end user and ISV
			documentation for the WST subproject. This includes
			infopops and both Eclipse integrated and online help.
			The component lead is Lawrence Mandel.
			<ul>
				
				
<li>
					
<a href="../plans/1.0/wst/doc/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="http://wiki.eclipse.org/index.php/Doc_Test_Plan">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="dtd">dtd</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The dtd component contains the DTD editor, model, views,
			wizards, etc. The component lead is Nitin Dahyabhai.
			<ul>
				
<li>
					
<a href="components/dtd/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/dtd/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/dtd/test_plan.php">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="html">html</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The html component contains the HTML/XHTML editor, model,
			views, wizards, etc. The component lead is David Williams.
			<ul>
				
<li>
					
<a href="components/html/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/html/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/html/test_plan.php">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="internet">internet</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The internet component contains Internet preferences (e.g.
			proxy server configuration), Web browser support, and the
			TCP/IP monitor. The component lead is Tim deBoer.
			<ul>
				
<li>
					
<a href="components/internet/index.html">
						Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/internet/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="components/internet/test_plan.html">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="javascript">javascript</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The javascript component contains the JavaScript editor,
			model, views, wizards, etc. The component lead is David
			Williams.
			<ul>
				
<li>
					
<a href="components/javascript/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/javascript/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/javascript/test_plan.php">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="rdbsql">rdb</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The rdb component contains the relational database model
			<a href="components/rdb/WebPublishedDBDefinitionModel/DBDefinition.htm">
				DB Definition Model
			</a>
			,
			<a href="components/rdb/DBDefinitionModelJavaDoc/index.html">
				DB Definition Model Java Docs
			</a>
			, which is derived from
			<a href="components/rdb/WebPublishedSQLModel/SQLModel.htm">
				RDBModel - Based on SQL 99/2003
			</a>
			,
			<a href="components/rdb/SQLModelJavaDoc/index.html">
				RDBModel Java Docs
			</a>
			, vendor-specific database definitions and relational
			utilities. It also provides a database server explorer with
			the ability to connect to databases and sample data. A SQL
			Scrapbook editor allows you to enter and execute SQL,
			displaying the results in an Output view. The co-leads are
			Der Ping Chou and Sheila Sholars.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ul>
			
<li>
				
<a href="../plans/1.0/wst/rdb/M8/milestone_plan.html">
					Current Milestone Plan
				</a>
			
</li>
			
<li>
				
<a href="components/rdb/test_plan.html">Current Test Plan</a>
			
</li>
			
<li>
				
<a href="components/rdb/wtp_datatools_testcases.htm">
					Test Cases
				</a>
			
</li>
			
<li>
				
<a href="components/rdb/RDBTutorial.html">
					Tutorial for RDB
				</a>
			
</li>
			
<li>
				
<a href="components/rdb/Data Tools Open Source Overview for Eclipse database Developer.html">
					White Paper for RDB
				</a>
			
</li>
		
</ul>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="wstserver">server</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The server component contains the Server Tools framework and
			adapters for selected servers. At the WST level, the server
			component is a very generic infrastructure. (The J2EE
			specific server component is in JST). The component lead is
			Tim deBoer.
			<ul>
				
<li>
					
<a href="components/server/index.html">Overview</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/server/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="components/server/test_plan.html">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="sse">sse</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The sse component contains the Structured Source Editor
			framework. This framework provides some abstract models and
			ui infrastructure slightly above the base text
			infrastructure but lower than any specific language which
			uses it, such as XML, CSS, HTML, and JSP. The component lead
			is David Williams.
			<ul>
				
<li>
					
<a href="components/sse/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/sse/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/sse/test_plan.php">
						Current Test Plan
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="validation">validation</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The validation component contains the Validation framework
			which coordinates the registration and execution of
			validators. Validators are a special form of an Eclipse
			builder which (typically) does not produce derived output,
			can have performance advantages, can be used for "batch"
			validation, putting errors or warnings in the task view, and
			sometimes can be (re)used for source page validation,
			putting "temporary" annotation in editors. The
			language/component validators, e.g HTML link checker, XSD
			validator, and WSDL validator, are located in their specific
			components, this Validation component simply provides the
			framework. The component lead is Chuck Bridgham.
			<ul>
				
<li>
					
<a href="components/validation/ValidationOverview.html">
						Validation Framework Overview
					</a>
				
</li>
				
<li>
					
<a href="components/validation/ValidationFrameworkRework.html">
						Validation Framework Enhancements in WTP 1.5
						
					</a>
						<img src="components/validation/images/new.gif">
				</li>
				
<li>
					
<a href="components/validation/scenarios/validation_framework_testplan.html">
						Current Test Plan
					</a>
				
</li>
				
<li>
					
<a href="../jst/components/j2ee/M4/milestone_plan.html">
						Current Milestone M4 Plan - Available on J2EE
						Main page
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="web">web</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The web component contains models, natures and builders for
			Web projects. The component lead is Chuck Bridgham.
			<ul>
				
<li>
					
<a href="../jst/components/j2ee/j2ee_index.html">
						J2EE Main page(Simple Web project info found
						here)
					</a>
				
</li>
				
<li>
				    
<a href="../plans/1.5/jst/j2ee/RC5/test_plan.html">
				        Current Test Plan
				    </a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="ws">ws</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The ws component contains the Web Services Explorer, Apache
			SOAP, Apache Axis, UDDI4J and WSIL4J models and a number of
			general purpose frameworks for use by callers and extenders
			of the Web services platform. The component lead is Chris
			Brealey.
			<ul>
				
<li>
					
<a href="components/ws/index.html">Overview</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/ws/M9/milestone_plan.html">Current Milestone Plan</a>
				
</li>
				
<li>
					
<a href="components/ws/M5/test_plan.html">Current Test Plan</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="wsdl">wsdl</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The wsdl component contains the WSDL editor, model, views,
			wizards, etc. The component lead is Craig Salter.
			<ul>
				
<li>
					
<a href="../plans/1.0/wst/wsdl/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="http://wiki.eclipse.org/index.php/WSDL_Test_Plan">
						Current Test Plan
					</a>
				
</li>
			
</ul>
			Tutorials
			<ul>
				
<li>
					
<a href="components/wsdl/tutorials/WSDLEditorTutorial.html">
						WSDL Editor Tutorial
					</a>
				
</li>
			
</ul>
		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="wsi">wsi</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The wsi component contains WS-I Test Tools which will be
			repatriated from the WSVT project. The component lead is
			Craig Salter.
		</p>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<ul>
				
<li>
					
<a href="../plans/1.0/wst/wsi/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="http://wiki.eclipse.org/index.php/WSI_Test_Plan">
						Current Test Plan
					</a>
				
</li>
			
</ul>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="xml">xml</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The xml component contains the XML editor, model, views,
			wizards, etc. It contains an incremental, fault tolerant DOM
			parser, which is also the basis of several other similar
			models in HTML and JSP. The component lead is David
			Williams.
			<ul>
				
<li>
					
<a href="components/xml/overview.html">
						Component Overview
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/xml/M9/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/2.0/wst/xml/test_plan.php">
						Current Test Plan
					</a>
				
</li>
				
			
</ul>
		
 		
</p>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../../images/Adarrow.gif"></td><td>
			<a name="xmlschema">xsd</a>
		</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
			The xsd component contains the XSD editor, views, wizards,
			etc. The component lead is Craig Salter.
			<ul>
				
<li>

						Component Overview

				</li>
				
<li>
					
<a href="http://wiki.eclipse.org/index.php/XSD_Test_Plan">
						Current Test Plan
					</a>
				
</li>
				
<li>
					
<a href="../plans/1.0/wst/xsd/M8/milestone_plan.html">
						Current Milestone Plan
					</a>
				
</li>
			
</ul>
			Tutorials
			<ul>
				
<li>
					
<a href="../testtutorials/M2/xml/XMLSchemaEditorTutorial.html">
						XML Schema Editor Tutorial
					</a>
				
</li>
			
</ul>

		
</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
