Как разместить элементы управления внутри динамической таблицы

В спецификаторе вы правильно считаете пространство имен attrib в первом примере пустым. Тем не менее, здесь есть тонкость, которая может быть не очевидна.

Рассмотрим этот пример далее в спецификации элемента с двумя атрибутами с тем же именем (один префикс и другой нефиксированный).

<!-- This is OK, even though an element cannot have two attributes 
     with the same name -->
<x xmlns:n1="http://www.w3.org" 
   xmlns="http://www.w3.org" >
  <good a="1"     n1:a="2" />
</x>

Это соответствует, потому что два атрибута действительно находятся в двух разных пространствах имен:

  • n1:a принадлежит пространству имен http://www.w3.org (которое является пространством имен для good)
  • a рассматривается как принадлежащее недоступному пространству имен http://wwww.w3.org > good (и отличается от пространства имен good).

Примечание что пространство имен http://wwww.w3.org > good не существует; например, вы не можете запрашивать атрибуты в этом пространстве имен с помощью XPath. Если вы попросите namespace-uri(\\good\a), он будет пустым. Чтобы сделать идею отдельного пространства имен элементов конкретным, я составил пространство имен, у которого есть как пространство имен имен, так и имя вместе с разделителем (> в любом случае не допускается без сохранения значений атрибутов).

Теперь, вместо того, чтобы сказать, что два атрибута находятся в двух разных пространствах имен, правильнее сказать, что они принадлежат к двум разным разделам пространства имен:

  • n1:a атрибут принадлежит к элементу глобального атрибута (http://www.w3.org)
  • good принадлежит к разделу «Все типы элементов» (также http://www.w3.org)
  • a принадлежит к элементу Per Тип раздела good (т. Е. http://wwww.w3.org > good).

Вот соответствующая часть спецификации Porges, связанная с:

A.2 Разделы пространства имен XML

Чтобы поддержать цель сделать как квалифицированные, так и неквалифицированные имена полезными для достижения их намеченной цели, мы идентифицируем имена, появляющиеся в пространстве имен XML, как принадлежащие одному из нескольких непересекающихся традиционных (т.е. упорядоченных) пространств имен, называемых разделами пространств имен. Перегородки:

Все типы типов элементов. В этом разделе отображаются все типы элементов в пространстве имен XML. Каждый из них имеет уникальную локальную часть; комбинация имени пространства имен и локальной части уникально идентифицирует тип элемента.

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

Разделы типа для каждого элемента Каждый тип в разделе «Типы элементов всех элементов» имеет связанное пространство имен, в котором появляются имена неквалифицированных атрибуты, которые предоставляются для этого элемента. Это традиционное пространство имен, потому что появление дубликатов имен атрибутов в элементе запрещено XML 1.0. Комбинация имени атрибута с типом элемента и именем пространства имен однозначно идентифицирует каждый неквалифицированный атрибут.

В документах XML, соответствующих этой спецификации, имена всех квалифицированных (префиксных) атрибутов назначаются для глобального раздела атрибутов , а имена всех неквалифицированных атрибутов назначаются соответствующему разделу типа элемента.

0
задан Presto 17 January 2019 в 13:06
поделиться