public ClassMap() { string name = this.GetType().Name; _attributeMaps = new MapList <T>(name); _elementMaps = new MapList <T>(name); }
internal static void ReadElements(XmlReader reader, MapList <T> elementMaps, Action <ValidationMessage> validationAction) { var counts = new NameCounter <XName>(); if (!reader.IsEmptyElement) { int depth = reader.Depth; while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement && reader.Depth == depth) { break; } else if (reader.NodeType == XmlNodeType.Element) { XName name = reader.GetXName(); var elementMap = elementMaps.Get(name); if (elementMap == null) { Helper.NotifyWarning(validationAction, reader, typeof(T), "Element '{0}' is not Mapped.", name); continue; } elementMap.ReadXml(reader, validationAction); counts.Increment(name); } } } foreach (IElementMap <T> elementMap in elementMaps) { if (elementMap.Required && counts.Get(elementMap.Name) == 0) { Helper.Notify(validationAction, reader, typeof(T), "Element '{0}' is required but was not found.", elementMap.Name); } } }
public ElementContainerMap(XName name, bool required, string classMapName) : base(name, required) { _elementMaps = new MapList <T>(classMapName + "." + name.LocalName); }
public AttributeGroupTypeMap() { _attributeMaps = new MapList <T>(this.GetType().Name); }