У меня есть XML-документ с множеством используемых пространств имен и схема для проверки. Схема требует, чтобы все элементы были «квалифицированными», и я предполагаю, что это означает, что они должны иметь полные QNames без пустого пространства имен.
Однако некоторые элементы в этом гигантском XML-документе проскользнули, используя только пространство имен по умолчанию, которое в случае с этим документом пустое. Обычно они не проходят проверку со схемой.
Я пытаюсь написать XSLT, который выберет узлы, у которых нет пространства имен, и назначит им определенный с тем же префиксом, что и остальные. Например:
<x:doc xmlns:x="http://thisns.com/">
<x:node @x:property="true">
this part passes validation
</x:node>
<node property="false">
this part does not pass validation
</node>
</x:doc>
Я пытался добавить xmlns="http://thisns.com/"
к корневому узлу документа, но это не согласуется с валидатором схемы. Любые мысли о том, как я могу сделать эту работу?
Спасибо!