private static Element ReadValue(XmlReader reader) { XName type = null; // Read value type if (reader.MoveToFirstAttribute()) { do { var attrName = reader.XName(); if (attrName == Xsi.Type) { type = reader.ValueAsXName(); } } while (reader.MoveToNextAttribute()); reader.MoveToElement(); } if (reader.IsEmptyElement) { return Value.Empty; } var value = Value.Empty; while (reader.Read()) { if (reader.NodeType == XmlNodeType.Text) { if (type == Xsd.Integer) { value = reader.Value.AsInt32(); } else if (type == Xsd.Decimal) { value = reader.Value.AsFloat(); } else if (type == Xsd.QName) { value = reader.ValueAsXName(); } else { value = reader.Value; } } else if (reader.NodeType == XmlNodeType.Element) { reader.Skip(); } else if (reader.NodeType == XmlNodeType.EndElement) { break; } } return value; }
public static Element ReadElement(XmlReader reader) { XName tagName = reader.XName(); if (tagName == Psf.Feature) return ReadFeature(reader); else if (tagName == Psf.Option) return ReadOption(reader); else if (tagName == Psf.ParameterDef) return ReadParameterDef(reader); else if (tagName == Psf.ParameterInit) return ReadParameterInit(reader); else if (tagName == Psf.ParameterRef) return ReadParameterRef(reader); else if (tagName == Psf.Property) return ReadProperty(reader); else if (tagName == Psf.ScoredProperty) return ReadScoredProperty(reader); else if (tagName == Psf.Value) return ReadValue(reader); else reader.Skip(); return null; }
public static Ticket ReadTicket(XmlReader reader) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { break; } } var tagName = reader.XName(); if (tagName != Psf.PrintTicket) return null; var pt = new PrintSchemaTicket(); pt.Add(ReadNamespaceDeclarations(reader)); foreach (var child in ReadChildren(reader)) { pt.Add(child); } return pt.GetResult(); }
public static Capabilities ReadCapabilities(XmlReader reader) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { break; } } var tagName = reader.XName(); if (tagName != Psf.PrintCapabilities) return null; var pc = new PrintSchemaCapabilities(); pc.Add(ReadNamespaceDeclarations(reader)); foreach (var child in ReadChildren(reader)) { pc.Add(child); } return pc.GetResult(); }