setGeneric("xmlRoot<-",
function(x, ..., value)
standardGeneric("xmlRoot<-"))
setMethod("xmlRoot<-", c("XMLInternalDocument", value = "character"),
function(x, ..., value)
{
newXMLNode(value, doc = x)
x
})
setMethod("xmlRoot<-", c("XMLInternalDocument", value = "XMLInternalNode"),
function(x, ..., value)
{
#XXX check that this does the reference counting correctly
# specifically, d = newXMLDoc(); xmlRoot(d) = "bar"; xmlRoot(d) = newXMLNode("foo")
.Call("RS_XML_setRootNode", x, value, PACKAGE = "XML")
x
})
setMethod("xmlRoot<-", "XMLHashTree",
function(x, ..., value)
{
x$.addNode(value)
x
})