private XPathNodeIterator Document(object arg0, string baseUri) {
if (this.processor.permissions != null) {
this.processor.permissions.PermitOnly();
}
XPathNodeIterator it = arg0 as XPathNodeIterator;
if (it != null) {
ArrayList list = new ArrayList();
Hashtable documents = new Hashtable();
while (it.MoveNext()) {
Uri uri = ComposeUri(it.Current.Value, baseUri ?? it.Current.BaseURI);
if (! documents.ContainsKey(uri)) {
documents.Add(uri, null);
list.Add(this.processor.GetNavigator(uri));
}
}
return new XPathArrayIterator(list);
} else {
return new XPathSingletonIterator(
this.processor.GetNavigator(
ComposeUri(XmlConvert.ToXPathString(arg0), baseUri ?? this.manager.Navigator.BaseURI)
)
);
}
}