public void Navigator() { XmlDataDocument doc = new XmlDataDocument(); doc.DataSet.ReadXmlSchema("Test/System.Xml/region.xsd"); doc.Load("Test/System.Xml/region.xml"); XPathNavigator Nav = doc.CreateNavigator(); Nav.MoveToRoot(); Nav.MoveToFirstChild(); Assert.AreEqual("Root", Nav.Name.ToString(), "test#01"); Assert.AreEqual(string.Empty, Nav.NamespaceURI.ToString(), "test#02"); Assert.AreEqual("False", Nav.IsEmptyElement.ToString(), "test#03"); Assert.AreEqual("Element", Nav.NodeType.ToString(), "test#04"); Assert.AreEqual(string.Empty, Nav.Prefix, "test#05"); Nav.MoveToFirstChild(); Nav.MoveToNext(); Assert.AreEqual("Region", Nav.Name.ToString(), "test#06"); Assert.AreEqual("2Western", Nav.Value.Substring(0, Nav.Value.IndexOf("\n") - 1), "test#07"); Nav.MoveToFirstChild(); Assert.AreEqual("2", Nav.Value, "test#08"); Nav.MoveToRoot(); Assert.AreEqual("Root", Nav.NodeType.ToString(), "test#09"); }
public static void Main() { // Create a DataSet and load it with customer data. DataSet dsNorthwind = new DataSet(); String sConnect; sConnect = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"; SqlConnection nwconnect = new SqlConnection(sConnect); String sCommand = "Select * from Customers where Region='WA'"; SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect); myDataAdapter.Fill(dsNorthwind, "Customers"); // Load the DataSet into an XmlDataDocument. XmlDataDocument doc = new XmlDataDocument(dsNorthwind); // Create the XslTransform object and load the stylesheet. XslTransform xsl = new XslTransform(); xsl.Load("customers.xsl"); // Create an XPathNavigator to use in the transform. XPathNavigator nav = doc.CreateNavigator(); // Create a FileStream object. FileStream fs = new FileStream("cust.html", FileMode.Create); // Transform the data. xsl.Transform(nav, null, fs, null); }
private string TransformXML(string sXML, string XSLPath) { XmlDataDocument oXML = new XmlDataDocument(); //XPathDocument oXSL = new XPathDocument(XSLPath); XslCompiledTransform oTransform = new XslCompiledTransform(); XsltArgumentList xslArg = new XsltArgumentList(); string sMessage; //oXML.Load(new XmlTextReader(sXML, XmlNodeType.Document, null)); oXML.Load(sXML); XPathNavigator nav = oXML.CreateNavigator(); oTransform.Load(XSLPath); try { System.IO.MemoryStream oText = new System.IO.MemoryStream(); XmlTextWriter xmlWrite = new XmlTextWriter(oText, System.Text.Encoding.UTF8); oTransform.Transform(nav, xmlWrite); xmlWrite.Flush(); oText.Flush(); oText.Position = 1; System.IO.StreamReader sr = new System.IO.StreamReader(oText); sMessage = sr.ReadToEnd(); oText.Close(); return(sMessage); } catch (Exception ex) { throw ex; } }
private static void LogErrorEventlog(XmlDataDocument _XmlDataDocument) { if (!EventLog.SourceExists("NetVerk.fo")) { EventLog.CreateEventSource("NetVerk.fo", "Application"); } EventLog myLog = new EventLog(); myLog.Source = "NetVerk.fo"; string _ErrorString = "Error:"; XPathNavigator navigator = _XmlDataDocument.CreateNavigator(); navigator.MoveToFirst(); navigator.MoveToFirstChild(); navigator.MoveToFirstChild(); navigator.MoveToFirstChild(); //Format : //Application name, Desription for (int i = 0; i < 2; i++) { _ErrorString += navigator.LocalName + " - "; navigator.MoveToFirstChild(); _ErrorString += navigator.Value + " "; navigator.MoveToParent(); navigator.MoveToNext(); } myLog.WriteEntry(_ErrorString); }
private static void LogErrorFile(XmlDataDocument _XmlDataDocument) { CheckDirectory(InnerXmlFileName); _innerXmlTextFileMutex.WaitOne(); FileInfo _LogFile = new FileInfo(InnerXmlFileName); StreamWriter _SW; if (!_LogFile.Exists) { _SW = _LogFile.CreateText(); } else { _SW = _LogFile.AppendText(); } _SW.WriteLine("<Log>"); _SW.WriteLine("\t<Category>"); _SW.WriteLine("\tError"); _SW.WriteLine("\t</Category>"); _SW.WriteLine("\t<DateTime>"); _SW.WriteLine("\t" + DateTime.Now.ToString()); _SW.WriteLine("\t</DateTime>"); _SW.WriteLine("\t<Message>"); XPathNavigator navigator = _XmlDataDocument.CreateNavigator(); navigator.MoveToFirst(); navigator.MoveToFirstChild(); navigator.MoveToFirstChild(); navigator.MoveToFirstChild(); //Format : //Application name //Desription //Details //LineNumber //SourceLine for (int i = 0; i < 5; i++) { _SW.WriteLine("\t\t<" + navigator.LocalName + ">"); navigator.MoveToFirstChild(); _SW.WriteLine("\t\t" + navigator.Value); navigator.MoveToParent(); _SW.WriteLine("\t\t</" + navigator.LocalName + ">"); navigator.MoveToNext(); } _SW.WriteLine("\t</Message>"); _SW.WriteLine("</Log>"); _SW.Flush(); _SW.Close(); _innerXmlTextFileMutex.ReleaseMutex(); }
/// <summary> /// Generates an XPath navigatable dataset based on sql /// </summary> /// <param name="sql">The SQL to execute</param> /// <param name="setName">Name of the returned set</param> /// <returns>A <setName></setName> element with the results, or an <error></error> element if an exception occured</returns> public static XPathNodeIterator GetDataSet(string sql, string setName) { try { DataSet ds = GetDataSetFromSql(sql, setName); var dataDoc = new XmlDataDocument(ds); return(dataDoc.CreateNavigator().Select(".")); } catch (Exception e) { // If there's an exception we'll output an error element instead var errorDoc = new XmlDocument(); errorDoc.LoadXml(String.Format("<error>{0}</error>", HttpUtility.HtmlEncode(e.ToString()))); return(errorDoc.CreateNavigator().Select(".")); } }
private static void LogErrorHtml(XmlDataDocument _XmlDataDocument) { _HtmlFileMutex.WaitOne(); XslTransform _XslTransform = new XslTransform(); _XslTransform.Load(AppDomain.CurrentDomain.BaseDirectory + "/Log/ReportTemplate.xslt"); XPathNavigator _Navigator = _XmlDataDocument.CreateNavigator(); string m_LogName = InnerXmlFileName.Replace(".txt", DateTime.Now.Ticks.ToString()) + ".html"; CheckDirectory(m_LogName); StreamWriter _SW = new StreamWriter(m_LogName); _XslTransform.Transform(_Navigator, null, _SW, null); _SW.Flush(); _SW.Close(); _HtmlFileMutex.ReleaseMutex(); }
protected void Page_Load(object sender, EventArgs e) { string connectionString = WebConfigurationManager.ConnectionStrings["Pubs"].ConnectionString; string SQL = "SELECT * FROM authors WHERE city='Oakland'"; // Create the ADO.NET objects. SqlConnection con = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(SQL, con); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet("AuthorsDataSet"); // Retrieve the data. con.Open(); adapter.Fill(ds, "AuthorsTable"); con.Close(); // Create the XmlDataDocument that wraps this DataSet. XmlDataDocument dataDoc = new XmlDataDocument(ds); // Display the XML data (with the help of an XSLT) in the XML web control. XmlControl.XPathNavigator = dataDoc.CreateNavigator(); XmlControl.TransformSource = "authors.xslt"; }
//[Import] public static IRepository<SummaryDomain, StratificationAgeRangeMapping> StratificationAgeRanges { get; set; } //[Import] public static IRepository<SummaryDomain, LookupListValue> LookupListValues { get; set; } private static DataTable GenerateSummaryQueryResultCombinations(string summaryRequestArgsXml, IDnsResponseContext context) { SummaryRequestType requestType = SummaryRequestType.All.FirstOrDefault(rt => rt.ID == context.Request.RequestType.ID); DataTable dt = new DataTable("Results"); if (!string.IsNullOrEmpty(summaryRequestArgsXml)) { DataColumn col; DataRow dr; string PeriodColumn = "Period"; string SettingColumn = "Setting"; string SexColumn = "Sex"; string AgeColumn = "AgeGroup"; string CodeColumn = string.Empty; string NameColumn = string.Empty; bool IsQualifiedForExpansion = false; bool IsDrugOrGenericName = false; Lists? CodeList = null; col = new DataColumn(PeriodColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(SexColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(AgeColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(SettingColumn, "string".GetType()); dt.Columns.Add(col); #region "Read Query.XML and populate rows" XmlDataDocument summaryRequestArgsDoc = new XmlDataDocument(); summaryRequestArgsDoc.LoadXml(summaryRequestArgsXml); XPathNavigator Nav = summaryRequestArgsDoc.CreateNavigator(); XPathExpression Expr; XPathNodeIterator INode = null; string nodeValue = string.Empty; string[] Years = new string[] { }; IEnumerable <StratificationAgeRangeMapping> SelectedStratificationAgeRanges = null; List <string> Genders = new List <string>(); List <string> Settings = new List <string>(); string[] Codes = new string[] { }; List <string> Names = new List <string>(); switch (requestType.StringId) { case SummaryRequestType.GenericName: case SummaryRequestType.Incident_GenericName: CodeList = Lists.GenericName; break; case SummaryRequestType.DrugClass: case SummaryRequestType.Incident_DrugClass: CodeList = Lists.DrugClass; break; //case SummaryRequestType.NDC: // CodeList = Lists.DrugCode; // break; case SummaryRequestType.ICD9Diagnosis: case SummaryRequestType.Incident_ICD9Diagnosis: CodeList = Lists.ICD9Diagnosis; break; case SummaryRequestType.ICD9Diagnosis_4_digit: CodeList = Lists.ICD9Diagnosis4Digits; break; case SummaryRequestType.ICD9Diagnosis_5_digit: CodeList = Lists.ICD9Diagnosis5Digits; break; case SummaryRequestType.ICD9Procedures: CodeList = Lists.ICD9Procedures; break; case SummaryRequestType.ICD9Procedures_4_digit: CodeList = Lists.ICD9Procedures4Digits; break; case SummaryRequestType.HCPCSProcedures: CodeList = Lists.HCPCSProcedures; break; } #region "Get Names for code column e.g. pxcode,dxcode,drugclass,etc..and name column e.g. pxname,dxname,etc.." //The Generation of Combination Rows and Subsequent Expansion Of results applicable only to Prevalence,Incidence Queries. switch (requestType.StringId) { case SummaryRequestType.ICD9Diagnosis: case SummaryRequestType.ICD9Diagnosis_4_digit: case SummaryRequestType.ICD9Diagnosis_5_digit: case SummaryRequestType.Incident_ICD9Diagnosis: CodeColumn = "DxCode"; NameColumn = "DxName"; IsQualifiedForExpansion = true; break; case SummaryRequestType.ICD9Procedures: case SummaryRequestType.ICD9Procedures_4_digit: case SummaryRequestType.HCPCSProcedures: CodeColumn = "PxCode"; NameColumn = "PxName"; IsQualifiedForExpansion = true; break; case SummaryRequestType.GenericName: case SummaryRequestType.Incident_GenericName: CodeColumn = string.Empty; NameColumn = "GenericName"; IsQualifiedForExpansion = true; IsDrugOrGenericName = true; break; case SummaryRequestType.DrugClass: case SummaryRequestType.Incident_DrugClass: CodeColumn = string.Empty; NameColumn = "DrugClass"; IsQualifiedForExpansion = true; IsDrugOrGenericName = true; break; } #endregion if (IsQualifiedForExpansion) { if (!string.IsNullOrEmpty(CodeColumn)) { col = new DataColumn(CodeColumn, "string".GetType()); dt.Columns.Add(col); } if (!string.IsNullOrEmpty(NameColumn)) { col = new DataColumn(NameColumn, "string".GetType()); dt.Columns.Add(col); } //Read Selected Periods e.g. 2016,2017, etc. Expr = Nav.Compile("SummaryRequestModel/Period"); INode = Nav.Select(Expr); if (INode.MoveNext()) { // The Period node contains a list of SINGLE-QUOTED years or quarters (for direct insertion into a SQL statement). // We need to remove the quotes, along with any whitespace, for our purposes here. nodeValue = INode.Current.Value.Replace("'", "").Replace(" ", ""); if (!string.IsNullOrEmpty(nodeValue)) { Years = nodeValue.Split(','); } } //Read Selected Sex stratifications Expr = Nav.Compile("SummaryRequestModel/SexStratification"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.Value.Trim(); if (!string.IsNullOrEmpty(nodeValue)) { switch (nodeValue) { case "1": //Female only Genders.Add("F"); break; case "2": //Male only Genders.Add("M"); break; case "3": //Male and Female Genders.Add("F"); Genders.Add("M"); break; case "4": //Male,Female Aggregated Genders.Add("All"); break; } } } //Read Selected Age stratifications Expr = Nav.Compile("SummaryRequestModel/AgeStratification"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.Value.Trim(); int ageStratificationCategoryId; if (Int32.TryParse(nodeValue, out ageStratificationCategoryId)) { throw new Lpp.Utilities.CodeToBeUpdatedException(); //SelectedStratificationAgeRanges = StratificationAgeRanges.All.Where(s => s.AgeStratificationCategoryId == ageStratificationCategoryId).ToList(); } } //Read Selected setting Expr = Nav.Compile("SummaryRequestModel/Setting"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.Value.Trim(); if (!string.IsNullOrEmpty(nodeValue)) { //The value 'NotSpecified' means no setting selected i.e. all settings considerred. if (nodeValue.Trim().ToLower() != "notspecified") { Settings.Add(nodeValue); } else { Settings.Add("All Settings"); } } } //Read Selected Codes and their names. if (CodeList != null) { Expr = Nav.Compile("SummaryRequestModel/Codes"); INode = Nav.Select(Expr); if (INode.MoveNext()) { // Remove any spaces in the comma-delimited list of codes. nodeValue = INode.Current.Value.Replace(" ", ""); if (!string.IsNullOrEmpty(nodeValue)) { Codes = nodeValue.Split(','); } // Look up the names from the codes. LookupListValue matchingNames; foreach (string code in Codes) { // TODO: Verify this works properly if there's no match. throw new Lpp.Utilities.CodeToBeUpdatedException(); //matchingNames = LookupListValues.All.FirstOrDefault(v => v.ListId == (int)CodeList && v.ItemCode == code); //if (matchingNames != null) //{ // Names.Add(matchingNames.ItemName); //} //else //{ // Names.Add(string.Empty); //} } } } //Create Combination Rows based on selected Period,AgeGroup,Sex,Setting and Codes. if (Years.Length > 0 && SelectedStratificationAgeRanges != null && SelectedStratificationAgeRanges.Count() > 0 && Genders.Count > 0 && Settings.Count > 0) { foreach (string year in Years) { foreach (string sex in Genders) { foreach (StratificationAgeRangeMapping ageRange in SelectedStratificationAgeRanges) { foreach (string setting in Settings) { //If Code exists for Non-drug/generic Prevalence/Incidence queries. if (Codes.Length > 0) { for (int ctr = 0; ctr < Codes.Length; ctr++) { dr = dt.NewRow(); dr[PeriodColumn] = year; dr[SexColumn] = sex; dr[AgeColumn] = ageRange.AgeClassification; dr[SettingColumn] = setting; dr[CodeColumn] = Codes[ctr]; if (Names.Count > ctr) { dr[NameColumn] = Names[ctr]; } dt.Rows.Add(dr); } } else { //Code does not exist for Non-drug/generic Prevalence/Incidence queries. for (int ctr = 0; ctr < Names.Count; ctr++) { dr = dt.NewRow(); dr[PeriodColumn] = year; dr[SexColumn] = sex; dr[AgeColumn] = ageRange.AgeClassification; dr[SettingColumn] = setting; if (Codes.Length > ctr) { dr[CodeColumn] = Codes[ctr]; } dr[NameColumn] = Names[ctr]; dt.Rows.Add(dr); } } } } } } } //For Drug or Generic Query No need of Settings Columns. if (IsDrugOrGenericName) { if (dt.Columns.Contains(SettingColumn)) { dt.Columns.Remove(SettingColumn); } } } #endregion } return(dt); }
//Code under this region is a duplication of what is in DataMartLib.Util class. //Any change here or there must be synchronised. //private static DataTable GenerateSummaryQueryResultCombinations(Query q) //{ // return GenerateSummaryQueryResultCombinations(q.QueryXml); //} private static DataTable GenerateSummaryQueryResultCombinations(string QueryXml) { DataTable dt = new DataTable("Results"); try { if (!string.IsNullOrEmpty(QueryXml)) { DataColumn col; DataRow dr; string PeriodColumn = "Period"; string SettingColumn = "Setting"; string SexColumn = "Sex"; string AgeColumn = "AgeGroup"; string CodeColumn = string.Empty; string NameColumn = string.Empty; bool IsQualifiedForExpansion = false; col = new DataColumn(PeriodColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(SexColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(AgeColumn, "string".GetType()); dt.Columns.Add(col); col = new DataColumn(SettingColumn, "string".GetType()); dt.Columns.Add(col); #region "Read Query.XML and populate rows" XmlDataDocument ObjectDoc = new XmlDataDocument(); ObjectDoc.LoadXml(QueryXml); XPathNavigator Nav = ObjectDoc.CreateNavigator(); XPathExpression Expr; XPathNodeIterator INode = null; string nodeValue = string.Empty; string[] Years = new string[] { }; string[] Ages = new string[] { }; List <string> Genders = new List <string>(); List <string> Settings = new List <string>(); List <string> Codes = new List <string>(); List <string> Names = new List <string>(); #region "Get Names for code column e.g. pxcode,dxcode,drugclass,etc..and name column e.g. pxname,dxname,etc.." //The Generation of Combination Rows and Subsequent Expansion Of results applicable only to Prevalence,Incidence Queries. Expr = Nav.Compile("Query/QueryType"); INode = Nav.Select(Expr); if (INode.MoveNext()) { if (!string.IsNullOrEmpty(INode.Current.GetAttribute("Id", string.Empty))) { string querytypeid = INode.Current.GetAttribute("Id", string.Empty); switch (Int32.Parse(querytypeid)) { case ICD9Diagnosis: case ICD9Diagnosis_4_digit: case ICD9Diagnosis_5_digit: case Incident_ICD9Diagnosis: case Incident_ICD9Diagnosis_4_digit: case Incident_ICD9Diagnosis_5_digit: CodeColumn = "DxCode"; NameColumn = "DxName"; IsQualifiedForExpansion = true; break; case ICD9Procedures: case ICD9Procedures_4_digit: case HCPCSProcedures: case Incident_ICD9Procedures: case Incident_ICD9Procedures_4_digit: case Incident_HCPCSProcedures: CodeColumn = "PxCode"; NameColumn = "PxName"; IsQualifiedForExpansion = true; break; case GenericName: case Incident_GenericName: CodeColumn = string.Empty; NameColumn = "GenericName"; IsQualifiedForExpansion = true; break; case DrugClass: case Incident_DrugClass: CodeColumn = string.Empty; NameColumn = "DrugClass"; IsQualifiedForExpansion = true; break; } } } #endregion if (IsQualifiedForExpansion) { if (!string.IsNullOrEmpty(CodeColumn)) { col = new DataColumn(CodeColumn, "string".GetType()); dt.Columns.Add(col); } if (!string.IsNullOrEmpty(NameColumn)) { col = new DataColumn(NameColumn, "string".GetType()); dt.Columns.Add(col); } //Read Selected Periods e.g. 2016,2017, etc. Expr = Nav.Compile("Query/PeriodList"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.Value; if (!string.IsNullOrEmpty(nodeValue)) { Years = nodeValue.Split(','); } } //Read Selected Sex stratifications Expr = Nav.Compile("Query/SexStratification"); INode = Nav.Select(Expr); if (INode.MoveNext()) { string sexStratId = INode.Current.GetAttribute("Id", string.Empty); if (!string.IsNullOrEmpty(sexStratId)) { switch (sexStratId) { case "1": //Female only Genders.Add("F"); break; case "2": //Male only Genders.Add("M"); break; case "3": //Male and Female Genders.Add("F"); Genders.Add("M"); break; case "4": //Male,Female Aggregated Genders.Add("All"); break; } } } //Read Selected Age stratifications Expr = Nav.Compile("Query/AgeStratification"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.Value; if (!string.IsNullOrEmpty(nodeValue)) { int startIndex = nodeValue.IndexOf("("); int endIndex = nodeValue.LastIndexOf(")"); if (startIndex > 0 && endIndex > 0 && startIndex < endIndex) { nodeValue = nodeValue.Substring(startIndex + 1, (endIndex - startIndex) - 1); Ages = nodeValue.Split(','); } } } //Read Selected setting Expr = Nav.Compile("Query/Setting"); INode = Nav.Select(Expr); if (INode.MoveNext()) { nodeValue = INode.Current.GetAttribute("Id", string.Empty); if (!string.IsNullOrEmpty(nodeValue)) { Settings.Add(nodeValue); } } //Read Selected Codes and their names. Expr = Nav.Compile("Query/Codes/Code"); INode = Nav.Select(Expr); while (INode.MoveNext()) { if (!string.IsNullOrEmpty(INode.Current.GetAttribute("Id", string.Empty))) { Codes.Add(INode.Current.GetAttribute("Id", string.Empty)); Names.Add(INode.Current.Value); } } //Create Combination Rows based on selected Period,AgeGroup,Sex,Setting and Codes. if (Years.Length > 0 && Ages.Length > 0 && Genders.Count > 0 && Settings.Count > 0) { foreach (string year in Years) { foreach (string sex in Genders) { foreach (string age in Ages) { foreach (string setting in Settings) { for (int ctr = 0; ctr < Codes.Count; ctr++) { dr = dt.NewRow(); dr[PeriodColumn] = year; dr[SexColumn] = sex; dr[AgeColumn] = age; dr[SettingColumn] = setting; dr[CodeColumn] = Codes[ctr]; dr[NameColumn] = Names[ctr]; dt.Rows.Add(dr); } } } } } } } #endregion } } catch (Exception ex) { throw ex; } return(dt); }