private void WriteNode(StructuredText node)
        {
            WriteIndent();
            _writer.Write(node.Name);
            _writer.WriteLine(" {");
            _indent += INDENT_UNIT;

            foreach (object ch in node.Children)
            {
                StructuredText.Entry e = ch as StructuredText.Entry;
                if (e != null)                //entry
                {
                    WriteIndent();
                    _writer.Write(e.name);
                    _writer.Write('=');
                    _writer.WriteLine(e.value);
                }
                else                   //child node
                {
                    WriteNode((StructuredText)ch);
                }
            }

            _indent -= INDENT_UNIT;
            WriteIndent();
            _writer.WriteLine("}");
        }
        private void WriteNode(StructuredText node)
        {
            _writer.WriteStartElement(node.Name);

            // first, output StructuredText.Entry as a XML attribute.
            List <StructuredText> childNodes = new List <StructuredText>();

            foreach (object ch in node.Children)
            {
                StructuredText.Entry e = ch as StructuredText.Entry;
                if (e != null)   //entry
                {
                    _writer.WriteAttributeString(e.name, e.value);
                }
                else   //child node
                {
                    childNodes.Add((StructuredText)ch);
                }
            }

            // second, output StructuredText as a XML tag.
            foreach (StructuredText ch in childNodes)
            {
                WriteNode(ch);
            }

            _writer.WriteEndElement();
        }
        private void WriteNode(StructuredText node)
        {
            _writer.WriteStartElement(node.Name);

            foreach (object ch in node.Children)
            {
                StructuredText.Entry e = ch as StructuredText.Entry;
                if (e != null) //entry
                {
                    _writer.WriteAttributeString(e.name, e.value);
                }
                else   //child node
                {
                    WriteNode((StructuredText)ch);
                }
            }

            _writer.WriteEndElement();
        }