Почему существуют пространства имен XML?
Потому что в 1997 году некоторые очень влиятельные лица в W3C хотели их и не приняли бы за ответ. Даже когда это было продемонстрировано, я решительно говорю, что есть лучшие способы решения «проблемы», которые, по их мнению, они имели, они все же использовали свое влияние, чтобы их желания были записаны в Рекомендацию W3C.
Самым крупным в настоящее время обширной мифологией вокруг пространства имен XML является то, что для них есть технические достоинства. (Это влияние нижеизложенной Рекомендации, просто существующей и, следовательно, занимающей пространство мышления - «да, должна быть (хорошая) причина!» - в отличие от забываемой сноски где-то.)
Much pain, no gain.
Когда мы должны использовать их, а когда нет?
Вы не должны использовать их, если сможете это сделать. К сожалению, неустанное продвижение этого устройства BAD [*] заинтересованными сторонами способствовало созданию кластерных функций спецификаций сегодня, из-за чего практически невозможно не столкнуться с пространствами имен XML в какой-то момент. Таким образом, даже если вы избегаете пространства имен XML самостоятельно, вы обнаружите, что на вас нападают пространства имен, со всех сторон или, что еще хуже, инструменты, которые просто отказываются работать, если вы не кормите их такой крапивкой.
Каковы распространенные ошибки при работе с пространствами имен в XML?
Очень распространенная ошибка заключается в использовании выражений Xpath с документами, в которых пространство имен было «дефолтом»: пространство имен должно быть явным в выражениях. Другая проблема заключается в их правильном использовании при построении документов: they create problems out of thin air.
Также, как они соотносятся с XML-схемами? Должны ли XSD-схемы всегда ассоциироваться с пространством имен?
Нет необходимости в отношении, за исключением того, что спецификация схемы XSD была разработана в то время, когда почти все члены комитета имели бит XML Namespaces в своих зубах. Поэтому они работали так глубоко, как могли. Тем не менее, можно использовать схемы XSD без пространств имен, но это крутой подъемник, так как почти каждый набор инструментов, поддерживающий схемы XSD, предполагает, что вы будете «хотеть» использовать пространства имен.
[*] BAD = сломана Разработанный
UPDATE: An old essay on this non-solution to a non-problem.
Я удивлен, что [эта ошибка] (http://lists.xml.org/archives/xml-dev/200306/msg00010.html) все еще держится, 10-15 лет спустя. Также см. [This] (http://lists.xml.org/archives/xml-dev/200305/msg00836.html) – arayq2 2013-06-05 13:46:32
Вы говорите, что это неверно, что пространства имен являются хорошим решением или вы говорите, что это неверно, что они были предназначенные для использования при деконфликт, и на практике используются таким образом (с какими-либо недостатками)? Я утверждаю только последнее. – 2013-06-05 23:07:27
Я говорю, что пространства имен XML вовсе не являются решением. устройство «решает» только некоторые варианты использования, но далеко не все, и тем более за счет исключения общего решения, которое на самом деле существует и действительно существовало еще до того, как эта глупость увидела свет дня. И, кстати, изначально они были «предназначены» для обозначения происхождения, но когда указывалось, что это уже проблема, инициаторы начали перемещать стойки ворот и держались на ней, пока критики не нашли их время] (http://lists.xml.org/archives/xml-dev/200305/msg00344.html). – arayq2 2013-06-10 20:41:55