<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../wtp.xsl"?>
<html>
        <head>
                <title>web standard tools components</title>
        </head>
        <body>
                <h1>wst components</h1>

                <h2>Introduction</h2>
                <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>

                <h3>
                        <a
                                href="http://dev.eclipse.org/viewcvs/index.cgi/wst/components/?cvsroot=WebTools_Project">
                                CVS Repository
                        </a>
                </h3>
                <p>
                        All WST components are stored in the Eclipse CVS repository
                        at dev.eclipse.org in the path
                        /home/webtools/wst/components.
                </p>
                <p>
                        The following sections briefly describe the components and
                        their component leads.
                </p>

                <h2>Components</h2>

                <h3>
                        <a name="wstassembly">assembly</a>
                </h3>
                <p>
                        The assembly component contains features definitions for
                        building the WST release, its SDK, and its test suite. The
                        component leads are Deniz Se&#231;ilir and Dominique de
                        Vito.
                </p>

                <h3>
                        <a name="command">command</a>
                </h3>
                <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="components/command/M3/milestone_plan.html">
                                                M3 Milestone Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/command/M4/milestone_plan.html">
                                                M4 Milestone Plan (under construction)
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="wstcommon">common</a>
                </h3>
                <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/M3/encoding_milestone_plan.html">
                                                Encoding: Current Milestone Plan
                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/common/M3/snippetsview_milestone_plan.html">
                                                Snippets View: Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="css">css</a>
                </h3>
                <p>
                        The css component contains the CSS editor, model, views,
                        wizards, etc. The component lead is David Williams.
                        <ul>
                                <li>
                                        See
                                        <a href="components/sse/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/css/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/css/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>

                        </ul>
                </p>

                <h3>
                        <a name="dtd">dtd</a>
                </h3>
                <p>
                        The dtd component contains the DTD editor, model, views,
                        wizards, etc. The component lead is Nitin Dahyabhai.
                        <ul>
                                <li>
                                        See
                                        <a href="components/sse/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a href="components/dtd/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/dtd/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="html">html</a>
                </h3>
                <p>
                        The html component contains the HTML/XHTML editor, model,
                        views, wizards, etc. The component lead is David Williams.
                        <ul>
                                <li>
                                        See
                                        <a href="components/sse/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a href="components/html/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/html/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="internet">internet</a>
                </h3>
                <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="components/internet/M4/milestone_plan.html">Milestone Plan</a>
                                </li>
                                <li>
                                        <a href="components/internet/test_plan.html">Test Plan</a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="javascript">javascript</a>
                </h3>
                <p>
                        The javascript component contains the JavaScript editor,
                        model, views, wizards, etc. The component lead is David
                        Williams.
                        <ul>
                                <li>
                                        See
                                        <a href="components/sse/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/javascript/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/javascript/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="rdbsql">rdb</a>
                </h3>
                <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>

                <ul>
                        <li>
                                <a href="components/rdb/milestone_plan.html">
                                        Milestone Plan
                                </a>
                        </li>
                        <li>
                                <a href="components/rdb/test_plan.html">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>

                <h3>
                        <a name="wstserver">server</a>
                </h3>
                <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="components/server/M4/milestone_plan.html">Milestone Plan</a>
                                </li>
                                <li>
                                        <a href="components/server/test_plan.html">Test Plan</a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="sse">sse</a>
                </h3>
                <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/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/sse/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/sse/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="validation">validation</a>
                </h3>
                <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/scenarios/validation_framework_testplan.html">
                                           M3 Validation 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>

                <h3>
                        <a name="web">web</a>
                </h3>
                <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>
                        </ul>
                </p>

                <h3>
                        <a name="ws">ws</a>
                </h3>
                <p>
                        The ws component contains the Web Service explorer, SOAP,
                        UDDI, and WSIL models, and views. The component lead is
                        Chris Brealey.
                        <ul>
                                <li>
                                        <a href="components/ws/index.html">
                                                Overview
                                        </a>
                                </li>
                                <li>
                                        <a href="components/ws/M3/milestone_plan.html">
                                                M3 Milestone Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/ws/M4/milestone_plan.html">
                                                M4 Milestone Plan (under construction)
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="wsdl">wsdl</a>
                </h3>
                <p>
                        The wsdl component contains the WSDL editor, model, views,
                        wizards, etc. The component lead is Craig Salter.
                        <ul>
                                <li>
                                        <a href="components/wsdl/M3/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                        </ul>
                        Tutorials
                        <ul>
                                <li>
                                        <a
                                                href="components/wsdl/tutorials/WSDLEditorTutorial.html">
                                                WSDL Editor Tutorial
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="wsi">wsi</a>
                </h3>
                <p>
                        The wsi component contains WS-I Test Tools which will be
                        repatriated from the WSVT project. The component lead is
                        Craig Salter.
                </p>

                <h3>
                        <a name="xml">xml</a>
                </h3>
                <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/M4/milestone_plan.html">
                                                Current Milestone Plan
                                        </a>
                                </li>
                                <li>
                                        See
                                        <a href="components/sse/m2/m2.html">
                                                M2 New and Noteworty: Reintroducing the
                                                Structured Source Editing family of editors

                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/xml/M3/milestone_test_plan.html">
                                                Current Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/xml/xml-catalog_M2TestPlan.html">
                                                XML Catalog M2 Test Plan
                                        </a>
                                </li>
                                <li>
                                    <a
                                                href="components/xml/xml-dtd-xsd-validation_M2TestPlan.html">
                                                XML, DTD, and XSD Validation M2 Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="components/xml/xml-examples_M2TestPlan.html">
                                                XML Examples M2 Test Plan
                                        </a>
                                </li>
                        </ul>
                        Tutorials
                        <ul>
                                <li>
                                        <a
                                                href="../testtutorials/M2/xml/XMLCatalogTutorial.html">
                                                XML Catalog Tutorial
                                        </a>
                                </li>
                                <li>
                                        <a
                                                href="../testtutorials/M2/xml/XMLValidationTutorial.html">
                                                XML Validation Tutorial
                                        </a>
                                </li>
                                <li>
                                        <a href="../testtutorials/M2/xml/XMLWizards.html">
                                                Creating XML Documents Tutorial
                                        </a>
                                </li>
                        </ul>
                </p>

                <h3>
                        <a name="xmlschema">xsd</a>
                </h3>
                <p>
                        The xsd component contains the XSD editor, views, wizards,
                        etc. The component lead is Craig Salter.
                        <ul>
                                <li>
                                        <a
                                                href="components/xsd/xsd-editor_M2TestPlan.html">
                                                XML Schema Editor M2 Test Plan
                                        </a>
                                </li>
                                <li>
                                        <a href="components/xsd/M3/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>

        </body>
</html>
