Beispiel #1
0
        internal void SetElement(XName name, object value, bool addToExisting, XmlSchemaDatatype datatype, Type elementBaseType)
        {
            XElement parentElement = this.GetUntyped();

            CheckXsiNil(parentElement);
            if (value == null)
            {
                //Delete existing node
                Debug.Assert(addToExisting == false);
                DeleteChild(name);
            }
            else
            {
                IXMetaData schemaMetaData = this as IXMetaData; //Get parent's content model
                Debug.Assert(schemaMetaData != null);
                ContentModelEntity cm = schemaMetaData.GetContentModel();

                if (elementBaseType == null)
                {
                    if (!schemaMetaData.LocalElementsDictionary.TryGetValue(name, out elementBaseType))
                    {
                        elementBaseType = value?.GetType();
                    }
                }


                cm.AddElementToParent(name, value, parentElement, addToExisting, datatype, elementBaseType);
            }
        }
        internal void SetElement(XName name, object value, bool addToExisting, XmlSchemaDatatype datatype)
        {
            XElement parentElement = this.GetUntyped();

            this.CheckXsiNil(parentElement);
            if (value != null)
            {
                IXMetaData schemaMetaData = this;
                Debug.Assert(schemaMetaData != null);
                schemaMetaData.GetContentModel().AddElementToParent(name, value, parentElement, addToExisting, datatype);
            }
            else
            {
                Debug.Assert(!addToExisting);
                this.DeleteChild(name);
            }
        }
Beispiel #3
0
        internal void SetElement(XName name, object value, bool addToExisting, XmlSchemaDatatype datatype)
        {
            XElement parentElement = this.GetUntyped();

            CheckXsiNil(parentElement);
            if (value == null)
            {
                //Delete existing node
                Debug.Assert(addToExisting == false);
                DeleteChild(name);
            }
            else
            {
                IXMetaData schemaMetaData = this as IXMetaData; //Get parent's content model
                Debug.Assert(schemaMetaData != null);
                ContentModelEntity cm = schemaMetaData.GetContentModel();
                cm.AddElementToParent(name, value, parentElement, addToExisting, datatype);
            }
        }