/// <summary> /// Create the infoset for each context <see cref="XmlElement"/> in the /// provided <see cref="XmlNodeList"/> and write it to the output stream. /// </summary> /// <param name="list">The context <see cref="XmlNodeList"/>.</param> private void DoInfoset(XmlNodeList list) { foreach (XmlElement context in list) { XmlDocument document = ProductInfoset.CreateInfoset(context); writer.Write(document); Console.WriteLine(); } }
/// <summary> /// Derives a <b>UPI</b> from the values in a trade description /// represented by the indicated DOM <see cref="XmlElement"/> based on the /// target product taxonomy classification. /// </summary> /// <param name="context">The root <see cref="XmlElement"/> of the trade.</param> /// <param name="productType">The target product taxonomy classification.</param> /// <returns>The derived <b>UPI</b> instance or <c>null</c>.</returns> public static UPI ForTrade(XmlElement context, Category productType) { XmlDocument infoset = ProductInfoset.CreateInfoset(context); if (infoset != null) { return(ForProductInfoset(infoset.DocumentElement, productType)); } return(null); }
/// <summary> /// Derives a <b>UPI</b> from the values in a trade description /// represented by the indicated DOM <see cref="XmlElement"/>. /// </summary> /// <param name="context">The root <see cref="XmlElement"/> of the trade.</param> /// <returns>The derived <b>UPI</b> instance or <c>null</c>.</returns> public static UPI ForTrade(XmlElement context) { XmlDocument infoset = ProductInfoset.CreateInfoset(context); if (infoset != null) { return(ForProductInfoset(infoset.DocumentElement, ISDATaxonomy.PRODUCT_TYPE.Classify(infoset))); } return(null); }
/// <summary> /// Attempts to classify the trades within the document using the ISDA /// taxonomy defined for regulatory reporting and generate an example /// UPI. /// </summary> /// <param name="list">A set of context elements to analyse.</param> private void DoIsdaClassify(XmlNodeList list) { foreach (XmlElement element in list) { XmlDocument infoset = ProductInfoset.CreateInfoset(element); XmlElement infosetRoot = infoset.DocumentElement; Category assetClass = ISDATaxonomy.AssetClassForInfoset(infosetRoot); Category productType = ISDATaxonomy.ProductTypeForInfoset(infosetRoot); UPI upi = UPI.ForProductInfoset(infosetRoot, productType); System.Console.Write(": Trade ("); System.Console.Write((assetClass != null) ? assetClass.ToString() : "UNKNOWN"); System.Console.Write(" / "); System.Console.Write((productType != null) ? productType.ToString() : "UNKNOWN"); System.Console.Write(" / "); System.Console.Write((upi != null) ? upi.ToString() : "UNKNOWN"); System.Console.WriteLine(")"); } }