Почему URL-адреса находятся в пространствах имен XML? - PullRequest
34 голосов
/ 22 апреля 2011

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

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

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

Ответы [ 4 ]

16 голосов
/ 23 апреля 2011

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

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

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

9 голосов
/ 22 апреля 2011

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

4 голосов
/ 22 апреля 2011

W3 объяснение Здесь

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

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

1 голос
/ 24 ноября 2016

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

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

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

...