Extend DOMElement object
Posted
by Comma
on Stack Overflow
See other posts from Stack Overflow
or by Comma
Published on 2010-03-07T23:23:03Z
Indexed on
2010/03/07
23:26 UTC
Read the original article
Hit count: 251
How could I exdend objects provided with Document Object Model? Seems that there is no way according to this [issue][2].
class Application_Model_XmlSchema extends DOMElement
{
const ELEMENT_NAME = 'schema';
/**
* @var DOMElement
*/
private $_schema;
/**
* @param DOMDocument $document
* @return void
*/
public function __construct(DOMDocument $document) {
$this->setSchema($document->getElementsByTagName(self::ELEMENT_NAME)->item(0));
}
/**
* @param DOMElement $schema
* @return void
*/
public function setSchema(DOMElement $schema){
$this->_schema = $schema;
}
/**
* @return DOMElement
*/
public function getSchema(){
return $this->_schema;
}
/**
* @param string $name
* @param array $arguments
* @return mixed
*/
public function __call($name, $arguments) {
if (method_exists($this->_schema, $name)) {
return call_user_func_array(
array($this->_schema, $name),
$arguments
);
}
}
}
$version = $this->getRequest()->getParam('version', null);
$encoding = $this->getRequest()->getParam('encoding', null);
$source = 'http://www.w3.org/2001/XMLSchema.xsd';
$document = new DOMDocument($version, $encoding);
$document->load($source);
$xmlSchema = new Application_Model_XmlSchema($document);
$xmlSchema->getAttribute('version');
I got an error:
Warning: DOMElement::getAttribute(): Couldn't fetch Application_Model_XmlSchema in C:\Nevermind.php on line newvermind
© Stack Overflow or respective owner