Почему URL-адреса в пространствах имен XML?

Возьмите эту строку как один из примеров:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
</configuration>

Некоторые краткие исследования научили меня, что ничто не обязательно должно размещаться по этому URL-адресу. Поэтому, если это просто ссылка на пространство имен, содержащееся в локальной сборке, зачем использовать URL-адреса вместо обычных пространств имен, таких как те, которые обычно используются .NET(например, System.Data)?

Ответ 1

Это просто конвенция. URI (это то, что они есть, а не URL-адреса) - удобный и общеизвестный способ идентификации ресурсов. С другой стороны, идентификаторы стиля .NET знакомы и узнаваемы для разработчиков .NET - там скорее больше XML, чем .NET.

Ответ 2

Когда вы спрашиваете, почему стандарт является таким, каким он есть, есть две возможные интерпретации вашего вопроса: (a) каковы предполагаемые преимущества выбора дизайна, которые были сделаны, и (б) какова была историческая последовательность события, которые привели к тому, что этот дизайн был принят над другими проектами.

Ясно, что использование HTTP-подобных URI дает уникальность. Но это могло быть достигнуто и другими способами, например, путем разработки новой схемы URI. Я думаю, что если вы проследите аргументы, которые были сделаны в то время, вы обнаружите, что многие люди, выступающие за использование URI в стиле HTTP, также выступали за то, что URI пространства имен должны быть неразрешимыми, возможно, для схемы или какого-либо другого рода документа. Действительно, это политика W3C для собственных пространств имен, где всегда есть документ, который можно получить при вводе URI пространства имен в браузер, и что он должен сообщить вам что-то полезное в пространстве имен.

Поэтому я подозреваю, что мы используем URI, которые выглядят бесчувственными, но не определяют какую-либо семантику того, что происходит, когда они разыменованы, на самом деле является результатом компрометации комитета между двумя или более противостоящими лагерями. Но вам нужно сделать некоторые исторические исследования, чтобы подтвердить это.

Ответ 3

Описание W3 Здесь

Так же, как пространства имен в .NET, пространства имен в документах XML предназначены для предотвращения и разрешения конфликтов имен, особенно если документы XML из разных организаций и/или областей знаний.

Формат документа XML был стилизован теми же людьми, которые отвечают за HTML, поэтому вы можете найти синтаксические сходства в элементах формата. Семантически, пространства имен dotNET и XML служат одной и той же цели.

Ответ 4

Ядро проблемы заключается в том, что пространства имен должны быть URI. Нет никакой веской причины для такой вещи, поскольку все, что ей нужно, это уникальный идентификатор, чтобы дать контекст для определенных элементов.

Поскольку они должны быть URI, все возможности бессмысленны, потому что нужна схема (например, http), хотя пространство имен не имеет ничего общего с такой вещью.

Итак, чтобы ответить на вопрос о том, почему: как и все плохие идеи, кто-то думал, что в то время это была хорошая идея.