I am new in Egit and WTP, i am specially interested in Source Editing.
I would like to make an XML editor for this i would like to understand how it's works in the WTP Source Editing : org.eclipse.wst.xml.ui plug-in.
For some practice, i followed the tutorial writed by Nitin Dahyabhai : http://www.eclipse.org/webtools/community/tutorials/DevelopingWTP/DevelopingWTP.html
and it works fine. I managed to modify Eclipse!

But i have some questions:
When i tested the modification and opened an xml file, i noticed in the Design view that there are two column (Node and Content). And I want to know how the xml file is linked to xsd data (in Content column). I want to find the class which permit the binding between the xml file and his schema and the extension which permit to display that.

If you're mostly curious about how we determine the string that specifies the content model for a particular element, this is done by the class org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder in its buildDescription method. This takes the content model declaration of an element, and builds the string for you. The element declaration has all the information about valid children, attributes, etc. The method that actually provides the text for that column in the viewer is org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeContentProvider.getColumnText()

To get the CMElementDeclaration that describes an element, you would invoke ModelQueryUtil.getModelQuery(element.getOwnerDocument()); to get the ModelQuery. With the ModelQuery, you can invoke getCMElementDeclaration passing the element as an argument. The ModelQuery will answer most of your "What can I do" questions for an XML document.

Is this what you wanted to know, or did you want to know more about how we build the content model from the schema?

First Thank for your answer. it's helped me to understand more.
There is so many classes and packages, i try to analyse them but it's still some blured.
My objectif is to understand how you build the content model from the schema.
My work is to create an xml editor who bind informations between the xml document and his corresponding schema data.
For examlpe when you right click on a element of the the XML Document a popup window offers to you the possibility to create either an attribute or another child element in accordance with his schema.
I already created a DomParser which parse an xml document and load his corresponding schema; so i want to know how you proceed to perform that.

The content model is built from the schema using org.eclipse.wst.xsd.contentmodel.internal.XSDImpl.buildCMDocument(String). This provides a CMDocument that can be associated with the XML document for the content model queries. I believe EMF is involved in building up a content model from the schema file. Unfortunately, I do not have in-depth knowledge on anything more specific than that. If you were just looking to use the content model to provide additional actions or more information, you need to just obtain a StructuredModel for that particular XML document. As mentioned earlier, you'd be able to query that content model using the ModelQuery APIs. Hopefully that could save you some work. The CMDocument and the CMNodes from that are what are used to create the actions you see in the existing Design pane for things like Add Child...

If you wanted to replace the existing Design page for the XML editor, you can subclass org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart and override createDesignPage and return an implementation of org.eclipse.wst.xml.ui.internal.tabletree.IDesignViewer. The XMLMultiPageEditorPart really was only intended to have a Design and Source page. So while you could override createPages(), and create the source page and design page in addition to your new page, you don't really have any access to either of those.

Thanks you for your precious help i understand more how all it's linked.
Finally i managed to create my new Design page and i am ready to customize it for making a new page to add it in the xml Editor.