xml:baseが消されたPHP5でXML文書をxml:base属性が出力用のコードへ直に埋め込まれているXSLTで処理したら出力からxml:base属性が消え失せていて困った。xsl:attribute要素でname="xml:base"なんて書いて試してみたら今度はご丁寧にxml1:baseに置換してくれた。xml1:ns="http://www.w3.org/1999/XSL/Transform"……違う。
だったらばとルート要素にxmlns:xml="http://www.w3.org/XML/1998/namespace"を、xsl:attribute要素にもnamespace属性を追加して試してみたらうまくいく。xmlns:xml="http://www.w3.org/XML/1998/namespace"って、特に定義しなくて良いという認識だったのだけれども……よく分からん。