RE: [PHP-DEV] annoying DOM limitation

From: Date: Fri, 13 May 2005 21:29:59 +0000
Subject: RE: [PHP-DEV] annoying DOM limitation
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-16243@lists.php.net to get a copy of this message
> > While hacking on a PHPDoc -> WSDL generator, I ran into an > annoying limitation in the dom extension: you can't add a > namespace to a dom document unless you have an element in > that namespace. Why might you want to do this? Well, a > common thing is to have your xml-schema types to be specified > as attribute values, i.e. > > <element name="foo" type="xsd:string"/> > > for this to work I need xsd to be an alias for > http://www.w3.org/2001/ XMLSchema. > > To work around this, I added a DomElement::addNS($uri, > $alias) method to Dom. Adding the namespace 'manually' as an > attribute on an element does not work. > > I know this isn't part of the Dom spec, but it's incredibly useful. > Does anyone (Rob, Chegru) mind me adding it to HEAD? Hmm, I have been doing this via setAttributeNS(), with the XML namespace namepace define('NS_NS', 'http://www.w3.org/2000/xmlns/'); define('NS_XLINK', 'http://www.w3.org/1999/xlink'); $document = new DOMDocument(); $root = $document->createElement('root'); $document->appendChild($root); $root->setAttributeNS(NS_NS, 'xmlns:xlink', NS_XLINK); echo $document->saveXML(); Haven't encountered any problems with this method, seems to produce XML (SVG in this case) fine. Jared

« previous php.internals (#16243) next »