/// <summary> /// Register a named collection. A collection is identified by a URI (the collection URI), /// and its content is represented by an <c>IEnumerable</c> that enumerates the contents /// of the collection. The values delivered by this enumeration are Uri values, which /// can be mapped to nodes using the registered <c>XmlResolver</c>. /// </summary> /// <param name="collectionUri">The URI used to identify the collection in a call /// of the XPath <c>collection()</c> function. The default collection is registered /// by supplying null as the value of this argument (this is the collection returned /// when the XPath <c>collection()</c> function is called with no arguments).</param> /// <param name="contents">An enumerable object that represents the contents of the /// collection, as a sequence of document URIs. The enumerator returned by this /// IEnumerable object must return instances of the Uri class.</param> /// <remarks> /// <para>Collections should be stable: that is, two calls to retrieve the same collection URI /// should return the same sequence of document URIs. This requirement is imposed by the /// W3C specifications, but in the case of a user-defined collection it is not enforced by /// the Saxon product.</para> /// <para>A collection may be "unregistered" by providing null as the value of the /// contents argument. A collection may be replaced by specifying the URI of an existing /// collection.</para> /// <para>Collections registered with a processor are available to all queries and stylesheets /// running under the control of that processor. Collections should not normally be registered /// while queries and transformations are in progress.</para> /// </remarks> /// public void RegisterCollection(Uri collectionUri, IEnumerable contents) { String u = (collectionUri == null ? null : collectionUri.ToString()); DotNetCollectionURIResolver resolver = (DotNetCollectionURIResolver)config.getCollectionURIResolver(); resolver.registerCollection(u, contents); }