CreateDefaultAttribute() protected method

protected CreateDefaultAttribute ( string prefix, string localName, string namespaceURI ) : XmlAttribute
prefix string
localName string
namespaceURI string
return XmlAttribute
Example #1
0
        private XmlAttribute LoadDefaultAttribute()
        {
            Debug.Assert(_reader.IsDefault);

            XmlReader      r          = _reader;
            XmlAttribute   attr       = _doc.CreateDefaultAttribute(r.Prefix, r.LocalName, r.NamespaceURI);
            IXmlSchemaInfo schemaInfo = r.SchemaInfo;

            if (schemaInfo != null)
            {
                attr.XmlName = _doc.AddAttrXmlName(attr.Prefix, attr.LocalName, attr.NamespaceURI, schemaInfo);
            }

            LoadAttributeValue(attr, false);

            XmlUnspecifiedAttribute defAttr = attr as XmlUnspecifiedAttribute;

            // If user overrides CreateDefaultAttribute, then attr will NOT be a XmlUnspecifiedAttribute instance.
            if (defAttr != null)
            {
                defAttr.SetSpecified(false);
            }

            return(attr);
        }
Example #2
0
        public override XmlNode CloneNode(bool deep)
        {
            XmlDocument             ownerDocument = this.OwnerDocument;
            XmlUnspecifiedAttribute attribute     = (XmlUnspecifiedAttribute)ownerDocument.CreateDefaultAttribute(this.Prefix, this.LocalName, this.NamespaceURI);

            attribute.CopyChildren(ownerDocument, this, true);
            attribute.fSpecified = true;
            return(attribute);
        }
Example #3
0
        public override XmlNode CloneNode(bool deep)
        {
            //CloneNode is deep for attributes irrespective of parameter
            XmlDocument             doc  = OwnerDocument;
            XmlUnspecifiedAttribute attr = (XmlUnspecifiedAttribute)doc.CreateDefaultAttribute(Prefix, LocalName, NamespaceURI);

            attr.CopyChildren(doc, this, true);
            attr.fSpecified = true; //When clone, should return the specifed attribute as default
            return(attr);
        }
Example #4
0
        private void ValidateAttributes(XmlElement elementNode)
        {
            XmlAttributeCollection attributes = elementNode.Attributes;
            XmlAttribute           attr       = null;

            for (int i = 0; i < attributes.Count; i++)
            {
                attr         = attributes[i];
                _currentNode = attr; //For nodeValueGetter to pick up the right attribute value
                if (Ref.Equal(attr.NamespaceURI, _nsXmlNs))
                {                    //Do not validate namespace decls
                    continue;
                }
                _validator.ValidateAttribute(attr.LocalName, attr.NamespaceURI, _nodeValueGetter, _attributeSchemaInfo);
                if (_psviAugmentation)
                {
                    attr.XmlName = _document.AddAttrXmlName(attr.Prefix, attr.LocalName, attr.NamespaceURI, _attributeSchemaInfo);
                }
            }

            if (_psviAugmentation)
            {
                //Add default attributes to the attributes collection
                if (_defaultAttributes == null)
                {
                    _defaultAttributes = new ArrayList();
                }
                else
                {
                    _defaultAttributes.Clear();
                }
                _validator.GetUnspecifiedDefaultAttributes(_defaultAttributes);
                XmlSchemaAttribute schemaAttribute = null;
                XmlQualifiedName   attrQName;
                attr = null;
                for (int i = 0; i < _defaultAttributes.Count; i++)
                {
                    schemaAttribute = _defaultAttributes[i] as XmlSchemaAttribute;
                    attrQName       = schemaAttribute.QualifiedName;
                    Debug.Assert(schemaAttribute != null);
                    attr = _document.CreateDefaultAttribute(GetDefaultPrefix(attrQName.Namespace), attrQName.Name, attrQName.Namespace);
                    SetDefaultAttributeSchemaInfo(schemaAttribute);
                    attr.XmlName = _document.AddAttrXmlName(attr.Prefix, attr.LocalName, attr.NamespaceURI, _attributeSchemaInfo);
                    attr.AppendChild(_document.CreateTextNode(schemaAttribute.AttDef.DefaultValueRaw));
                    attributes.Append(attr);
                    XmlUnspecifiedAttribute defAttr = attr as XmlUnspecifiedAttribute;
                    if (defAttr != null)
                    {
                        defAttr.SetSpecified(false);
                    }
                }
            }
        }
Example #5
0
        private XmlAttribute LoadDefaultAttribute()
        {
            Debug.Assert(reader.IsDefault);

            XmlReader    r    = reader;
            XmlAttribute attr = doc.CreateDefaultAttribute(r.Prefix, r.LocalName, r.NamespaceURI);

            LoadAttributeValue(attr, false);

            XmlUnspecifiedAttribute defAttr = attr as XmlUnspecifiedAttribute;

            // If user overrides CreateDefaultAttribute, then attr will NOT be a XmlUnspecifiedAttribute instance.
            if (defAttr != null)
            {
                defAttr.SetSpecified(false);
            }

            return(attr);
        }
Example #6
0
        private XmlAttribute LoadAttributeNode()
        {
            Debug.Assert(reader.NodeType == XmlNodeType.Attribute);

            XmlAttribute attr;

            if (reader.IsDefault)
            {
                attr = doc.CreateDefaultAttribute(reader.Prefix, reader.LocalName, reader.NamespaceURI);
                LoadAttributeChildren(attr);
                XmlUnspecifiedAttribute defAttr = attr as XmlUnspecifiedAttribute;
                // If user overrrides CreateDefaultAttribute, then attr will NOT be a XmlUnspecifiedAttribute instance.
                if (defAttr != null)
                {
                    defAttr.SetSpecified(false);
                }
                return(attr);
            }

            attr = doc.CreateAttribute(reader.Prefix, reader.LocalName, reader.NamespaceURI);
            LoadAttributeChildren(attr);
            return(attr);
        }