Everything can be found on the https://android.googlesource.com.
The manifest model is not written as .xsd file. Instead it is written as a group of objects. The tree can be found here
If you start from
Manifest you can see, that it has the references to
List<UsesPermission>, etc. The
Application has references to
List<Activity> and so on.
A sample from
@Attribute("name") @Required @Convert(PackageClassConverter.class) @ExtendClass("android.app.Activity") AndroidAttributeValue<PsiClass> getActivityClass();
As you can see this is the way, that Android Studio knows, that
activity tag inside manifest must have a name. Two annotations are used:
One of them is the name of .xml tag attribute, and the second one informs, that this attribute is required.
The names of tags, that can be used inside manifest can be found here
A helper class used by Android Studio to get manifest properties can be found here