¿Cuál es el uso del espacio de nombres de la aplicación en Android XML?

A continuación se muestra el código de un menú que se muestra en una actividad (DetailFragment.xml del curso de Android Sunshine udacity)

No pude entender por qué se necesitan dos espacios de nombres diferentes a continuación. ¿Por qué no puedo usar el espacio de nombres android: en lugar de la aplicación:

En la parte xml siguiente, cuando reemplazo la aplicación: actionProviderClass = "android.support.v7.widget.ShareActionProvider" con la aplicación: actionProviderClass = "android.widget.ShareActionProvider"

Parecía dar algún error de asignación, pero funciona bien si la aplicación se cambia a Android como se muestra a continuación android: actionProviderClass = "android.widget.ShareActionProvider"

No puedo entender qué está sucediendo exactamente aquí.

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_share"
        android:title="@string/action_share"
        app:showAsAction="always"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
</menu>

Respuestas a la pregunta(3)

Su respuesta a la pregunta