Почему существуют пространства имен XML?
Потому что еще в 1997 году некоторые очень влиятельные люди в W3C хотели их и не принимали «нет» за ответ. Даже когда это было продемонстрировано, я осмелюсь окончательно сказать, что были более эффективные способы решения «проблемы», которая, по их мнению, имела место, они все же использовали свое влияние, чтобы записать свои желания в Рекомендации W3C.
Самая большая проблема в обширной мифологии, связанной с пространствами имен XML, заключается в том, что они имеют техническую ценность. (Это последующий эффект Рекомендации, которая просто существует и, таким образом, занимает пространство разума - «ну, должна быть (хорошая) причина!» - в отличие от где-то забытой сноски.)
Сильная боль, без усиления .
Когда мы должны их использовать, а когда нет?
Вы никогда не должны использовать их, если можете помочь. К сожалению, постоянное продвижение этого устройства BAD [*] заинтересованными сторонами привело к появлению кластера * ck спецификаций, которые делают практически невозможным не сталкиваться с пространствами имен XML в тот или иной момент. Таким образом, даже если вы сами отказываетесь от пространств имен XML, вы обнаружите, что инкрустированный пространствами имен грубый шпионит за вами со всех сторон, или, что еще хуже, наборы инструментов, которые просто отказываются работать, если вы не кормите их таким грубым.
Каковы распространенные подводные камни при работе с пространствами имен в XML?
Одна очень распространенная ловушка заключается в использовании выражений Xpath с документами, в которых пространство имен было «по умолчанию»: пространство имен должно быть явным в выражениях. Другая проблема заключается в том, что они используются «правильно» при построении документов: они создают проблемы из ничего .
Кроме того, как они связаны со схемами XML? Должны ли схемы XSD всегда быть связаны с пространством имен?
Нет никакой необходимой связи, за исключением того, что спецификация XSD-схемы была разработана в то время, когда почти у всех в комитете были зубы пространства имен XML. Таким образом, они работали так глубоко, как могли. Тем не менее, возможно использовать схемы XSD без пространств имен, но это крутой подъем, поскольку почти каждый набор инструментов, поддерживающий схемы XSD, предполагает, что вы «захотите» использовать пространства имен.
[*] ПЛОХО = сломано, как задумано
ОБНОВЛЕНИЕ: Старое эссе о том, что это не решение проблемы .