/// <summary> /// Registers the extensions objects in the specified /// transformation arguments to a new HelperTransformationBuilder. /// </summary> /// <param name="arguments">The arguments.</param> /// <returns></returns> internal static HelperTransformationBuilder BuildTransformationHelper(XsltTransformationArguments arguments) { HelperTransformationBuilder hp = new HelperTransformationBuilder(); foreach (object exO in arguments.ExtensionObjects) { hp.AddType(exO.GetType()); } return(hp); }
/// <summary> /// Converts the XsltTransformationArguments to a XsltArgumentList instance /// </summary> /// <param name="arguments">The arguments.</param> /// <returns></returns> private XsltArgumentList BuildXslArgumentList(XsltTransformationArguments arguments) { XsltArgumentList list = new XsltArgumentList(); foreach (XsltTransformationParameter param in arguments.Parameters) { list.AddParam(param.Name, param.NameSpace, param.Value); } foreach (object exO in arguments.ExtensionObjects) { list.AddExtensionObject("urn:" + exO.GetType().Name, _Engine.DynamicAdapterStore.Adapt(exO)); } return(list); }
/// <summary> /// Transforms the specified input to the specified output using the specified arguments. /// </summary> /// <param name="input">The input document.</param> /// <param name="output">The output document to write to.</param> /// <param name="arguments">The arguments of the transformation.</param> public void Transform(System.Xml.XmlReader input, System.Xml.XmlWriter output, XsltTransformationArguments arguments) { XsltArgumentList xslArguments = BuildXslArgumentList(arguments); _transformer.Transform(input, xslArguments, output); }
/// <summary> /// Loads the transformation from the specified stream /// </summary> /// <param name="store">The store to be used when resolving includes in the xslt stylesheet</param> /// <param name="stream">The stream to load the transformation from.</param> /// <param name="arguments">The arguments to arguments to use in the transformation.</param> /// <returns></returns> public IXsltTransform LoadTransform(IXsltTemplateResolver resolver, System.IO.Stream stream, XsltTransformationArguments arguments) { XslCompiledTransform transformer = new XslCompiledTransform(); using (XmlReader reader = new XmlTextReader(stream)) { XsltSettings settings = new XsltSettings(false, false); transformer.Load(reader, settings, new HelperTransformationResolver(resolver, XsltTransform.BuildTransformationHelper(arguments))); } return(new XsltTransform(transformer, this)); }