Пространство имен XML требуется? - PullRequest
1 голос
/ 20 июня 2010

Я изучаю обработку XML и XML. Я не могу хорошо понять существование пространства имен.

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

Я хочу привести пример:

<persons>
  <person></person>
  <s:person xmlns:s="student"></s:person>
  <person type="student"></person>
</persons>

Первый человек - это обычный элемент. Пространство имен второго использования и атрибут типа третьего использования.мы не можем использовать третий вместо второго?

Ответы [ 2 ]

4 голосов
/ 21 июня 2010

Конечно, вы можете различать ваши объекты и их атрибуты под разными именами - при условии, что вы полностью и полностью контролируете все свои данные XML!

Но учтите следующее: вам нужно интегрироваться со сторонними веб-сервисами или интерфейсом данных, который отправляет вам данные в формате XML. Что если этот веб-сервис или интерфейс данных также реализует <Person>? Как вы держите свой собственный тип человека отдельно от потенциально совершенно другого типа человека, внедренного третьей стороной?

Эта идея лежит в основе пространств имен XML - и поэтому крайне важно сделать их глобально уникальными, что приводит к практике использования для них URI (доменных имен) - поскольку домен "google.com" определенно будет существовать только когда-либо. один раз - глобально.

0 голосов
/ 20 июня 2010

Разница между использованием атрибута и пространства имен заключается в семантике. В вашем примере студент - это подкласс человека. Что делать, если вы использовали тег table? Таблица базы данных и деревянный стол не являются подклассами одной и той же универсальной таблицы - это совершенно разные понятия, поэтому имеет смысл использовать разные пространства имен.

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

Для получения дополнительной информации см. Пространства имен XML в W3Schools.

...