There are many possible mechanisms and it depends which schema processor you are using. Schema processing is sometimes integrated with XML parsing but conceptually it's a separate operation and can be done independently.
One way which many people use, but which I don't like much, is the xsi:schemaLocation attribute where the XML instance document itself defines a mapping from namespace URIs to schema locations. I don't like it because if you're validating a document you shouldn't trust it enough to tell you what schema to use for validation.
Most schema processors are likely to have some kind of API or command line interface that allows you to provide schema locations. For example if you're using Saxon then it's
...Validate -s:source.xml -xsd:schema.xsd
where schema.xsd is the top-level schema document that includes/imports any other schema documents needed. There's no explicit binding to namespaces here: Saxon will read the schema documents provided and work out which definitions apply to which namespaces.