Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Пространство имен

Пространство именВнимательный читатель должен был заметить, что в приведенном выше примере схемы XSD дескрипторы элементов содержали несколько столбцов. Что все это значит? Дескрипторы в данном примере имели префиксы в виде названий пространств имен. Если вы знакомы с языками семейства. NET или Java, концепция пространств имен не будет вам в диковинку (правда, в Java эквивалентным понятием является Пакет). Пространством имен называют область определения, в которой уникально существует некоторый дескриптор. К примеру, у вас два друга, причем обоих зовут Петр. Тогда различать их придется с помощью фамилий (<Jones:Peter> и <Mackenzie:Peter>). В школе могут учиться в разных классах два ученика с одинаковыми именами и фамилиями, тогда обратиться к их информации можно будет с помощью дескрипторов <Grade5:MarySmith> и <Grade3:MarySmith>. В XML пространства имен приобрели еще более важное значение, особенно если в одном документе XML объединено несколько независимых информационных фрагментов. Исходные фрагменты могут иметь одинаковые дескрипторы, и при их объединении могут возникнуть коллизии. Эти конфликты можно разрешить с помощью определения, задав принадлежность данных дескрипторов разным пространствам имен. Предположим, что мы объединяем два фрагмента XML, в которых уже определены пространства имен, причем в обоих — как MyNamespace. Что можно предпринять в данном случае? Во избежание подобных суперколлизий дескрипторы в XML не используют фактические пространства имен, а только их префиксы. В двух фрагментах, только что приведенных в качестве примера, MyNamespace на самом деле не является именем — это всего лишь Псевдоним. Псевдоним пространства имен может быть распознан. Он определяется в дескрипторе элемента, причем это определение распространяется на все его дочерние элементы. Для определения пространства имен используется специальный атрибут xmlns.