Подтвердить что ты не робот

Является xmlns = "" допустимым пространством имен xml?

Является ли "пустым" допустимое значение для пространства имен XML? Если да, то что это значит?

У меня есть следующий код XML, но я не уверен, к каким элементам пространства имен Field1 и Field2 принадлежат.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header />
  <soap:Body>
    <Root xmlns="uri">
      <Field1 xmlns="">147079737</Field1>
      <Field2 xmlns="">POL</Field2>
    </Root>
  </soap:Body>
</soapenv:Envelope>
4b9b3361

Ответ 1

Да, это действительно так. Раздел 6.2 в Пространства имен в Рекомендации 1.0 1.0 XML специально говорит:

Значение атрибута в объявлении пространства имен по умолчанию МОЖЕТ быть пустым. Это имеет тот же эффект в рамках декларации, что пространство имен по умолчанию отсутствует.

Цитата из комментария:

Это законно, и это способ привести элемент в глобальное пространство имен.

Ответ 2

Это недействительный XML NS. Это не действительная декларация XML NS. Пожалуйста, проверьте раздел 2.2 Пространства имен в XML 1.0:

Пустая строка, хотя это легальная ссылка на URI, не может использоваться как имя пространства имен.

Однако это единственный способ декомпозиции декларации NS по умолчанию, если он существует, или он не имеет никакого эффекта. Видеть. Пространства имен в XML 1.0 и 1.1, раздел 6.2. Однако в NS NS 1.1 был добавлен способ также декомпилировать декларацию NS с префиксом.

Таким образом, это действительно так, но это не "допустимое пространство имен XML", как это написало OP.