public ElementSchemaBuilder AddTextNodeChildElement(string elementName, params string[] attributeNames)
        {
            var textNodeSchemaBuilder = new ElementSchemaBuilder(this, elementName, typeof(TextNodeElement), attributeNames);

            _children.Add(elementName, textNodeSchemaBuilder);

            return(this);
        }
 internal ElementSchemaBuilder(
     ElementSchemaBuilder parent,
     string elementName,
     Type elementType,
     params string[] attributeNames)
     : this(elementName, elementType, attributeNames)
 {
     _parent = parent;
 }
        public ElementSchemaBuilder AddChildElement(
            string elementName,
            Type elementType,
            params string[] attributeNames)
        {
            // todo checks

            var child = new ElementSchemaBuilder(this, elementName, elementType, attributeNames);

            _children.Add(elementName, child);

            return(child);
        }