Esempio n. 1
0
        /// <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();
            }
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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(")");
            }
        }