Example #1
0
        public void RepeatExtensionWithBodyOption()
        {
            var x   = new BxlParser().Parse(@"
e 
    x xi-repeat=data xi-body xi-expand
        x-code ${mycode}
        x-name ${myname}   
", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle);
            var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } };

            x = x.Interpolate(ctx);
            Console.WriteLine(x.ToString().Replace("\"", "'"));
            Assert.AreEqual(@"<e>
  <x-code code='2' id='2' />
  <x-name code='Two' id='Two' />
  <x-code code='3' id='3' />
  <x-name code='Three' id='Three' />
</e>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full));
        }
Example #2
0
        public void RepeatLocalSetExtension()
        {
            var x   = new BxlParser().Parse(@"
xi-dataset x
    x x=${mycode} y=${myname} xi-repeat=data    xi-expand
e u=33
    i ${x}${x} ${y}${y} z=${u} xi-repeat=$x  xi-expand
", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle);
            var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } };

            x = x.Interpolate(ctx);
            Console.WriteLine(x.ToString().Replace("\"", "'"));
            Assert.AreEqual(@"<root>
  <xi-dataset code='x' id='x'>
    <x x='2' y='Two' />
    <x x='3' y='Three' />
  </xi-dataset>
  <e u='33'>
    <i code='22' id='22' name='TwoTwo' z='33' />
    <i code='33' id='33' name='ThreeThree' z='33' />
  </e>
</root>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full));
        }
        public void RepeatExtensionWithBodyOption()
        {
            var x = new BxlParser().Parse(@"
e 
    x xi-repeat=data xi-body xi-expand
        x-code ${mycode}
        x-name ${myname}   
", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle);
            var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } };
            x = x.Interpolate(ctx);
            Console.WriteLine(x.ToString().Replace("\"", "'"));
            Assert.AreEqual(@"<e>
  <x-code code='2' id='2' />
  <x-name code='Two' id='Two' />
  <x-code code='3' id='3' />
  <x-name code='Three' id='Three' />
</e>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full));
        }
        public void RepeatLocalSetExtension()
        {
            var x = new BxlParser().Parse(@"
xi-dataset x
    x x=${mycode} y=${myname} xi-repeat=data    xi-expand
e u=33
    i ${x}${x} ${y}${y} z=${u} xi-repeat=$x  xi-expand
", options: BxlParserOptions.NoLexData | BxlParserOptions.ExtractSingle);
            var ctx = new { data = new object[] { new { mycode = 2, myname = "Two" }, new { mycode = 3, myname = "Three" } } };
            x = x.Interpolate(ctx);
            Console.WriteLine(x.ToString().Replace("\"", "'"));
            Assert.AreEqual(@"<root>
  <xi-dataset code='x' id='x'>
    <x x='2' y='Two' />
    <x x='3' y='Three' />
  </xi-dataset>
  <e u='33'>
    <i code='22' id='22' name='TwoTwo' z='33' />
    <i code='33' id='33' name='ThreeThree' z='33' />
  </e>
</root>".Simplify(SimplifyOptions.Full), x.ToString().Simplify(SimplifyOptions.Full));
        }