public static Element ReadScoredProperty(XmlReader reader) { if (!reader.MoveToAttribute("name")) throw new ReadPrintSchemaDocumentException("ScoredProperty element must contains name attribute"); var name = reader.ValueAsXName(); var element = new PrintSchemaScoredProperty(new ScoredPropertyName(name)); foreach (var child in ReadChildren(reader)) { element.Add(child); } return element.GetResult(); }
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 ReadOption(XmlReader reader) { XName name = null; if (reader.MoveToAttribute("name")) name = reader.ValueAsXName(); XName constrained = null; if (reader.MoveToAttribute("constrained")) constrained = reader.ValueAsXName(); var element = new PrintSchemaOption(name, constrained); foreach (var child in ReadChildren(reader)) { element.Add(child); } return element.GetResult(); }