При составлении новых тегов XML они должны находиться в пространстве имен? - PullRequest
1 голос
/ 12 января 2009

Я не уверен, требуются ли пространства имен для правильного / правильного XML. Могу ли я добавить произвольные теги в документ XML без необходимости определять / объявлять для них пространство имен?

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

Ответы [ 3 ]

3 голосов
/ 12 января 2009

Пространства имен не требуются, но в будущем вы будете рады, что использовали их.

2 голосов
/ 12 января 2009

Можно ли добавить произвольные теги в документ XML без необходимости определять / объявлять для них пространство имен?

Это зависит от того, что вы подразумеваете под «действительным / правильным XML». Для правильной формы не имеет значения, будет ли приемлем любой атрибут в пространстве имен или нет.

«Действительность», с другой стороны, имеет особое значение для схем. Допустимо ли добавление атрибутов к существующим элементам или нет, зависит от определения схемы рассматриваемого документа. Это может быть схема XML, или DOCTYPE, или что-то еще, например RELAX-NG. Если у вас нет объявленной схемы для вашего документа, тогда понятие «достоверность» не имеет смысла, и вы можете пойти дальше и добавить атрибуты там, где вам нравится.

Например, для XHTML-документа с обычным типом документа нельзя вообще добавлять какие-либо атрибуты. Однако вы можете создать свой собственный тип документа из битов XHTML со своими собственными расширениями, если хотите. Вот что делает, например, доктайп «XHTML плюс MathML плюс SVG». При этом используются пространства имен для различения частей, взятых из каждого языка; В целом, это хорошая идея, если вы смешиваете понятия из разных спецификаций.

Как сказал Хэнк, вам не нужно, но вам не нужно ничего добавлять в атрибуты xmlns, и это создает прочную основу для смешанных / встроенных документов.

1 голос
/ 12 января 2009

Пространства имен не являются строгими требованиями в XML, однако, как указывалось ранее, они позволяют вам сохранять ваш код более организованным, сортировать как пространства имен в языках программирования. Если вам нужна более конкретная информация, вы можете прочитать эту Рекомендацию W3C , в которой разъясняются значения правильно сформированных пространств имен и допустимых пространств имен.

...