<?xml version='1.0'?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<article lang="en">
  <articleinfo id="articleinfo">
    <title id="articleinfo-title">Vex</title>
    <date />
    <author>
      <firstname>David</firstname>
      <surname>Carver</surname>
      <affiliation>
        <address>
          <email>d_a_carver@yahoo.com</email>
        </address>
      </affiliation>
    </author>
    <abstract id="abstract">
      <para>The Vex project is a proposed open source project under the 
      <ulink url="http://www.eclipse.org/mylyn/">Mylyn - 
      Documentation</ulink> container project.</para>
      <para>This proposal is in the Project Proposal Phase (as defined 
      in the Eclipse Development Process) and is written to declare its 
      intent and scope. We solicit additional participation and input 
      from the Eclipse community. Please send all feedback to the Vex 
      Forum.</para>
    </abstract>
    <revhistory>
      <revision>
        <revnumber>1.0</revnumber>
        <date>October 18, 2010</date>
        <revdescription>
          <para>Initial Project Proposal for Mylyn Documentation 
          Project.</para>
        </revdescription>
      </revision>
    </revhistory>
  </articleinfo>
  <section id="some-id">
    <title>Vex - Visual Editor for XML</title>
    <para>The Vex project is a proposed open source project under the 
    <ulink url="http://www.eclipse.org/mylyn/">Mylyn - 
    Documentation</ulink> container project.</para>
    <para>This proposal is in the Project Proposal Phase (as defined in 
    the Eclipse Development Process) and is written to declare its 
    intent and scope. We solicit additional participation and input 
    from the Eclipse community. Please send all feedback to the Vex 
    Forum.</para>
    <section>
      <title>Background</title>
      <para>XML is being used more and more in document file formats. 
      Such formats as DocBook, and DITA have been used to help provide 
      a common format for document meta data. It helps separate the 
      content from the presentation. As word processor formats move to 
      XML like OpenOfficeXML and OpenDocument, it becomes more critical 
      to have a WYSIWYG interface for these file formats. Most users 
      that have to write books, articles, and other print related 
      material don&apos;t want to deal with the tags for the 
      files, but they want the convenience and separation of presentation 
      that these formats provide.</para>
    </section>
    <section>
      <title>Scope</title>
      <para>The Visual XML Editor is a set of plugins that provide 
      WYSIWYG editing ability for XML files. This can be used 
      regardless of the XML involved, and uses CSS stylesheets to 
      provide the formatting for the presentation layer. All that is 
      needed is an stylesheet and an appropriate XML file to edit. It 
      hides the XML tags from the user, allow them to have a word 
      processor like experience but store the information in the native 
      XML format.</para>
    </section>
    <section>
      <title>Description</title>
      <para>Vex will be based off of a contribution from the Vex 
      (Visual Editor for XML) project, originally created by John 
      Krasnay and hosted at sourceforge.net. This code was donated to 
      eclipse and has been an Eclipse Web Tools Incubator component. 
      The goal of the project is to provide a WYSIWYG XML Editor 
      primarily targeted for those using XML authoring file formats. It 
      will be leverage existing XML support and frameworks from the Web 
      Developers Tools project. Particularly, the Structure Source 
      Editor, as well as the WTP validation frameworks. It will also 
      make use of the DTD and XML schema support for the files as well. 
      It provides a plugin architecture that allows for the use with 
      any arbitrary XML file, and creation of new CSS style sheets 
      that can be used with existing known document formats.</para>
    </section>
    <section>
      <title>Initial Contribution</title>
      <para>All code is currently incubating with in the Web Tools 
      Incubator project. The current committers are shooting for a 
      spring graduation date. The code has consistent Hudson builds, and 
      is using git as the sour code control system. Builds are using 
      Maven 3 and Tycho. P2 update sites are available. The code 
      supports DITA and DocBook formats out of the box.</para>
    </section>
    <section>
      <title>Legal Issues</title>
      <para>All code has been reviewed and approved through the Eclipse 
      IP Process. There are no outstanding CQs that need to be 
      completed or approved. All past contributors on the SourceForge 
      project have approved the relicensing of the code under the 
      Eclipse Public License.</para>
    </section>
    <section>
      <title>Committers</title>
      <para>The following individuals are proposed as initial 
      committers to the project:</para>
      <itemizedlist>
        <listitem>
          <para>David Carver, Intalio Inc.</para>
          <para>David Carver, is a committer on the Web Tools Source 
          Editing project, Orbit, and XQuery web tools incubator 
          project. He is also a current member of the Eclipse 
          Architecture Council.</para>
        </listitem>
        <listitem>
          <para>Holger Voorman, Agilantis</para>
          <para>Holger Voorman, is a commiter on the Web Tools 
          Incubator Vex component.</para>
        </listitem>
        <listitem>
          <para>Florian Thienel, Thienel Software</para>
          <para>Florian Thienel, is a commiter on the Web Tools 
          Incubator Vex component.</para>
        </listitem>
        <listitem>
          <para>Igor Jacy Lino Campista</para>
          <para>Igor Jacy Lino Campista, is a commiter on the Web Tools 
          Incubator Vex component.</para>
        </listitem>
      </itemizedlist>
      <para>We welcome additional committers and contributions.</para>
    </section>
    <section>
      <title>Mentors</title>
      <para>The following Architecture Council members will mentor this 
      project:</para>
      <itemizedlist>
        <listitem>
          <para>David Carver</para>
        </listitem>
        <listitem>
          <para>Mik Kersten</para>
        </listitem>
      </itemizedlist>
    </section>
    <section>
      <title>Interested Parties</title>
      <para>The following individuals, organisations, companies and 
      projects have expressed interest in this project:</para>
      <itemizedlist>
        <listitem>
          <para>Standards for Technology in Automotive Retail</para>
        </listitem>
      </itemizedlist>
    </section>
    <section>
      <title>Project Scheduling</title>
      <para>The tentative plan is to get the existing code migrated and 
      aligned with the Mylyn project&apos;s development process. This 
      will include:</para>
      <para>
        <itemizedlist>
          <listitem>
            <para>Migrate Code to Mylyn and do package renaming.</para>
          </listitem>
          <listitem>
            <para>Update and create documentation.</para>
          </listitem>
          <listitem>
            <para>Continuing Integrating source views to leverage 
            existing SSE editing and XML functionality. As well as 
            Mylyn functionality. This is an on going process..</para>
          </listitem>
          <listitem>
            <para>Continue working on support for displaying Images 
            within the editor.</para>
          </listitem>
          <listitem>
            <para>Provide base line Cookbook examples for creating 
            appropriate stylesheets.</para>
          </listitem>
          <listitem>
            <para>Provide Mylyn Task editor integration and context 
            support where possible.</para>
          </listitem>
        </itemizedlist>
      </para>
    </section>
  </section>
</article>
