Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

SCA/Components/SCA XML Editor

< SCA
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


ScaCompositeXmlEditorOverview.gif
Overview of the SCA XML Editor


Basic Features

The SCA Composite XML editor extends and specializes for SCA composites the XML editor provided by the WTP Eclipse project.
Thus, this editor inherits from the following features :

  • Syntax highlighting
  • Text formatting
  • XSD-based validation
  • Contextual Information
  • ...

As a basic feature, the editor is automatically associated with *.composite files. It also uses the XSD files defining SCA elements, to validate your file and provide auto-completion for mark-ups and attribute names.


Extended Features

This editor has been extended to provide additional features specific to SCA composites.


Attribute Values Proposals

It consists in making auto-completion proposals for attribute values. Once you have entered an attribute name and are about to define its value, you can ask for auto-completion proposals by typing ctrl + space. If the attribute is one of the supported ones, then you should get proposals based on context information.


Here is an example of the mark-up auto-completion provided by the WTP editor.

Default auto-completion (mark-up and attribute names)



Here is an example of auto-completion for attribute values (promote attribute).

Auto-completion for attribute values



Currently, the editor proposes values for the following attributes:

  1. attribute promote from composite service mark-up
  2. attribute promote from composite reference mark-up
  3. attributes source and target from composite wire mark-up
  4. attribute target from component reference mark-up
  5. attribute name from composite include mark-up

The five first quoted attributes will get SCA relative URIs ( componentName/serviceName or componentName/referenceName ) as proposals. The proposals which are made take in account included composites, which means that proposals will include elements from included composites. Composite inclusion is discussed farther.


Extended Mark-ups Proposals & Preference Page

Regarding user assistance, the WTP XML editor uses a catalog of XSD files to make proposals for mark-ups and attributes. However, it often appears that XSD files can't be all embedded into Eclipse plug-ins, most of the time because of license or copyright issues. Which lets two solutions: let the user download and register these XSD files in the XSD catalog, or provide another mechanism to simulate these XSD files.

The second option was chosen and this is why a preference page was defined for the SCA XML-based editors. It allows to define platforms, namespaces, bindings, implementations and interfaces. This mechanism replace XSD files.

This preference page permits to complete the user-assistance proposals when the user asks for it, by providing elements which are not described in the registered XSDs. The proposals are sensitive to the presence of the platform namespaces. As an example, if you want to get proposals for Tuscany specific elements, you have to declare the Tuscany prefix (the best choice being to define it in the composite element, at the root of the document).

The information registered in this preference page was retrieved from the platforms documentation, but can be updated by any user.


ScaCompositeXmlEditorPF1.gif

ScaCompositeXmlEditorPF2.gif

ScaCompositeXmlEditorPF3.gif

Composite Inclusions

SCA assembly model provides an inclusion mechanism which allows a composite file to include other composite files. A good example of this mechanism is available in the assembly model document of the SCA specification.

The SCA Composite XML editor can help you when using composite inclusion. When typing <include name", you can ask for auto-completion proposals by typing in ctrl + space. This will display the composites available in your project (and not already included in your file).


Example: include the composite Restaurant whose target namespace is http://tuscany/sample/restaurant.
ScaCompositeXmlEditorACIncludeSample1.gif


The proposals only include composites which are valid XML files. Besides, they must have defined the targetNamespace attribute. Since include names are QNames, the editor makes sure to add the namespace prefix to get a correct result. If the namespace URI was already defined in your document, the proposal will reuse its prefix. Otherwise, it will generate one and add it in the mark-up.


Let's take the previous example and let's define the namespace http://tuscany/sample/restaurant in the composite top element.
ScaCompositeXmlEditorACIncludeSample3.gif


It then leads to the following proposal.
ScaCompositeXmlEditorACIncludeSample4.gif


Auto-completion uses included files to make proposals. However, notice that recursive inclusions are not managed by this editor, since it is still not clear about how runtime platforms will handle it.


SCA Outline View

Eventually, the editor provides a SCA specific outline view. This view displays composite elements with their icon (the same than those used by the SCA Composite Designer). Like the previous features, this outline handles file inclusions. For the moment, the view only provides basic actions. They will be extended in a future version.


ScaCompositeXmlEditorOutline.gif


Edition of SCA Component Types

This editor has been extended to edit *.componentType files. As a result, the features provided when editing composite files are also available when editing componentType files. This editor also proposes a wizard to create such kind of file.

Back to the top