public override void WriteStartProperty(string localName, string ns)
        {
            Require.NotNullOrEmptyString("localName", localName);
            if (currentParent == null)
                throw PropertyTreesFailure.WouldCreateMalformedDocumentRootRequired();

            this.property = new PropertyBuilder(ns, localName);
            CopyLineInfo(property.Property);
            PushParent(this.property.Property);
        }
        public override void WriteEndProperty()
        {
            if (property == null || currentParent == null)
                throw PropertyTreesFailure.WouldCreateMalformedDocument();

            this.property.End();
            this.property = null;
            PopParent();
        }