Можно ли иметь пространство имен по умолчанию (xmlns) И пространство имен с префиксом, указывающее на тот же URI? - PullRequest
2 голосов
/ 05 сентября 2011

Мы пытаемся сгенерировать некоторое пространство имен XML (атрибуты и все), но мы замечаем некоторые проблемы при выводе префиксов с помощью SimpleXML и DOMDocument в PHP.Это наш тестовый вывод:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:a="http://default" xmlns:b="http://extra" xmlns="http://default">
  <a:test_default>alpha</a:test_default>
  <b:test_extra>bravo</b:test_extra>
</root>

Причина, по которой я спрашиваю - мы хотели включить атрибуты в пространство имен, но мы знаем, что атрибуты не занимают пространство имен их содержащего элемента.У нас обычно есть пространство имен по умолчанию для наших узлов.Таким образом, мы пришли к выводу, что также потребуется объявление префикса пространства имен.Однако при генерации XML с помощью SimpleXML или DOMDocument префиксы никогда не добавляются к атрибутам.

Есть ли лучший способ?Мы старались избегать добавления префиксов к каждому элементу в XML - используя значение по умолчанию, чтобы сделать содержимое более читабельным.

1 Ответ

0 голосов
/ 05 сентября 2011

Да, это вполне нормально.Например, это часто делается в XSD.

...