Full List of All Accessible Types Through Metadata Api
Good question, both these things are not as clear as they should be in the docs. Here are some points that can help you.
Discovering all Metadata Types.
- This topic in the documentation gives you the top level types. However you will notice that other types such as CustomField or ValidationRule are not listed. This is due to them being child meta types.
- Which are available as part of the top level ones or individually. The way to determine those via the documetnation and downloading the WSDL is described in this topic.
- The other option, programically is to call the describeMetadata operation (which is what Eclipse and other tools do).
- If you want a more interactive experince the Force.com Workbench tool can also give you this list (again using the describeMetadata call as described here).
Discovering Identifiers for Metadata Types
- The documentation for each metadata type (top level or child) does descrbe the full name in more detail, however the best examples can come from the XML snippets they show below.
- As above, one of the best options is to browse for it via Force.com Workbench as discussed above. Or indeed let Eclipse generate your package.xml by using its Metadata Project Contents dialog.
Hope this helps!