public Instance() { Namespaces = new XmlNamespaceManager(new NameTable()); AddDefaultNamespaces(); SchemaReference = new SchemaReference(); FilingIndicators = new FilingIndicatorCollection(); Units = new UnitCollection(this); Contexts = new ContextCollection(this); Facts = new FactCollection(this); Comments = new Collection <string>(); }
public UnitCollection UsedUnits() { var result = new UnitCollection(); foreach (var unit in this) { var fact = Instance.Facts.FirstOrDefault(f => f.Unit == unit); if (fact != null) { result.Add(unit); } } return(result); }
public static void ParseUnits(XDocument document, Instance instance) { // parse units and add to instance // ix:header/ix:resources/xbrli:unit var unitNs = document.Root.GetNamespaceOfPrefix("xbrli"); var unitElements = document.Root.Descendants(unitNs + "unit"); var unitSerializer = new XmlSerializer(typeof(Unit)); var units = new UnitCollection(instance); foreach (var unitElement in unitElements) { var unitReader = unitElement.CreateReader(); var unit = (Unit)unitSerializer.Deserialize(unitReader); units.Add(unit); } instance.Units = units; }