protected CreateDefaultAttribute ( string prefix, string localName, string namespaceURI ) : |
||
prefix | string | |
localName | string | |
namespaceURI | string | |
리턴 |
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); }
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); }
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); }
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); } } } }
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); }
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); }