Мы пытаемся сгенерировать некоторый 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, используя значение по умолчанию, чтобы сделать содержимое более читабельным.