SCA/Components/SCA XML Editor
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.
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.
Here is an example of auto-completion for attribute values (promote attribute).
Currently, the editor proposes values for the following attributes:
- attribute promote from composite service mark-up
- attribute promote from composite reference mark-up
- attributes source and target from composite wire mark-up
- attribute target from component reference mark-up
- 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.
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.
<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.
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.
It then leads to the following proposal.
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.
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.