/*
* call-seq:
* add_namespace_definition(prefix, href)
*
* Adds a namespace definition with +prefix+ using +href+
*/
static VALUE add_namespace_definition(VALUE self, VALUE prefix, VALUE href)
{
xmlNodePtr node;
Data_Get_Struct(self, xmlNode, node);
xmlNsPtr ns = xmlNewNs(
node,
(const xmlChar *)StringValuePtr(href),
(const xmlChar *)(prefix == Qnil ? NULL : StringValuePtr(prefix))
);
if(!ns) {
ns = xmlSearchNs(
node->doc,
node,
(const xmlChar *)(prefix == Qnil ? NULL : StringValuePtr(prefix))
);
}
if(Qnil == prefix) xmlSetNs(node, ns);
return Nokogiri_wrap_xml_namespace(node->doc, ns);
}