You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(174) |
Nov
(85) |
Dec
(14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(56) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(1) |
Jul
(132) |
Aug
(5) |
Sep
|
Oct
(314) |
Nov
(133) |
Dec
(18) |
2006 |
Jan
(6) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/mvp-xml/nxslt/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3472/v2/src Added Files: .cvsignore NXslt.ico NXsltArgumentsParser.cs NXsltOptions.cs NXsltStrings.Designer.cs NXsltStrings.resx NXsltTimings.cs NxsltCommandLineParsingException.cs NxsltException.cs NxsltMain.cs Reporter.cs TypeUtils.cs Utils.cs issues.txt nxslt.snk nxslt2.csproj nxslt2.sln readme.txt Log Message: --- NEW FILE: issues.txt --- 1. Move to regexp in xmlns parsing. 2. The same for parsing parameters. 3. No more partial assembly names. 4. Add XSLT settings to options (trusted/encoding). --- NEW FILE: nxslt.snk --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Utils.cs --- using System; using System.Xml; using System.Text; using System.Net; using System.Text.RegularExpressions; using System.Xml.XPath; namespace XmlLab.nxslt { internal static class Utils { /// <summary> /// Pretty prints XML document using XmlWriter's formatting functionality. /// </summary> /// <param name="reader">Source XML reader</param> /// <param name="options">Parsed command line options</param> public static void PrettyPrint(XmlReader reader, NXsltOptions options) { XmlWriterSettings writerSettings = new XmlWriterSettings(); writerSettings.Indent = true; writerSettings.NewLineOnAttributes = true; writerSettings.Encoding = new UTF8Encoding(false); XmlWriter writer; if (options.OutFile != null) { //Pretty print to a file writer = XmlWriter.Create(options.OutFile, writerSettings); } else { //Pretty print to the console writer = XmlWriter.Create(Console.Out, writerSettings); } while (reader.ReadState != ReadState.EndOfFile) { writer.WriteNode(reader, false); } writer.Close(); reader.Close(); } /// <summary> /// Gets XmlResolver - default or custom, with user credentials or not. /// </summary> /// <param name="credentials">User credentials</param> /// <param name="options">Parsed command line options</param> public static XmlResolver GetXmlResolver(NetworkCredential credentials, NXsltOptions options) { XmlResolver resolver; Type resolverType; if (options.ResolverTypeName != null) { //Custom resolver try { resolverType = TypeUtils.FindType(options, options.ResolverTypeName); } catch (Exception e) { throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message); } if (!typeof(XmlResolver).IsAssignableFrom(resolverType)) { //Type is not XmlResolver throw new NXsltException(NXsltStrings.ErrorTypeNotXmlResolver, options.ResolverTypeName); } try { resolver = (XmlResolver)Activator.CreateInstance(resolverType); } catch (Exception e) { throw new NXsltException(NXsltStrings.ErrorCreateResolver, options.ResolverTypeName, e.Message); } } else { //Standard resolver resolver = new XmlUrlResolver(); } //Set credentials if any if (credentials != null) { resolver.Credentials = credentials; } return resolver; } public static string ExtractStylsheetHrefFromPI(XPathNavigator pi) { Regex r = new Regex(@"href[ \n\t\r]*=[ \n\t\r]*""(.*)""|href[ \n\t\r]*=[ \n\t\r]*'(.*)'"); Match m = r.Match(pi.Value); if (!m.Success) { //Absent href preudo attribute throw new NXsltException(NXsltStrings.ErrorInvalidPI); } //Found href pseudo attribute value string href = m.Groups[1].Success ? m.Groups[1].Value : m.Groups[2].Value; return href; } } } --- NEW FILE: Reporter.cs --- using System; using System.Reflection; using System.IO; using System.Xml; using System.Text; namespace XmlLab.nxslt { /// <summary> /// nxslt reporter class. /// </summary> internal class Reporter { private static TextWriter stdout = Console.Out; private static TextWriter stderr = Console.Error; /// <summary> /// Reports command line parsing error. /// </summary> /// <param name="msg">Error message</param> public static void ReportCommandLineParsingError(string msg) { ReportUsage(); stderr.WriteLine(NXsltStrings.ErrorCommandLineParsing); stderr.WriteLine(); stderr.WriteLine(msg); } /// <summary> /// Reports an error. /// </summary> /// <param name="msg">Error message</param> public static void ReportError(string msg) { stderr.WriteLine(); stderr.WriteLine(msg); stderr.WriteLine(); } /// <summary> /// Reports an error. /// </summary> /// <param name="msg">Error message</param> /// <param name="arg">Message argument</param> public static void ReportError(string msg, params string[] args) { stderr.WriteLine(); stderr.WriteLine(msg, args); stderr.WriteLine(); } /// <summary> /// Reports command line parsing error. /// </summary> /// <param name="msg">Error message</param> /// <param name="arg">Message argument</param> public static void ReportCommandLineParsingError(string msg, params string[] args) { ReportUsage(); stderr.WriteLine(NXsltStrings.ErrorCommandLineParsing); stderr.WriteLine(); stderr.WriteLine(msg, args); } /// <summary> /// Prints nxslt usage info. /// </summary> public static void ReportUsage() { Version ver = Assembly.GetExecutingAssembly().GetName().Version; stderr.WriteLine(NXsltStrings.UsageHeader, ver.Major, ver.Minor, ver.Build, System.Environment.Version.Major, System.Environment.Version.Minor, System.Environment.Version.Build, System.Environment.Version.Revision); stderr.WriteLine(); stderr.WriteLine(NXsltStrings.UsageBody); } /// <summary> /// Prints timing info. /// </summary> public static void ReportTimings(ref NXsltTimings timings) { Version ver = Assembly.GetExecutingAssembly().GetName().Version; stderr.WriteLine(NXsltStrings.UsageHeader, ver.Major, ver.Minor, ver.Build, System.Environment.Version.Major, System.Environment.Version.Minor, System.Environment.Version.Build, System.Environment.Version.Revision); stderr.WriteLine(); stderr.WriteLine(NXsltStrings.Timings, timings.XsltCompileTime, timings.XsltExecutionTime, timings.TotalRunTime); } /// <summary> /// Returns full exception's message (including inner exceptions); /// </summary> public static String GetFullMessage(Exception e) { Exception ex = e; StringBuilder msg = new StringBuilder(); while (ex != null) { if (ex is NXsltException) { msg.AppendFormat(ex.Message); } else { msg.AppendFormat("{0}: {1}", ex.GetType().FullName, ex.Message); } if (ex.InnerException != null) { msg.Append(" ---> "); } ex = ex.InnerException; } return msg.ToString(); } } } --- NEW FILE: .cvsignore --- bin obj *.user *.suo *.vspscc *.pdb *.dll --- NEW FILE: NxsltException.cs --- using System; namespace XmlLab.nxslt { /// <summary> /// General nxslt error. /// </summary> internal class NXsltException : Exception { public NXsltException(string msg) : base(msg) { } public NXsltException(string msg, string arg) : base(string.Format(msg, arg)) { } public NXsltException(string msg, params string[] args) : base(string.Format(msg, args)) { } } } --- NEW FILE: NXsltStrings.Designer.cs --- (This appears to be a binary file; contents omitted.) --- NEW FILE: NxsltMain.cs --- using System; using System.Xml.XPath; using System.Xml.Xsl; using System.Xml.Schema; using System.Xml; using System.IO; using System.Net; using System.Text; using System.Diagnostics; //using GotDotNet.Exslt; //using Mvp.Xml.XInclude; namespace XmlLab.nxslt { /// <summary> /// nxslt main class. /// </summary> public class NXsltMain { //Parsed command line options private NXsltOptions options; //nxslt return codes private const int RETURN_CODE_OK = 0; private const int RETURN_CODE_ERROR = -1; //Timings private NXsltTimings timings; /// <summary> /// nxslt main entry point. /// </summary> /// <param name="args">Command line args</param> public static int Main(string[] args) { try { NXsltMain nxslt = new NXsltMain(); NXsltArgumentsParser clParser = new NXsltArgumentsParser(); nxslt.options = clParser.ParseArguments(args); //Ok, then let's process it return nxslt.Process(); } catch (NXsltCommandLineParsingException clpe) { //There was an exception while parsing command line Reporter.ReportCommandLineParsingError(Reporter.GetFullMessage(clpe)); return RETURN_CODE_ERROR; } catch (NXsltException ne) { Reporter.ReportError(Reporter.GetFullMessage(ne)); return RETURN_CODE_ERROR; } catch (Exception e) { //Some other exception Reporter.ReportError(NXsltStrings.Error, Reporter.GetFullMessage(e)); return RETURN_CODE_ERROR; } }// Main() method /// <summary> /// Process command line arguments and applies the specified stylesheet /// to the specified source document. /// </summary> private int Process() { //Start timing if needed Stopwatch totalTimer = null; if (options.ShowTiming) { timings = new NXsltTimings(); totalTimer = new Stopwatch(); totalTimer.Start(); } //Just show help if (options.ShowHelp) { Reporter.ReportUsage(); return RETURN_CODE_OK; } //Check that everything is in place if (options.Source == null && !options.LoadSourceFromStdin && !options.NoSourceXml) { Reporter.ReportCommandLineParsingError(NXsltStrings.ErrorMissingSource); return RETURN_CODE_ERROR; } if (options.Stylesheet == null && !options.LoadStylesheetFromStdin && !options.GetStylesheetFromPI && !options.PrettyPrintMode) { //No stylesheet - run identity transform options.IdentityTransformMode = true; } if (options.PrettyPrintMode && (options.Stylesheet != null || options.LoadStylesheetFromStdin || options.GetStylesheetFromPI)) { Reporter.ReportCommandLineParsingError(NXsltStrings.ErrorStylesheetAndPrettyPrintMode); return RETURN_CODE_ERROR; } //Check supported features if (options.MultiOutput) { Reporter.ReportError("Multioutput support is not implemented yet."); return RETURN_CODE_ERROR; } if (options.ExsltLibPath != null) { Reporter.ReportError("EXSLT support is not implemented yet."); return RETURN_CODE_ERROR; } //Prepare source XML reader XmlReader srcReader = PrepareSourceReader(); if (options.PrettyPrintMode) { //Process in pretty-print mode Utils.PrettyPrint(srcReader, options); } else { //Process transformation XmlResolver stylesheetResolver = Utils.GetXmlResolver(options.XSLTCredential, options); if (options.GetStylesheetFromPI) { //To get stylesheet from the PI we load source XML into //XPathDocument (consider embedded stylesheet) XPathDocument srcDoc = new XPathDocument(srcReader); XPathNavigator srcNav = srcDoc.CreateNavigator(); //Now srcReader reads in-memory cache instead srcReader = srcNav.ReadSubtree(); XslCompiledTransform xslt = PrepareStylesheetFromPI(srcNav, stylesheetResolver); Transform(srcReader, xslt, stylesheetResolver); } else { XslCompiledTransform xslt = PrepareStylesheet(stylesheetResolver); Transform(srcReader, xslt, stylesheetResolver); } } if (options.ShowTiming) { totalTimer.Stop(); timings.TotalRunTime = totalTimer.ElapsedMilliseconds; Reporter.ReportTimings(ref timings); } return RETURN_CODE_OK; } /// <summary> /// Performs XSL Transformation. /// </summary> private void Transform(XmlReader srcReader, XslCompiledTransform xslt, XmlResolver resolver) { Stopwatch transformTimer = null; if (options.ShowTiming) { transformTimer = new Stopwatch(); transformTimer.Start(); } if (options.OutFile != null) { //Transform to a file FileStream fs; try { fs = File.OpenWrite(options.OutFile); } catch { throw new NXsltException(NXsltStrings.ErrorCreatingFile, options.OutFile); } try { XmlWriter results = XmlWriter.Create(fs, xslt.OutputSettings); TransformImpl(srcReader, xslt, resolver, results); } finally { fs.Close(); } } else { //Transform to Console XmlWriter results = XmlWriter.Create(Console.Out, xslt.OutputSettings); TransformImpl(srcReader, xslt, resolver, results); } //Save transfomation time if (options.ShowTiming) { transformTimer.Stop(); timings.XsltExecutionTime = transformTimer.ElapsedMilliseconds; } } /// <summary> /// Actual transformation and error handling. /// </summary> private void TransformImpl(XmlReader srcReader, XslCompiledTransform xslt, XmlResolver resolver, XmlWriter results) { try { xslt.Transform(srcReader, options.XslArgList, results, resolver); } catch (XmlException xe) { string uri = options.LoadSourceFromStdin ? NXsltStrings.FromStdin : xe.SourceUri; throw new NXsltException(NXsltStrings.ErrorParsingDoc, uri, Reporter.GetFullMessage(xe)); } catch (XmlSchemaValidationException ve) { string uri = options.LoadSourceFromStdin ? NXsltStrings.FromStdin : srcReader.BaseURI; throw new NXsltException(NXsltStrings.ErrorParsingDoc, uri, Reporter.GetFullMessage(ve)); } catch (Exception e) { throw new NXsltException(NXsltStrings.ErrorTransform, Reporter.GetFullMessage(e)); } } /// <summary> /// Prepares, loads and compiles XSLT stylesheet. /// </summary> private XslCompiledTransform PrepareStylesheet(XmlResolver stylesheetResolver) { Stopwatch xsltCompileTimer = null; if (options.ShowTiming) { xsltCompileTimer = new Stopwatch(); xsltCompileTimer.Start(); } XmlReader stylesheetReader = PrepareStylesheetReader(stylesheetResolver); XslCompiledTransform xslt = CreateTransform(stylesheetResolver, stylesheetReader); //Save stylesheet loading/compilation time if (options.ShowTiming) { xsltCompileTimer.Stop(); timings.XsltCompileTime = xsltCompileTimer.ElapsedMilliseconds; } return xslt; } /// <summary> /// Creates XslCompiledTransform instance for given reader and resolver. /// </summary> private XslCompiledTransform CreateTransform(XmlResolver stylesheetResolver, XmlReader stylesheetReader) { XslCompiledTransform xslt = new XslCompiledTransform(); try { xslt.Load(stylesheetReader, XsltSettings.TrustedXslt, stylesheetResolver); } catch (XmlException xe) { string uri = options.LoadStylesheetFromStdin ? NXsltStrings.FromStdin : xe.SourceUri; throw new NXsltException(NXsltStrings.ErrorParsingDoc, uri, Reporter.GetFullMessage(xe)); } catch (Exception e) { string uri = options.LoadStylesheetFromStdin ? NXsltStrings.FromStdin : stylesheetReader.BaseURI; throw new NXsltException(NXsltStrings.ErrorCompileStyle, uri, Reporter.GetFullMessage(e)); } return xslt; } /// <summary> /// Prepares, loads and compiles XSLT stylesheet referenced in the PI. /// </summary> private XslCompiledTransform PrepareStylesheetFromPI(XPathNavigator srcNav, XmlResolver stylesheetResolver) { Stopwatch xsltCompileTimer = null; if (options.ShowTiming) { xsltCompileTimer = new Stopwatch(); xsltCompileTimer.Start(); } XPathNavigator pi = srcNav.SelectSingleNode("/processing-instruction('xml-stylesheet')"); if (pi == null) { //Absent xml-stylesheet PI throw new NXsltException(NXsltStrings.ErrorInvalidPI); } //Found PI node, look for the href pseudo attribute string href = Utils.ExtractStylsheetHrefFromPI(pi); XslCompiledTransform xslt = null; if (href.StartsWith("#")) { //Embedded stylesheet string id = href.Remove(0, 1); XPathNavigator embStylesheet = srcNav.SelectSingleNode("id('" + id + "')|/descendant::*[@id='" + id + "']"); if (embStylesheet == null) { //Unresolvable stylesheet URI throw new NXsltException(NXsltStrings.ErrorPIStylesheetNotFound, href); } xslt = CreateTransform(stylesheetResolver, embStylesheet.ReadSubtree()); } else { //External stylesheet options.Stylesheet = href; xslt = PrepareStylesheet(stylesheetResolver); } //Save stylesheet loading/compilation time if (options.ShowTiming) { xsltCompileTimer.Stop(); timings.XsltCompileTime = xsltCompileTimer.ElapsedMilliseconds; } return xslt; } /// <summary> /// Prepares source XML reader. /// </summary> /// <returns>XmlReader over source XML</returns> private XmlReader PrepareSourceReader() { XmlReaderSettings srcReaderSettings = new XmlReaderSettings(); srcReaderSettings.ProhibitDtd = false; if (options.StripWhiteSpace || options.PrettyPrintMode) { srcReaderSettings.IgnoreWhitespace = true; } if (options.ValidateDocs) { srcReaderSettings.ValidationType = ValidationType.DTD; } if (!options.ResolveExternals) srcReaderSettings.XmlResolver = null; else { XmlResolver srcResolver = Utils.GetXmlResolver(options.SourceCredential, options); } XmlReader srcReader; if (options.NoSourceXml) { //No source XML - create dummy one srcReader = XmlReader.Create(new StringReader("<dummy/>"), srcReaderSettings); } else if (options.LoadSourceFromStdin) { //Get source from stdin srcReader = XmlReader.Create(Console.OpenStandardInput(), srcReaderSettings); } else { //Get source from URI srcReader = XmlReader.Create(options.Source, srcReaderSettings); } //Chain schema validaring reader on top if (options.ValidateDocs) { srcReaderSettings.ValidationType = ValidationType.Schema; srcReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; return XmlReader.Create(srcReader, srcReaderSettings); } return srcReader; } /// <summary> /// Prepares stylesheet XML reader. /// </summary> /// <returns>XmlReader over source XML</returns> private XmlReader PrepareStylesheetReader(XmlResolver stylesheetResolver) { XmlReaderSettings stylesheetReaderSettings = new XmlReaderSettings(); stylesheetReaderSettings.ProhibitDtd = false; if (options.ValidateDocs) { stylesheetReaderSettings.ValidationType = ValidationType.DTD; } if (options.StripWhiteSpace) { stylesheetReaderSettings.IgnoreWhitespace = true; } if (!options.ResolveExternals) stylesheetReaderSettings.XmlResolver = null; else { stylesheetReaderSettings.XmlResolver = stylesheetResolver; } XmlReader stylesheetReader; if (options.IdentityTransformMode) { //No XSLT - use identity transformation stylesheetReader = XmlReader.Create(new StringReader(NXsltStrings.IdentityTransformation), stylesheetReaderSettings); } else if (options.LoadStylesheetFromStdin) { //Get stylesheet from stdin stylesheetReader = XmlReader.Create(Console.OpenStandardInput(), stylesheetReaderSettings); } else { //Get source from URI stylesheetReader = XmlReader.Create(options.Stylesheet, stylesheetReaderSettings); } //Chain schema validaring reader on top if (options.ValidateDocs) { stylesheetReaderSettings.ValidationType = ValidationType.Schema; stylesheetReaderSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation; return XmlReader.Create(stylesheetReader, stylesheetReaderSettings); } return stylesheetReader; } }// NXsltMain class }// XmlLab.nxslt namespace --- NEW FILE: nxslt2.sln --- (This appears to be a binary file; contents omitted.) --- NEW FILE: NXsltStrings.resx --- <?xml version="1.0" encoding="utf-8"?> <root> <!-- Microsoft ResX Schema Version 2.0 The primary goals of this format is to allow a simple XML format that is mostly human readable. The generation and parsing of the various data types are done through the TypeConverter classes associated with the data types. Example: ... ado.net/XML headers & schema ... <resheader name="resmimetype">text/microsoft-resx</resheader> <resheader name="version">2.0</resheader> <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> <value>[base64 mime encoded serialized .NET Framework object]</value> </data> <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> <comment>This is a comment</comment> </data> There are any number of "resheader" rows that contain simple name/value pairs. Each data row contains a name, and value. The row also contains a type or mimetype. Type corresponds to a .NET class that support text/value conversion through the TypeConverter architecture. Classes that don't support this are serialized and stored with the mimetype set. The mimetype is used for serialized objects, and tells the ResXResourceReader how to depersist the object. This is currently not extensible. For a given mimetype the value must be set accordingly: Note - application/x-microsoft.net.object.binary.base64 is the format that the ResXResourceWriter will generate, however the reader can read any of the formats listed below. mimetype: application/x-microsoft.net.object.binary.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.soap.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter : and then encoded with base64 encoding. mimetype: application/x-microsoft.net.object.bytearray.base64 value : The object must be serialized into a byte array : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="metadata"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="name" use="required" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="assembly"> <xsd:complexType> <xsd:attribute name="alias" type="xsd:string" /> <xsd:attribute name="name" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>2.0</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="UsageHeader"> <value xml:space="preserve">.NET XSLT command line utility, version {0}.{1} Beta1 build {2} (c) 2004 Oleg Tkachenko, http://www.xmllab.net Running under .NET {3}.{4}.{5}.{6}</value> </data> <data name="UsageBody"> <value xml:space="preserve">Usage: nxslt source stylesheet [options] [param=value...] [xmlns:prefix=uri...] Options: -? Show this message -o filename Write output to named file -xw Strip non-significant whitespace from source and stylesheet -xe Do not resolve external definitions during parse phase -xi Do not process XInclude during parse phase -v Validate documents during parse phase -t Show load and transformation timings -xs No source XML -pp Pretty-print source document -pi Get stylesheet URL from xml-stylesheet PI in source document -r Use named URI resolver class -af Assembly file name to look up URI resolver class -an Assembly full or partial name to look up URI resolver class -mo Allow multiple output documents -ext Comma-separated list of extension object class names -exslt Use specified EXSLT.NET assembly instead of built-in implementation (#GAC to load the assembly from the GAC) -xmlc creds Credentials in username:password@domain format to be used in Web request authentications when loading source XML -xslc creds Credentials in username:password@domain format to be used in Web request authentications when loading XSLT - Dash used as source argument loads XML from stdin - Dash used as stylesheet argument loads XSL from stdin </value> </data> <data name="ErrorCommandLineParsing"> <value xml:space="preserve">An error occurred while parsing command line.</value> </data> <data name="ErrorMissingSource"> <value xml:space="preserve">Missing source filename.</value> </data> <data name="ErrorMissingStylesheet"> <value xml:space="preserve">Missing stylesheet filename.</value> </data> <data name="ErrorParsingDoc"> <value xml:space="preserve">An error occurred while parsing document: {0}: {1}</value> </data> <data name="ErrorMissingOutFileName"> <value xml:space="preserve">Missing output filename after '-o' option.</value> </data> <data name="ErrorCreatingFile"> <value xml:space="preserve">An error occurred while creating file '{0}'.</value> </data> <data name="ErrorUnboundedPrefix"> <value xml:space="preserve">Prefix '{0}' cannot be resolved. Use xmlns:{0}='...' to bind '{0}' to a URI.</value> </data> <data name="ErrorWrongParam"> <value xml:space="preserve">Parameter name '{0}' must be followed by an '=' character.</value> </data> <data name="ErrorBothStdin"> <value xml:space="preserve">The input and the stylesheet document cannot both be read from stdin. At least one of them must be loaded from a URL.</value> </data> <data name="ErrorUnrecognizedOption"> <value xml:space="preserve">Unrecognized option : '{0}'.</value> </data> <data name="FromStdin"> <value xml:space="preserve"><from stdin></value> </data> <data name="ErrorInvalidPI"> <value xml:space="preserve">The source document does not contain an 'xml-stylesheet' processing instruction of this form: <?xml-stylesheet type='text/xsl' href='stylesheet-url'?></value> </data> <data name="ErrorBothStylesheetAndPI"> <value xml:space="preserve">The '-pi' option cannot be used when the stylesheet argument is specified.</value> </data> <data name="ErrorBothNoSourceAndPI"> <value xml:space="preserve">The '-pi' and '-xs' options are mutually exclusive.</value> </data> <data name="ErrorBothNoSourceAndSource"> <value xml:space="preserve">The '-xs' option and source document filename (or '-') are mutually exclusive.</value> </data> <data name="Timings"> <value xml:space="preserve">Stylesheet load/compile time: {0, 9:f3} milliseconds Transformation time: {1, 9:f3} milliseconds Total execution time: {2, 9:f3} milliseconds </value> </data> <data name="ErrorTransform"> <value xml:space="preserve">An error occurred while executing transformation: {0}</value> </data> <data name="ErrorMissingName"> <value xml:space="preserve">The '=' character must be preceded by the name of a parameter or a namespace declaration.</value> </data> <data name="ErrorMissingValue"> <value xml:space="preserve">Parameter '{0}' is missing a value following the '=' character.</value> </data> <data name="ErrorMissingURI"> <value xml:space="preserve">Namespace declaration '{0}' is missing a URI following the '=' character.</value> </data> <data name="ErrorCompileStyle"> <value xml:space="preserve">An error occurred while compiling stylesheet '{0}': {1}</value> </data> <data name="ErrorPIStylesheetNotFound"> <value xml:space="preserve">Stylesheet '{0}', defined in 'xml-stylesheet' processing instruction not found.</value> </data> <data name="ErrorMissingResolverTypeName"> <value xml:space="preserve">Missing URI resolver type name after '-r' option.</value> </data> <data name="ErrorMissingAssemblyFileName"> <value xml:space="preserve">Missing assembly file name after '-af' option.</value> </data> <data name="ErrorMissingExtClassNames"> <value xml:space="preserve">Missing list of extension class names after '-ext' option.</value> </data> <data name="ErrorMissingAssemblyName"> <value xml:space="preserve">Missing assembly name after '-an' option.</value> </data> <data name="ErrorLoadAssembly"> <value xml:space="preserve">An error occurred while loading assembly '{0}'.</value> </data> <data name="ErrorGetTypeFromAssembly"> <value xml:space="preserve">Type '{0}' not found in '{1}' assembly.</value> </data> <data name="ErrorCreateResolver"> <value xml:space="preserve">An error occurred while instantiating '{0}' type: {1}</value> </data> <data name="ErrorTypeNotXmlResolver"> <value xml:space="preserve">Specified URI resolver type '{0}' is not XmlResolver type.</value> </data> <data name="ErrorGetType"> <value xml:space="preserve">Type '{0}' not found.</value> </data> <data name="ErrorBothAssemblyFileNameAndName"> <value xml:space="preserve">-af and -an options cannot be used simultaneously.</value> </data> <data name="ErrorExtNamespaceClash"> <value xml:space="preserve">Two extension objects cannot be bound to '{0}' namespace URI.</value> </data> <data name="ErrorExtNoNamespace"> <value xml:space="preserve">Extension object '{0}' must be bound to a namespace URI.</value> </data> <data name="ErrorMissingExsltLibPath"> <value xml:space="preserve">Missing EXSLT.NET assembly file path after '-exslt' option.</value> </data> <data name="ErrorLoadExsltLibNotFound"> <value xml:space="preserve">An error occurred while loading specified EXSLT.NET assembly '{0}'. Error details: {1}</value> </data> <data name="ErrorLoadExsltTransformTypeNotFound"> <value xml:space="preserve">Specified EXSLT.NET assembly '{0}' doesn't contain GotDotNet.Exslt.ExsltTransform class. Error details: {1}</value> </data> <data name="ErrorLoadExsltTransformTypeCannotBeInstantiated"> <value xml:space="preserve">GotDotNet.Exslt.ExsltTransform class from specified EXSLT.NET assembly '{0}' cannot be instantiated. Error details: {1}</value> </data> <data name="ErrorMissingXMLCredentials"> <value xml:space="preserve">Missing credentials after '-xmlc' option.</value> </data> <data name="ErrorMissingXSLTCredentials"> <value xml:space="preserve">Missing credentials after '-xslc' option.</value> </data> <data name="PatternCredentials"> <value xml:space="preserve">(?<username>\w+):?(?<psw>\w*)@?(?<domain>\w*)</value> </data> <data name="ErrorBadCredentials"> <value xml:space="preserve">Specified credentials '{0}' don't match username:password@domain pattern.</value> </data> <data name="ErrorDuplicateCredentials"> <value xml:space="preserve">Duplicate credentials.</value> </data> <data name="ErrorStylesheetAndPrettyPrintMode"> <value xml:space="preserve">No stylesheet (in file name, '-' or '-pi' ways) should be specified along with '-pp' option.</value> </data> <data name="IdentityTransformation"> <value xml:space="preserve"><xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <xsl:copy-of select="."/> </xsl:template> </xsl:transform></value> </data> <data name="Error"> <value xml:space="preserve">An error occured: {0}</value> </data> </root> --- NEW FILE: NXsltArgumentsParser.cs --- using System; using System.Resources; using System.Xml; using System.Collections.Generic; using System.Xml.Xsl; using System.Net; using System.Text.RegularExpressions; namespace XmlLab.nxslt { /// <summary> /// Command line arguments parser. /// </summary> internal class NXsltArgumentsParser { private XmlNamespaceManager namespaceManager = null; private Queue<string> paramQueue = null; private NameTable nameTable = null; /// <summary> /// Parses command line arguments into NXsltOptions collection. /// </summary> /// <param name="args">Command line arguments.</param> /// <returns>Parsed collection of options.</returns> public NXsltOptions ParseArguments(string[] args) { NXsltOptions options = new NXsltOptions(); for (int i = 0; i < args.Length; i++) { string arg = args[i]; switch (arg) { //Show help case "-?": options.ShowHelp = true; break; //Strip whitespace case "-xw": options.StripWhiteSpace = true; break; //Output filename case "-o": if (i == args.Length - 1) { //Absent file name throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingOutFileName); } else { //Next argument must be filename options.OutFile = args[++i]; break; } case "-exslt": if (i == args.Length - 1) { //Absent exslt lib path throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingExsltLibPath); } else { //Next argument must be lib path options.ExsltLibPath = args[++i]; break; } //Show timings case "-t": options.ShowTiming = true; break; //No source XML case "-xs": if (options.GetStylesheetFromPI) { //Both -xs and -pi cannot be specified throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothNoSourceAndPI); } else if ((options.Source != null && options.Stylesheet != null) || options.LoadSourceFromStdin) { //When using -xs no source shoold be specified throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothNoSourceAndSource); } else if (options.Source != null && options.Stylesheet == null) { //That was stylesheet, not source options.Stylesheet = options.Source; options.Source = null; } options.NoSourceXml = true; break; //Get stylesheet URI from xml-stylesheet PI case "-pi": if (options.Stylesheet != null || options.LoadStylesheetFromStdin) { //Both -pi and stylesheet cannot be specified throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothStylesheetAndPI); } else if (options.NoSourceXml) { //Both -xs and -pi cannot be specified throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothNoSourceAndPI); } else options.GetStylesheetFromPI = true; break; //Network credentials for source XML case "-xmlc": if (i == args.Length - 1) { //Absent credentials throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingXMLCredentials); } else { //Next argument must be credentials string credstring = args[++i]; if (options.SourceCredential != null) { //Duplicate credentials throw new NXsltCommandLineParsingException(NXsltStrings.ErrorDuplicateCredentials); } options.SourceCredential = ParseCredentials(credstring); break; } //Network credentials for stylesheet case "-xslc": if (i == args.Length - 1) { //Absent credentials throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingXSLTCredentials); } else { //Next argument must be credentials string credstring = args[++i]; if (options.XSLTCredential != null) { //Duplicate credentials throw new NXsltCommandLineParsingException(NXsltStrings.ErrorDuplicateCredentials); } options.XSLTCredential = ParseCredentials(credstring); break; } //Use named URI resolver type case "-r": if (i == args.Length - 1) { //Absent resolver type name throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingResolverTypeName); } else { //Next argument must be resolver type options.ResolverTypeName = args[++i]; break; } //Assembly file name case "-af": if (options.AssemblyName != null) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothAssemblyFileNameAndName); } if (i == args.Length - 1) { //Absent assembly file name throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingAssemblyFileName); } else { //Next argument must be assembly file name options.AssemblyFileName = args[++i]; break; } //Assembly name case "-an": if (options.AssemblyFileName != null) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothAssemblyFileNameAndName); } if (i == args.Length - 1) { //Absent assembly name throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingAssemblyName); } else { //Next argument must be assembly name options.AssemblyName = args[++i]; break; } //Allow multiple output documents case "-mo": options.MultiOutput = true; break; //Validate documents case "-v": options.ValidateDocs = true; break; //Do not resolve externals case "-xe": options.ResolveExternals = false; break; //Do not process XInclude case "-xi": options.ProcessXInclude = false; break; //Pretty print source XML case "-pp": options.PrettyPrintMode = true; break; //Extension class names case "-ext": if (i == args.Length - 1) { //Absent class names throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingExtClassNames); } else { //Next argument must be ext class names list options.ExtClasses = args[++i].Split(','); break; } //Source or Stylesheet to be read from stdin case "-": if (options.Source == null && !options.LoadSourceFromStdin) { options.LoadSourceFromStdin = true; } else if (options.Stylesheet == null && !options.LoadStylesheetFromStdin) { //Check out that both source and stylesheet are not "-" if (options.LoadSourceFromStdin) { //Both source and stylesheet cannot be read from stdin throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBothStdin); } else options.LoadStylesheetFromStdin = true; } else { //Unrecognized "-" throw new NXsltCommandLineParsingException(NXsltStrings.ErrorUnrecognizedOption, arg); } break; //Other argment - source URI, stylesheet URI, parameter or namespace declaration default: //namespace declaration? if ((arg.StartsWith("xmlns:") || arg.StartsWith("xmlns=")) && arg.Contains("=")) { ParseNamespaceDeclaration(arg); } //Parameter? else if (arg.Contains("=")) { //Parameter - put to the queue till all namespaces are not processed if (arg.StartsWith("=")) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingName); } else if (arg.EndsWith("=")) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingValue, arg.Remove(arg.Length - 1, 1)); } //Enqueue param till all namespace declarations parsed EnqueueParameter(args, arg, paramQueue); } else if (arg.StartsWith("-")) { //Unrecognized option throw new NXsltCommandLineParsingException(NXsltStrings.ErrorUnrecognizedOption, arg); } //Source URI? else if (options.Source == null && !options.LoadSourceFromStdin && !options.NoSourceXml) { options.Source = arg; } //Stylesheet URI? else if (options.Stylesheet == null && !options.LoadStylesheetFromStdin && !options.GetStylesheetFromPI) { options.Stylesheet = arg; } //Unrecognized argument else { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorUnrecognizedOption, arg); } break; } } //Resolve parameters ResolveParameters(options); //Instantiate specified extension objects ParseExtObjects(options); return options; } /// <summary> /// Saves param in a queue. /// </summary> /// <param name="args">Command line arguments</param> /// <param name="param">Parameter</param> /// <param name="paramQueue">Queue of paramerers</param> private void EnqueueParameter(string[] args, string param, Queue<string> paramQueue) { //Lazy param queue if (paramQueue == null) { //Creates queue with max capacity = max possible number of params paramQueue = new Queue<string>(args.Length - 2); } paramQueue.Enqueue(param); } // ParseArguments /// <summary> /// Auxilary method for parsing credentials /// </summary> /// <param name="value">Passed credentials in username:password@domain form</param> private NetworkCredential ParseCredentials(string value) { NetworkCredential creds = new NetworkCredential(); Regex r = new Regex(NXsltStrings.PatternCredentials); Match m = r.Match(value); if (!m.Success) { //Credentials doesn't match pattern throw new NXsltCommandLineParsingException(NXsltStrings.ErrorBadCredentials, value); } creds.UserName = m.Groups["username"].Value; if (m.Groups["psw"] != null) creds.Password = m.Groups["psw"].Value; if (m.Groups["domain"] != null) creds.Domain = m.Groups["domain"].Value; return creds; } //SetCredentials /// <summary> /// Parses XML namespace declaration. /// </summary> /// <param name="arg">Namespace declaration</param> private void ParseNamespaceDeclaration(string arg) { if (arg.EndsWith("=")) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorMissingURI, arg.Remove(arg.Length - 1, 1)); } int eqIndex = arg.IndexOf('='); //Lazy XmlNamespaceManager if (namespaceManager == null) { nameTable = new NameTable(); namespaceManager = new XmlNamespaceManager(nameTable); } //qname is xmlns:prefix or xmlns string qname = arg.Substring(0, eqIndex); int colonIndex = qname.IndexOf(':'); if (colonIndex != -1) //xmlns:prefix="value" case namespaceManager.AddNamespace(nameTable.Add(qname.Substring(colonIndex + 1)), arg.Substring(eqIndex + 1)); else //xmlns="value" case - default namespace namespaceManager.AddNamespace(String.Empty, arg.Substring(eqIndex + 1)); }// ParseNamespaceDeclaration /// <summary> /// Resolves enqueued parameters. /// </summary> /// <param name="options">nxslt options collection</param> private void ResolveParameters(NXsltOptions options) { if (paramQueue != null) { options.XslArgList = new XsltArgumentList(); foreach (string param in paramQueue) { int eqIndex = param.IndexOf('='); //qname is prefix:localname or localname string qname = param.Substring(0, eqIndex); int colonIndex = qname.IndexOf(':'); if (colonIndex != -1) { //prefix:localname="value" case string prefix = qname.Substring(0, colonIndex); string uri; //Resolve prefix if (namespaceManager == null || (uri = namespaceManager.LookupNamespace(nameTable.Get(prefix))) == null) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorUnboundedPrefix, prefix); } else options.XslArgList.AddParam(param.Substring(colonIndex + 1, eqIndex - colonIndex - 1), uri, param.Substring(eqIndex + 1)); } else //localname="value" case - possible default namespace options.XslArgList.AddParam(qname, namespaceManager == null ? String.Empty : namespaceManager.DefaultNamespace, param.Substring(eqIndex + 1)); } } }// ResolveParameters /// <summary> /// Parses and instantiates extention objects. /// </summary> /// <param name="options">nxslt options collection</param> private void ParseExtObjects(NXsltOptions options) { if (options.ExtClasses != null) { if (options.XslArgList == null) options.XslArgList = new XsltArgumentList(); foreach (string typeDecl in options.ExtClasses) { string[] parts = typeDecl.Split(new char[] { ':' }, 2); if (parts.Length == 1) { Type extObjType = TypeUtils.FindType(options, parts[0]); try { object o = Activator.CreateInstance(extObjType); if (namespaceManager == null || namespaceManager.DefaultNamespace == String.Empty) { //Extension object not bound to a namespace throw new NXsltException(NXsltStrings.ErrorExtNoNamespace, parts[0]); } string ns = namespaceManager.DefaultNamespace; if (options.XslArgList.GetExtensionObject(ns) != null) { //More than one extension object in the same namespace URI throw new NXsltException(NXsltStrings.ErrorExtNamespaceClash, ns); } options.XslArgList.AddExtensionObject(ns, o); } catch (Exception e) { //Type cannot be instantiated throw new NXsltException(NXsltStrings.ErrorCreateResolver, parts[0], e.Message); } } else { string prefix = parts[0]; string uri; //Resolve prefix if (namespaceManager == null || (uri = namespaceManager.LookupNamespace(nameTable.Get(prefix))) == null) { throw new NXsltCommandLineParsingException(NXsltStrings.ErrorUnboundedPrefix, prefix); } Type extObjType = TypeUtils.FindType(options, parts[1]); try { object o = Activator.CreateInstance(extObjType); if (options.XslArgList.GetExtensionObject(uri) != null) { //More than one extension object in the same namespace URI throw new NXsltCommandLineParsingException(NXsltStrings.ErrorExtNamespaceClash, uri); } options.XslArgList.AddExtensionObject(uri, o); } catch (Exception e) { //Type cannot be instantiated throw new NXsltCommandLineParsingException(NXsltStrings.ErrorCreateResolver, parts[1], e.Message); } } } } }// ParseExtObjects } // NXsltArgumentsParser } // XmlLab.nxslt namespace --- NEW FILE: NXslt.ico --- (This appears to be a binary file; contents omitted.) --- NEW FILE: TypeUtils.cs --- using System; using System.Reflection; namespace XmlLab.nxslt { /// <summary> /// Type utility methods. /// </summary> internal class TypeUtils { public static Type FindType(NXsltOptions options, string typeName) { Type type; Assembly assembly; if (options.AssemblyFileName != null) { // //Load assembly from a file // try { assembly = Assembly.LoadFrom(options.AssemblyFileName); } catch { //Assembly cannot be loaded throw new NXsltException(NXsltStrings.ErrorLoadAssembly, options.AssemblyFileName); } try { type = assembly.GetType(typeName, true); } catch { //Type not found in the specified assembly throw new NXsltException(NXsltStrings.ErrorGetTypeFromAssembly, typeName, options.AssemblyFileName); } } else if (options.AssemblyName != null) { // //Load assembly by name // try { //assembly = Assembly.LoadWithPartialName(options.AssemblyName); assembly = Assembly.Load(options.AssemblyName); } catch { //Assembly cannot be loaded throw new NXsltException(NXsltStrings.ErrorLoadAssembly, options.AssemblyName); } try { type = assembly.GetType(typeName, true); } catch { throw new NXsltException(NXsltStrings.ErrorGetType, typeName); } } else { // //Assembly not specified // try { type = Type.GetType(typeName, true); } catch { throw new NXsltException(NXsltStrings.ErrorGetType, typeName); } } return type; } // FindType() } } --- NEW FILE: nxslt2.csproj --- (This appears to be a binary file; contents omitted.) --- NEW FILE: NxsltCommandLineParsingException.cs --- using System; namespace XmlLab.nxslt { /// <summary> /// nxslt command line parsing error. /// </summary> internal class NXsltCommandLineParsingException : NXsltException { public NXsltCommandLineParsingException(string msg) : base(msg) { } public NXsltCommandLineParsingException(string msg, string arg) : base(string.Format(msg, arg)) { } public NXsltCommandLineParsingException(string msg, params string[] args) : base(string.Format(msg, args)) { } } } --- NEW FILE: NXsltTimings.cs --- using System; using System.Collections.Generic; using System.Text; namespace XmlLab.nxslt { internal struct NXsltTimings { public float XsltCompileTime; public float XsltExecutionTime; public float TotalRunTime; } } --- NEW FILE: readme.txt --- See http://www.xmllab.net for documentation. --- NEW FILE: NXsltOptions.cs --- using System; using System.Xml.Xsl; using System.Net; namespace XmlLab.nxslt { /// <summary> /// This class represents parsed command line options. /// </summary> internal class NXsltOptions { private bool stripWhiteSpace = false; private bool showHelp = false; private string source; private string stylesheet; private string outFile; private XsltArgumentList xslArgList; private bool showTiming = false; private bool getStylesheetFormPI = false; private bool validateDocs = false; private bool resolveExternals = true; private bool processXInclude = true; private bool loadSourceFromStdin = false; private bool loadStylesheetFromStdin = false; private string resolverTypeNam... [truncated message content] |
From: Oleg T. <he...@us...> - 2005-11-29 22:05:03
|
Update of /cvsroot/mvp-xml/nxslt/v2/src/Properties In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3330/Properties Log Message: Directory /cvsroot/mvp-xml/nxslt/v2/src/Properties added to the repository |
From: Oleg T. <he...@us...> - 2005-11-29 22:04:50
|
Update of /cvsroot/mvp-xml/nxslt/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3285/src Log Message: Directory /cvsroot/mvp-xml/nxslt/v2/src added to the repository |
From: Oleg T. <he...@us...> - 2005-11-29 22:04:41
|
Update of /cvsroot/mvp-xml/nxslt/v2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3256/v2 Log Message: Directory /cvsroot/mvp-xml/nxslt/v2 added to the repository |
From: Oleg T. <he...@us...> - 2005-11-27 23:19:16
|
Update of /cvsroot/mvp-xml/Global/v1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19209/v1 Modified Files: AssemblyInfo.cs Log Message: Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/mvp-xml/Global/v1/AssemblyInfo.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- AssemblyInfo.cs 27 Nov 2005 21:48:29 -0000 1.5 +++ AssemblyInfo.cs 27 Nov 2005 23:19:07 -0000 1.6 @@ -10,7 +10,7 @@ [assembly: AssemblyTitle("Mvp.Xml")] [assembly: AssemblyDescription("MVP XML Library")] -[assembly: AssemblyVersion("1.1.*")] +[assembly: AssemblyVersion("1.2.*")] //[assembly: AssemblyDelaySign(false)] //[assembly: AssemblyKeyFile("../../../mvp-xml.snk")] |
From: Oleg T. <he...@us...> - 2005-11-27 21:48:52
|
Update of /cvsroot/mvp-xml/XInclude/v2/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32449/v2/test Modified Files: XIncludeTest.csproj Log Message: Index: XIncludeTest.csproj =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v2/test/XIncludeTest.csproj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- XIncludeTest.csproj 21 Nov 2005 22:07:23 -0000 1.3 +++ XIncludeTest.csproj 27 Nov 2005 21:48:43 -0000 1.4 @@ -17,7 +17,7 @@ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> <DefaultTargetSchema>IE50</DefaultTargetSchema> <DelaySign>false</DelaySign> - <OutputType>Exe</OutputType> + <OutputType>Library</OutputType> <RootNamespace>Mvp.Xml.XInclude.Test</RootNamespace> <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> <StartupObject> |
From: Oleg T. <he...@us...> - 2005-11-27 21:48:40
|
Update of /cvsroot/mvp-xml/Global/v1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32390/v1 Modified Files: AssemblyInfo.cs Mvp.Xml.sln Log Message: Index: Mvp.Xml.sln =================================================================== RCS file: /cvsroot/mvp-xml/Global/v1/Mvp.Xml.sln,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Mvp.Xml.sln 30 Oct 2005 13:55:53 -0000 1.1 +++ Mvp.Xml.sln 27 Nov 2005 21:48:29 -0000 1.2 @@ -79,7 +79,6 @@ {AC8B9015-E508-4E40-8E6D-C4FCF52CE4B0}.Release.Build.0 = Release|.NET EndGlobalSection GlobalSection(SolutionItems) = postSolution - license.txt = license.txt EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/mvp-xml/Global/v1/AssemblyInfo.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- AssemblyInfo.cs 30 Oct 2005 13:55:53 -0000 1.4 +++ AssemblyInfo.cs 27 Nov 2005 21:48:29 -0000 1.5 @@ -12,9 +12,9 @@ [assembly: AssemblyDescription("MVP XML Library")] [assembly: AssemblyVersion("1.1.*")] -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("../mvp-xml.snk")] -[assembly: AssemblyKeyName("")] +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("../../../mvp-xml.snk")] +//[assembly: AssemblyKeyName("")] #region Security Permissions |
From: Oleg T. <he...@us...> - 2005-11-27 21:48:28
|
Update of /cvsroot/mvp-xml/EXSLT/v2/test/ExsltTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32326/v2/test/ExsltTest Modified Files: ExsltTest.csproj Log Message: Index: ExsltTest.csproj =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v2/test/ExsltTest/ExsltTest.csproj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ExsltTest.csproj 30 Oct 2005 12:02:31 -0000 1.3 +++ ExsltTest.csproj 27 Nov 2005 21:48:19 -0000 1.4 @@ -17,10 +17,11 @@ <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout> <DefaultTargetSchema>IE50</DefaultTargetSchema> <DelaySign>false</DelaySign> - <OutputType>Exe</OutputType> + <OutputType>Library</OutputType> <RootNamespace>ExsltTest</RootNamespace> <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent> - <StartupObject>ExsltTest.ExsltTest</StartupObject> + <StartupObject> + </StartupObject> <FileUpgradeFlags> </FileUpgradeFlags> <UpgradeBackupLocation> @@ -69,10 +70,6 @@ <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> - <Reference Include="Mvp.Xml.Exslt, Version=2.0.2128.40465, Culture=neutral, PublicKeyToken=dd92544dc05f5671, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\..\src\Exslt\Mvp.Xml.Exslt.dll</HintPath> - </Reference> <Reference Include="nunit.framework"> <Name>nunit.framework</Name> <HintPath>..\..\..\Program Files\NUnit 2.2\bin\nunit.framework.dll</HintPath> @@ -313,6 +310,12 @@ <Content Include="tests\regexp-match-test.xslt" /> <Content Include="tests\test.xml" /> </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\Global\v2\Global.csproj"> + <Project>{2658B682-C08B-47C0-9FEC-A990876A3F7C}</Project> + <Name>Global</Name> + </ProjectReference> + </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <PropertyGroup> <PreBuildEvent> |
From: Oleg T. <he...@us...> - 2005-11-27 21:48:28
|
Update of /cvsroot/mvp-xml/EXSLT/v1/test/ExsltTest In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32326/v1/test/ExsltTest Modified Files: ExsltTest.csproj Log Message: Index: ExsltTest.csproj =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v1/test/ExsltTest/ExsltTest.csproj,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ExsltTest.csproj 22 Oct 2005 21:18:08 -0000 1.4 +++ ExsltTest.csproj 27 Nov 2005 21:48:19 -0000 1.5 @@ -86,9 +86,14 @@ AssemblyFolderKey = "hklm\dn\nunit.framework" /> <Reference - Name = "Mvp.Xml" - AssemblyName = "Mvp.Xml" - HintPath = "..\..\..\..\Global\v1\bin\Release\Mvp.Xml.dll" + Name = "XInclude" + Project = "{3750FAB1-FD0E-425A-9DAA-87543A556319}" + Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" + /> + <Reference + Name = "Mvp.Xml.Exslt" + AssemblyName = "Mvp.Xml.Exslt" + HintPath = "..\..\src\Exslt\Mvp.Xml.Exslt.dll" /> </References> </Build> |
From: Oleg T. <he...@us...> - 2005-11-27 21:48:27
|
Update of /cvsroot/mvp-xml/EXSLT/v1/src/Exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32326/v1/src/Exslt Modified Files: PostBuildEvent.bat Log Message: Index: PostBuildEvent.bat =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v1/src/Exslt/PostBuildEvent.bat,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- PostBuildEvent.bat 30 Oct 2005 13:50:54 -0000 1.2 +++ PostBuildEvent.bat 27 Nov 2005 21:48:19 -0000 1.3 @@ -1,6 +1,6 @@ @echo off @echo ########### Setting environment variables -call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\..\Tools\vsvars32.bat" +call "D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\..\Tools\vsvars32.bat" nmake if errorlevel 1 goto CSharpReportError goto CSharpEnd |
From: Oleg T. <he...@us...> - 2005-11-27 21:23:58
|
Update of /cvsroot/mvp-xml/WebSite/exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27255/exslt Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/exslt/index.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- index.html 27 Nov 2005 20:17:20 -0000 1.4 +++ index.html 27 Nov 2005 21:23:46 -0000 1.5 @@ -28,7 +28,7 @@ Version 2.0 is the first EXSLT.NET release for the .NET 2.0 Framework. What's new in this version:</p> <ul> - <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://www.google.com/url?sa=U&start=1&q=http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx&e=9797"> + <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlOutput.html"> XslCompiledTransform</a> class</li> <li>ExsltTransform class has been deprecated, please use <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> MvpXslTransform</a> instead</li> @@ -40,8 +40,7 @@ via <code><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> <font face="Courier New"> Mvp.Xml</font>.Common.Xsl.MvpXslTransform</a></code> class, which encapsulates EXSLT implementation:</p> -<pre class="code"> -using System;<br>using System.Xml.XPath;<br>using <font +<pre class="code">using System;<br>using System.Xml.XPath;<br>using <font face="Courier New">Mvp.Xml</font>.Common.Xsl;<br><br>public class ExsltTest <br>{<br> public static void Main() <br> { <br> MvpXslTransform xslt = new MvpXslTransform(); <br> xslt.Load("foo.xsl"); <br> xslt.Transform(new XmlInput("foo.xml"), new XmlOutput("result.html")); <br> } <br>}<br></pre> <p> </p> <p>Additionally <code><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> |
From: Oleg T. <he...@us...> - 2005-11-27 21:23:56
|
Update of /cvsroot/mvp-xml/WebSite/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27255/common Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/common/index.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- index.html 26 Nov 2005 22:03:49 -0000 1.7 +++ index.html 27 Nov 2005 21:23:46 -0000 1.8 @@ -7,7 +7,7 @@ <body> <h1><a href="../index.html">Mvp.Xml Project</a>: Common module<br> </h1> -The Common module includes a set of commonly useful classes in <span +The Common module includes a set of commonly useful classes in the <span style="font-family: monospace;">Mvp.Xml.Common,</span> <span style="font-family: monospace;">Mvp.Xml.Common.Serialization<strong>, </strong> Mvp.Xml.Common.XPath</span> and <span style="font-family: Courier New"> @@ -63,7 +63,7 @@ XmlReader</a> and <a target="_blank" href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemXmlXPathXPathNavigatorClassTopic.asp"> XPathNavigator</a>, avoiding all re-parsing costs.</li> - <li><a href="Mvp.Xml.Common.XmlNodeListFactory.html">XmlNodeListFactory</a>: + <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XmlNodeListFactory.html">XmlNodeListFactory</a>: constructs <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemXmlXmlNodeListClassTopic.asp">XmlNodeList</a> instances from <a @@ -195,7 +195,7 @@ 2.0. XslReader can work in either fully buffering or concurrent mode, is very efficient and fast. Contributed by Sergey Dubinets from the <a href="http://blogs.msdn.com/xmlteam"> Microsoft XML Team</a>.</span></span></li> - <li><span style="color: #ff3366">(since v2.0)</span> <a href="T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + <li><span style="color: #ff3366">(since v2.0)</span> <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> MvpXslTransform</a>: MvpXslTransform class extends capabilities of the <nobr><A href="http://msdn2.microsoft.com/en-us/library/System.Xml.Xsl.XslCompiledTransform.aspx" @@ -214,15 +214,15 @@ href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlResolver.aspx" target="sdk">XmlResolver</A></nobr> .</li> - <li><span style="color: #ff3366">(since v2.0) </span><a href="T_Mvp_Xml_Common_Xsl_IXmlTransform.html"> - IXmlTransform</a>, <a href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</a>, <a - href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</a>: New experimental generic + <li><span style="color: #ff3366">(since v2.0) </span><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_IXmlTransform.html"> + IXmlTransform</a>, <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</a>, <a + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</a>: New experimental generic XML transform interface. Defines an API for transforming <nobr><A - href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> into <nobr><A - href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> .</li> </ul> <hr style="width: 100%; height: 2px;"> |
From: Oleg T. <he...@us...> - 2005-11-27 21:23:55
|
Update of /cvsroot/mvp-xml/WebSite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27255 Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/index.html,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- index.html 27 Nov 2005 20:32:58 -0000 1.16 +++ index.html 27 Nov 2005 21:23:46 -0000 1.17 @@ -63,18 +63,18 @@ </strong>Mvp.Xml library v2.0 is the first Mvp.Xml release for .NET 2.0. What's new in the Mvp.Xml v2.0:</p> <ul> - <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://www.google.com/url?sa=U&start=1&q=http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx&e=9797"> + <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlOutput.html"> XslCompiledTransform</a> class</li> <li>Experimental new improved and simplified XSL transformation API introducing concepts of <nobr><A - href="T_Mvp_Xml_Common_Xsl_IXmlTransform.html">IXmlTransform</A></nobr> + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_IXmlTransform.html">IXmlTransform</A></nobr> interface, <nobr><A - href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> and <nobr><A - href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> </li> <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> MvpXslTransform</a> - extends capabilities of the |
From: Oleg T. <he...@us...> - 2005-11-27 20:33:09
|
Update of /cvsroot/mvp-xml/WebSite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16648 Modified Files: index.html style.css Added Files: mvp-xml-logo.gif Log Message: --- NEW FILE: mvp-xml-logo.gif --- (This appears to be a binary file; contents omitted.) Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/index.html,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- index.html 27 Nov 2005 20:17:21 -0000 1.15 +++ index.html 27 Nov 2005 20:32:58 -0000 1.16 @@ -5,7 +5,7 @@ <link href="style.css" type="text/css" rel="stylesheet"> </head> <body> -<h1><a class="mozTocH1" name="mozTocId838640"></a>Mvp.Xml Project</h1> +<h1><a class="mozTocH1" name="mozTocId838640"></a><a href="http://mvp-xml.sf.net"><img alt="Mvp.Xml Project Logo" src="mvp-xml-logo.gif" border="0" align="middle"/></a> Mvp.Xml Project</h1> <p> Mvp.Xml project is developed by <a target="_blank" href="http://www.microsoft.com/communities/mvp/mvp.mspx"> Microsoft MVPs</a> in <a target="_blank" @@ -107,7 +107,7 @@ src="http://images.sourceforge.net/images/xml.png" style="border: 0px solid ; width: 36px; height: 14px;"></a> (<a href="http://sourceforge.net/news/?group_id=102352">News archive</a>)<br> -Mvp.Xml Releases: <a +Mvp.Xml Releases: <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=102352"><img alt="Mvp.Xml project news feed" src="http://images.sourceforge.net/images/xml.png" Index: style.css =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/style.css,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- style.css 1 Nov 2004 17:19:17 -0000 1.3 +++ style.css 27 Nov 2005 20:32:58 -0000 1.4 @@ -7,7 +7,7 @@ h1 { font-weight: bold; - font-size: 18pt; + font-size: 20pt; background-color: #99ccff; text-indent: 15px; } |
From: Oleg T. <he...@us...> - 2005-11-27 20:17:33
|
Update of /cvsroot/mvp-xml/WebSite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13653 Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/index.html,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- index.html 26 Nov 2005 22:03:49 -0000 1.14 +++ index.html 27 Nov 2005 20:17:21 -0000 1.15 @@ -63,6 +63,8 @@ </strong>Mvp.Xml library v2.0 is the first Mvp.Xml release for .NET 2.0. What's new in the Mvp.Xml v2.0:</p> <ul> + <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://www.google.com/url?sa=U&start=1&q=http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx&e=9797"> + XslCompiledTransform</a> class</li> <li>Experimental new improved and simplified XSL transformation API introducing concepts of <nobr><A |
From: Oleg T. <he...@us...> - 2005-11-27 20:17:31
|
Update of /cvsroot/mvp-xml/WebSite/exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13653/exslt Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/exslt/index.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- index.html 26 Nov 2005 22:03:49 -0000 1.3 +++ index.html 27 Nov 2005 20:17:20 -0000 1.4 @@ -8,8 +8,8 @@ <h1><a class="mozTocH1" name="mozTocId507464"></a><a href="../index.html">Mvp.Xml Project</a>: EXSLT.NET module </h1> -<p>EXSLT.NET library is community-developed implementation of the <a - href="http://exslt.org"> EXSLT</a> extensions to XSLT for the .NET +<p>EXSLT.NET is a community-developed implementation of the <a + href="http://exslt.org"> EXSLT</a> extensions to the XSLT 1.0 for the .NET platform. EXSLT.NET fully implements the following EXSLT modules: <a href="http://exslt.org/date/index.html">Dates and Times</a>, <a href="http://exslt.org/exsl/index.html">Common</a>, <a @@ -18,24 +18,11 @@ href="http://exslt.org/regexp/index.html"> Regular Expressions</a>, <a href="http://exslt.org/set/index.html">Sets</a> and <a href="http://exslt.org/str/index.html">Strings</a>. In addition -EXSLT.NET library provides proprietary set of useful extension +EXSLT.NET provides a proprietary set of useful extension functions. See full list of supported extension functions and elements in "<a href="#funclist">Extension Functions and Elements</a>" section. For more info about EXSLT and EXSLT.NET see <a href="#refs">References</a>. </p> -<h2>Contents</h2> -<ol> - <li> <a href="#new">What's New In This Version</a> </li> - <li> <a href="#install">Installation</a> </li> - <li> <a href="#build">Building</a> </li> - <li> <a href="#usage">Usage</a> </li> - <li> <a href="#funclist">Extension Functions and Elements</a> - </li> - <li> <a href="#multiout">Multiple Output</a> </li> - <li> <a href="#credits">License</a></li> - <li><a href="#bugs">Support</a></li> - <li> <a href="#refs">References</a></li> -</ol> <h2>1<a name="new">. What's New In This Version</a></h2> <p> Version 2.0 is the first EXSLT.NET release for the .NET 2.0 Framework. What's new @@ -43,47 +30,26 @@ <ul> <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://www.google.com/url?sa=U&start=1&q=http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx&e=9797"> XslCompiledTransform</a> class</li> + <li>ExsltTransform class has been deprecated, please use <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + MvpXslTransform</a> instead</li> + <li>Support for fractional seconds in EXSLT Dates and Times functions</li> <li>Performance improvements</li> </ul> -<h2>2<a name="install">. Installation</a></h2> -<p>EXSLT.NET is designed as a component for .NET Framework and actually -doesn't require any installation. You can use <font face="Courier New">Mvp.Xml.dll</font> -assembly as is in your application by referencing it in Visual Studio -.NET.</p> -<h2>3<a name="build">. Building</a></h2> -<p>EXSLT.NET source distribution contains Visual Studio -solution, consisting of four projects: <font face="Courier New">Exslt</font>, -which is the core EXSLT.NET implementation, <font face="Courier New">ExsltTest</font> -- a collection of NUnit tests for each EXSLT.NET function along with -primitive command line utility for testing EXSLT.NET in XSLT, <font - face="Courier New">ExsltXPathTest</font> - primitive command line -utility for testing EXSLT.NET in XPath-only environment, and <font - face="Courier New">MethodRenamer</font> - auxiliary command line -utility for EXSLT.NET assembly building.</p> -<p>All the projects can be build in Visual Studio .NET. Note, that -due to implementation details we are using custom script hooked to -Visual Studio .NET post-build event. In this script, which you can find -in <font face="Courier New">Exslt</font> project properties, we -disassemble <font face="Courier New">Mvp.Xml</font> <font - face="Courier New"> .Exslt.dll</font> assembly, rename methods (e.g. -from <font face="Courier New">dateTime()</font> to <font - face="Courier New">date-time()</font>) and assemble it back.</p> -<h2>4<a name="usage">. Usage</a></h2> +<h2>2<a name="usage">. Usage</a></h2> <p>Typically you are using EXSLT.NET module in your application -via <code><font face="Courier New"> Mvp.Xml</font>.Exslt.ExsltTransform</code> -class, which encapsulates EXSLT implementation under the guise of -standard <code>XslCompiledTransform</code> class (<code>ExsltTransform</code> -class completely duplicates <code>XslCompiledTransform</code> API from -.NET 2.0 - you are familiar with). So the rules of the <code>ExsltTransform</code> -usage are simple: just use it instead of standard <code>XslTransform</code> -class:</p> -<pre class="code">using System;<br>using System.Xml.XPath;<br>using <font - face="Courier New">Mvp.Xml</font>.Exslt;<br><br>public class ExsltTest <br>{<br> public static void Main() <br> { <br> ExsltTransform xslt = new ExsltTransform(); <br> xslt.Load("foo.xsl"); <br> xslt.Transform("foo.xml", "result.html"); <br> } <br>}<br></pre> +via <code><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + <font face="Courier New"> Mvp.Xml</font>.Common.Xsl.MvpXslTransform</a></code> +class, which encapsulates EXSLT implementation:</p> +<pre class="code"> +using System;<br>using System.Xml.XPath;<br>using <font + face="Courier New">Mvp.Xml</font>.Common.Xsl;<br><br>public class ExsltTest <br>{<br> public static void Main() <br> { <br> MvpXslTransform xslt = new MvpXslTransform(); <br> xslt.Load("foo.xsl"); <br> xslt.Transform(new XmlInput("foo.xml"), new XmlOutput("result.html")); <br> } <br>}<br></pre> <p> </p> -<p>Additionally <code>ExsltTransform</code> class has two properties - -<font face="Courier New"> SupportedFunctions</font> and <font - face="Courier New">MultiOutput</font>, which allow you to control +<p>Additionally <code><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + MvpXslTransform</a></code> class has two properties - +<font face="Courier New"> <a href="http://mvp-xml.sourceforge.net/api/2.0/P_Mvp_Xml_Common_Xsl_MvpXslTransform_SupportedFunctions.html"> + SupportedFunctions</a></font> and <font + face="Courier New"><a href="http://mvp-xml.sourceforge.net/api/2.0/P_Mvp_Xml_Common_Xsl_MvpXslTransform_MultiOutput.html"> + MultiOutput</a></font>, which allow you to control which features should be supported, for instance you can define that you need all extension function modules, but not multiple output support (the default settings) by setting <font @@ -98,13 +64,12 @@ Practical Solutions with EXSLT.NET</a>" article at <a href="http://msdn.com/xml"> MSDN XML Developer Center</a>.</p> <p>It's also possible to use EXSLT.NET in XPath-only environment. For -doing that one makes use of <font face="Courier New">Mvp.Xml</font> -<code>.Exslt.ExsltContext</code> class:</p> +doing that one makes use of <a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Exslt_ExsltContext.html"><font face="Courier New">Mvp.Xml</font><code>.Exslt.ExsltContext</code></a> class:</p> <pre>XPathExpression expr = nav.Compile("set:distinct(//author)");<br>expr.SetContext(new ExsltContext(doc.NameTable));<br>XPathNodeIterator authors = nav.Select(expr);<br>while (authors.MoveNext())<br> Console.WriteLine(authors.Current.Value);<br></pre> <p>See "<a href="http://http://msdn.microsoft.com/library/en-us/dnexxml/html/xml11172003.asp">EXSLT Meets XPath</a>" article for more information.</p> -<h2>5<a name="funclist">. Extension</a> Functions and Elements</h2> +<h2>3<a name="funclist">. Extension</a> Functions and Elements</h2> <p>You can find full list of extension functions EXSLT.NET supports in <font face="Courier New"> doc\Functions.xml</font> document. <a href="Functions.htm">Here is</a> HTML version.</p> @@ -119,12 +84,12 @@ href="http://exslt.org/exsl/elements/document/index.html"> exsl:document</a> element. See "<a href="#multiout">Multiple Output</a>" section for more info.</p> -<h2>6<a name="multiout">. Multiple Output</a></h2> +<h2>4<a name="multiout">. Multiple Output</a></h2> <p>EXSLT.NET partially supports <a href="http://exslt.org/exsl/elements/document/index.html"> <font face="Courier New">exsl:document</font></a> extension element. Not all <font face="Courier New">exsl:document</font> attributes and their -values are supported in this version of teh EXSLT.NET. The +values are supported in this version of the EXSLT.NET. The supported subset of attributes and values is as follows:</p> <pre><exsl:document <br> <b>href</b> = { <i>uri-reference</i> } <br> method = { "xml" | "text" } <br> encoding = { <i>string</i> } <br> omit-xml-declaration = { "yes" | "no" }<br> standalone = { "yes" | "no" } <br> doctype-public = { <i>string</i> } <br> doctype-system = { <i>string</i> } <br> indent = { "yes" | "no" } > <br> <-- Content: template --> <br></exsl:document></pre> <p><a href="http://exslt.org/exsl/elements/document/index.html"><font @@ -167,11 +132,8 @@ <p>For more info about how it's implemented see <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml06162003.asp"> "Producing Multiple Outputs from an XSL Transformation"</a> article.</p> -<h2>7<a name="credits">. License</a></h2> -<p>EXSLT.NET as part of the <a href="http://mvp-xml.sf.net/">Mvp.Xml project</a> is subject to the <a href="../license.html">GPL License</a> - <a href="http://www.opensource.org/licenses/index.php"> -OSI approved</a> free open-source license. <br> -</p> -<h2><a class="mozTocH2" name="bugs"></a>8. Support</h2> +<h2> + 5. Support</h2> <p> You can get support on using XInclude.NET module using the following options:</p> <ul> @@ -187,7 +149,7 @@ welcome</a>.</li> </ul> <h2> - 9<a name="refs">. References</a></h2> + 6<a name="refs">. References</a></h2> <ol> <li><!--StartFragment --> EXSLT community initiative - <a href="http://www.exslt.org/"> http://www.exslt.org</a>. </li> |
From: Oleg T. <he...@us...> - 2005-11-26 22:03:58
|
Update of /cvsroot/mvp-xml/WebSite/common In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2936/common Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/common/index.html,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- index.html 2 Nov 2005 13:21:26 -0000 1.6 +++ index.html 26 Nov 2005 22:03:49 -0000 1.7 @@ -9,23 +9,33 @@ </h1> The Common module includes a set of commonly useful classes in <span style="font-family: monospace;">Mvp.Xml.Common,</span> -<span style="font-family: monospace;">Mvp.Xml.Common.XPath</span> and <span style="font-family: Courier New"> +<span style="font-family: monospace;">Mvp.Xml.Common.Serialization<strong>, </strong> + Mvp.Xml.Common.XPath</span> and <span style="font-family: Courier New"> Mvp.Xml.Common.Xsl </span> namespaces, which extend the .NET functionality available through the <a target="_blank" href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxml.asp"> System.Xml</a> and related namespaces.<br> + <br /> + The full Common module API documentation can found here: <a href="http://mvp-xml.sourceforge.net/api/index.html"> + for .NET 1.1</a> and <a href="http://mvp-xml.sourceforge.net/api/2.0/index.html">for + .NET 2.0</a>.<br /> <br> The following is a list of key features, a short explanation and a link to its corresponding full explanation:<br> <br> -<span style="font-family: monospace; font-weight: bold;">Mvp.Xml.Common</span> +<span style="font-family: monospace; font-weight: bold;"></span> + <h2> + <span style="font-weight: bold; font-family: monospace">Mvp.Xml.Common</span> namespace:<br> + </h2> <ul> - <li><a href="http://www.tkachenko.com/blog/archives/000333.html">XmlBaseAwareXmlTextReader</a>: -XmlTextReader, augmented to support <a - href="http://www.w3.org/TR/xmlbase/">XML Base</a>.</li> - <li><a target="_blank" + <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XmlBaseAwareXmlTextReader.html">XmlBaseAwareXmlTextReader</a>: + Extended + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlTextReader.aspx" + target="sdk">XmlTextReader</A></nobr> + supporting <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>.</li><li><a target="_blank" href="http://weblogs.asp.net/cazzu/archive/2004/05/10/129106.aspx">XmlFirstUpperReader and XmlFirstLowerWriter</a>: used in combination usually for configuration files. Allows automatic case conversion to @@ -60,9 +70,9 @@ href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemXmlXPathXPathNodeIteratorClassTopic.asp">XPathNodeIterator</a> objects. </li> </ul> -<p><span style="font-family: monospace; font-weight: bold;">Mvp.Xml.Common.Serialization</span> +<h2><span style="font-family: monospace; font-weight: bold;">Mvp.Xml.Common.Serialization</span> namespace:<br> -</p> +</h2> <ul> <li><a href="http://weblogs.asp.net/cschittko/archive/2005/01/14/353435.aspx"> @@ -76,8 +86,11 @@ instance. It canonicalizes the parameter list to minimize the number of serializer objects in the cache.</span></li> </ul> -<span style="font-family: monospace; font-weight: bold;">Mvp.Xml.Common.XPath</span> +<span style="font-family: monospace; font-weight: bold;"></span> + <h2> + <span style="font-weight: bold; font-family: monospace">Mvp.Xml.Common.XPath</span> namespace:<br> + </h2> <ul> <li> <a target="_blank" href="http://weblogs.asp.net/cazzu/archive/2003/10/07/30888.aspx">DynamicContext</a>: @@ -91,12 +104,21 @@ effort and yields even greater performance than the previous one alone for scenarios involving queries with sort expressions. </li> <li> <a target="_blank" - href="http://www.tkachenko.com/blog/archives/000194.html">IndexingXPathNavigator</a>: -allows the use of the XSLT key() function to create indexes for fast -querying. Very handy for query intensive applications that need to -repeatedly look for elements and matches. It yields an amazing 10 x -performance improvement at a minimum. </li> - <li> <span style="color: #ff3366">(v1.X only)</span> <a target="_blank" + href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XPath_IndexingXPathNavigator.html">IndexingXPathNavigator</a>: + enables lazy or eager indexing of any XML store (<nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlDocument.aspx" + target="sdk">XmlDocument</A></nobr>, + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.XPathDocument.aspx" + target="sdk">XPathDocument</A></nobr> + or any other + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.IXPathNavigable.aspx" + target="sdk">IXPathNavigable</A></nobr> + XML store) thus providing an alternative way to select nodes directly from an index + table instead of searhing the XML tree. This allows drastically decrease selection + time on preindexed selections. </li> + <li><span style="color: #ff3366">(v1.X only)</span> <a target="_blank" href="http://weblogs.asp.net/cazzu/archive/2004/04/19/115966.aspx">XPathNavigatorReader</a>: implements an <a target="_blank" href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlxmltextreaderclasstopic.asp"> @@ -114,7 +136,7 @@ implementing the <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxmlserializationixmlserializableclasstopic.asp"> IXmlSerializable</a> interface. Of course you can also use just to -query for the XML string representation from an arbitrary navigator ;).</li> +query for the XML string representation from an arbitrary navigator ;). </li> <li> <span style="color: #ff3366">(v1.X only) </span><a target="_blank" href="http://www.tkachenko.com/blog/archives/000117.html">XmlNodeNavigator</a>: the <a target="_blank" @@ -132,7 +154,7 @@ allows to scope a navigator to the current node. This allows high-performance subtree XSLT transformations without re-parsing.</li> - <li><a href="Mvp.Xml.Common.XPath.XPathNavigatorIterator.html">XPathNavigatorIterator</a>: + <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XPath_XPathNavigatorIterator.html">XPathNavigatorIterator</a>: an <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemXmlXPathXPathNodeIteratorClassTopic.asp">XPathNodeIterator</a> that allows arbitrary addition of the <a @@ -150,20 +172,58 @@ the <a target="_blank" href="http://weblogs.asp.net/cazzu/archive/2004/05/31/144922.aspx"> XmlNodeFactory</a>.</li> - <li><span style="color: #ff3366">(since v2.0) </span>EmptyXPathNodeIterator: Empty XPathNodeIterator, - used to represent empty node sequence.</li> - <li><span style="color: #ff3366">(since v2.0) <span style="color: #000000">SingletonXPathNodeIterator: - XPathNodeIterator over a single node.</span></span></li> + <li><span style="color: #ff3366">(since v2.0) </span><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XPath_EmptyXPathNodeIterator.html"> + EmptyXPathNodeIterator</a>: Empty + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.XPathNodeIterator.aspx" + target="sdk">XPathNodeIterator</A></nobr> + , + used to represent empty node sequence. Can be used to return empty nodeset out + of an XSLT or XPath extension function. </li> + <li><span style="color: #ff3366">(since v2.0) <span style="color: #000000"><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_XPath_SingletonXPathNodeIterator.html"> + SingletonXPathNodeIterator</a>: <a href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.XPathNodeIterator.aspx" + target="sdk">XPathNodeIterator</a> over a single node. Can be used to return + a single node out of an XSLT or XPath extension function.</span></span></li> </ul> - <p> + <h2> <strong><span style="font-family: Courier New">Mvp.Xml.Common.Xsl</span></strong> - namespace:</p> + namespace:</h2> <ul> <li><span style="color: #ff3366"><span style="color: #000000"><span style="color: #ff3366"> - (since v2.0) </span>XslReader: allows to obtain XSLT output as XmlReader in .NET + (since v2.0) </span><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XslReader.html"> + XslReader</a>: allows to obtain XSLT output as XmlReader in .NET 2.0. XslReader can work in either fully buffering or concurrent mode, is very efficient and fast. Contributed by Sergey Dubinets from the <a href="http://blogs.msdn.com/xmlteam"> Microsoft XML Team</a>.</span></span></li> + <li><span style="color: #ff3366">(since v2.0)</span> <a href="T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + MvpXslTransform</a>: MvpXslTransform class extends capabilities of the + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.Xsl.XslCompiledTransform.aspx" + target="sdk">XslCompiledTransform</A></nobr> + class by adding support for transforming into + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlReader.aspx" + target="sdk">XmlReader</A></nobr> + , vast collection of EXSLT extention functions, multiple outputs and transforming + of + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.IXPathNavigable.aspx" + target="sdk">IXPathNavigable</A></nobr> + along with + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlResolver.aspx" + target="sdk">XmlResolver</A></nobr> + .</li> + <li><span style="color: #ff3366">(since v2.0) </span><a href="T_Mvp_Xml_Common_Xsl_IXmlTransform.html"> + IXmlTransform</a>, <a href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</a>, <a + href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</a>: New experimental generic + XML transform interface. Defines an API for transforming + <nobr><A + href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> + into + <nobr><A + href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> + .</li> </ul> <hr style="width: 100%; height: 2px;"> <p> The project is hosted at <a target="_blank" |
From: Oleg T. <he...@us...> - 2005-11-26 22:03:58
|
Update of /cvsroot/mvp-xml/WebSite In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2936 Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/index.html,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- index.html 2 Nov 2005 13:21:27 -0000 1.13 +++ index.html 26 Nov 2005 22:03:49 -0000 1.14 @@ -6,14 +6,15 @@ </head> <body> <h1><a class="mozTocH1" name="mozTocId838640"></a>Mvp.Xml Project</h1> -<p> This project is developed by <a target="_blank" +<p> Mvp.Xml project is developed by <a target="_blank" href="http://www.microsoft.com/communities/mvp/mvp.mspx"> Microsoft MVPs</a> in <a target="_blank" href="http://www.microsoft.com/communities/MVP/MVPList.mspx?Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22hasBio%22+Value%3d%220%22%2f%5e%7earg+Name%3d%22Product%22+Value%3d%22Windows%20Server%20System%20-%20XML%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e&Title=Windows%20Server%20System%20-%20XML"> XML technologies</a> and <a target="_blank" href="http://www.microsoft.com/communities/MVP/MVPList.mspx?Params=%7eCMTYDataSvcParams%5e%7earg+Name%3d%22hasBio%22+Value%3d%220%22%2f%5e%7earg+Name%3d%22Product%22+Value%3d%22Windows%20Server%20System%20-%20XML%20Web%20Services%22%2f%5e%7esParams%5e%7e%2fsParams%5e%7e%2fCMTYDataSvcParams%5e&Title=Windows%20Server%20System%20-%20XML%20Web%20Services"> XML Web Services</a> worldwide. It is aimed at supplementing .NET -framework functionality available through the <a target="_blank" +framework XML processing + functionality available through the <a target="_blank" href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemxml.asp"> System.Xml</a> namespace and related namespaces such as <a target="_blank" @@ -24,15 +25,20 @@ posts. All the project's classes contain extensive tests to ensure its quality, as well as the peer review among this highly focused group of XML lovers.</p> -<p><span style="font-weight: bold;">Contents</span>:<br> -</p> -<ol> - <li><a href="#mozTocId408130">Modules </a></li> - <li><a href="#mozTocId421746">News</a></li> - <li><a href="#mozTocId58451">Get Support</a></li> - <li><a href="#mozTocId610253">Downloads</a></li> - <li><a href="#mozTocId620586">License</a></li> -</ol> + <p> + Mvp.Xml project currently provides .NET implementations of <a href="http://www.exslt.org"> + EXSLT</a>, <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>, <a href="http://www.w3.org/TR/xinclude/"> + XInclude</a>, <a href="http://www.w3.org/TR/xptr-framework/">XPointer</a> + as well as a unique set of utility classes and tools making XML programming in + .NET platform easier, more productive and effective.</p> + <p> + Mvp.Xml project supplements .NET functionality, but as .NET platform evolves some + parts of the Mvp.Xml library become redundant. Beware that we will be dropping support + for anything that become supported natively in .NET.</p> + <p> + Mvp.Xml project supports both .NET 1.1 and .NET 2.0. While both codebases have much + in common, they are different codebases. Mvp.Xml for .NET 1.1 is mostly frozen, + while Mvp.Xml for .NET 2.0 is under active development.</p> <h2><a class="mozTocH2" name="mozTocId408130"></a>1. Modules<br> </h2> <p>The Mvp.Xml project consists of several modules listed below.<br> @@ -43,13 +49,63 @@ <li><a href="xinclude/index.html">XInclude.NET</a> module</li><li><a href="xpointer/index.html">XPointer.NET</a> module</li> </ul> <h2><a class="mozTocH2" name="mozTocId421746"></a>2. News</h2> -Mvp.Xml News: <a + <strong>Mvp.Xml library v1.2 released (November 27, 2005)</strong><br /> + <br /> + Mvp.Xml library v1.2 is the latest Mvp.Xml release for .NET 1.1. What's new in the + Mvp.Xml v1.2:<br /> + <ul> + <li>Support for fractional seconds in EXSLT Dates and Times functions</li> + <li>Bug fixes</li> + </ul> + <p> + <strong>Mvp.Xml library v2.0 released (November 27, 2005)<br /> + <br /> + </strong>Mvp.Xml library v2.0 is the first Mvp.Xml release for .NET 2.0. What's + new in the Mvp.Xml v2.0:</p> + <ul> + <li>Experimental new improved and simplified XSL transformation API introducing concepts + of + <nobr><A + href="T_Mvp_Xml_Common_Xsl_IXmlTransform.html">IXmlTransform</A></nobr> + interface, + <nobr><A + href="T_Mvp_Xml_Common_Xsl_XmlInput.html">XmlInput</A></nobr> + and + <nobr><A + href="T_Mvp_Xml_Common_Xsl_XmlOutput.html">XmlOutput</A></nobr> + </li> + <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_MvpXslTransform.html"> + MvpXslTransform</a> - extends capabilities of the + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.Xsl.XslCompiledTransform.aspx" + target="sdk">XslCompiledTransform</A></nobr> + class by adding support for transforming into + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlReader.aspx" + target="sdk">XmlReader</A></nobr> + , vast collection of EXSLT extention functions, multiple outputs and transforming + of + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XPath.IXPathNavigable.aspx" + target="sdk">IXPathNavigable</A></nobr> + along with + <nobr><A + href="http://msdn2.microsoft.com/en-us/library/System.Xml.XmlResolver.aspx" + target="sdk">XmlResolver</A></nobr> + </li> + <li><a href="http://mvp-xml.sourceforge.net/api/2.0/T_Mvp_Xml_Common_Xsl_XslReader.html"> + XslReader</a> - provides an efficient way to read results of an XSL transformation + as XmlReader</li> + <li>Performance improvements due to moving to generics and .NET 2.0 improved perf</li> + <li>Support for fractional seconds in EXSLT Dates and Times functions</li> + </ul> + Mvp.Xml News Feed: <a href="http://sourceforge.net/export/rss2_projnews.php?group_id=102352&rss_fulltext=1"><img alt="Mvp.Xml project news feed" src="http://images.sourceforge.net/images/xml.png" style="border: 0px solid ; width: 36px; height: 14px;"></a> (<a href="http://sourceforge.net/news/?group_id=102352">News archive</a>)<br> -Mvp.Xml Releases: <a +Mvp.Xml Releases: <a href="http://sourceforge.net/export/rss2_projfiles.php?group_id=102352"><img alt="Mvp.Xml project news feed" src="http://images.sourceforge.net/images/xml.png" @@ -63,13 +119,17 @@ classes:<br> <ol> <li>This online documentation.</li> - <li>Mailing list: <a + <li><a href="http://www.xmllab.net/Forum/tabid/70/Default.aspx">Mvp.Xml Forums</a> at + the <a href="http://www.xmllab.net/">XML Lab</a>.</li> + <li>Mailing list: <a href="https://lists.sourceforge.net/mailman/listinfo/mvp-xml-help">mvp-xml-help</a> (general discussion list for Mvp.Xml users), <a href="http://sourceforge.net/mailarchive/forum.php?forum=mvp-xml-help">(online archive)</a>.</li> - <li><a href="http://www.xmllab.net/Forum/tabid/70/Default.aspx">Mvp.Xml Forums</a> at - the <a href="http://www.xmllab.net/">XML Lab</a>.</li> + <li>Online API +documentation - for <a href="http://mvp-xml.sourceforge.net/api/index.html"> + Mvp.Xml v1.X</a> and <a href="http://mvp-xml.sourceforge.net/api/2.0/index.html">Mvp.Xml + v2.X</a>.</li> <li>Tracker: <a href="http://sourceforge.net/tracker/?group_id=102352&atid=633328">Bugs</a>.</li> <li>Tracker: <a @@ -77,16 +137,11 @@ Requests</a>.</li> <li>Browse <a href="http://cvs.sourceforge.net/viewcvs.py/mvp-xml">CVS repository online</a>.</li> - <li>Online <a href="http://mvp-xml.sourceforge.net/api/index.html">API -documentation</a>.<br> - </li> </ol> <h2><a class="mozTocH2" name="mozTocId610253"></a>4. Downloads</h2> Go to the <a href="http://sourceforge.net/project/showfiles.php?group_id=102352">Downloads</a> -page. You can download Mvp.Xml library release as a whole (all modules -in one -archive) or releases for separate modules.<br> +page. You can download Mvp.Xml library release for .NET 1.X or .NET 2.0.<br> <h2><a class="mozTocH2" name="mozTocId620586"></a>5. License</h2> The Mvp.Xml library is a subject to the <a href="license.html">BSD License</a> - <a href="http://www.opensource.org/licenses/index.php">OSI approved</a> |
From: Oleg T. <he...@us...> - 2005-11-26 22:03:56
|
Update of /cvsroot/mvp-xml/WebSite/exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2936/exslt Modified Files: index.html Log Message: Index: index.html =================================================================== RCS file: /cvsroot/mvp-xml/WebSite/exslt/index.html,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- index.html 2 Nov 2005 13:21:27 -0000 1.2 +++ index.html 26 Nov 2005 22:03:49 -0000 1.3 @@ -41,7 +41,8 @@ Version 2.0 is the first EXSLT.NET release for the .NET 2.0 Framework. What's new in this version:</p> <ul> - <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - XslCompiledTransform class</li> + <li>EXSLT.NET now works with new .NET 2.0 XSLT processor - <a href="http://www.google.com/url?sa=U&start=1&q=http://msdn2.microsoft.com/library/ms163414(en-us,vs.80).aspx&e=9797"> + XslCompiledTransform</a> class</li> <li>Performance improvements</li> </ul> <h2>2<a name="install">. Installation</a></h2> @@ -59,7 +60,7 @@ utility for testing EXSLT.NET in XPath-only environment, and <font face="Courier New">MethodRenamer</font> - auxiliary command line utility for EXSLT.NET assembly building.</p> -<p>All the projects can be build in Visual Studio .NET 2003. Note, that +<p>All the projects can be build in Visual Studio .NET. Note, that due to implementation details we are using custom script hooked to Visual Studio .NET post-build event. In this script, which you can find in <font face="Courier New">Exslt</font> project properties, we @@ -67,13 +68,6 @@ face="Courier New"> .Exslt.dll</font> assembly, rename methods (e.g. from <font face="Courier New">dateTime()</font> to <font face="Courier New">date-time()</font>) and assemble it back.</p> -<p>You can also build EXSLT.NET in command line using provided <font - face="Courier New"> Makefile</font> files. To build any of EXSLT.NET -projects, run command prompt (use Visual Studio Command -Prompt or make sure <font face="Courier New"> csc.exe</font>, <font - face="Courier New">ildasm.exe</font> and <font face="Courier New">ilasm.exe</font> -are in your PATH), change directory to a project directory and run -<font face="Courier New"> nmake</font>.</p> <h2>4<a name="usage">. Usage</a></h2> <p>Typically you are using EXSLT.NET module in your application via <code><font face="Courier New"> Mvp.Xml</font>.Exslt.ExsltTransform</code> |
From: Oleg T. <he...@us...> - 2005-11-25 22:10:05
|
Update of /cvsroot/mvp-xml/XPointer/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24242/v2/src Modified Files: XPointerReader.cs Log Message: Index: XPointerReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v2/src/XPointerReader.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- XPointerReader.cs 29 Oct 2005 11:44:32 -0000 1.5 +++ XPointerReader.cs 25 Nov 2005 22:09:53 -0000 1.6 @@ -15,13 +15,14 @@ namespace Mvp.Xml.XPointer { /// <summary> - /// <c>XPointerReader</c> implements XPointer Framework in + /// <c>XPointerReader</c> is an <see cref="XmlReader"/> that implements XPointer Framework in /// a fast, non-caching, forward-only way. <c>XPointerReader</c> /// supports XPointer Framework, element(), xmlns(), xpath1() and /// xpointer() (XPath subset only) XPointer schemes. /// </summary> - /// <remarks>See <a href="http://mvp-xml.sf.net/xpointer">XPointer.NET homepage</a> for more info.</remarks> - /// <author>Oleg Tkachenko, ol...@tk...</author> + /// <remarks><para>See <a href="http://mvp-xml.sf.net/xpointer">XPointer.NET homepage</a> for more info.</para> + /// <para>Author: Oleg Tkachenko, <a href="http://www.xmllab.net">http://www.xmllab.net</a>.</para> + /// </remarks> public class XPointerReader : XmlReader, IHasXPathNavigator { #region private members |
From: Oleg T. <he...@us...> - 2005-11-25 22:10:00
|
Update of /cvsroot/mvp-xml/XInclude/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24208/v2/src Modified Files: XIncludingReader.cs Log Message: Index: XIncludingReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XInclude/v2/src/XIncludingReader.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- XIncludingReader.cs 29 Oct 2005 11:51:35 -0000 1.2 +++ XIncludingReader.cs 25 Nov 2005 22:09:52 -0000 1.3 @@ -22,11 +22,12 @@ /// <summary> /// <c>XIncludingReader</c> class implements streamable subset of the /// XInclude 1.0 in a fast, non-caching, forward-only fashion. - /// To put it another way <c>XIncludingReader</c> is XInclude 1.0 aware - /// <c>XmlReader</c>. + /// To put it another way <c>XIncludingReader</c> is XML Base and XInclude 1.0 aware + /// <see cref="XmlReader"/>. /// </summary> - /// <remarks>See <a href="http://mvp-xml.sf.net/xinclude">XInclude.NET homepage</a> for more info.</remarks> - /// <author>Oleg Tkachenko, ol...@tk...</author> + /// <remarks><para>See <a href="http://mvp-xml.sf.net/xinclude">XInclude.NET homepage</a> for more info.</para> + /// <para>Author: Oleg Tkachenko, <a href="http://www.xmllab.net">http://www.xmllab.net</a>.</para> + /// </remarks> public class XIncludingReader : XmlReader { #region Private fields |
From: Oleg T. <he...@us...> - 2005-11-25 22:09:57
|
Update of /cvsroot/mvp-xml/EXSLT/v2/src/Exslt In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24167/v2/src/Exslt Modified Files: ExsltContext.cs ExsltTransform.cs Log Message: Index: ExsltContext.cs =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/ExsltContext.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ExsltContext.cs 30 Oct 2005 13:50:54 -0000 1.4 +++ ExsltContext.cs 25 Nov 2005 22:09:42 -0000 1.5 @@ -11,8 +11,8 @@ namespace Mvp.Xml.Exslt { /// <summary> - /// Custom XsltContext for resolving EXSLT functions in - /// XPath-only environment. + /// Custom <see cref="XsltContext"/> implementation providing support for EXSLT + /// functions in XPath-only environment. /// </summary> public class ExsltContext : XsltContext { Index: ExsltTransform.cs =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/ExsltTransform.cs,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ExsltTransform.cs 22 Nov 2005 12:10:51 -0000 1.5 +++ ExsltTransform.cs 25 Nov 2005 22:09:42 -0000 1.6 @@ -61,20 +61,20 @@ /// namespace http://www.w3.org/1999/XSL/Transform. Additional arguments can also be /// added to the stylesheet using the XsltArgumentList class. /// This class contains input parameters for the stylesheet and extension objects which can be called from the stylesheet. - /// This class also recognizes functions from the following namespaces - /// * http://exslt.org/common - /// * http://exslt.org/dates-and-times - /// * http://exslt.org/math - /// * http://exslt.org/random - /// * http://exslt.org/regular-expressions - /// * http://exslt.org/sets - /// * http://exslt.org/strings - /// * http://gotdotnet.com/exslt/dates-and-times - /// * http://gotdotnet.com/exslt/math - /// * http://gotdotnet.com/exslt/regular-expressions - /// * http://gotdotnet.com/exslt/sets - /// * http://gotdotnet.com/exslt/strings - /// * http://gotdotnet.com/exslt/dynamic + /// This class also recognizes functions from the following namespaces:<br/> + /// * http://exslt.org/common<br/> + /// * http://exslt.org/dates-and-times<br/> + /// * http://exslt.org/math<br/> + /// * http://exslt.org/random<br/> + /// * http://exslt.org/regular-expressions<br/> + /// * http://exslt.org/sets<br/> + /// * http://exslt.org/strings<br/> + /// * http://gotdotnet.com/exslt/dates-and-times<br/> + /// * http://gotdotnet.com/exslt/math<br/> + /// * http://gotdotnet.com/exslt/regular-expressions<br/> + /// * http://gotdotnet.com/exslt/sets<br/> + /// * http://gotdotnet.com/exslt/strings<br/> + /// * http://gotdotnet.com/exslt/dynamic<br/> /// </remarks> [Obsolete("This class has been deprecated. Please use Mvp.Xml.Common.Xsl.MvpXslTransform instead.")] public class ExsltTransform |
From: Oleg T. <he...@us...> - 2005-11-25 22:09:57
|
Update of /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/Xsl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24167/v2/src/Exslt/Xsl Modified Files: MvpXslTransform.cs Log Message: Index: MvpXslTransform.cs =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/Xsl/MvpXslTransform.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- MvpXslTransform.cs 22 Nov 2005 12:10:51 -0000 1.4 +++ MvpXslTransform.cs 25 Nov 2005 22:09:42 -0000 1.5 @@ -18,33 +18,36 @@ /// class by adding support for transforming into <see cref="XmlReader"/>, /// vast collection of EXSLT extention functions, multiple outputs and /// transforming of <see cref="IXPathNavigable"/> along with <see cref="XmlResolver"/>. - /// Also MvpXslTransform class provides new clean experimental XSL transformation API + /// Also MvpXslTransform class provides new improved XSL transformation API /// by introducing concepts of <see cref="IXmlTransform"/> interface, <see cref="XmlInput"/> /// and <see cref="XmlOutput"/>.</para> /// </summary> /// <remarks><para>MvpXslTransform class is thread-safe for Transorm() methods. I.e. /// once MvpXslTransform object is loaded, you can safely call its Transform() methods /// in multiple threads simultaneously.</para> - /// <para>MvpXslTransform supports EXSLT extension functions from the following namespaces: - /// * http://exslt.org/common - /// * http://exslt.org/dates-and-times - /// * http://exslt.org/math - /// * http://exslt.org/random - /// * http://exslt.org/regular-expressions - /// * http://exslt.org/sets - /// * http://exslt.org/strings - /// * http://gotdotnet.com/exslt/dates-and-times - /// * http://gotdotnet.com/exslt/math - /// * http://gotdotnet.com/exslt/regular-expressions - /// * http://gotdotnet.com/exslt/sets - /// * http://gotdotnet.com/exslt/strings + /// <para>MvpXslTransform supports EXSLT extension functions from the following namespaces:<br/> + /// * http://exslt.org/common<br/> + /// * http://exslt.org/dates-and-times<br/> + /// * http://exslt.org/math<br/> + /// * http://exslt.org/random<br/> + /// * http://exslt.org/regular-expressions<br/> + /// * http://exslt.org/sets<br/> + /// * http://exslt.org/strings<br/> + /// * http://gotdotnet.com/exslt/dates-and-times<br/> + /// * http://gotdotnet.com/exslt/math<br/> + /// * http://gotdotnet.com/exslt/regular-expressions<br/> + /// * http://gotdotnet.com/exslt/sets<br/> + /// * http://gotdotnet.com/exslt/strings<br/> /// * http://gotdotnet.com/exslt/dynamic</para> /// <para>Multioutput (<exsl:document> element) is turned off by default and can - /// be turned on using MultiOutput property. Note, that multioutput is not supported + /// be turned on using <see cref="MvpXslTransform.MultiOutput"/> property. Note, that multioutput is not supported /// when transfomation is done to <see cref="XmlWriter"/> or <see cref="XmlReader"/>.</para> /// <para>MvpXslTransform uses XSLT extension objects and reflection and so using /// it requires FullTrust security level.</para> + /// <para>Author: Sergey Dubinets, Microsoft XML Team.</para> + /// <para>Contributors: Oleg Tkachenko, <a href="http://www.xmllab.net">http://www.xmllab.net</a>.</para> /// </remarks> + public class MvpXslTransform : IXmlTransform { private XslCompiledTransform compiledTransform; private object sync = new object(); |
From: Oleg T. <he...@us...> - 2005-11-25 22:09:52
|
Update of /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/MultiOutput In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24167/v2/src/Exslt/MultiOutput Modified Files: MultiXmlTextWriter.cs Log Message: Index: MultiXmlTextWriter.cs =================================================================== RCS file: /cvsroot/mvp-xml/EXSLT/v2/src/Exslt/MultiOutput/MultiXmlTextWriter.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MultiXmlTextWriter.cs 16 Oct 2005 20:07:08 -0000 1.1 +++ MultiXmlTextWriter.cs 25 Nov 2005 22:09:42 -0000 1.2 @@ -34,7 +34,7 @@ } /// <summary> - /// <para><c>MultiXmlTextWriter</c> class extends standard <c>XmlTextWriter</c> class + /// <para><c>MultiXmlTextWriter</c> class extends standard <see cref="XmlTextWriter"/> class /// and represents an XML writer that provides a fast, /// non-cached, forward-only way of generating multiple output files containing /// either text data or XML data that conforms to the W3C Extensible Markup |
From: Oleg T. <he...@us...> - 2005-11-25 22:09:39
|
Update of /cvsroot/mvp-xml/Common/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24142/v2/src Modified Files: XmlBaseAwareXmlTextReader.cs Log Message: Index: XmlBaseAwareXmlTextReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v2/src/XmlBaseAwareXmlTextReader.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- XmlBaseAwareXmlTextReader.cs 29 Oct 2005 11:45:39 -0000 1.4 +++ XmlBaseAwareXmlTextReader.cs 25 Nov 2005 22:09:27 -0000 1.5 @@ -10,10 +10,10 @@ namespace Mvp.Xml.Common { /// <summary> - /// XmlTextReader supporting <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>. + /// Extended <see cref="XmlTextReader"/> supporting <a href="http://www.w3.org/TR/xmlbase/">XML Base</a>. /// </summary> /// <remarks> - /// <para>Author: Oleg Tkachenko, ol...@xm...</para> + /// <para>Author: Oleg Tkachenko, <a href="http://www.xmllab.net">http://www.xmllab.net</a>.</para> /// </remarks> public class XmlBaseAwareXmlTextReader : XmlTextReader { |