public void TestFullyDefinedOperators()
        {
            XmlElement decimalDef =
                Document(
                    "<decimal name='composed'><mantissa><delta dictionary='template' key='variable' value='100'/></mantissa><exponent><copy dictionary='template' key='static' value='-2'/></exponent></decimal>");

            Assert.IsTrue(_parser.CanParse(decimalDef, _context));
            var decimalt = (ComposedScalar)_parser.Parse(decimalDef, _context);

            AssertComposedScalarField(decimalt, FastType.Decimal, "composed", Operator.Copy,
                                      new IntegerValue(-2), Operator.Delta, new IntegerValue(100));

            Scalar exponent = decimalt.Fields[0];
            Scalar mantissa = decimalt.Fields[1];

            Assert.AreEqual("template", exponent.Dictionary);
            Assert.AreEqual(new QName("static"), exponent.Key);

            Assert.AreEqual("template", exponent.Dictionary);
            Assert.AreEqual(new QName("variable"), mantissa.Key);
        }
예제 #2
0
        public IFieldParser GetFieldParser(XmlElement element)
        {
            List <IFieldParser> parsers = FieldParsers;

            for (int i = parsers.Count - 1; i >= 0; i--)
            {
                IFieldParser fieldParser = parsers[i];
                if (fieldParser.CanParse(element, this))
                {
                    return(fieldParser);
                }
            }
            return(null);
        }