internal void ValidateDefaultAttributeOnUse(IDtdDefaultAttributeInfo defaultAttribute, XmlTextReaderImpl coreReader) { SchemaAttDef attdef = defaultAttribute as SchemaAttDef; if ((attdef != null) && !attdef.DefaultValueChecked) { SchemaInfo dtdInfo = coreReader.DtdInfo as SchemaInfo; if (dtdInfo != null) { DtdValidator.CheckDefaultValue(attdef, dtdInfo, this.eventHandling, coreReader.BaseURI); } } }
internal void ValidateDefaultAttributeOnUse(IDtdDefaultAttributeInfo defaultAttribute, XmlTextReaderImpl coreReader) { SchemaAttDef attdef = defaultAttribute as SchemaAttDef; if (attdef == null) { return; } SchemaInfo schemaInfo = coreReader.DtdInfo as SchemaInfo; if (schemaInfo == null) { return; } DtdValidator.CheckDefaultValue(attdef, schemaInfo, _eventHandling, coreReader.BaseURI); }
internal void ValidateDefaultAttributeOnUse(IDtdDefaultAttributeInfo defaultAttribute, XmlTextReaderImpl coreReader) { SchemaAttDef attdef = defaultAttribute as SchemaAttDef; if (attdef == null) { return; } if (!attdef.DefaultValueChecked) { SchemaInfo schemaInfo = coreReader.DtdInfo as SchemaInfo; if (schemaInfo == null) { return; } DtdValidator.CheckDefaultValue(attdef, schemaInfo, eventHandling, coreReader.BaseURI); } }
private bool AddDefaultAttributeDtd(IDtdDefaultAttributeInfo defAttrInfo, bool definedInDtd, NodeData[] nameSortedNodeData) { if (defAttrInfo.Prefix.Length > 0) { _attrNeedNamespaceLookup = true; } string localName = defAttrInfo.LocalName; string prefix = defAttrInfo.Prefix; // check for duplicates if (nameSortedNodeData != null) { if (Array.BinarySearch<object>(nameSortedNodeData, defAttrInfo, DtdDefaultAttributeInfoToNodeDataComparer.Instance) >= 0) { return false; } } else { for (int i = _index + 1; i < _index + 1 + _attrCount; i++) { if ((object)_nodes[i].localName == (object)localName && (object)_nodes[i].prefix == (object)prefix) { return false; } } } NodeData attr = AddDefaultAttributeInternal(defAttrInfo.LocalName, null, defAttrInfo.Prefix, defAttrInfo.DefaultValueExpanded, defAttrInfo.LineNumber, defAttrInfo.LinePosition, defAttrInfo.ValueLineNumber, defAttrInfo.ValueLinePosition, defAttrInfo.IsXmlAttribute); Debug.Assert(attr != null); if (DtdValidation) { if (_onDefaultAttributeUse != null) { _onDefaultAttributeUse(defAttrInfo, this); } attr.typedValue = defAttrInfo.DefaultValueTyped; } return attr != null; }
public int Compare(object x, object y) { Debug.Assert(x == null || x is NodeData || x is IDtdDefaultAttributeInfo); Debug.Assert(y == null || y is NodeData || y is IDtdDefaultAttributeInfo); string localName, localName2; string prefix, prefix2; if (x == null) { return(y == null ? 0 : -1); } else if (y == null) { return(1); } NodeData nodeData = x as NodeData; if (nodeData != null) { localName = nodeData.localName; prefix = nodeData.prefix; } else { IDtdDefaultAttributeInfo attrDef = x as IDtdDefaultAttributeInfo; if (attrDef != null) { localName = attrDef.LocalName; prefix = attrDef.Prefix; } else { throw new XmlException(ResXml.Xml_DefaultException, string.Empty); } } nodeData = y as NodeData; if (nodeData != null) { localName2 = nodeData.localName; prefix2 = nodeData.prefix; } else { IDtdDefaultAttributeInfo attrDef = y as IDtdDefaultAttributeInfo; if (attrDef != null) { localName2 = attrDef.LocalName; prefix2 = attrDef.Prefix; } else { throw new XmlException(ResXml.Xml_DefaultException, string.Empty); } } // string.Compare does reference euqality first for us, so we don't have to do it here int result = string.Compare(localName, localName2, StringComparison.Ordinal); if (result != 0) { return(result); } return(string.Compare(prefix, prefix2, StringComparison.Ordinal)); }