<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta
    http-equiv="Content-Type"
    content="text/html; charset=UTF-8" />
<link
    rel="stylesheet"
    href="../../../development/news/default_style.css"
    type="text/css" />
<title>Web Tools Platform 1.5 News</title>
</head>
<body>
<table>
    <tbody valign="top">
        <tr>
            <td align="left">
            <h1>Eclipse Web Tools Platform 1.5 - New and Noteworthy</h1>
            <blockquote></blockquote>
            </td>
            <td
                valign="top"
                align="right"><img
                alt="Small WTP logo"
                src="../../../images/wtplogosmall.jpg" /></td>
        </tr>
    </tbody>
</table>
<table
    width="80%"
    cellspacing="0"
    cellpadding="10"
    border="0">
    <tbody>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <tr>
            <td colspan="2">
            <h2>Structured Source Editing</h2>
            </td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Code folding</b></td>
            <td
                width="70%"
                valign="top">Code folding support has been added to the XML, HTML, JSP, and CSS editors. To enable
            code folding, check the "Enable folding" checkbox located on the <b>Structured Text Editors</b> preference
            page's <b>Appearance</b> tab. <br />
            <br />
            <img
                src="../../../wst/components/sse/1.5/new_and_noteworthy/folding-preferences.png"
                alt="Preferences for folding" /> When enabled, each editor will automatically create foldable areas
            where supported. <br />
            <br />
            <img
                src="../../../wst/components/sse/1.5/new_and_noteworthy/folding-example.png"
                alt="Example of folding within the XML Editor" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Spell-checking</b></td>
            <td
                width="70%"
                valign="top">Spell-checking support has been added to the WTP source editors. After enabling it and
            specifying a dictionary on the Text Editors <b>Spelling</b> preference page, spelling errors will be
            displayed in the source when editing. Eclipse does not currently include any dictionaries, although
            contributions would be welcomed. Dictionaries for the default spelling engine can be obtained from <a
                href="http://wordlist.sourceforge.net/">http://wordlist.sourceforge.net/</a>. <br />
            <br />
            <img
                src="../../../wst/components/sse/1.5M5/new_and_noteworthy/spell1.png"
                alt="Spelling preference page" /> <br />
            <br />
            <img
                src="../../../wst/components/sse/1.5M5/new_and_noteworthy/spell2.png"
                alt="Spelling warning in HTML editor" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <tr>
            <td colspan="2">
            <h2>XSD</h2>
            </td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Updated Design View</b></td>
            <td
                width="70%"
                valign="top">The XML Schema Editor has changed its graphical visualization to provide a
            'type-oriented' view of an XML Schema. A type is displayed as a box-like figure. If the type contains
            elements and attributes, these are listed as fields within the box. In the WTP 1.0 version of the editor,
            attributes of a complex type are shown in the properties page so now, they are more easily accessible. <br />
            <br />
            The 'focus object' is the primary object in the view. (To make an object the focus object, see the
            Navigation section below). If the focus obect is a type, its inherited type will be displayed above the
            figure. If the focus object contains elements or attributes, their references will be displayed to the right
            of the focus object. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Design-ComplexType.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Refactoring</b></td>
            <td
                width="70%"
                valign="top">In WTP 1.5, there is inter-file refactoring in addition to pre-existing intra-file
            refactoring support. This means that if you rename a complex type, any references to it from other schemas
            in the current project or workspace will be updated. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Refactoring.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Navigation</b></td>
            <td
                width="70%"
                valign="top">To drill down to the details level of a component or make it the 'focus object' in the
            graph view, double click on the object from the top level index view of the Schema, or click on the the
            object in the outline view. Click the Back to Schema button to switch back to the schema index view. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Design-BackToSchema.png"
                border="0"
                alt="placeholder" /> <br />
            <br />
            If you are already in the details view, and there are references to other complex types, you can double
            click on any of the complex types to make it as the focus object in the graph page. Select the back and
            forward buttons in the navigation framework to move between contexts. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/NavigationButtons.png"
                border="0"
                alt="placeholder" /> <br />
            <br />
            The editor has hyperlink support in the source view. Hold down the Ctrl key and move the mouse pointer over
            some reference (ie. reference to some other type, or other schema), and a link appears. If you mouse click
            on the link, context changes to that reference. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Source-Hyperlink.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Browsing for types and elements</b></td>
            <td
                width="70%"
                valign="top">Select the Browse... action to invoke the new Set Type dialog where you can choose a
            type from the current schema, or any schema in the current project or workspace. Once you've chosen the
            type, and if it belongs to some external schema, an import will be automatically added for you. Similarly,
            you can browse for elements when editing element references. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Browse.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Properties - Simple Type Constraints</b></td>
            <td
                width="70%"
                valign="top">The property sheet for simple types have been redesigned. It is more compact and more
            intuitive to use. If the built-in string type is too general for your purposes and you need to restrict the
            values, enter a min or max length value and an anonymous simple type will be automatically created for you.
            Enumeration and pattern facets can be added from the right side of this page. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Properties-Constraints.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Extensions</b></td>
            <td
                width="70%"
                valign="top">You can provide specialized extension information to your schemas via the extensions
            tab of the properties view. Use the 'Add..' button to choose from categories of available extensions. Then
            use the Tree view and the details view to edit the extension information. <br />
            <br />
            <img
                src="../../../wst/components/xsd/1.5/images/Properties-Extensions.png"
                border="0"
                alt="placeholder" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <tr>
            <td colspan="2">
            <h2>DTD</h2>
            </td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
        <!--new item-->
        <tr>
            <td
                width="30%"
                valign="top"
                align="left"><b>Property Sheets</b></td>
            <td
                width="70%"
                valign="top">Property Sheets have been added the DTD editor to help ease the task of creating and
            editing DTDs. <br />
            <br />
            <img
                src="../../../wst/components/dtd/1.5/new_and_noteworthy/property.png"
                alt="attribute property sheet" /></td>
        </tr>
        <!--separating row-->
        <tr>
            <td colspan="2">
            <hr />
            </td>
        </tr>
    </tbody>
</table>
<p align="center"><a href="index.html"> Up </a></p>
</body>
</html>
