Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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));
        }