public void ReadXml(System.Xml.XmlReader reader) { if (reader.MoveToAttribute("Title")) mTitle = reader.Value; else throw new Exception(); if (reader.MoveToAttribute("Path")) mPath = reader.Value; else throw new Exception(); }
public override void ReadXml(System.Xml.XmlReader reader) { if (reader.MoveToAttribute("Description")) Description = reader.Value; base.ReadXml(reader); }
/// <summary> /// Generates a collection from its XML representation. /// </summary> /// <param name="reader">System.Xml.XmlReader</param> public void ReadXml(System.Xml.XmlReader reader) { this.Clear(); if (reader.ReadToDescendant("SerializableStringDictionary")) { if (reader.ReadToDescendant("DictionaryEntry")) { do { reader.MoveToAttribute("Key"); string key = reader.ReadContentAsString(); reader.MoveToAttribute("Value"); string value = reader.ReadContentAsString(); this.Add(key, value); } while (reader.ReadToNextSibling("DictionaryEntry")); } } }
public void ReadXml(System.Xml.XmlReader reader) { if (reader.MoveToAttribute("name")) Name = reader.Value; else throw new Exception(); reader.Read(); XmlSerializer x = new XmlSerializer(typeof(Rectangle)); Bounds = (Rectangle)x.Deserialize(reader); }
/// <summary> /// Reads the Node from the XML. /// </summary> /// <param name="reader">The instance of the XmlReader.</param> void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) { ReadBasicXmlInfo(reader); reader.MoveToAttribute("AssemblyFile"); AssemblyFile = reader.ReadContentAsString(); reader.MoveToAttribute("Version"); Version = reader.ReadContentAsString(); reader.ReadStartElement(); if (reader.IsEmptyElement == false) { XmlSerializer ser = new XmlSerializer(this.Cache.GetType()); this.Cache = ser.Deserialize(reader) as Cache; List<object> propertiesObj = this.Cache.Childs.FindAll(c => c is Property); List<Property> properties = new List<Property>(); foreach (Property p in propertiesObj) properties.Add(p); this.Childs.AddRange(properties); } }
public void Read(out string id, out Domain domain, out string attribName, out Type attribType, out object defaultVal, System.Xml.XmlReader reader) { id = null; domain = Domain.all; attribName = null; attribType = null; defaultVal = null; reader.MoveToAttribute("id"); id = reader["id"]; reader.MoveToAttribute("for"); domain = (Domain)Enum.Parse(typeof(Domain), reader["for"]); reader.MoveToAttribute("attr.name"); attribName = reader["attr.name"]; reader.MoveToAttribute("attr.type"); attribType = GraphMLConvert.ToType(reader["attr.type"]); reader.MoveToElement(); // if there is a default value element, read it and convet if (reader.ReadToDescendant("default")) { string defaultValStr = null; ReadDefault(out defaultValStr, reader); defaultVal = ConvertDefaultValStr(defaultValStr, attribType); if (!reader.IsStartElement() && reader.Name=="default") reader.Read(); // read the end tag element of default } else { // default value is system default defaultVal = GetDefault( attribType); } }
public void DoSearch(string[] parts, ArrayList result, System.Xml.XmlReader reader, bool securityTrimmingEnabled) { if (reader.ReadToFollowing("category", ns) && reader.MoveToAttribute("name") && reader.Value == "Root" && reader.MoveToElement()) { int i = 1; if (i < parts.Length) { ReadSubElements(reader, parts, i, result, securityTrimmingEnabled); } else { ReadSubItems(reader, result, securityTrimmingEnabled); } } }
private bool DeterminVisible(System.Xml.XmlReader reader) { bool result = true; if (reader.MoveToAttribute("visible")) { if (reader.HasValue) result = reader.ReadContentAsBoolean(); } return result; }
internal void UnpersistCore(System.Xml.XmlReader reader, out IPipe pipe) { // Assumes reader has started the read of element "Pipe" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToAttribute("type"); string contentTypeStr = reader["type"]; reader.MoveToAttribute("sourceId"); string srcElId = reader["sourceId"]; reader.MoveToAttribute("sourcePortId"); string srcPortId = reader["sourcePortId"]; reader.MoveToAttribute("destinationId"); string destElId = reader["destinationId"]; reader.MoveToAttribute("destinationPortId"); string destPortId = reader["destinationPortId"]; reader.MoveToElement(); if (reader.IsStartElement() && !reader.IsEmptyElement) { reader.Read(); } _ticketBuilder.PipeId = new Guid(idStr); _ticketBuilder.ContentType = (BlobType)Enum.Parse(typeof(BlobType), contentTypeStr); _ticketBuilder.SrcElementId = new Guid(srcElId); _ticketBuilder.SrcPortId = new Guid(srcPortId); _ticketBuilder.DestElementId = new Guid(destElId); _ticketBuilder.DestPortId = new Guid(destPortId); IPipeTicket ticket = TicketBuilder.Ticket; pipe = ReConstitute(ticket); }
internal void UnpersistLocation(System.Xml.XmlReader reader, out PointF location) { // Assumes reader has started the read of element "Location" reader.MoveToAttribute("x"); string xStr = reader["x"]; reader.MoveToAttribute("y"); string yStr = reader["y"]; reader.MoveToElement(); //if (reader.IsStartElement() && !reader.IsEmptyElement) //{ // reader.Read(); //} location = new PointF(float.Parse(xStr), float.Parse(yStr)); }
public void LoadFrom(System.Xml.XmlReader x) { if (x.ReadState == ReadState.Initial) x.Read(); if (x.MoveToAttribute("Target")) TargetType = (DCompileTarget)Enum.Parse(typeof(DCompileTarget), x.ReadContentAsString()); while(x.Read()) switch (x.LocalName) { case "CompilerCommand": Compiler = x.ReadString(); break; case "LinkerCommand": Linker = x.ReadString(); break; case "ObjectLinkPattern": ObjectFileLinkPattern = x.ReadString(); break; case "IncludePathPattern": IncludePathPattern = x.ReadString(); break; case "DebugArgs": var s = x.ReadSubtree(); DebugArguments.ReadFrom(s); s.Close(); break; case "ReleaseArgs": var s2 = x.ReadSubtree(); ReleaseArguments.ReadFrom(s2); s2.Close(); break; } }
public bool LoadFrom(DCompilerConfiguration cmpCfg,System.Xml.XmlReader x) { if (x.ReadState == ReadState.Initial) x.Read (); if (x.MoveToAttribute ("Target") && !Enum.TryParse(x.ReadContentAsString(), true, out TargetType)) return false; while (x.Read()) switch (x.LocalName) { // For backward compatibility keep on parsing this case "CompilerCommand": cmpCfg.SourceCompilerCommand = x.ReadString (); break; case "LinkerCommand": Linker = x.ReadString (); break; case "Patterns": // ditto var s = x.ReadSubtree (); cmpCfg.ArgumentPatterns.ReadFrom (s); s.Close (); break; case "DebugArgs": s = x.ReadSubtree (); DebugArguments.ReadFrom (cmpCfg, s); s.Close (); break; case "ReleaseArgs": s = x.ReadSubtree (); ReleaseArguments.ReadFrom (cmpCfg,s); s.Close (); break; } return true; }
internal void UnpersistOutboundPipe(System.Xml.XmlReader reader, out Guid outboundPipeId) { // Assumes reader has started the read of element "InboundPipe" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToElement(); if (reader.IsStartElement() && !reader.IsEmptyElement) { reader.Read(); } outboundPipeId = new Guid(idStr); }
internal void UnpersistFx( System.Xml.XmlReader reader) { // Assumes reader has started the read of element "Fx" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToElement(); if (reader.IsStartElement() && !reader.IsEmptyElement) { reader.Read(); } TicketBuilder.FxId = new Guid(idStr); }
internal void UnpersistCore(System.Xml.XmlReader reader, out IElement element) { element = null; // Assumes reader has started the read of element "Element" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToAttribute("typeId"); string typeIdStr = reader["typeId"]; reader.MoveToAttribute("typeName"); string typeName = reader["typeName"]; reader.MoveToElement(); TicketBuilder.ElementId = new Guid(idStr); TicketBuilder.TypeId = new Guid(typeIdStr); // ------------------------- int startDepth = reader.Depth; // in expected order if (reader.ReadToDescendant("Fx")) // Fx node must be there, it has an id to read in { UnpersistFx(reader); if (reader.ReadToNextSibling("InputPortMgr")) { UnpersistInPortMgr(reader); } if (reader.ReadToNextSibling("OutputPortMgr")) { UnpersistOutPortMgr(reader); } IElementTicket ticket = TicketBuilder.Ticket; element = ReConstitute(ticket); if (reader.ReadToNextSibling("Settings")) { UnpersistSettingsMgr(element, reader); } // Options are not currently being used or persisted //if (reader.ReadToNextSibling("Options")) //{ // UnpersistOptionsMgr(reader); //} if (reader.ReadToNextSibling("ParamMgr")) { UnpersistParamMgr(element, reader); } // read up to the end "Element" tag if (reader.Depth > startDepth) { reader.Read(); } } }
/// <summary> /// Reads bais Informations from the XML. /// </summary> /// <param name="reader">The instance of the XmlReader.</param> protected void ReadBasicXmlInfo(System.Xml.XmlReader reader) { reader.MoveToAttribute("Name"); this.Name = reader.ReadContentAsString(); reader.MoveToAttribute("Fullname"); this.Fullname = reader.ReadContentAsString(); reader.MoveToAttribute("UID"); this.UID = reader.ReadContentAsString(); }
public void ReadXml(System.Xml.XmlReader reader) { //读取工序号属性 reader.MoveToAttribute("Number"); this.Number = reader.ReadContentAsInt(); //读取加工面类型属性 reader.MoveToAttribute("SideType"); this.SideType = (SideType)Enum.Parse(typeof(SideType), reader.ReadContentAsString()); //读取加工类型属性 reader.MoveToAttribute("ProcessType"); this.ProcessType = (ProcessType)Enum.Parse(typeof(ProcessType), reader.ReadContentAsString()); //读取加工形状属性 reader.MoveToAttribute("ProcessShape"); this.ProcessShape = (ProcessShape)Enum.Parse(typeof(ProcessShape), reader.ReadContentAsString()); //读取是否为外侧工序标识属性 reader.MoveToAttribute("IsOutSide"); this.IsOutside = bool.Parse(reader.ReadContentAsString()); //读取矩形加工环绕方向 reader.MoveToAttribute("RecDirection"); this.RecDirection = (Direction)Enum.Parse(typeof(Direction), reader.ReadContentAsString()); //开始读取工序信息元素 reader.ReadStartElement(); //读取圆直径 this.Diameter = reader.ReadElementContentAsDouble("Diameter", ""); //读取矩形长 this.Width = reader.ReadElementContentAsDouble("Width", ""); //读取矩形宽 this.Height = reader.ReadElementContentAsDouble("Height", ""); //读取加工起始点元素 this.StartPoint.ReadXml(reader, "StartPoint"); //读取钻入点元素 this.IntoPoint.ReadXml(reader, "IntoPoint"); //结束读取工序信息元素 reader.ReadEndElement(); }
/// <summary> /// Reads the Tool from the XML. /// </summary> /// <param name="reader">The instance of the XmlReader.</param> void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) { ReadBasicXmlInfo(reader); reader.MoveToAttribute("AssemblyFile"); AssemblyFile = reader.ReadContentAsString(); reader.MoveToAttribute("Version"); Version = reader.ReadContentAsString(); reader.ReadStartElement(); if (reader.IsEmptyElement == false) { XmlSerializer ser = new XmlSerializer(this.Cache.GetType()); this.Cache = ser.Deserialize(reader) as Cache; List<object> tools = this.Cache.Childs.FindAll(c => c is Tool); List<object> propertiesObj = this.Cache.Childs.FindAll(c => c is ns.Base.Plugins.Properties.Property); List<Property> properties = new List<Property>(); foreach (Property p in propertiesObj) properties.Add(p); if (tools != null) this.Childs = new List<object>(tools); this.Childs.AddRange(properties); } while (!reader.IsStartElement()) { if (reader.Name == "Cache") { reader.ReadEndElement(); break; } reader.ReadEndElement(); } }
private CategoryDirectory ReadResult(System.Xml.XmlReader reader, bool securityTrimmingEnabled) { CategoryDirectory result = null; if (reader.NodeType == System.Xml.XmlNodeType.Element) { if (reader.LocalName == "category" && reader.NamespaceURI == ns) { if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader)) { result = new CategoryDirectory(); if (reader.MoveToAttribute("name")) result.Name = reader.Value; if (reader.MoveToAttribute("title")) result.Title = reader.Value; reader.MoveToElement(); } } else if (reader.LocalName == "item" && reader.NamespaceURI == ns) { if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader)) { result = new CategoryLink(); if (reader.MoveToAttribute("name")) result.Name = reader.Value; if (reader.MoveToAttribute("title")) result.Title = reader.Value; if (reader.MoveToAttribute("group")) ((CategoryLink)result).Group = reader.ReadContentAsInt(); if (reader.MoveToAttribute("href")) ((CategoryLink)result).Url = reader.Value; if (reader.MoveToAttribute("role")) ((CategoryLink)result).Role = reader.Value; if (reader.MoveToAttribute("feature")) ((CategoryLink)result).Feature = reader.Value; } } else if (reader.LocalName == "group" && reader.NamespaceURI == ns) { if (DeterminVisible(reader) && DeterminSecure(securityTrimmingEnabled, reader)) { result = new CategoryGroup(); if (reader.MoveToAttribute("name")) result.Name = reader.Value; if (reader.MoveToAttribute("title")) result.Title = reader.Value; reader.MoveToElement(); ArrayList list = new ArrayList(); ReadSubItems(reader, list, securityTrimmingEnabled); ((CategoryGroup)result).Categories = (CategoryDirectory[])list.ToArray(typeof(CategoryDirectory)); } else { var level = reader.Depth; while (reader.Read() && reader.Depth > level) { reader.Skip(); //跳过其任何子节点 } } } } reader.MoveToElement(); return result; }
internal void UnpersistOutPort(System.Xml.XmlReader reader, out Guid portId, out int portIndex) { // Assumes reader has started the read of element "OutputPort" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToAttribute("index"); string indexStr = reader["index"]; reader.MoveToElement(); portId = new Guid(idStr); portIndex = XmlConvert.ToInt32(indexStr); if (reader.ReadToDescendant("OutboundPipe")) { Guid pipeId; UnpersistOutboundPipe(reader, out pipeId); while (reader.ReadToNextSibling("OutboundPipe")) { UnpersistOutboundPipe(reader, out pipeId); } } if (reader.IsStartElement() && !reader.IsEmptyElement) { reader.Read(); } TicketBuilder.AddOutputPortId(portId, portIndex); }
private void CreateSourceTable(System.Xml.XmlReader reader) { string[] columnNames; ArrayList names = new ArrayList(); reader.MoveToAttribute("TableName"); string codeTableName = reader.Value.ToString(); DataTable fromXml = new DataTable(codeTableName); DataRow rowFromXml; reader.ReadToFollowing("Item"); do { if (reader.MoveToFirstAttribute()) { string columnName = reader.Name.Replace("__space__", " "); if (fromXml.Columns.Contains(columnName) == false) { fromXml.Columns.Add(columnName, System.Type.GetType("System.String")); } rowFromXml = fromXml.NewRow(); rowFromXml[columnName] = reader.Value; while (reader.MoveToNextAttribute()) { columnName = reader.Name.Replace("__space__", " "); if (fromXml.Columns.Contains(columnName) == false) { fromXml.Columns.Add(columnName, System.Type.GetType("System.String")); DataRow tempRow = fromXml.NewRow(); tempRow.ItemArray = rowFromXml.ItemArray; } rowFromXml[columnName] = reader.Value; } fromXml.Rows.Add(rowFromXml); } } while (reader.ReadToNextSibling("Item")); if (mediator.Project.Metadata.TableExists(codeTableName)) { DataTable existing = mediator.Project.Metadata.GetCodeTableData(codeTableName); if (TablesAreDifferent(existing, fromXml)) { foreach (DataColumn column in fromXml.Columns) { names.Add(column.ColumnName); } columnNames = (string[])names.ToArray(typeof(string)); DialogResult replaceWithTemplate = MsgBox.ShowQuestion("A code table with the following name already exists in the database: " + existing + ". Replace code table with the code table defined in the template?" ); if (replaceWithTemplate == DialogResult.Yes) { mediator.Project.Metadata.DeleteCodeTable(codeTableName); mediator.Project.Metadata.CreateCodeTable(codeTableName, columnNames); mediator.Project.Metadata.SaveCodeTableData(fromXml, codeTableName, columnNames); } else { string newCodeTableName = codeTableName; DataSets.TableSchema.TablesDataTable tables = mediator.Project.Metadata.GetCodeTableList(); int arbitraryMax = 2048; for (int nameExtension = 1; nameExtension < arbitraryMax; nameExtension++) { foreach (DataRow row in tables) { if (newCodeTableName.ToLower() == ((string)row[ColumnNames.TABLE_NAME]).ToLower()) { newCodeTableName = codeTableName + nameExtension.ToString(); break; } } if (newCodeTableName != codeTableName + nameExtension.ToString()) { break; } } _sourceTableRenames.Add(codeTableName, newCodeTableName); mediator.Project.Metadata.CreateCodeTable(newCodeTableName, columnNames); mediator.Project.Metadata.SaveCodeTableData(fromXml, newCodeTableName, columnNames); } } } else { foreach (DataColumn column in fromXml.Columns) { string columnName = column.ColumnName.Replace("__space__", " "); names.Add(columnName); } columnNames = (string[])names.ToArray(typeof(string)); mediator.Project.Metadata.CreateCodeTable(codeTableName, columnNames); mediator.Project.Metadata.SaveCodeTableData(fromXml, codeTableName, columnNames); } }
/// <summary> /// Generates a TimeChangeType object from it's XML representation /// </summary> /// <param name="reader">XmlReader posistioned at the start node /// of the TimeChangeType XML /// </param> public void ReadXml(System.Xml.XmlReader reader) { // Store the LocalName of the element we are currently at. // This should be either "Standard" or "Daylight". // // This also serves as our key to our position in the stream. // Once we reach an EndElement with this name, then we are done // with our portion of the XmlStream // string ruleSetName = reader.LocalName; // Value that indicates if the TimeChangePattern for us is a // RelativeYearlyRecurrence or not. If not, then it must // be an AbsoluteDate // bool isRelativeYearlyPattern = false; RelativeYearlyRecurrencePatternType relativeYearlyPattern = new RelativeYearlyRecurrencePatternType(); while (true) { // Check to see if we are done processing if ((reader.NodeType == XmlNodeType.EndElement) && (0 == String.Compare(reader.LocalName, ruleSetName))) { // We are done, consume this EndElement and stop processing reader.Read(); break; } if (reader.NodeType == XmlNodeType.EndElement) { // This means we are at the closing tag of // </RelativeYearlyRecurrence> // No data here to process. reader.Read(); continue; } // Consume TimeZoneName attribute // e.g. <Standard|Daylight TimeZoneName="value"> // if ((0 == String.Compare(reader.LocalName, "Standard")) || (0 == String.Compare(reader.LocalName, "Daylight"))) { if (reader.AttributeCount > 0) { reader.MoveToAttribute("TimeZoneName"); this.timeZoneNameField = reader.Value; } // We have consumed what we needed form this element reader.Read(); } // Consume Offset // e.g <Offset>PT0M</Offset> if (0 == String.Compare(reader.LocalName, "Offset")) { string value = reader.ReadElementContentAsString(); this.offsetField = value; } // Consume Time // e.g. <Time>02:00:00</Time> if (0 == String.Compare(reader.LocalName, "Time")) { this.timeField = reader.ReadElementContentAsDateTime(); } // Consume the TimeChangePattern element if it is // an AbsoluteDate // if (0 == String.Compare(reader.LocalName, "AbsoluteDate")) { isRelativeYearlyPattern = false; this.itemField = reader.ReadElementContentAsDateTime(); } // Consume the TimeChangePattern element if it is // an RelativeYearlyRecurrence // if (0 == String.Compare(reader.LocalName, "RelativeYearlyRecurrence")) { isRelativeYearlyPattern = true; reader.Read(); } // If the pattern is relative, then the next three checks // will get the DayOfWeek, DayOfWeekIndex, and Month values // accordingly. // if (0 == String.Compare(reader.LocalName, "DaysOfWeek")) { string value = reader.ReadElementContentAsString(); relativeYearlyPattern.DaysOfWeek = value; } if (0 == String.Compare(reader.LocalName, "DayOfWeekIndex")) { string value = reader.ReadElementContentAsString(); relativeYearlyPattern.DayOfWeekIndex = (DayOfWeekIndexType)Enum.Parse( typeof(DayOfWeekIndexType), value); } if (0 == String.Compare(reader.LocalName, "Month")) { string value = reader.ReadElementContentAsString(); relativeYearlyPattern.Month = (MonthNamesType)Enum.Parse( typeof(MonthNamesType), value); } } // Before we leave, set the .itemField to our // relativeYearlyPattern if necessary if (isRelativeYearlyPattern) this.itemField = relativeYearlyPattern; }
public override void ReadXml(System.Xml.XmlReader reader) { if (reader.MoveToAttribute("CanHide")) CanHide = bool.Parse(reader.Value); if (reader.MoveToAttribute("CanAutoHide")) CanAutoHide = bool.Parse(reader.Value); if (reader.MoveToAttribute("AutoHideWidth")) AutoHideWidth = double.Parse(reader.Value, CultureInfo.InvariantCulture); if (reader.MoveToAttribute("AutoHideHeight")) AutoHideHeight = double.Parse(reader.Value, CultureInfo.InvariantCulture); if (reader.MoveToAttribute("AutoHideMinWidth")) AutoHideMinWidth = double.Parse(reader.Value, CultureInfo.InvariantCulture); if (reader.MoveToAttribute("AutoHideMinHeight")) AutoHideMinHeight = double.Parse(reader.Value, CultureInfo.InvariantCulture); base.ReadXml(reader); }
public virtual void ReadXml(System.Xml.XmlReader reader) { reader.MoveToContent(); reader.MoveToAttribute("OrderId"); OrderId = reader.ReadContentAsInt(); reader.MoveToAttribute("ProductId"); ProductId = reader.ReadContentAsInt(); }
public void ReadXml(System.Xml.XmlReader reader) { //读取Name属性 reader.MoveToAttribute("Name"); this.Name = reader.ReadContentAsString(); //开始读取型号信息 reader.ReadStartElement(); //读取刀具直径 this.BladeDiameter = reader.ReadElementContentAsDouble("BladeDiameter", ""); //读取刀具长度 this.BladeLength = reader.ReadElementContentAsDouble("BladeLength", ""); //读取工位列表 reader.ReadStartElement("StationList"); while (reader.NodeType == XmlNodeType.Element) { StationList.Add(new Station()); StationList.Last().ReadXml(reader); } //结束读取信号信息 reader.ReadEndElement(); }
internal void Read(System.Xml.XmlReader reader) { this.Name = reader.LocalName; bool isNull; if (bool.TryParse(reader.GetAttribute("null"), out isNull)) IsNull = isNull; if (!IsNull) { if (reader.HasAttributes) { reader.MoveToAttribute(0); if (reader.LocalName == "type") TypeName = reader.Value; reader.MoveToElement(); } while (reader.Read()) { if (reader.HasValue && !string.IsNullOrEmpty(reader.Value.Trim())) { this.Text = reader.Value; break; } } switch (TypeName) { case "Edm.Binary": MaterializedValue = Convert.FromBase64String(Text); break; case "Edm.Boolean": MaterializedValue = Convert.ToBoolean(Text); break; case "Edm.Byte": MaterializedValue = Convert.ToByte(Text); break; case "Edm.DateTime": MaterializedValue = Convert.ToDateTime(Text); break; case "Edm.Decimal": MaterializedValue = Convert.ToDecimal(Text); break; case "Edm.Double": MaterializedValue = Convert.ToDouble(Text); break; case "Edm.Guid": MaterializedValue = new Guid(Text); break; case "Edm.Int16": MaterializedValue = Convert.ToInt16(Text); break; case "Edm.Int32": MaterializedValue = Convert.ToInt32(Text); break; case "Edm.Int64": MaterializedValue = Convert.ToInt64(Text); break; case "Edm.SByte": MaterializedValue = Convert.ToSByte(Text); break; case "Edm.Single": MaterializedValue = Convert.ToSingle(Text); break; case "Edm.Time": MaterializedValue = TimeSpan.Parse(Text); break; case "Edm.DateTimeOffset": MaterializedValue = DateTimeOffset.Parse(Text); break; case "Edm.String": default: MaterializedValue = Text; break; } } }
/// <summary>Initializes a new instance of OpmlOutline</summary> public OpmlOutline (System.Xml.XmlReader xmlTextReader): this() { if(!xmlTextReader.HasAttributes) return; // get attributes System.Reflection.PropertyInfo propertyInfo = null; for(int i =0;i<xmlTextReader.AttributeCount;i++) { xmlTextReader.MoveToAttribute(i); // try to find some common used alias names for attributes string attributeName = xmlTextReader.Name; if(attributeName.IndexOf("url")!=-1) attributeName = "xmlUrl"; if(attributeName.IndexOf("title")!=-1) attributeName = "text"; // find related property by name propertyInfo = GetType().GetProperty(attributeName, System.Reflection.BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if(propertyInfo!=null) { propertyInfo.SetValue(this, System.ComponentModel.TypeDescriptor.GetConverter(propertyInfo.PropertyType).ConvertFromString(xmlTextReader.ReadInnerXml().Trim()),null); } } }
/// <summary> /// Reads the Property from the XML. /// </summary> /// <param name="reader">The instance of the XmlReader.</param> void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) { ReadBasicXmlInfo(reader); if(reader.MoveToAttribute("IsOutput")) this.IsOutput = Convert.ToBoolean(reader.ReadContentAsString()); if (reader.MoveToAttribute("IsMonitored")) this.IsMonitored = Convert.ToBoolean(reader.ReadContentAsString()); if(reader.MoveToAttribute("ConnectedToUID")) this.ConnectedToUID = reader.ReadContentAsString(); if (reader.IsEmptyElement == false) { reader.ReadStartElement(); if (reader.Name == "anyType") { try { XmlSerializer ser = new XmlSerializer(typeof(object)); this.Value = ser.Deserialize(reader); } catch (Exception ex) { Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error); } } else if(reader.Name == "ArrayOfDouble") { try { XmlSerializer ser = new XmlSerializer(typeof(List<double>)); this.Value = ser.Deserialize(reader); } catch (Exception ex) { Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error); } } else if (reader.Name == "ArrayOfInteger") { try { XmlSerializer ser = new XmlSerializer(typeof(List<int>)); this.Value = ser.Deserialize(reader); } catch (Exception ex) { Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error); } } } if (reader.Name == "Cache" && reader.IsStartElement()) { reader.ReadStartElement(); try { XmlSerializer ser = new XmlSerializer(this.Cache.GetType()); this.Cache = ser.Deserialize(reader) as Cache; } catch (Exception ex) { Trace.WriteLine(ex.Message, ex.StackTrace, LogCategory.Error); } this.Childs = new List<object>(this.Cache.Childs); } if(reader.Name.Contains("ToleranceOf") && reader.IsStartElement()) { reader.ReadStartElement(); this.Tolerance = new Tolerance<object>(); string min = reader.ReadInnerXml(); string max = reader.ReadInnerXml(); this.Tolerance.Min = min; this.Tolerance.Max = max; } while (!reader.IsStartElement()) { if (reader.Name == "Cache") { reader.ReadEndElement(); break; } reader.ReadEndElement(); } }
private void ReadSubElements(System.Xml.XmlReader reader, string[] parts, int i, ArrayList result, bool securityTrimmingEnabled) { string nextName = parts[i]; int depth = reader.Depth + 1; while (reader.Read()) { if (reader.Depth == depth) { switch (reader.NodeType) { case System.Xml.XmlNodeType.Attribute: case System.Xml.XmlNodeType.CDATA: case System.Xml.XmlNodeType.Comment: case System.Xml.XmlNodeType.Whitespace: continue; case System.Xml.XmlNodeType.EndElement: break; case System.Xml.XmlNodeType.Element: break; default: throw new System.Xml.XmlException("读取到错误的节点"); } if (reader.NodeType == System.Xml.XmlNodeType.Element) { bool hit = false; if (reader.MoveToAttribute("name")) { hit = reader.Value == nextName; if (hit) hit = DeterminVisible(reader); reader.MoveToElement(); } if (hit) { i++; if (i < parts.Length) { ReadSubElements(reader, parts, i, result, securityTrimmingEnabled); } else { ReadSubItems(reader, result, securityTrimmingEnabled); } break; } else { //reader.Skip(); } } } else if (reader.Depth > depth) { reader.Skip(); } else { break; } } }
internal void UnpersistCore(IWorkSpace workSpace, System.Xml.XmlReader reader) { // Assumes reader has started the read of element "WorkSpace" reader.MoveToAttribute("id"); string idStr = reader["id"]; reader.MoveToAttribute("mode"); string modeStr = reader["mode"]; reader.MoveToElement(); workSpace.Id = new Guid(idStr); workSpace.ExecMode = (ExecutionModes)Enum.Parse(typeof(ExecutionModes), modeStr); // ------------------------- int startDepth = reader.Depth; // in expected order if (reader.ReadToDescendant("Settings")) { UnpersistSettingsMgr(workSpace.SettingsMgr, reader); if (reader.ReadToNextSibling("Options")) { UnpersistOptionsMgr(workSpace.OptionsMgr, reader); } if (reader.ReadToNextSibling("Variables")) { UnpersistVarMgr(workSpace.VarMgr, reader); } if (reader.ReadToNextSibling("Elements")) { UnpersistElements(workSpace.ElementsMgr, reader); } if (reader.ReadToNextSibling("Pipes")) { UnpersistPipes(workSpace.PipesMgr, reader); } if (reader.ReadToNextSibling("WorkSpaceProperties")) { UnpersistProperties(workSpace.WSProperties, reader); } // read up to the end "WorkSpace" tag if (reader.Depth > startDepth) { reader.Read(); } } }