Ответ 1
Он позволяет ссылаться на пространство имен позже в схеме. Например, если вы объявляете именованный тип, а затем хотите также объявить элемент этого типа
<complexType name="someType">
<!-- ... -->
</complexType>
<element name="someElement" type="tns:someType" />
Просто сказать, что type="someType"
не будет работать, потому что это будет ссылаться на (несуществующий) someType
в пространстве имен http://www.w3.org/2001/XMLSchema
(xmlns="..."
файла схемы), а не на то, что находится в http://www.example.org/Product
namespace.