static private FromXdrName ( string name ) : XmlSchemaDatatype | ||
name | string | |
Результат | XmlSchemaDatatype |
private SchemaElementDecl ThoroughGetElementDecl() { if (base.reader.Depth == 0) { this.LoadSchema(string.Empty); } if (base.reader.MoveToFirstAttribute()) { do { string namespaceURI = base.reader.NamespaceURI; string localName = base.reader.LocalName; if (Ref.Equal(namespaceURI, base.SchemaNames.NsXmlNs)) { this.LoadSchema(base.reader.Value); if (this.isProcessContents) { this.nsManager.AddNamespace((base.reader.Prefix.Length == 0) ? string.Empty : base.reader.LocalName, base.reader.Value); } } if (Ref.Equal(namespaceURI, base.SchemaNames.QnDtDt.Namespace) && Ref.Equal(localName, base.SchemaNames.QnDtDt.Name)) { base.reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(base.reader.Value); } }while (base.reader.MoveToNextAttribute()); base.reader.MoveToElement(); } SchemaElementDecl elementDecl = base.schemaInfo.GetElementDecl(base.elementName); if ((elementDecl == null) && base.schemaInfo.TargetNamespaces.ContainsKey(base.context.Namespace)) { base.SendValidationEvent("Sch_UndeclaredElement", XmlSchemaValidator.QNameString(base.context.LocalName, base.context.Namespace)); } return(elementDecl); }
// SxS: This method processes resource names read from the source document and does not expose // any resources to the caller. It is fine to suppress the SxS warning. private SchemaElementDecl?ThoroughGetElementDecl() { if (reader.Depth == 0) { LoadSchema(string.Empty); } if (reader.MoveToFirstAttribute()) { do { string objectNs = reader.NamespaceURI; string objectName = reader.LocalName; if (Ref.Equal(objectNs, SchemaNames.NsXmlNs)) { LoadSchema(reader.Value); if (_isProcessContents) { _nsManager.AddNamespace(reader.Prefix.Length == 0 ? string.Empty : reader.LocalName, reader.Value); } } if ( Ref.Equal(objectNs, SchemaNames.QnDtDt.Namespace) && Ref.Equal(objectName, SchemaNames.QnDtDt.Name) ) { reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(reader.Value); } } while (reader.MoveToNextAttribute()); reader.MoveToElement(); } SchemaElementDecl?elementDecl = schemaInfo !.GetElementDecl(elementName); if (elementDecl == null) { if (schemaInfo.TargetNamespaces.ContainsKey(context !.Namespace !)) { SendValidationEvent(SR.Sch_UndeclaredElement, XmlSchemaValidator.QNameString(context.LocalName !, context.Namespace !)); } } return(elementDecl); }
private ValidationType DetectValidationType() { //Type not yet detected : Check in Schema Collection if (reader.Schemas != null && reader.Schemas.Count > 0) { XmlSchemaCollectionEnumerator enumerator = reader.Schemas.GetEnumerator(); while (enumerator.MoveNext()) { XmlSchemaCollectionNode node = enumerator.CurrentNode !; SchemaInfo schemaInfo = node.SchemaInfo !; if (schemaInfo.SchemaType == SchemaType.XSD) { return(ValidationType.Schema); } else if (schemaInfo.SchemaType == SchemaType.XDR) { return(ValidationType.XDR); } } } if (reader.NodeType == XmlNodeType.Element) { SchemaType schemaType = SchemaNames.SchemaTypeFromRoot(reader.LocalName, reader.NamespaceURI); if (schemaType == SchemaType.XSD) { return(ValidationType.Schema); } else if (schemaType == SchemaType.XDR) { return(ValidationType.XDR); } else { int count = reader.AttributeCount; for (int i = 0; i < count; i++) { reader.MoveToAttribute(i); string objectNs = reader.NamespaceURI; string objectName = reader.LocalName; if (Ref.Equal(objectNs, SchemaNames.NsXmlNs)) { if (XdrBuilder.IsXdrSchema(reader.Value)) { reader.MoveToElement(); return(ValidationType.XDR); } } else if (Ref.Equal(objectNs, SchemaNames.NsXsi)) { reader.MoveToElement(); return(ValidationType.Schema); } else if (Ref.Equal(objectNs, SchemaNames.QnDtDt.Namespace) && Ref.Equal(objectName, SchemaNames.QnDtDt.Name)) { reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(reader.Value); reader.MoveToElement(); return(ValidationType.XDR); } } //end of for if (count > 0) { reader.MoveToElement(); } } } return(ValidationType.Auto); }
private ValidationType DetectValidationType() { if ((base.reader.Schemas != null) && (base.reader.Schemas.Count > 0)) { XmlSchemaCollectionEnumerator enumerator = base.reader.Schemas.GetEnumerator(); while (enumerator.MoveNext()) { SchemaInfo schemaInfo = enumerator.CurrentNode.SchemaInfo; if (schemaInfo.SchemaType == SchemaType.XSD) { return(ValidationType.Schema); } if (schemaInfo.SchemaType == SchemaType.XDR) { return(ValidationType.XDR); } } } if (base.reader.NodeType == XmlNodeType.Element) { switch (base.SchemaNames.SchemaTypeFromRoot(base.reader.LocalName, base.reader.NamespaceURI)) { case SchemaType.XSD: return(ValidationType.Schema); case SchemaType.XDR: return(ValidationType.XDR); } int attributeCount = base.reader.AttributeCount; for (int i = 0; i < attributeCount; i++) { base.reader.MoveToAttribute(i); string namespaceURI = base.reader.NamespaceURI; string localName = base.reader.LocalName; if (Ref.Equal(namespaceURI, base.SchemaNames.NsXmlNs)) { if (XdrBuilder.IsXdrSchema(base.reader.Value)) { base.reader.MoveToElement(); return(ValidationType.XDR); } } else { if (Ref.Equal(namespaceURI, base.SchemaNames.NsXsi)) { base.reader.MoveToElement(); return(ValidationType.Schema); } if (Ref.Equal(namespaceURI, base.SchemaNames.QnDtDt.Namespace) && Ref.Equal(localName, base.SchemaNames.QnDtDt.Name)) { base.reader.SchemaTypeObject = XmlSchemaDatatype.FromXdrName(base.reader.Value); base.reader.MoveToElement(); return(ValidationType.XDR); } } } if (attributeCount > 0) { base.reader.MoveToElement(); } } return(ValidationType.Auto); }